0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你知道超过MTU的报文如何进行分片吗?

冬至子 来源:网络工程师阿成 作者:大侠 2023-11-29 15:51 次阅读

以太网帧大小为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

    文章

    5076

    浏览量

    166238
  • CRC校验
    +关注

    关注

    0

    文章

    81

    浏览量

    15030
收藏 人收藏

    评论

    相关推荐

    TC3xx连续发多帧CAN报文超过40帧就死机了怎么解决?

    之前的应用只发送几个报文很正常,今天测试连续发送100帧(for循环内)时,发现最多只能连续发送40帧,超过40帧就死机了,不知道能从哪个标志上看出原因?如果遇到这种应用有啥好方法吗?请各位大佬指点,谢谢。
    发表于 02-06 07:18

    基于Altera FPGA的IP碎片重组模块实现

    值,如以太网的MTU是1500字节。IP分组的理论长度可达64KB,如果IP层要发送的数据报文的长度超过了链路的MTU,那么IP层就要对数据报文
    发表于 10-07 11:00

    一分钟读懂低功耗蓝牙(BLE)MTU交换数据包

    每次在做数据传输时不超过这个最大数据单元 MTU交换通常发生在主从双方建立连接关系后(参见"一分钟读懂低功耗蓝牙连接数据包") 做个对比就可以知道BLE MTU 比较小(不过
    发表于 10-17 11:33

    一分钟读懂低功耗蓝牙(BLE)MTU交换数据包

    每次在做数据传输时不超过这个最大数据单元 MTU交换通常发生在主从双方建立连接关系后(参见"一分钟读懂低功耗蓝牙连接数据包") 做个对比就可以知道BLE MTU 比较小(不过
    发表于 10-27 10:34

    科普分片技术

    停止。那么以太坊做了什么呢?就在上个月底,V 神发推特:“Sharding is comming.”—— 分片来了!!2. 啥是 Sharding以太坊和比特币一样,每笔交易都需要所有的节点进行验证
    发表于 01-04 17:50

    如何检测can发出的同一报文的间隔时间

    问题:需要检测上位机和单片机的通讯,拟计算通信报文如0000 0000前后两个报文的时间标识,当两报文间隔时间小于1S时,认为通信无问题,当间隔大于1S时,认为通信过程中存在数据丢失。现程序:如图现在这个程序的输出是一个1D数组
    发表于 11-06 15:41

    怎么使用stm32的LWIP协议栈进行报文调度算法的开发?

    各位朋友好,我的导师要求我设计一个新的报文调度算法,能够实现不同优先级的报文在发送的过程中,实现高优先级报文的低延时和低抖动。要求使用stm32的LWIP协议栈进行
    发表于 04-07 04:35

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

    CAN总线中报文数据读取方法motorola编码格式的CAN报文解析需要知道DBC的哪些信息排序方式读取方式发送方式注motorola编码格式的CAN报文解析
    发表于 01-12 07:28

    Linux内核网络之网络层发送消息之IP分片简析

    1、Linux内核网络之网络层发送消息之IP分片简析本文分析下ip的分片。行 IP 分片。IP分片通常发生在网络环境中,比如1个B环境中的MTU
    发表于 07-20 15:34

    如何使用区块链分片进行区块链扩容

    区块链分片(Blockchain Sharding)是为区块链进行扩容的一种重要技术,以通过改变网络验证的方式,增加吞吐量。这是区块链技术走向商业化实践必须要解决的问题之一。
    发表于 11-27 10:36 1889次阅读

    何进行OPCDCOM配置

    何进行OPCDCOM配置(四会理士电源技术有限公司招聘)-如何进行OPCDCOM配置                      
    发表于 09-18 14:23 11次下载
    如<b class='flag-5'>何进行</b>OPCDCOM配置

    何进行电源设计 - 第1部分

    何进行电源设计 - 第1部分
    发表于 11-02 08:16 1次下载
    如<b class='flag-5'>何进行</b>电源设计 - 第1部分

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

    欢迎来到东用知识小课堂,下面我们就来科普一下一下MTU是什么,如何设置MTUMTU是最大传输单元的意思,代指一类通讯协议某一层上所能通过的最大数据包大小(以byte为单位)。最大传输单元这一主要参数
    的头像 发表于 10-29 06:00 3166次阅读
    科普一下<b class='flag-5'>MTU</b>是什么,如何设置<b class='flag-5'>MTU</b>

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

    欢迎来到东用知识小课堂,上次我们有谈到过关于什么是MTUMTU的设置方法,今天我们来说一说如何利用Ping命令测试本地最佳MTU值的方法。测试构思:在广域网上,数值超过ISP标准的数
    的头像 发表于 10-30 06:00 808次阅读
    如何利用Ping命令测试本地最佳<b class='flag-5'>MTU</b>值的方法

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

    数据包的大小没有超过这个值,就直接被转发;如果超过MTU值,就要被“分片”,分割成可以通过的尺寸。前提是设备允许分片。 路由器
    的头像 发表于 12-19 17:46 6768次阅读