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

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

評論