Internet控制消息协议(ICMP)是用于Internet协议(IP)网络的网络协议 。 ICMP为网络本身的状态而不是应用程序数据传输控制信息。 IP网络需要ICMP才能正常工作。
实践中ICMP消息的最着名的例子是ping实用程序,该实用程序使用ICMP来探测远程主机的响应能力并测量探测消息的总体往返时间。
ICMP还支持traceroute等其他实用程序,用于识别指定源和目标之间路径上的中间路由设备(“跳”)。
ICMP与ICMPv6
ICMP支持的Internet协议版本4(IPv4)网络的原始定义。 IPv6包含了一种通常称为ICMPv6的协议的修订形式,以将其与原始ICMP(有时称为ICMPv4)区分开来。
ICMP消息类型和消息格式
ICMP消息携带对计算机网络的操作和管理至关重要的数据。 该协议报告条件,如无响应设备,传输错误和网络拥塞问题。
像IP家族中的其他协议一样,ICMP定义了一个消息头。 标题按以下顺序包含四个字段:
- 类型(8 位 )
- 代码(8位)
- 校验和(16位)
- ICMP数据(32位)
ICMP定义了特定消息类型的列表并为每个消息分配一个唯一的编号。
如下表所示,ICMPv4和ICMPv6提供了一些常见的消息类型(但通常具有不同的数字),并且还提供了各自独特的消息。 (常见的消息类型也可能在IP版本之间的行为上略有不同)。
v4# | v6# | 类型 | 描述 |
---|---|---|---|
0 | 129 | 回声答复 | 为响应回应请求而发送的消息(请参见下文) |
3 | 1 | 目的地无法到达 | 针对由于各种原因无法传送的IP消息而发送。 |
4 | - | 来源淬火 | 设备可以将此消息发送回以比它可以处理的速度更快的速率生成传入流量的发件人。 (被其他方法取代) |
五 | 137 | 重定向消息 | 如果路由设备检测到请求路由中的IP地址更改,则路由设备可以生成此方法。 |
8 | 128 | 回声请求 | 通过ping实用程序发送的消息来检查目标设备的响应性 |
11 | 3 | 超时 | 当传入数据达到其“跳数”限制时,路由器生成此消息。 由traceroute使用。 |
12 | - | 参数问题 | 当设备检测到传入IP消息中的数据损坏或丢失时生成。 |
13,14 | - | 时间戳(请求,回复) | 旨在通过IPv4在两台设备之间同步时钟,(被其他更可靠的方法所取代)。 |
- | 2 | 数据包太大 | 路由器在收到由于超出长度限制而无法转发到目的地的消息时生成此消息。 |
该协议根据选择的消息类型填充Code和ICMP数据字段以共享附加信息。 例如,根据故障的性质,目标无法到达的消息可以具有许多不同的代码值。