ICMP协议
概述
ICMP(INTERNET CONTROL MESSAGE PROTOCOL)Internet控制报文协议
ICMP协议工作在三层(网络层),由ICMP头和填充数据组成,并填充在IP报文内部

ICMP协议依赖于IP协议,在ICMP头中没有目标和源地址。IP协议中的协议号字段为0x01时表示这是一个ICMP协议。
头部
ICMP头由ICMP类型和code组成,当类型字段为3时,code字段具有实际意义
| ICMP类型字段 | 含义 |
|---|---|
| 8 | ping请求 |
| 0 | ping应答 |
| 3 | 目标主机不可达(被路由器或防火墙策略拦截) |
| 11 | 路由环路(TTL超时) |
作用
- 网络探测
- 路由跟踪
- windows:tracert [IP]
- linux或路由器:traceroute [IP]
- 路由跟踪的原理是发送一个TTL值为1的数据包,当到达路由器时,路由器将TTL减一,回馈一个头部类型字段为11(TTL超时)的ICMP报文,收到的报文即为跟踪到的路由器,然后将TTL值加一继续发送跟踪一下个路由器。如果路由器有自我防御机制不提供ICMP回馈则无法跟踪,但不影响跟踪下一个路由器。
- 错误反馈(当type字段为3时code字段的含义)
- 0 = net unreachable;
- 1 = host unreachable;
- 2 = protocol unreachable;
- 3 = port unreachable;
- 4 = fragmentation needed and DF set;
- 5 = source route failed.
署名-非商业性使用本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZEKALRYN'S BLOG!
评论
