4. Router Specification (路由器规范)
4. Router Specification (路由器规范)
当路由器因数据报超过下一跳网络的 MTU 且设置了不分片 (Don't Fragment) 位而无法转发该数据报时, 路由器需要向数据报的源地址返回一条 ICMP 目的不可达 (Destination Unreachable) 消息, 其代码表示"需要分片但已设置DF". 为了支持本备忘录中规定的路径MTU发现技术, 路由器必须 (MUST) 在 ICMP 规范 [7] 中标记为"未使用"的 ICMP 头部字段的低16位中包含该下一跳网络的 MTU. 高16位保持未使用状态, 必须 (MUST) 设置为零. 因此, 消息格式如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 3 | Code = 4 | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused = 0 | Next-Hop MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Datagram Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
下一跳MTU (Next-Hop MTU) 字段中携带的值为:
沿原始数据报路径, 可以在此路由器不进行分片的情况下转发的最大数据报大小 (以字节为单位). 该大小包括 IP 头部和 IP 数据, 不包括任何低层头部.
该字段的值永远不会小于68, 因为每个路由器"必须能够转发68字节的数据报而不进行分片" [8].