以太網幀大小為64~1518字節。以太網最大的數據幀是1518字節,這樣刨去幀頭14字節和幀尾CRC校驗部分4字節,那么剩下承載上層IP報文的地方最大就只有1500字節,這個值就是以太網的默認MTU值。
如果IP層有<=1500字節需要發送,只需要一個IP包就可以完成發送任務;如果IP層有>1500字節數據需要發送,那么IP層就需要進行分片才能完成發送。
以主機發送一個數據載荷長度為2000字節的報文為例說明其分片的過程(假設出接口的MTU值為1500)。
當IP層接收到此IP數據包時,它要判斷向本地哪個接口發送數據(選路),并查詢該接口獲得其MTU。把MTU與數據包長度進行比較,發現IP報文的長度超過了MTU的值1500,因此要進行分片處理,詳情見下圖。
第一片報文,IP報文頭固定20字節,數據載荷可以封裝1480字節(MTU值1500字節-IP報文頭20字節,數據載荷長度須是8的倍數);
第二片報文,復制第一片的IP頭,IP報文頭固定20字節,數據載荷為剩余的520字節(總數據載荷長度2000字節減去第一片中已封裝的1480字節)。
如果最后一片報文的長度不足46字節,會自動填充至46字節。
所有分片報文在發送至目的主機后,在目的主機進行分片重組,恢復為原報文。在進行重組時,通過IP頭中的標志位中的MF用來分辨這是不是最后一個分片,片偏移用來分辨這個分片相對原數據報的位置。通過這幾個字段,可以準確的完成數據報的重組操作。
-
以太網
+關注
關注
40文章
5583瀏覽量
174783 -
CRC校驗
+關注
關注
0文章
84瀏覽量
15505
發布評論請先 登錄
Android14在BLE中,當MTU超過517字節時應如何處理數據傳輸?
使用CAN以及CANIF配置了S32K310的CAN驅動模塊,如何進行報文的接收呢?
Linux內核網絡之網絡層發送消息之IP分片簡析
如何進行OPCDCOM配置

科普一下MTU是什么,如何設置MTU

如何利用Ping命令測試本地最佳MTU值的方法

路由器MTU是什么意思?路由器mtu最佳值
北斗短報文終端如何進行雙向通信?

評論