文章目录
一、作用
- 确认 IP 包是否成功到达目标地址
- 通知发送过程中 IP 包被丢弃的具体原因
二、适用范围
IPv4
三、消息类型
1、主要 ICMP 消息
1.1、ICMP 目标不可达消息(类型 3)
实际通信中,经常会遇到的错误代码是 1,表示主机不可达,此外,错误代码 4 则用于 “路径 MTU 发现”
注意:自从不再有网络分类后,错误代码 0 也渐渐不再使用了
1.2、ICMP 重定向消息(类型 5)
由于 ICMP 重定向消息中并不包含表示网络部分的子网掩码长度,因此追加的路由信息为 /32 的形式
注意:多数情况下,重定向消息会引发问题,所以往往不进行设置
1.3、ICMP 超时消息(类型 11)
traceroute 命令
利用 ICMP 超时信息,显示执行 traceroute 的主机到达目标主机前经过多少路由器
1.4、ICMP 回送消息(类型 0、8)
ping 命令
注意:ICMP 工作在网络层,ping 基于 ICMP,所以不需要关注端口号
2、其他 ICMP 消息
2.1、ICMP 原点抑制消息(类型 4)
在使用低速广域线路的情况下,连接 WAN 的路由器可能会遇到网络拥堵的问题,ICMP 原点抑制消息的目的就是为了缓和这种拥堵情况,当路由器向低速线路发送数据时,其发送队列的残存变为零而无法发送出去时,可以向 IP 包的源地址发送一个 ICMP 原点抑制消息,收到这个消息的主机借此了解在整个线路的某一处发生了拥堵的情况,从而打开 IP 包的传输间隔,然而,由于这种 ICMP 可能会引起不公平的网络通信,一般不被使用
2.2、ICMP 路由器探索消息(类型 9、10)
主要用于发现与自己项链网络中的路由器,当一台主机发出 ICMP 路由器请求消息(类型 10)时,路由器则返回 ICMP 路由器公告消息给主机
2.3、ICMP 地址掩码消息(类型 17、18)
主要用于主机或路由器想要了解子网掩码的情况,可以向那些目标主机或路由器发送 ICMP 地址掩码请求消息(类型 17),然后通过接收 ICMP 地址掩码应答消息(类型 18)获取子网掩码信息