目录
一、概述
二、ICMP消息类型
2.1 ICMP类型0和类型8:Ping功能
2.2 ICMP类型3:目标不可达
2.3 ICMP类型5:重定向
2.4 ICMP类型11:超时
三、报文格式
一、概述
由于IP协议是不可靠的通信协议,需要有其他协议的辅助进行网络上的问题诊断,由此引入了ICMP协议。
ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。
ICMP的消息大致可以分为两类:
-
- 一类是通知出错原因的错误消息
- 另一类是用于诊断的查询消息
二、ICMP消息类型
类型(十进制数) | 内容 |
0 | 回送应答,ping功能使用 |
3 | 目标不可达 |
4 | 原点抑制 |
5 | 重定向或改变路由 |
8 | 会送请求,ping功能使用 |
9 | 路由器公告 |
10 | 路由器请求 |
11 | 超时 |
17 | 地址子网请求 |
18 | 地址子网应答 |
2.1 ICMP类型0和类型8:Ping功能
用于进行通信的主机或路由器之间,判断所发送的数据包是否已经 成功到达对端的一种消息。常用的ping命令就是利用这个消息实现的。
ping的过程如下图:
2.2 ICMP类型3:目标不可达
IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标不可达的ICMP消息,并在这个消息中显示不可达的具体原因。
其细分类型如下:
2.3 ICMP类型5:重定向
如果路由器发现发送端主机使用了次优的路径发送数据,那么它会 返回一个ICMP重定向的消息给这个主机。通知主机最优的路由信息和源数据。
2.4 ICMP类型11:超时
IP包中有一个字段叫做TTL(Time To Live,生存周期),它的值随着每经过一次路由器就会减1,直到减到0时该IP包会被丢弃。当IP报文被舍弃的时候,IP路由器将会发送一个ICMP超时的消息给发送端主机以通信该报已被舍弃。
备注:TTL是为了预防IP报文在路由控制出问题的时候被无止境的转发,有时也会被设置为一个较小的值用于控制包的到达范围。
三、报文格式
(1)类型:ICMP消息类型大约有10多种,常用的类型有,8 = Echo Request(ping请求),0 = Echo Reply(ping应答),13 = 时间戳请求,14 = 时间戳应答;3 = 目标不可达
(2)代码:ICMP消息类型下得进一步细分,用于进一步分析错误的原因,代码值不同对应错误也不同
(3)校验和:对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错