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

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

路由器MTU是什么意思?路由器mtu最佳值
北斗短報(bào)文終端如何進(jìn)行雙向通信?

mtu與網(wǎng)絡(luò)性能的關(guān)系 mtu調(diào)整對(duì)網(wǎng)絡(luò)的影響
mtu在不同網(wǎng)絡(luò)協(xié)議中的應(yīng)用
常見(jiàn)的mtu相關(guān)問(wèn)題及解決方案
mtu配置步驟詳解 mtu與數(shù)據(jù)包丟失的關(guān)系
mtu和網(wǎng)絡(luò)安全的關(guān)系
mtu大小對(duì)云服務(wù)的影響
NCS更改MTU大小

評(píng)論