ICMP(Internet Control Message Protocol)报文类型/代码解读
IPv4 ICMP常见Type
| Type | 名称 | 用途 |
|---|---|---|
| 0 | Echo Reply | ping的响应 |
| 3 | Destination Unreachable | 目标不可达 |
| 4 | Source Quench | 源端抑制,已废弃 |
| 5 | Redirect | 重定向 |
| 8 | Echo Request | ping请求 |
| 9 | Router Advertisement | 路由器通告 |
| 10 | Router Solicitation | 路由器请求 |
| 11 | Time Exceeded | TTL超时,traceroute常用 |
| 12 | Parameter Problem | IP报文参数错误 |
| 13 | Timestamp Request | 时间戳请求 |
| 14 | Timestamp Reply | 时间戳响应 |
| 17 | Address Mask Request | 地址掩码请求,已废弃 |
| 18 | Address Mask Reply | 地址掩码响应,已废弃 |
最常见的几个
Type 8:Echo Request
客户端发送:
1 | Type=8,Code=0 |
例如执行:
1 | ping 8.8.8.8 |
发送的ICMP请求就是Echo Request。
Type 0:Echo Reply
服务器返回:
1 | Type=0,Code=0 |
也就是ping看到的响应。
所以最经典的一对是:
1 | Echo Request → Type 8 |
Type 3:Destination Unreachable
表示目标不可达。常见Code包括:
| Code | 含义 |
|---|---|
| 0 | Network Unreachable |
| 1 | Host Unreachable |
| 2 | Protocol Unreachable |
| 3 | Port Unreachable |
| 4 | Fragmentation Needed |
| 13 | Communication Administratively Prohibited |
例如UDP发送到一个没有监听的端口,可能收到:
1 | ICMP Type 3 |
即Port Unreachable。
Type 11:Time Exceeded
常用于traceroute/tracert。
1 | Type=11 |
表示TTL在经过路由器转发时减到0。
ICMPv****6
ICMPv6的Type编号与ICMPv4不是一套体系。例如:
| Type | 名称 |
|---|---|
| 1 | Destination Unreachable |
| 2 | Packet Too Big |
| 3 | Time Exceeded |
| 4 | Parameter Problem |
| 128 | Echo Request |
| 129 | Echo Reply |
| 133 | Router Solicitation |
| 134 | Router Advertisement |
| 135 | Neighbor Solicitation |
| 136 | Neighbor Advertisement |
总结
1 | ICMPv4: |