简介
当使用IP网络时,有时需要确认网络是否正常,以及遇到异常时能够诊断是什么异常,ICMP应运而生。
ICMP的主要功能是确认IP包是否成功到达目标地址,通知在发送过程中IP包被丢弃的具体原因。
由于网络设备也经常使用ICMP协议定位问题,所有的网络设备都支持ICMP协议。
协议
由于ICMP是通过IP协议传输的,所以有时ICMP被认为是IP层的一个组成部分。
协议头
所有报文的前4个字节格式固定的,第一个字节是类型,第二个是code,第三、四个字节是校验字,从第四个字节后,根据类型和代码为的不同而变化。
ICMP报文类型
不同类型由报文的类型字段和代码字段共同决定,下面图中的最后2列代码是查询报文还是差错报文,详细区分如下表所示:
当发送差错报文时,需要保护IP首部和产生ICMP差错报文的IP数据报的前8个字节。当发送一份lCMP差错报文时,报文始终包含IP的首部和产生ICMP差错报文的IP数据报的前8个字节。这样,接收IMP差错报文的模块就会把它与某个特定的协议(根据lP数据报首部中的协议字段来判断)和用户进程根据包含套IP数据报前8个字节中的TCP 或UDP报文首部中的TCP或UDP端口号来判断)联系起来。