1. 程式人生 > 其它 >IP包大小 MTU

IP包大小 MTU

最近在做協議過程中,發現一個RLC SDU的大小差不多是1300多,考慮是否是上層做了限制,能否將rlc sdu這個size進行增大。  後面再查詢網路中發現,可能從高層下來的IP包大小就是1500byte. 下面簡單記錄下:

  • 什麼是 MTU
  • MTU 為什麼是 1500 個位元組

我們知道知道資料經過層層封裝後最後通過資料鏈路層發往另外一個終端 , 那麼當發往的資料的大小太大了,TCP/IP 就會通過分包(一個變多個),然後再傳到鏈路層進行傳送 .

我們先來看一下網路分層

 什麼是 MTU

MTU 最大傳輸單元(Maximum Transmission Unit,MTU) , 最大傳輸單元MTU(Maximum Transmission Unit,MTU),是指網路能夠傳輸的最大資料包大小,以位元組為單位。MTU的大小決定了傳送端一次能夠傳送報文的最大位元組數。
如果MTU超過了接收端所能夠承受的最大值,或者是超過了傳送路徑上途經的某臺裝置所能夠承受的最大值,就會造成報文分片甚至丟棄,加重網路傳輸的負擔。
如果太小,那實際傳送的資料量就會過小,影響傳輸效率。在不同的協議中 MTU 的值是不同的 , 例如 :

 如果IP層有一個數據報要傳,而且資料幀的長度比鏈路層的MTU還大,那麼IP層就需要進行分片( fragmentation),即把資料報分成乾片,這樣每一片就都小於MTU . 為了解釋 MTU 的概念可以看下面的例子 ,

MTU 的值不是越大越好,更大的 MTU 意味著更低的額外開銷,更小的 MTU 意味著更低的網路延遲。每一個物理裝置都有自己的 MTU,兩個主機之間的 MTU 依賴於底層的網路能力,它由整個鏈路上 MTU 最小的物理裝置決定3,
如下圖所示,網路路徑的 MTU 由 MTU 最小的紅色物理裝置決定,即 1000:

 兩臺主機通訊路徑中的最小MTU,稱為路徑MTU( Path mtu,PMTU),也就是上面的這個 1000 個位元組為該連線的 PMTU
你也看到了乙太網MTU一般為 1500 個位元組, 也就是說超過 1500 個位元組的資料就會分包傳送,那麼我們反推一下 ,

上面記錄來自於:https://www.cnblogs.com/Benjious/p/16440019.html

 到這裡我們知道了乙太網的IP包的大小就是1500byte。

那麼在做NR協議的時候,IP包到pdcp PDU , 也就是說一般pdcp 包的大小就是1500byte.

為什麼NR PDCP SDU最大為9000?

在LTE中,PDCP 狀態報告和PDCP Data Sdu最大均為8188位元組,那麼NR PDCP SDU最大設計為9000位元組?這是因為NR RAN2為了更好支援高清監控等業務決定支援Jumbo frame幀[1]。一個Jumbo frame大小為9000 bytes,是標準MTU的6倍,可以明顯的減少頭開銷。因此PDCP Data Sdu最大為9000 bytes。
那麼PDCP狀態報告多大呢?NR PDCP支援18bits的SN長度,由此可以推算在最糟糕場景,即接收窗內所有PDCP SDU均丟失時,所需狀態報告長度為2^(18-1-3) Bytes = 16384 Bytes。但是這種場景發生的概率極低,同時為了與LTE保持一致,限制PDCP的狀態報告最大也為9000 Bytes[3]。
————————————————
版權宣告:本文為CSDN博主「滄海Radio」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/yangwchenglong/article/details/119737538