文章总结: 本文详细介绍了互联网控制消息协议ICMP的定义、用途与工作原理。ICMP作为网络层协议,主要用于错误报告与网络诊断,支持ping和traceroute等工具。由于ICMP是无连接协议,不依赖TCP或UDP且不针对特定端口,攻击者常利用其特性发起DDoS攻击,如ICMP洪水攻击、死亡之Ping和Smurf攻击。文章指出后两者主要影响老旧设备,帮助读者建立基础的网络协议安全认知。 综合评分: 58 文章分类: 网络安全,安全意识
什么是 ICMP(互联网控制消息协议)?
钟智强 钟智强
哪吒网络安全
2026年7月12日 18:12 马来西亚
在小说阅读器读本章
去阅读
分类:网络协议 / DDoS 攻击 标签:ICMP Ping Traceroute 网络层 DDoS
摘要:互联网控制消息协议(ICMP)是网络设备用来诊断网络通信问题的网络层协议。本文介绍 ICMP 的用途、工作原理、数据包结构,以及它在 DDoS 攻击中如何被利用。
| | | — | | 阅读本文后,你将能够: 定义 ICMP;说明 ping 与 traceroute 的工作方式;理解 ICMP 协议如何被用于 DDoS 攻击。 |
一、什么是互联网控制消息协议(ICMP)?
互联网控制消息协议(Internet Control Message Protocol,简称 ICMP)是一种由网络设备用来诊断网络通信问题的网络层协议。ICMP 主要用于判断数据是否能够及时到达其预定目的地。它通常运行在路由器等网络设备上。
ICMP 对于错误报告和测试至关重要,但它同样可能被用于分布式拒绝服务(DDoS)攻击。
二、ICMP 有什么用途?
- 错误报告
ICMP 的主要用途是错误报告。当两台设备通过互联网连接时,若有任何数据未能到达其预定目的地,ICMP 会生成错误消息,反馈给发送方设备。
例如,如果某个数据包对于路由器来说过大,路由器会丢弃该数据包,并向数据的原始来源发送一条 ICMP 消息。
- 网络诊断:ping 与 traceroute
ICMP 的次要用途是执行网络诊断。常用的终端工具 traceroute 和 ping 都通过 ICMP 运行。
traceroute 用于显示两台互联网设备之间的路由路径——即请求在到达目的地之前必须经过的、由相连路由器组成的实际物理路径。从一个路由器到另一个路由器的过程被称为一跳(hop),traceroute 还会报告沿途每一跳所需的时间,这对于确定网络延迟的来源非常有用。
图 1 traceroute 逐跳追踪两台设备之间的路由路径
ping 是 traceroute 的简化版本。ping 会测试两台设备之间连接的速度,并精确报告一个数据包到达目的地并返回发送方设备所需的时间。虽然 ping 不提供关于路由或跳数的数据,但它仍是衡量两台设备之间延迟(latency)的非常有用的指标。执行 ping 时,通常使用 ICMP 的回显请求(echo-request)和回显应答(echo-reply)消息。
图 2 ping 通过回显请求与回显应答测量往返延迟
| | | — | | ⚠ 安全提示 遗憾的是,网络攻击可能利用这一过程,制造出诸如 ICMP 洪水攻击 和 死亡之 Ping(ping of death) 之类的破坏手段。 |
三、ICMP 如何工作?
与互联网协议(IP)不同,ICMP 不与诸如 TCP 或 UDP 之类的传输层协议相关联。这使得 ICMP 成为一种无连接协议:一台设备在发送 ICMP 消息之前,无需与另一台设备建立连接。
正常的 IP 流量使用 TCP 发送,这意味着任何两台交换数据的设备都会先进行 TCP 握手,以确保双方都已准备好接收数据。而 ICMP 不会以这种方式建立连接,ICMP 协议也不允许针对设备上的特定端口。
四、什么是 ICMP 数据包?
ICMP 数据包是使用 ICMP 协议的数据包。ICMP 数据包在普通的 IP 头部之后包含一个 ICMP 头部。当路由器或服务器需要发送错误消息时,ICMP 数据包的正文(数据段)始终包含引发该错误的数据包的 IP 头部副本。
图 3 ICMP 数据包结构:IP 头部 + ICMP 头部 + 数据段
五、ICMP 如何被用于 DDoS 攻击?
- ICMP 洪水攻击
Ping 洪水(ping flood)或 ICMP 洪水,是指攻击者试图用 ICMP 回显请求数据包淹没目标设备。目标必须处理并回应每一个数据包,从而消耗其计算资源,直到合法用户无法获得服务。
图 4 ICMP 洪水:大量回显请求与回显应答
- 死亡之 Ping(Ping of Death)
死亡之 Ping 攻击,是指攻击者向目标机器发送一个大于数据包最大允许尺寸的 ping,导致机器冻结或崩溃。数据包在到达目标的途中会被分片,但当目标将其重组为原始的、超过最大尺寸的大小时,数据包的尺寸会引发缓冲区溢出。
| | | — | | 📌 历史背景 死亡之 Ping 攻击如今在很大程度上已成为历史,不过较老旧的网络设备仍可能易受其影响。 |
- Smurf 攻击
在 Smurf 攻击中,攻击者发送一个带有伪造源 IP 地址的 ICMP 数据包。网络设备会回应该数据包,将应答发送到被伪造的 IP,从而用不需要的 ICMP 数据包淹没受害者。与死亡之 Ping 一样,如今 Smurf 攻击只有在使用老旧设备时才有可能实现。
图 5 Smurf 攻击:伪造源 IP,使应答流量涌向受害者
ICMP 并非三层(L3)DDoS 攻击中使用的唯一网络层协议。例如,攻击者过去也曾使用 GRE 数据包。
通常,网络层 DDoS 攻击的目标是网络设备和基础设施,这与以 Web 资产为目标的应用层 DDoS 攻击不同。
六、小结
●ICMP 是一种网络层协议,主要用于错误报告和网络诊断。
●ping 与 traceroute 都基于 ICMP:前者测量往返延迟,后者逐跳追踪路由路径。
●ICMP 是无连接协议,不依赖 TCP/UDP,也不针对特定端口。
●ICMP 可被滥用于 ICMP 洪水、死亡之 Ping、Smurf 等 DDoS 攻击;后两者如今主要影响老旧设备。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:哪吒网络安全 钟智强 钟智强《什么是 ICMP(互联网控制消息协议)?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论