icmp全称internet control message protocol,中文名为因特网控制报文协议。它工作在osi的网络层,向数据通讯中的源主机报告错误。icmp可以实现故障隔离和故障恢复。
网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的ip协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的icmp协议却恰好弥补了ip的缺限,它使用ip协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。
icmp的报头长8字节,结构如图1所示。
比特0 7 8 15 16 比特31
类型(0或8) | 代码(0) | 检验和 |
为使用 | ||
数据 |
图1 icmp报头结构
icmp协议提供的诊断报文类型如表1所示。
类型 | 描述 |
0 | 回应应答(ping应答,与类型8的ping请求一起使用) |
3 | 目的不可达 |
4 | 源消亡 |
5 | 重定向 |
8 | 回应请求(ping请求,与类型8的ping应答一起使用) |
9 | 路由器公告(与类型10一起使用) |
10 | 路由器请求(与类型9一起使用) |
11 | 超时 |
12 | 参数问题 |
13 | 时标请求(与类型14一起使用) |
14 | 时标应答(与类型13一起使用) |
15 | 信息请求(与类型16一起使用) |
16 | 信息应答(与类型15一起使用) |
17 | 地址掩码请求(与类型18一起使用) |
18 | 地址掩码应答(与类型17一起使用) |
表1 icmp诊断报文类型
icmp提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:
使用科来网络分析系统捕获数据包,我们得到icmp回显报文的信息,如图1所示,
图1 科来网络分析系统抓取的icmp回显报文
我们详细介绍在图1中的解码信息,
注:以上是一个icmp回送报文,可以看出了和前面列出的icmp报文有点不一样。因为icmp有几种类型的报文(目标不可达报文,重定向报文,超时报文,回送请求和回送应答报文),每一种报文都相对都有一些区别,这里我们就不在特别介绍。