ICMP互联网控制报文协议
# ICMP互联网控制报文协议
互联网控制报文协议 ICMP (Internet Control MessageProtocol) 支持主机或路由器
- 差错(或异常)报告
- 网络探询
# ICMP 报文
两类 ICMP 报文
差错报告报文(5 种)
- 目的不可达
- 源抑制(Source Quench)
- 路由器发现缓存已满时,路由器构造 ICMP 报文,向源主机发送,从而降低源主机发送数据的速度
- 现阶段并未采用
- 路由器发现缓存已满时,路由器构造 ICMP 报文,向源主机发送,从而降低源主机发送数据的速度
- 超时/超期
- TTL 超期
- 参数问题
- 路由器判定报文头部有问题
- 重定向 (Redirect)
- 告知源主机重定向网关
网络探询报文(2组)
- 回声(Echo)请求与应答报文(Reply)
- 时间戳请求与应答报文
ICMP 报文表
类型(Type) | 编码(Code) | description |
---|---|---|
0 | 0 | 回声应答 (ping) |
3 | 0 | 目的网络不可达 |
3 | 1 | 目的主机不可达 |
3 2 目的协议不可达 3 3 目的端口不可达 3 6 目的网络未知 3 7 目的主机未知 4 0 源抑制(拥塞控制-未用) 8 0 回声请求(ping) 9 0 路由通告 10 0 路由发现 11 0 TTL超期 12 0 IP首部错误
例外情况
几种不发送 ICMP 差错报告报文的特殊情况
- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文
几种 ICMP 报文已不再使用
- 信息请求与应答报文
- 子网掩码请求和应答报文
- 路由器询问和通告报文
ICMP报文的格式
ICMP 报文封装到 IP 数据报中传输
示意图
ICMP 差错报告报文数据封装示意图
# ICMP的应用举例: Traceroute
源主机向目的主机发送一系列 UDP 数据报
当第 n 组数据报(TTL=n)到达第 n 个路由器时
停止准则
编辑 (opens new window)