3.Internet控制消息协议(ICMP)
ICMP全称是Internet Control Message Protocol,中文名为Internet控制消息协议。ICMP负责向数据通信中的源主机报告错误,可以实现故障隔离和故障恢复。
网络本身并不是十分可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。前面说到的IP是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺陷,它使用IP进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。另外,通过ICMP,使用IP通信的主机和路由器可以报告错误并交换受限控制和状态信息。
在下列情况中,通常自动发送ICMP消息:
* IP数据报无法访问目标。
* IP路由器(网关)无法按当前的传输速率转发数据报。
* IP路由器将发送主机重定向为使用到达目标的更佳路由。
在IP数据包中封装和发送ICMP消息,如图1-22所示。
图1-22 ICMP在IP数据包封装
这里需要注意:由于ICMP 消息是在 IP 数据包中携带的,因此也是不可靠的。不同类型的 ICMP 消息在 ICMP 报头中标识,表1-4列出并说明最常见的 ICMP 消息类型。
表1-4 ICMP消息类型
ICMP消息 | 描 述 |
请求回显 | 确定IP节点(主机或路由器)能否在网络上使用 |
回显答复 | 回复ICMP回显请求 |
无法连接目标 | 通知主机数据报无法传递 |
源结束 | 通知主机由于拥塞而降低发送数据报的速率 |
重定向 | 通知首选路由的主机 |
超时 | 指明IP数据报的生存时间(TTL)已到期 |
网络管理员经常使用Ping命令发送ICMP回显请求消息并记录收到ICMP回显答复消息。使用这些消息,可以检测网络或主机通信故障并解决常见的TCP/IP连接问题。