0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

你知道超過MTU的報文如何進(jìn)行分片嗎?

冬至子 ? 來源:網(wǎng)絡(luò)工程師阿成 ? 作者:大俠 ? 2023-11-29 15:51 ? 次閱讀

以太網(wǎng)幀大小為64~1518字節(jié)。以太網(wǎng)最大的數(shù)據(jù)幀是1518字節(jié),這樣刨去幀頭14字節(jié)和幀尾CRC校驗部分4字節(jié),那么剩下承載上層IP報文的地方最大就只有1500字節(jié),這個值就是以太網(wǎng)的默認(rèn)MTU值。

圖片

如果IP層有<=1500字節(jié)需要發(fā)送,只需要一個IP包就可以完成發(fā)送任務(wù);如果IP層有>1500字節(jié)數(shù)據(jù)需要發(fā)送,那么IP層就需要進(jìn)行分片才能完成發(fā)送。

以主機(jī)發(fā)送一個數(shù)據(jù)載荷長度為2000字節(jié)的報文為例說明其分片的過程(假設(shè)出接口的MTU值為1500)。

當(dāng)IP層接收到此IP數(shù)據(jù)包時,它要判斷向本地哪個接口發(fā)送數(shù)據(jù)(選路),并查詢該接口獲得其MTU。把MTU與數(shù)據(jù)包長度進(jìn)行比較,發(fā)現(xiàn)IP報文的長度超過了MTU的值1500,因此要進(jìn)行分片處理,詳情見下圖。

圖片

第一片報文,IP報文頭固定20字節(jié),數(shù)據(jù)載荷可以封裝1480字節(jié)(MTU值1500字節(jié)-IP報文頭20字節(jié),數(shù)據(jù)載荷長度須是8的倍數(shù));

第二片報文,復(fù)制第一片的IP頭,IP報文頭固定20字節(jié),數(shù)據(jù)載荷為剩余的520字節(jié)(總數(shù)據(jù)載荷長度2000字節(jié)減去第一片中已封裝的1480字節(jié))。

如果最后一片報文的長度不足46字節(jié),會自動填充至46字節(jié)。

