1. 最近遇到的一個項目NB-IOT使用LWM2M移動onenet對接,要求設置傳輸的MTU,因此首先需要搞懂MTU是什么?
以太網的MTU值是1500 bytes,假設發送者的協議高層向IP層發送了長度為3008 bytes的數據報文,則該報文在添加20 bytes的IP包頭后IP包的總長度是 3028 bytes,因為3028 > 1500,所以該數據報文將被分片,分片過程如下:
A. 首先計算最大的IP包中IP凈荷的長度 =MTU-IP包頭長度=1500-20= 1480 bytes。
B. 然后把3008 bytes按照1480 bytes的長度分片,將要分為3片,3008= 1480+1480+48。
C. 最后發送者將為3個分片分別添加IP包頭,組成3個IP包后再發送,3個IP包的長度分別為1500 bytes、1500 bytes和 68 bytes。
2. 找到MTU的設置函數,但是MTU應該是IP層的數據,而且IP層的設置是在C核里面(華為海思的HI2110有3個內核,用戶開發的是A核),所以最終得出的結論是無法設置。使用默認值1500即可。
