一个 IPv4 数据报总长度为 4000 字节,其中首部 20 字节。数据报经过 MTU 为 1500 字节的链路,允许分片且各分片首部仍为 20 字节。第三个分片的片偏移和 MF 标志分别为()。
原始数据载荷为 4000-20=3980 字节。每个非最后分片最多携带 1500-20=1480 字节,且 1480 可被 8 整除。前两个分片共携带 2960 字节,所以第三个分片的片偏移为 2960÷8=370;它是最后一个分片,因此 MF=0。
选项分析
错误。185 是第二个分片的片偏移,而且第二片后面还有分片,MF=1。
正确。第三片从原数据载荷的第 2960 字节处开始,偏移为 370,且为最后一片。
错误。1480 是单个完整分片的数据载荷字节数,不是第三片的偏移字段值。
错误。2960 是字节偏移量,写入首部前还要除以 8;最后一片 MF 也不应为 1。
本题为什么容易错
最容易丢分的地方有两个:总长度包括首部,以及片偏移的单位是 8 字节。很多同学计算出 2960 后就停了,结果在最后一步把字节数当成字段值。
简短答案
IPv4 数据报分片后,片偏移和 MF 标志怎么计算,正确答案是 B(片偏移 370,MF=0)。原始数据载荷为 4000-20=3980 字节。每个非最后分片最多携带 1500-20=1480 字节,且 1480 可被 8 整除。前两个分片共携带 2960 字节,所以第三个分片的片偏移为 2960÷8=370;它是最后一个分片,因此 MF=0。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 片偏移 185,MF=1 | 本题干扰项 | 错误。185 是第二个分片的片偏移,而且第二片后面还有分片,MF=1。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 片偏移 370,MF=0 | 本题正确答案 | 正确。第三片从原数据载荷的第 2960 字节处开始,偏移为 370,且为最后一片。 | 看到题干核心场景时优先联想到它 |
| 片偏移 1480,MF=0 | 本题干扰项 | 错误。1480 是单个完整分片的数据载荷字节数,不是第三片的偏移字段值。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 片偏移 2960,MF=1 | 本题干扰项 | 错误。2960 是字节偏移量,写入首部前还要除以 8;最后一片 MF 也不应为 1。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 片偏移 185,MF=1:错误。185 是第二个分片的片偏移,而且第二片后面还有分片,MF=1。
- 片偏移 1480,MF=0:错误。1480 是单个完整分片的数据载荷字节数,不是第三片的偏移字段值。
- 片偏移 2960,MF=1:错误。2960 是字节偏移量,写入首部前还要除以 8;最后一片 MF 也不应为 1。
知识点详解
IPv4 分片发生在数据报长度超过下一跳链路 MTU 且 DF 标志未置位时。每个分片都有独立 IP 首部,非最后分片的数据载荷应尽量大,并满足 8 字节对齐,因为片偏移字段以 8 字节为单位。接收端使用标识字段、片偏移和 MF 标志完成重组。IPv6 中间路由器不执行这种分片,通常依赖路径 MTU 发现并由源主机处理,因此做题时还要先确认协议版本。
备考速记
速记:载荷先扣首部,偏移再除以八;后面还有片,MF 才写一。
IPv4分片 在MTU场景中的作用
IPv4分片在本题中的核心价值,是解决“一个 IPv4 数据报总长度为 4000 字节,其中首部 20 字节。数据报经过 MTU 为 1500 字节的链路,允许分片且各分片首部仍为 20 字节。第三个分片的片偏移和 MF 标志分别为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出总长度、首部长度和 MTU,计算分片数量与各片总长度。
- 要求填写第二片或第三片的片偏移与 MF 标志。
- 结合 DF 标志判断路由器能否分片,以及需要返回什么类型的 ICMP 信息。
IPv4分片 在网络工程师软考中的考法
软考选择题通常不会只考概念定义,还会把IPv4分片放到MTU场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
这类题建议分三行算:先减首部得到原始载荷 3980;再用 MTU 减首部得到每片最大载荷 1480;最后看第三片之前已经传了 2960 字节,除以 8 得偏移 370。不要把 2960 直接抄进片偏移字段。
考点定位
IPv4 片偏移以 8 字节为单位,不是直接填写字节数。MF 表示后面是否还有分片,最后一个分片的 MF 才为 0。
易错提醒
- 直接用 1500 字节作为分片数据载荷,忘记扣除 20 字节首部。
- 片偏移没有除以 8。
- 把 MF 理解成“这是第几个分片”,而不是“后面是否还有分片”。
备考提示
- 非最后分片的数据载荷通常要取不超过 MTU-首部长度的最大 8 字节整数倍。
- DF=1 表示不允许分片;MF=1 表示后面还有分片,两者不要记反。
你可能还想了解
- IPv4 片偏移为什么要除以 8?
- MTU 1500 时分片载荷为什么通常是 1480 字节?
- DF 和 MF 标志分别表示什么?
- IPv6 路由器还会像 IPv4 一样分片吗?
本文小结
原始载荷为 3980 字节,每个完整分片携带 1480 字节。第三片之前已有 2960 字节数据,因此片偏移为 2960/8=370;第三片是最后一片,所以 MF=0。