互联网控制报文协议 (ICMP)
互联网控制报文协议 (ICMP) 工作在 OSI 模型的网络层和 TCP/IP 模型的互联网层。它用于向网络设备和主机发送控制消息。路由器和其他网络设备监控网络的操作。当发生错误时,这些设备会使用 ICMP 发送消息。可以发送的消息包括“目的地不可达”、“超时”和“回显请求”。
- ICMP 是一种网络层协议。
- ICMP 消息不会直接传递到数据链路层。在消息传递到较低层之前,它首先封装在 IP 数据报中。
ICMP 消息类型
- 信息消息 − 在此消息中,发送方向主机或路由器发送查询并期望得到答复。例如,主机想知道路由器是否处于活动状态。
- 错误报告消息 − 此消息报告路由器或主机(目的地)在处理 IP 数据包时可能遇到的问题。
- 查询消息 − 它帮助路由器或网络管理员从路由器或其他主机获取特定信息。
类别 | 类型 | 消息 |
错误报告消息 | 3 | 目的地不可达 |
4 | 源抑制 | |
11 | 超时 | |
12 | 参数问题 | |
5 | 重定向 | |
查询消息 | 8 或 0 | 回显请求或回复 |
13 或 14 | 时间戳请求或回复 | |
17 或 18 | 地址掩码请求或回复 | |
10 或 9 | 路由器请求或通告 |
- 源抑制 − 它请求降低从源到目的地的消息发送流量。
- 超时 − 当网络中碎片丢失时,路由器持有的碎片将被丢弃,然后 ICMP 将从丢弃的数据包中获取源 IP 并通知源,由于生存时间字段达到零,数据报被丢弃,方法是发送超时消息。
- 需要分片 − 当路由器由于超过下一跳网络的 MTU 且设置了 DF(不分片)位而无法转发数据报时,路由器需要将 ICMP 目的地不可达消息返回到数据报的源,代码指示需要分片并且 DF(不分片)已设置。
- 目的地不可达 − 此错误消息指示 IP 数据包中指定的目的地主机、网络或端口号不可达。这可能是由于目标主机设备已关闭、中间路由器无法找到转发数据包的路径以及防火墙配置为阻止来自数据包源的连接。
- 重定向消息 − 当路由器需要告诉发送方它应该为特定目的地使用不同的路径时,将使用重定向错误消息。当路由器知道到目的地的更短路径时,就会发生这种情况。
ICMP 基本错误消息格式
基本的 ICMP 错误消息将具有以下格式:
- 类型 − 类型字段标识消息的类型。
- 代码 − ICMP 中的代码字段描述消息的目的。
- 校验和 − 校验和字段用于验证 ICMP 消息。
广告