ICMP 工作原理
ICMP(Internet 控制消息协议)是一种网络层协议,主要用于在 IP 主机、路由器之间传递控制消息。它的主要作用如下:

错误报告
ICMP 协议为用户提供了一种简单易懂的错误报告机制。当发送设备发送的 IP 数据包在传输过程中出现错误时,接收设备会生成相应的 ICMP 错误报文,并将其返回给发送设备。发送设备根据 ICMP 报文中的错误类型和代码,可以确定发生错误的具体原因,从而采取相应的措施(如重新发送数据包等)。

诊断功能
ICMP 协议提供了一些诊断工具,如 Ping 和 Traceroute 命令。Ping 命令利用 ICMP 回显请求和回显应答报文来检测网络连通性。Traceroute 命令则利用 ICMP 超时报文来跟踪数据包从源主机到目的主机的路径。

控制消息
ICMP 协议还定义了一些控制消息,如重定向消息、时间超过消息等。这些消息用于通知源主机或路由器采取适当的动作,以提高网络性能。
ICMP 协议是 IP 协议的补充,它为 IP 协议提供了一些必要的功能支持。尽管 ICMP 报文不能直接传输用户数据,但它在网络故障诊断、路由选择等方面发挥着重要作用,是保证 IP 网络正常运行的重要协议。
ICMP 功能
响应请求
在日常应用中,ICMP(Internet 控制消息协议)最常用于响应请求和应答。例如,当一台主机向另一个节点发送 ICMP 报文时,如果中途没有被路由器丢弃、目标没有回应 ICMP 或发生传输失败等异常情况,则目标节点会返回对应的 ICMP 报文。通过分析这些 ICMP 报文的响应时间和路径信息,我们可以进一步确定主机与接收对象之间的网络距离和连通性。ICMP 响应请求和应答是网络诊断和故障排除的重要工具。
时间戳
ICMP 还定义了时间戳请求报文和时间戳应答报文,用于测试两台主机之间一次数据报来回传输所需的时间。发送方在发送时间戳请求报文时会填充原始时间戳,接收方收到后会填充接收时间戳,然后以 Type=14 的 ICMP 报文格式返回时间戳应答报文。发送方通过计算时间差,可以了解数据报在网络中的传输时间,从而评估网络性能。时间戳请求和应答是 ICMP 协议中一项重要的网络测量功能。
目标不可到达、源抑制和超时报文
ICMP 还定义了三种不同格式的报文:目标不可达报文、源抑制报文和超时报文。目标不可达报文在路由器或主机无法正常传递数据报时使用,通知发送方目标不可达的原因。源抑制报文则主要用于控制流量,当主机发送的流量过大时,接收方可以通过发送源抑制报文要求发送方减少数据流量。超时报文一般会在无连接网络或数据报长时间在网络中游荡而找不到目标等情况下出现,通知发送方数据传输超时。这些 ICMP 报文有助于网络故障诊断和流量控制。
ICMP 攻击与抵御方法
ICMP 攻击
ICMP(Internet 控制消息协议)是 TCP/IP 协议族中的一种网络层协议,用于在 IP 主机、路由器之间传递控制消息。ICMP 协议对于网络通信和故障排查非常重要,但其本身的特点也容易被攻击者用来攻击网络主机和路由器。例如,攻击者可以利用 ICMP 数据包尺寸不超过 64K 这一规定,发送超过规定尺寸的数据包,导致目标主机出现内存分配错误,进而引发 TCP/IP 堆栈崩溃甚至死机。这种利用 ICMP 协议漏洞进行攻击的行为被称为 ICMP 攻击。
抵御方法
为了避免 ICMP 攻击的发生,用户可以在日常网络管理中采取以下防范措施:
- 在路由器上对 ICMP 数据包进行带宽限制,将 ICMP 占用的带宽控制在一定范围内,从而有效降低对网络的影响。
- 在主机上设置 ICMP 数据包处理规则,过滤掉恶意的 ICMP 数据包。通过配置合理的规则,可以有效阻挡 ICMP 攻击。
选择合适防火墙,抵御攻击
除了在路由器和主机上采取防御措施外,选择合适的防火墙也是抵御 ICMP 攻击的关键。合适的防火墙应该具备以下功能:
- 状态监测功能,能够跟踪网络连接状态,检测异常连接行为。
- 检测数据包完整性功能,能够识别被篡改的数据包。
- 过滤规则控制功能,允许管理员自定义过滤规则,对 ICMP 数据包进行精细化控制。
通过有效的数据分析和过滤,防火墙可以防止未知的 ICMP 攻击发生。选择合适的防火墙后,网络管理员还需要配置合理的安全策略,对 ICMP 进行更细致的控制,从而充分保障网络的安全性。
ICMP 应用
ICMP(Internet 控制消息协议)是一种网络层协议,主要用于网络诊断和错误报告。ICMP 协议在许多网络管理命令中发挥着重要作用,其中最常见的是 ping 和 tracert 命令。

