★什么是 ICMP?
ICMP (Internet Control Message Protocol,互联网控制报文协议)是 IP 协议中传输 "错误通知 "和 "控制报文 "的协议。
ICMP 用于检查执行 TCP/IP 协议的计算机之间的通信状态。ICMP 是在互联网层(OSI 参考模型的网络层)运行的协议。
网络诊断程序 ping 和 traceroute 就使用了 ICMP 协议。
★ICMP 格式。
尽管 ICMP 在网络层运行,但它恰恰是在 IP 协议之上运行的,如下图所示。
ICMP 报文由四个字段组成:类型、代码、校验和数据。
★两种类型的 ICMP 报文
ICMP 报文主要有两种类型:
一种是查询报文。该查询报文允许节点检查特定节点的通信状态。
使用这种查询的通信程序有 ping 和 traceroute。
另一种是错误通知(Error)信息。
当数据包在节点间通信的路由过程中被丢弃时,会将原因作为错误通知给源节点。