ICMP
缩写 ICMP 表示 Internet 控制报文协议 (RFC792),用于交换错误和信息消息。
错误消息
通知 IP 帧的发送方在转发帧时发生错误或参数问题。
信息消息
可包含时间测量、地址掩码、目标的可访问性或路由器查找的相关信息。
ICMP 数据包的结构
0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 31 |
---|---|---|---|---|---|---|---|---|
ICMP 数据包类型 消息类型 | 代码 消息的详细信息 | 校验和 | ||||||
数据(可选) |
ICMP 数据包类型
较重要的 ICMP 数据包类型如下:
- Redirect
路由器通知其中一个子网中的主机有更好的路由可供访问目标。下面将更详细地说明如何处理该 ICMP 数据包类型。
- Destination Unreachable
无法传送 IP 帧。
- Time Exceeded
**出时间限制
- Echo-Request
回送请求,通常称为 ping。
代码
代码更加详细地说明了 ICMP 数据包类型。选择取决于所选的 ICMP 数据包类型。例如,如果选择“目标无法访问”(Destination Unreachable),则无法访问“代码 1”对应的主机。
有关 ICMP 数据包类型和代码的完整列表,请访问 IANA 网站。
ICMP 数据包类型 5 - Redirect
主机 A 要向主机 C 发送 IP 帧。而主机 C 与主机 A 不在同一个子网内,因此主机 A 会将 IP 帧发送至其默认网关。主机 A 的默认网关是路由器 A 的接口 1。路由器 A 无法转发 IP 帧,因为其不清楚目标网络。不过,通过其路由表,路由器 A 了解到可通过路由器 B 访问子网 C。路由器 B 连接子网 A 和子网 C。路由器 A 将向主机 A 发送重定向消息。这样,路由器 A 之后便可指示主机 A 通过路由器 B(其 IP 地址包含在重定向消息中)将 IP 帧发送至主机 C。初始 IP 帧由路由器 A 直接发送到路由器 B,路由器 B 会将其转发至主机 C。
重定向消息的发送条件
IP 帧通过路由器 A 的同一接口接收和发送。
源 IP 地址(主机 A)与路由表中下一跃点地址(路由器 B)的子网相同。
IP 帧不受源 NAT 规则(地址伪装、源 NAT 或 NETMAP)的影响。
路由器 A 将初始 IP 帧转发到路由器 B,需要防火墙规则 vlanX → vlanX。
shtxjd.cn.b2b168.com/m/