Ping 命令
Ping 命令用于测试网络连通性,它利用 ICMP 回送请求和回送应答报文来检查目标主机是否可达。当源主机发送 ICMP 回送请求报文时,目标主机会立即回送 ICMP 回送应答报文。如果源主机能够收到回送应答报文,则表明网络状态正常,可以与目标主机进行通信。

Tracert 命令
Tracert 命令主要用于跟踪数据包从源主机到目标主机所经过的路径,并显示每个路径节点的详细信息和响应时间。它通过发送 ICMP 回送请求报文并记录每个路由器的响应时间来实现路径跟踪。Tracert 命令可以帮助网络管理员诊断网络故障,确定网络延迟的原因,并优化网络路径。

其他网络管理工具应用
- 网络映射工具使用 ICMP 报文来探测网络拓扑结构
- 路由器使用 ICMP 报文来通知源主机网络故障或路由更改
- 网络监控工具使用 ICMP 报文来检测网络设备的可用性和响应时间
总之,ICMP 协议在网络管理和故障诊断中扮演着不可或缺的角色,为网络管理员提供了有效的网络诊断和维护工具。
亚马逊云科技分发网络与 ICMP 协议相比的优势

快速,全球覆盖
Amazon CloudFront 内容分发网络 (CDN) 是一个大规模的全球分布式网络,覆盖 47 个国家/地区的 90 多个城市。它拥有超过 310 个入网点,包括 300 多个边缘站点和 13 个区域边缘缓存。这种广泛的全球覆盖使 CloudFront 能够利用高度弹性的私有骨干网络,为最终用户提供极佳的性能和可用性。无论用户位于何处,CloudFront 都能通过就近的边缘站点快速响应请求,从而缩短内容传输距离,减少延迟,提高网站或应用程序的加载速度。CloudFront 的全球覆盖范围和分布式架构确保了内容分发的高效性和可靠性,为用户提供流畅的在线体验。

边缘站点安全性
Amazon CloudFront 是一种高度安全的内容分发网络 (CDN),能够提供网络和应用程序级别的保护。用户的流量和应用程序可以免费受益于各种内置的安全保护措施,例如 Amazon Shield Standard。Shield Standard 是一种托管服务,可以保护 CloudFront 分发的应用程序免受常见的网络和传输层 DDoS 攻击。它通过检测和缓解恶意流量,确保应用程序的高可用性和可靠性。除了 Shield Standard 之外,CloudFront 还提供了其他安全功能,如 SSL/TLS 加密、地理限制、Web 应用程序防火墙等,帮助用户构建安全可靠的在线服务。

与亚马逊云科技深度集成
Amazon CloudFront 与亚马逊云科技的其他服务深度集成,为用户提供了一站式的云服务体验。通过同一个控制台,用户可以轻松访问和管理亚马逊云科技的多项服务,如 Amazon S3、Amazon EC2 等。CloudFront 与 S3 的集成使得用户可以直接从 S3 存储桶分发静态和流式内容。与 EC2 的集成则允许用户从 EC2 实例分发动态内容。所有 CloudFront 的功能都可以通过软件控制台或亚马逊云科技管理控制台以编程方式进行控制和自动化。这种深度集成简化了云服务的管理和操作,提高了效率和灵活性,使用户能够充分利用亚马逊云科技生态系统的强大功能。
ICMP 的组成部分

