重定向消息 (Redirect Message)
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 | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway Internet Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP 字段
Destination Address (目的地址)
原始数据报数据中的源网络和地址。
ICMP 字段
Type (类型)
5
Code (代码)
- 0 = 为网络重定向数据报 (Redirect datagrams for the Network).
- 1 = 为主机重定向数据报 (Redirect datagrams for the Host).
- 2 = 为服务类型和网络重定向数据报 (Redirect datagrams for the Type of Service and Network).
- 3 = 为服务类型和主机重定向数据报 (Redirect datagrams for the Type of Service and Host).
Checksum (校验和)
校验和是从 ICMP Type 开始的 ICMP 消息的反码和的 16 位反码。计算校验和时, 校验和字段应置零。此校验和将来可能被替换。
Gateway Internet Address (网关互联网地址)
原始数据报数据的互联网目的网络字段中指定的网络的流量应发送到的网关地址。
Internet Header + 64 bits of Data Datagram (互联网头部 + 数据报数据的 64 位)
互联网头部加上原始数据报数据的前 64 位。主机使用这些数据将消息与适当的进程匹配。如果高层协议使用端口号, 则假定它们位于原始数据报数据的前 64 个数据位中。
描述
网关在以下情况下向主机发送重定向消息。网关 G1 从连接到该网关的网络上的主机接收到一个互联网数据报。网关 G1 检查其路由表, 获取到数据报互联网目的网络 X 的路由上下一个网关 G2 的地址。如果 G2 与数据报互联网源地址标识的主机位于同一网络, 则向该主机发送重定向消息。重定向消息建议主机将其发往网络 X 的流量直接发送到网关 G2, 因为这是到达目的地的更短路径。网关将原始数据报的数据转发到其互联网目的地。
对于带有 IP 源路由选项且目的地址字段中包含网关地址的数据报, 即使存在比源路由中下一个地址更好的到达最终目的地的路由, 也不会发送重定向消息。
代码 0, 1, 2 和 3 可能从网关收到。