ICMP是什么

ICMP(Internet Control Message Protocol,因特网控制消息协议)是 IP 协议族的一部分,用于在 主机、路由器之间传递控制消息和错误信息

它不是用来传输数据的,而是用于“网络自我诊断、错误反馈与通知”。


🧩 一、ICMP 的作用

简单来说,ICMP 主要用于:

功能 说明
📡 网络是否可达 判断目标主机是否在线(如 ping)
🧭 路由诊断 显示从源到目标的路径(如 traceroute)
🚨 错误报告 通知目标不可达、TTL 超时、端口不可达等问题
🔁 流量控制 如“源抑制”,告知对方发包太快

🔧 二、常见的 ICMP 类型

类型 名称 用途
0 Echo Reply ping 响应
3 Destination Unreachable 目标不可达
5 Redirect 告诉发送方使用其他路由
8 Echo Request ping 请求
11 Time Exceeded TTL 超时(常见于 traceroute)

📦 三、ICMP 特点


🧪 四、实际用途举例

1️⃣ ping 命令(基于 ICMP)

发送 Echo Request(类型 8),目标回应 Echo Reply(类型 0),用于测试网络是否畅通。

ping www.google.com

2️⃣ traceroute(基于 ICMP 或 UDP)

逐跳探测路径,利用 TTL 超时返回的 Time Exceeded(类型 11)信息。


🛡️ 五、与安全的关系


✅ 总结一句话:

ICMP 是用来报告网络错误和诊断信息的协议,是 IP 协议的“通讯员”,它告诉你网络出了什么问题,但不负责解决问题。