所有分片報文在發(fā)送至目的主機(jī)后,在目的主機(jī)進(jìn)行分片重組,恢復(fù)為原報文。在進(jìn)行重組時,通過IP頭中的標(biāo)志位中的MF用來分辨這是不是最后一個分片,片偏移用來分辨這個分片相對原數(shù)據(jù)報的位置。通過這幾個字段,可以準(zhǔn)確的完成數(shù)據(jù)報的重組操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5287

    瀏覽量

    169647
  • CRC校驗
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    15146
收藏 人收藏

    評論

    相關(guān)推薦

    TC3xx連續(xù)發(fā)多幀CAN報文超過40幀就死機(jī)了怎么解決?

    之前的應(yīng)用只發(fā)送幾個報文很正常,今天測試連續(xù)發(fā)送100幀(for循環(huán)內(nèi))時,發(fā)現(xiàn)最多只能連續(xù)發(fā)送40幀,超過40幀就死機(jī)了,不知道能從哪個標(biāo)志上看出原因?如果遇到這種應(yīng)用有啥好方法嗎?請各位大佬指點,謝謝。
    發(fā)表于 02-06 07:18

    Android14在BLE中,當(dāng)MTU超過517字節(jié)時應(yīng)如何處理數(shù)據(jù)傳輸?

    /behavior-changes-all#mtu-set-to-517 我們在應(yīng)用更改后進(jìn)行了測試,但遇到了無法傳輸超過 512 字節(jié)數(shù)據(jù)的問題。 由于客戶的工作數(shù)據(jù)通常超過 51
    發(fā)表于 05-28 06:41

    CYBLE-416045-02如何增加BLE MTU大?。?/a>

    設(shè)備 CYBLE-416045-02 BLE 通信在 2 臺設(shè)備之間進(jìn)行,每臺設(shè)備都使用 CYBLE-416045-02 我正在嘗試傳輸超過 20 個字節(jié)的數(shù)據(jù)。 如何增大傳輸尺寸。 現(xiàn)附上配置
    發(fā)表于 05-28 07:46

    基于Altera FPGA的IP碎片重組模塊實現(xiàn)

    值,如以太網(wǎng)的MTU是1500字節(jié)。IP分組的理論長度可達(dá)64KB,如果IP層要發(fā)送的數(shù)據(jù)報文的長度超過了鏈路的MTU,那么IP層就要對數(shù)據(jù)報文
    發(fā)表于 10-07 11:00

    一分鐘讀懂低功耗藍(lán)牙(BLE)MTU交換數(shù)據(jù)包

    每次在做數(shù)據(jù)傳輸時不超過這個最大數(shù)據(jù)單元 MTU交換通常發(fā)生在主從雙方建立連接關(guān)系后(參見"一分鐘讀懂低功耗藍(lán)牙連接數(shù)據(jù)包") 做個對比就可以知道BLE MTU 比較?。ú贿^
    發(fā)表于 10-17 11:33

    一分鐘讀懂低功耗藍(lán)牙(BLE)MTU交換數(shù)據(jù)包

    每次在做數(shù)據(jù)傳輸時不超過這個最大數(shù)據(jù)單元 MTU交換通常發(fā)生在主從雙方建立連接關(guān)系后(參見"一分鐘讀懂低功耗藍(lán)牙連接數(shù)據(jù)包") 做個對比就可以知道BLE MTU 比較?。ú贿^
    發(fā)表于 10-27 10:34

    科普分片技術(shù)

    停止。那么以太坊做了什么呢?就在上個月底,V 神發(fā)推特:“Sharding is comming.”—— 分片來了!!2. 啥是 Sharding以太坊和比特幣一樣,每筆交易都需要所有的節(jié)點進(jìn)行驗證
    發(fā)表于 01-04 17:50

    如何檢測can發(fā)出的同一報文的間隔時間

    問題:需要檢測上位機(jī)和單片機(jī)的通訊,擬計算通信報文如0000 0000前后兩個報文的時間標(biāo)識,當(dāng)兩報文間隔時間小于1S時,認(rèn)為通信無問題,當(dāng)間隔大于1S時,認(rèn)為通信過程中存在數(shù)據(jù)丟失?,F(xiàn)程序:如圖現(xiàn)在這個程序的輸出是一個1D數(shù)組
    發(fā)表于 11-06 15:41

    CAN報文解析需要知道DBC的哪些信息排序方式

    CAN總線中報文數(shù)據(jù)讀取方法motorola編碼格式的CAN報文解析需要知道DBC的哪些信息排序方式讀取方式發(fā)送方式注motorola編碼格式的CAN報文解析
    發(fā)表于 01-12 07:28

    Linux內(nèi)核網(wǎng)絡(luò)之網(wǎng)絡(luò)層發(fā)送消息之IP分片簡析

    1、Linux內(nèi)核網(wǎng)絡(luò)之網(wǎng)絡(luò)層發(fā)送消息之IP分片簡析本文分析下ip的分片。行 IP 分片。IP分片通常發(fā)生在網(wǎng)絡(luò)環(huán)境中,比如1個B環(huán)境中的MTU
    發(fā)表于 07-20 15:34

    何進(jìn)行OPCDCOM配置

    何進(jìn)行OPCDCOM配置(四會理士電源技術(shù)有限公司招聘)-如何進(jìn)行OPCDCOM配置? ? ? ? ? ? ? ? ? ? ??
    發(fā)表于 09-18 14:23 ?11次下載
    如<b class='flag-5'>何進(jìn)行</b>OPCDCOM配置

    科普一下MTU是什么,如何設(shè)置MTU

    歡迎來到東用知識小課堂,下面我們就來科普一下一下MTU是什么,如何設(shè)置MTUMTU是最大傳輸單元的意思,代指一類通訊協(xié)議某一層上所能通過的最大數(shù)據(jù)包大小(以byte為單位)。最大傳輸單元這一主要參數(shù)
    的頭像 發(fā)表于 10-29 06:00 ?4315次閱讀
    科普一下<b class='flag-5'>MTU</b>是什么,如何設(shè)置<b class='flag-5'>MTU</b>

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

    歡迎來到東用知識小課堂,上次我們有談到過關(guān)于什么是MTUMTU的設(shè)置方法,今天我們來說一說如何利用Ping命令測試本地最佳MTU值的方法。測試構(gòu)思:在廣域網(wǎng)上,數(shù)值超過ISP標(biāo)準(zhǔn)的數(shù)
    的頭像 發(fā)表于 10-30 06:00 ?1434次閱讀
    如何利用Ping命令測試本地最佳<b class='flag-5'>MTU</b>值的方法

    路由器MTU是什么意思?路由器mtu最佳值

    數(shù)據(jù)包的大小沒有超過這個值,就直接被轉(zhuǎn)發(fā);如果超過MTU值,就要被“分片”,分割成可以通過的尺寸。前提是設(shè)備允許分片。 路由器
    的頭像 發(fā)表于 12-19 17:46 ?9141次閱讀

    北斗短報文終端如何進(jìn)行雙向通信?

    北斗短報文終端的雙向通信功能是基于中國北斗衛(wèi)星導(dǎo)航系統(tǒng)(BDS)的衛(wèi)星通信能力實現(xiàn)的。以下是北斗短報文終端進(jìn)行雙向通信的具體過程和特點:北斗短報文終端一、雙向通信過程發(fā)送短
    的頭像 發(fā)表于 07-12 11:19 ?296次閱讀
    北斗短<b class='flag-5'>報文</b>終端如<b class='flag-5'>何進(jìn)行</b>雙向通信?