面试题答案
一键面试触发情况
当IP数据报的大小超过了链路层MTU(最大传输单元)时,就会触发分片技术。例如,以太网的MTU通常是1500字节,如果一个IP数据报(包含首部和数据)超过了1500字节,就需要进行分片。
分片过程实现
- 源主机分片:源主机在构建IP数据报时,若发现数据报大小超过了要发送链路的MTU,就将数据报分成多个较小的片段(分片)。每个分片都包含一个IP首部和部分数据。
- 中间路由器分片:当一个IP数据报在传输过程中,经过某个路由器时,如果该路由器要转发的链路MTU小于数据报的大小,路由器也会对数据报进行分片。
相关字段及其作用
- 标识(Identification)字段:16位,在IP首部中。它是源主机赋予IP数据报的标识符,同一数据报的所有分片都具有相同的标识值。作用是让目的主机能够识别哪些分片属于同一个原始数据报,以便将它们重新组装。
- 标志(Flags)字段:3位,在IP首部中。其中低2位有意义:
- MF(More Fragments):1位,MF = 1表示该分片后面还有其他分片;MF = 0表示该分片是最后一个分片。
- DF(Don't Fragment):1位,DF = 1表示不允许分片。若数据报大小超过MTU且DF = 1,路由器将丢弃该数据报,并向源主机发送ICMP“目标不可达”消息。
- 片偏移(Fragment Offset)字段:13位,在IP首部中。它指出该分片在原始数据报中的相对位置,以8字节为单位进行计数。目的主机根据片偏移的值将分片按正确顺序重新组装成原始数据报。