一个IP包,其数据长度为4900字节,通过一个MTU为1220字节的网络时,路由器的分片情况如何?请用图表的形式表示出路由器分片情况。
已知 IP 包的数据长度为 4900 字节,IP 首部长度通常为 20 字节,所以整个 IP 包大小为 4900 + 20 = 4920 字节。
网络的 MTU 为 1220 字节,由于每个分片都要包含 20 字节的 IP 首部,那么每个分片的数据部分最大长度为 1220 - 20 = 1200 字节。
数据部分总长度为 4900 字节,每片数据部分最大长度为 1200 字节,则分片数量 (向上取整)5
- 第 1 片 :
- 首部长度:20 字节
- 数据长度:1200 字节
- 总长度(首部 + 数据):1220 字节
- 片偏移(相对原始 IP 数据报数据部分开始处的偏移量,单位为 8 字节):0(因为是第一个分片)
- MF(More Fragment,标识是否还有后续分片,1 表示有,0 表示最后一片):1
- 第 2 片 :
- 首部长度:20 字节
- 数据长度:1200 字节
- 总长度(首部 + 数据):1220 字节
- 片偏移:1200 / 8 = 150(单位为 8 字节,因为上一片数据长度为 1200 字节)
- MF:1
- 第 3 片 :
- 首部长度:20 字节
- 数据长度:1200 字节
- 总长度(首部 + 数据):1220 字节
- 片偏移:(1200 * 2) / 8 = 300
- MF:1
- 第 4 片 :
- 首部长度:20 字节
- 数据长度:1200 字节
- 总长度(首部 + 数据):1220 字节
- 片偏移:(1200 * 3) / 8 = 450
- MF:1
- 第 5 片 :
- 首部长度:20 字节
- 数据长度:4900 - (1200 * 4) = 100 字节(剩余的数据部分)
- 总长度(首部 + 数据):100 + 20 = 120 字节
- 片偏移:(1200 * 4) / 8 = 600
- MF:0(这是最后一片)