ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.


         ICMP的全称是 Internet Control Message Protocol 。从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。其功能主要有:

· 侦测远端主机是否存在。

· 建立及维护路由资料。

· 重导资料传送路径(ICMP重定向)。

· 资料流量控制

ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。常用的类别如下表所列﹕

【这是一个完整的ICMP类型的列表: ICMP类型】

TYPECODEDescriptionQueryError
00Echo Reply——回显应答(Ping应答)x
30Network Unreachable——网络不可达
x
31Host Unreachable——主机不可达
x
32Protocol Unreachable——协议不可达
x
33Port Unreachable——端口不可达
x
34Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特
x
35Source routing failed——源站选路失败
x
36Destination network unknown——目的网络未知
x
37Destination host unknown——目的主机未知
x
38Source host isolated (obsolete)——源主机被隔离(作废不用)
x
39Destination network administratively prohibited——目的网络被强制禁止
x
310Destination host administratively prohibited——目的主机被强制禁止
x
311Network unreachable for TOS——由于服务类型TOS,网络不可达
x
312Host unreachable for TOS——由于服务类型TOS,主机不可达
x
313Communication administratively prohibited by filtering——由于过滤,通信被强制禁止
x
314Host precedence violation——主机越权
x
315Precedence cutoff in effect——优先中止生效
x
40Source quench——源端被关闭(基本流控制)

50Redirect for network——对网络重定向

51Redirect for host——对主机重定向

52Redirect for TOS and network——对服务类型和网络重定向

53Redirect for TOS and host——对服务类型和主机重定向

80Echo request——回显请求(Ping请求)x
90Router advertisement——路由器通告

100Route solicitation——路由器请求

110TTL equals 0 during transit——传输期间生存时间为0
x
111TTL equals 0 during reassembly——在数据报组装期间生存时间为0
x
120IP header bad (catchall error)——坏的IP首部(包括各种差错)
x
121Required options missing——缺少必需的选项
x
130Timestamp request (obsolete)——时间戳请求(作废不用)x
14
Timestamp reply (obsolete)——时间戳应答(作废不用)x
150Information request (obsolete)——信息请求(作废不用)x
160Information reply (obsolete)——信息应答(作废不用)x
170Address mask request——地址掩码请求x
180Address mask reply——地址掩码应答