ICMP(Internet Control Message Protocol,因特网控制消息协议)是 IP 协议族的一部分,用于在 主机、路由器之间传递控制消息和错误信息。
它不是用来传输数据的,而是用于“网络自我诊断、错误反馈与通知”。
简单来说,ICMP 主要用于:
功能 | 说明 |
---|---|
📡 网络是否可达 | 判断目标主机是否在线(如 ping) |
🧭 路由诊断 | 显示从源到目标的路径(如 traceroute) |
🚨 错误报告 | 通知目标不可达、TTL 超时、端口不可达等问题 |
🔁 流量控制 | 如“源抑制”,告知对方发包太快 |
类型 | 名称 | 用途 |
---|---|---|
0 | Echo Reply | ping 响应 |
3 | Destination Unreachable | 目标不可达 |
5 | Redirect | 告诉发送方使用其他路由 |
8 | Echo Request | ping 请求 |
11 | Time Exceeded | TTL 超时(常见于 traceroute) |
ping
命令(基于 ICMP)发送 Echo Request(类型 8),目标回应 Echo Reply(类型 0),用于测试网络是否畅通。
ping www.google.com
traceroute
(基于
ICMP 或 UDP)逐跳探测路径,利用 TTL 超时返回的 Time Exceeded(类型 11)信息。
ICMP 是用来报告网络错误和诊断信息的协议,是 IP 协议的“通讯员”,它告诉你网络出了什么问题,但不负责解决问题。