IP分片和组装的具体过程

• 16位标识(id): 唯⼀的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每⼀个片里面的这个id都是相同的.

• 3位标志字段: 第⼀位保留(保留的意思是现在不⽤, 但是还没想好说不定以后要⽤到). 第⼆位置为1表示禁⽌分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话, 最后⼀个分片置为0, 其他是1. 类似于⼀个结束标记.

• 13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 除以 8 得到的. 因此, 除了最后⼀个报文之外(之前如果都是8的整数倍,最后⼀片的偏移量也⼀定是8的整数倍), 其他报文的长度必须是8的整数倍(否则报文就不连续了).

• 注意:片偏移(13位)表示本片数据在它所属的原始数据报数据区中的偏移量(以8字节为单位)

分片与组装的过程

分片

  1. 检查MTU限制:

    1. 当⼀个IP数据报的大小超过了⽹络的MTU(最大传输单元)限制时,就需要进行分片。MTU是数据链路层对IP层数据包进行封装时所能接受的最大数据长度。
  2. 分割数据报:

    1. IP层将原始的IP数据报分割成多个较小的片段。

    2. 对于每个片段,IP层会设置相应的标识(Identification)、偏移量(Fragment Offset)和标志位(Flags)等字段。

    3. 标识字段⽤于标识属于同⼀个数据报的不同分片,确保所有分片能够被正确地重新组装。

    4. 偏移量字段指示了当前分片相对于原始数据报的起始位置,以8字节为单位。

    5. 标志位字段包含了3个位,其中MF(More Fragment)位⽤于指示是否还有更多的分片,DF(Do Not Fragment)位⽤于指示数据报是否允许进行分片。

  3. 添加IP头部:

    1. 每个分片都会加上自己的IP头部,与完整IP报文拥有类似的IP头结构,但MF和Fragment Offset等字段的值会有所不同。
  4. 发送分片:

    1. 分片在传输过程中独⽴传输,每个分片都有自己的IP头部,并且各自独⽴地选择路由。

组装

  1. 接收分片:

    1. 当⽬的主机的IP层接收到这些分片后,会根据标识字段将属于同⼀个数据报的所有分片挑选出来。
  2. 排序与组装:

    1. 利⽤片偏移字段,IP层会对属于同⼀个数据报的分片进行排序。

      • 当所有的分片都到达并正确排序后,IP层会将这些分片重新组装成⼀个完整的IP数据报。
  3. 传递给上层协议:

    1. 组装好的IP数据报会传递给上层的协议进行处理。

注意:

• IP分片对传输层是透明的,这意味着传输层⽆需关⼼数据是否被分片以及如何重新组装。

• 接收方如何得知自己收到的报文分片了?

• 接收方如何得知自己收到的分片收全了?

• 接收方如何组合形成完整的报文?

分片与组装过程的示意图

分片组装场景

分片组装过程

  • 假设在IP层,有⼀个大小为3000字节的报文,如何分片?如何组装呢?

IP数据报分片与组装过程涉及标识、标志位和偏移量字段。

当数据报超过MTU时会被分片,每个分片保留相同标识,并设置标志位(DF表示是否允许分片,MF指示后续分片)和13位偏移量(以8字节为单位)。

接收方通过标识字段识别同属数据报的分片,利用偏移量排序重组。

分片对传输层透明,重组后完整报文才上传。

例如3000字节报文按MTU分片后,各分片携带独立IP头,通过偏移量确保正确重组。整个过程保证了大数据报在网络中的可靠传输

IP数据报分片与组装机制:当数据报超过网络MTU时,IP层会将其分片。

每个分片保留相同的16位标识,设置3位标志(DF禁止分片位、MF更多分片位)和13位偏移量(以8字节为单位)。

接收方通过标识识别同属分片,利用偏移量排序重组,MF位判断是否收齐。

例如3000字节报文被分片后,各分片携带独立IP头,重组时按偏移量拼接。整个过程对传输层透明,确保大数据报可靠传输。

相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院1 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest1 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈1 天前
Unix 与 Linux 异同小叙
linux·服务器·unix