IP 分片过程及偏移量计算

IP 报头中与分片相关的三个字段

1、 标识符( ldentifier ):16 bit

该字段与 Flags 和 Fragment Offest 字段联合使用, 对较大的上层数据包进行分段( fragment ) 操作。

路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

2、 标记( Flags ):3 bit

该字段第 1 位不使用。

第 2 位是 DF( Don't Fragment ) 位,DF 位设为 1 时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个 ICMP 错误信息。

第 3 位是 MF( More Fragments ) 位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的 IP 报文头中将 MF 位设为 1。

3、 片偏移( Fragment Offset ):13 bit

表示该 IP 报文在该组分片中的位置,接收端靠此来组装还原 IP 报文。


数据报分片举例

举例 1

举例 2

IPv4 vs IPv6 分段扩展头

在 IPv4 中,中间路由器对于超过接口 MTU 的数据包可以进行再分段处理,数据包在转发过程中可能被多次分段,会降低数据包的转发效率。

而在 IPv6 中,只有源端数据包发送方才能对数据包进行分段处理。如果源端需要发送的数据包 PMTU 超过中间路由器转发的数据包接口的 MTU 值,数据包将被丢弃,并向源端发送 ICMPv6 的 "Packet Too Big" 消息。源端收到这个消息后,会调整其后续数据包的大小,以确保它们不超过丢包路由器的 MTU 值。

相关推荐
物联网软硬件开发-轨物科技1 小时前
【轨物洞见】什么是产品碳足迹(PCF)?ISO 14067 计算方法与应用场景深度解读
大数据·网络·人工智能
姜鱼问生4 小时前
docker exec 排查容器问题:从日志到进程
运维·网络·数据库·docker·容器
qq_543447824 小时前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
威胁猎人6 小时前
网络水军产业风险研究报告
网络
独钓寒江雨6 小时前
路由器单MAC多IP支持功能未开启致业务异常
网络·数通·故障·中兴·m6000·单mac多ip
桀人6 小时前
USART帧格式
网络·stm32·单片机·嵌入式硬件
2301_777998347 小时前
TCP粘包问题:原理、解决方法与UDP为什么没有粘包
网络
马六六i7 小时前
市面上专业的IP驱动产业新场景新工具哪家好
网络·人工智能·python·tcp/ip
星恒讯工业路由器7 小时前
工信部调整超宽带设备频段:7-9GHz为5G/6G腾频谱,工业UWB设备面临合规升级
网络·物联网·5g·无线通信·5g专网·超宽带uwb·频谱管理
俊哥大数据7 小时前
Flink 2.3.0 从理论到实践 —— 第 2 章 Flink 运行时架构
网络·架构·flink