ICMP 头部
包含 ICMP 消息类型、代码、校验和和标识符等字段,用于标识 ICMP 消息的类型和目的。

ICMP 类型和代码
ICMP 消息根据类型和代码字段的不同值,可分为不同的消息类型,如目标不可达(类型 3)、重定向(类型 5)等。

基于 ICMP 的工具
许多常用网络工具如 ping 和 traceroute 都是基于 ICMP 消息实现的。

ICMP 数据部分
包含目标 IP 地址、错误原因等信息,以及数字编码的错误代码,用于说明 ICMP 消息的具体内容。

ICMP 消息用途
ICMP 消息通常用于诊断和控制目的,或者在 IP 操作出错时生成,如 TTL 值为 0 时发送超时消息。

ICMP 在网络层
ICMP 是网络层协议,在 OSI 模型中属于第3层,在 TCP/IP 模型中属于第 2 层。
ICMP 与其他协议的区别

ICMP 与传输层协议的区别
ICMP 与传输层协议如 TCP 和 UDP 的主要区别在于,ICMP 通常不用于在系统之间交换数据,也不常被终端用户网络应用程序使用(除了一些诊断工具如 ping 和 traceroute)。ICMP 是一种网络层协议,在七层 OSI 模型中属于第三层协议,而在 TCP/IP 四层模型中属于第二层协议。相比之下,TCP 和 UDP 是传输层协议。此外,ICMP 数据包没有与之关联的 TCP 或 UDP 端口号,因为这些端口号与更高层的传输层相关联。

无连接与可靠性的区别
ICMP 是一种无连接协议,不保证消息传递,与面向连接的 TCP 协议形成对比,后者能保证可靠的、经过错误检查的数据传递。ICMP 消息通常比 TCP 数据包的大小更小。

用途的区别
ICMP 主要用于错误报告,如通知发送方目的地不可达、超时或分片问题。相比之下,TCP 通常用于 Web 浏览、电子邮件、远程登录和文件传输等应用程序。ICMP 和 TCP 经常一起使用,ICMP 有助于确定 TCP 传递失败的原因。防火墙和网络管理员还使用 ICMP 进行监控和检测未经授权的网络活动。
ICMP 的发展历史
互联网控制报文协议 (ICMP) 是一种辅助协议,最初由 DARPA 于 1981 年为 IPv4 开发。ICMP 被网络设备(如路由器)用于在与另一 IP 地址通信时发送错误消息和操作信息,表明指示成功或失败。与 TCP 和 UDP 等传输协议不同,ICMP 通常不用于在系统之间交换数据,也不常被终端用户网络应用程序使用(除了一些诊断工具如 ping 和 traceroute)。IPv4 的 ICMP 在 RFC 792 中定义,而 IPv6 使用单独的 ICMPv6,在 RFC 4443 中定义。ICMP 在网络通信中发挥着重要作用,为 IP 数据包传输提供支持和反馈。
欢迎加入亚马逊云科技培训中心
欢迎加入亚马逊云科技培训中心
-
快速上手训练营
-
账单设置与查看
-
动手实操
-
快速上手训练营
-
第一课:亚马逊云科技简介
本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。
亚马逊云科技技术讲师:李锦鸿第二课:存储与数据库服务
您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。
亚马逊云科技资深技术讲师:周一川第三课:安全、身份和访问管理
在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。
亚马逊云科技技术讲师:马仲凯 -
账单设置与查看
-
-
动手实操
-
快速注册账号 享用免费套餐
快速注册账号 享用免费套餐
-
1 进入注册页面
-
2 设置用户名及密码
-
3 填写企业信息
-
4 企业信息验证
-
5 完成手机验证
-
6 选择支持计划
-
1 进入注册页面
-
注:该链接中的内容显示语言 是与您的网页浏览器设置相一致的,您可以根据需要自行调整语言栏。 *图片点击可放大
-
2 设置用户名及密码
-
3 填写企业信息
-
*图片可点击放大
-
4 企业信息验证
-
*图片可点击放大
-
5 完成手机验证
-
6 选择支持计划