Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 568

ICMP

审核人Cybersecurity entrepreneur & security researcher

ICMP 是什么?

ICMP由 RFC 792(IPv4)和 RFC 4443(IPv6)定义的网络层控制与诊断协议,供主机和路由器报告错误并反馈路径状态。


互联网控制消息协议(Internet Control Message Protocol)是 IP 的不可或缺的组成部分,IPv4 由 RFC 792 定义,IPv6 由 RFC 4443 定义。路由器和终端主机用它发送错误消息(目标不可达、超时、需要分片)以及诊断查询(回显请求/应答,供 ping 和 traceroute 使用)。ICMP 直接承载在 IP 之上,协议号为 1(ICMPv6 为 58),不使用端口。

它对路径 MTU 发现(Path MTU Discovery,RFC 1191)和 IPv6 邻居发现(Neighbor Discovery)至关重要,因此一刀切地全面封禁 ICMP 常常会造成"PMTU 黑洞",大数据包会被无声丢弃。历史上的滥用案例有充分记录:Smurf attack(CERT 公告 CA-1998-01)将受害者地址伪造成发往广播地址的回显请求的源地址,从而放大洪水攻击;Ping of Death 用重组后超过 65,535 字节的回显数据包使上世纪 90 年代末的 TCP/IP 协议栈崩溃;Loki 工具(Phrack 第 49 和 51 期,1996-97 年)开创了 ICMP 隧道技术,将隐蔽 shell 藏在回显载荷中。ICMP 重定向消息也可被伪造以污染主机的路由表。

防御措施包括对 ICMP 进行限速而非直接丢弃,放行类型 3 和 4 以及所有强制性的 ICMPv6 邻居发现消息(参见 RFC 4890 的指导),在加固主机上忽略 ICMP 重定向,以及在 NDR/EDR 中检查回显载荷以发现隧道行为。

flowchart LR
  A[Host: ping] -->|Echo Request type 8| R[Router]
  R --> B[Target host]
  B -->|Echo Reply type 0| A
  R -.->|Time Exceeded type 11| A
  R -.->|Dest Unreachable type 3| A
  X[Attacker] -.->|Forged Redirect type 5| A

示例

  1. 01

    ping example.com 发送 ICMP 回显请求,并测量收到回显应答所需的时间。

  2. 02

    路由器返回 ICMP type 3 code 4,表示需要分片但 DF 标志已置位。

常见问题

ICMP 是什么?

由 RFC 792(IPv4)和 RFC 4443(IPv6)定义的网络层控制与诊断协议,供主机和路由器报告错误并反馈路径状态。 它属于网络安全的 网络安全 分类。

ICMP 是什么意思?

由 RFC 792(IPv4)和 RFC 4443(IPv6)定义的网络层控制与诊断协议,供主机和路由器报告错误并反馈路径状态。

如何防御 ICMP?

针对 ICMP 的防御通常结合技术控制与运营实践,详见上方完整定义。

ICMP 还有哪些其他名称?

常见的别称包括: 互联网控制消息协议。

相关术语

另见