Skip to content Skip to navigation Skip to footer

Internet 控制消息协议 (ICMP协议)

联系我们

什么是互联网控制消息协议 (ICMP)?

互联网控制消息协议 (ICMP) 是网络中的设备用于传达数据传输相关问题的协议。根据这个定义,ICMP 的主要用途之一是,确定数据是否在正确的时间到达目的地。这使得 ICMP 成为错误报告过程的一个重要方面,对于进行测试来确定网络的数据传输情况也很重要。但是,ICMP 也可用于进行分布式拒绝服务 (DDoS) 攻击。

ICMP 在网络通信中的工作方式类似于建房木匠与家居装修用品店之间进行的沟通。家居装修用品店安排螺柱、地板条、屋顶材料、隔热材料等物品的送货,并假设这些物品会按顺序到达。 

例如,当木工开始建造墙壁时,他要求家居装修用品店提供 28 块 2x4 板材、10 磅钉子和一扇门。他需要先拿到钉子,然后是 2x4 板材,最后是门。家居装修用品店按照这个顺序送货,但却是门最先送到。这是不行的,因为没有墙壁就无法把门装上去。因此,木匠要求家居装修用品店重新送去钉子和 2x4 板材,后者按要求照做,并让司机改走另一条路线。

ICMP 的作用就类似于木工和家居装修用品店之间的沟通。它将来自接收器的关于预期数据的消息转发给发送器。如果数据没有到达接收器或收到数据的顺序不正确,ICMP 会告知发送器,以便发送器重新发送数据。这样,ICMP 只是用于传达数据相关信息的协议,但并不管理数据本身。 

此外,它在开放式系统互联 (OSI) 模型中没有自己的层(该模型概述了网络传输涉及的七个层)。了解 ICMP 有助于您知道为什么它是一个很有用的工具,但同样重要的是,要了解 ICMP 如何可被用于有可能对组织构成威胁的 DDoS 攻击。

ICMP 有哪些用途?

ICMP 的首要用途是报告错误。只要有两台设备通过互联网实现连接,如果某些数据没有按预期到达,则 ICMP 就可用于制造错误,这些错误可能会从接收设备去到发送设备。例如,数据包可能太大,以致路由器无法管理。在这种情况下,路由器会丢弃数据包,并向发送器发送 ICMP 消息,将问题告知对方。

ICMP 的另一种常见用途是作为评估网络性能的诊断工具。路由跟踪和 ping 都使用 ICMP。路由跟踪和 ping 是发送的关于数据是否传输成功的消息。当使用路由跟踪时,报告中会显示数据包到达目的地所经过的设备,其中包括处理数据的物理路由器。 

路由跟踪还会告诉您,数据从一台设备传输到另一台设备所用的时间。每次数据从一个路由器传输到另一个路由器,这段路程称为一跳。路由跟踪显示的信息可用于确定传输路线中的哪些设备会导致延迟。

ping 类似于路由跟踪,但更简单。它报告数据在两个点之间传输所需的时间。ICMP 对于 ping 有帮助,因为 ping 过程中会使用 ICMP 回显请求和回显回复。

ICMP 也被用于损害网络性能。具体体现为 ICMP 洪水攻击、Smurf 攻击和死亡 ping 攻击,导致网络中的设备不堪重负,无法正常运行。

ICMP 的工作原理是什么?

ICMP 与互联网协议第 6 版 (IPv6) 的不同之处在于,它与传输控制协议 (TCP) 或用户数据报协议 (UDP) 无关。因此,在发送 ICMP 消息之前,设备与设备之间不需要建立连接。 

例如,在 TCP 中,进行通信的两台设备会首先进行包含几个步骤的握手。握手完成后,数据可以从发送器传输到接收器。可以使用 tcpdump 等工具观察这些信息。 

ICMP 则不同,它无需建立连接,可以直接发送消息。此外,不同于 TCP 和 UDP 会规定接收信息的端口,ICMP 消息不会指定设备上的某个端口作为接收端口。

ICMP 如何被用于 DDoS 攻击?

攻击者通常以几种不同的方式将 ICMP 用于 DDoS 攻击:ICMP 洪水攻击、死亡 ping 攻击或 Smurf 攻击。

在 ICMP 洪水攻击中,攻击者会发送大量 ping,以致被攻击的设备无法处理所有 ICMP 回显请求数据包。由于每个数据包都需要处理和响应,这会耗尽设备的资源,导致设备无法为合法用户提供服务。

死亡 ping 攻击是指攻击者向设备发送超出设备处理能力范围的巨大 ping,从而导致设备崩溃或冻结。数据包在向目标设备传输时会分段,但在重组过程中会重新组合在一起。当数据包到达目标设备时,会出现缓冲区溢出情况,导致设备故障。死亡 ping 攻击只会对网络中的老旧设备构成危险。

在 Smurf 攻击中,攻击者传输的 ICMP 数据包具有假冒或伪造的 IP 地址。当网络中的设备回复时,每个回复都被发送到假冒的 IP 地址,目标设备将被大量 ICMP 数据包淹没。同样,这种攻击通常只会对老旧设备构成危险。

Fortinet 如何提供帮助

Fortinet FortiDDoS 可防止 DDoS 攻击滥用 ICMP,从而确保网络安全。FortiDDoS 会检查设备的行为,并标记异常的 ICMP 消息活动,以便阻止攻击。FortiDDoS 带有面板、保护配置文件、全局设置和易于使用的图形用户界面,使用更方便。 

为了节省 IT 团队的时间和精力,FortiDDoS 会尽可能减少检测到的误报数量。它还可以同时检查数十万个不同的数据方面,这使其成为防御 DDoS 攻击的更全面工具。此外,借助 FortiDDoS,您可以生成关于网络活动的详细报告和图表。

常见问题解答

ICMP 有哪些用途?

互联网控制消息协议 (ICMP) 用于报告错误和执行网络诊断。在错误报告过程中,当数据没有按预期到达时,ICMP 会将消息从接收器发送到发送器。在诊断过程中,ICMP 用于发送 ping 和路由跟踪使用的消息,以提供关于数据传输情况的信息。

ICMP 和 ping 一样吗?

ICMP 和 ping 是两个不同的事物,尽管它们是相关的。ICMP 是控制在设备之间如何发送消息的协议。ICMP 协议发送的回显请求和回显回复通常称为 ping。因此,虽然 ping 是由 ICMP 生成的,但它并不是 ICMP。

ICMP ping 的工作原理是什么?

ICMP ping 过程是一种测试方法,可确定网络中的两台设备是否可以相互连接。它还可用于检查网络中的数据包丢失和延迟情况。ping 命令向网络设备发送 ICMP 回显请求。网络设备则立即给予 ICMP 回显回复。然后,可以通过软件分析这些数据,以确定延迟以及数据是否在按预期传输。