ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。
 
类型 代码 名称
0 0 回应应答
3 目的地不可达
0 网路不可达
1 主机不可达
2 协议不可达
3 端口不可达
4 需要分片和不需要分片标记置位
5 源路由失败
6 目的网络未知
7 目的主机未知
8 源主机被隔离
9 与目的网络的通告被禁止
10 目的主机的通信被禁止
11 对请求的服务类型,目的网路不可达
12 对请求的服务类型,目的主机不可达
4 0 源抑制(Source Quench)
5 重定向
0 为网络(子网)重定向数据报
1 为主机重定向数据报
2 为网络和服务类型重定向数据报
3 为主机和服务类型重定向数据报
6 0 选择主机地址
8 0 回应(请求)
9 0 路由器通告
10 0 路由器选择
11 超时
0 传输中超出TTL
1 超出分片重组时间
12 参数问题
0 指定错误的指针
1 缺少需要的选项
2 错误长度
13 0 时间戳
14 0 时间戳回复
15 0 信息请求(废弃)
16 0 信息回复(废弃)
17 0 地址掩码请求
18 0 地址掩码回复
30 跟踪路由
31 数据报会话错误
32 移动主机重定向
33 IPv6你在哪里
34 IPv6我在这里
35 移动注册请求
36 移动注册回复