每天掌握一个网络协议----ICMP

ICMP(Internet Control Message Protocol)互联网控制消息协议是TCP/IP协议族中的一个重要协议,主要用于IP主机和路由器之间传递控制和错误消息

ICMP是网络层协议,主要用于网络问题诊断,检测网络是否可达并诊断错误原因

常见的pingtraceroute命令都依赖于ICMP协议实现

ICMP的工作原理

ICMP通过在IP数据包中封装控制消息,实现网络诊断和错误报告

ICMP实际上是一个差错报告协议,它不会尝试纠正错误,而是会将数据报文传输过程中遇到的问题报告给源设备

ICMP无法确定源设备到目的设备链路中哪个环节出现问题,但是它能够确定问题原因,通过问题原因协助运维人员定位网络链路中存在的问题

ICMP报文格式

每一个ICMP消息都包含引发这个ICMP消息的完整IP包头,ICMP报文作为IP数据包的数据部分封装在IP报文内部

ICMP报文中包含了三个固定字段,可以通过这三个字段确定链路中的错误类型

  • Type:ICMP消息的类型
  • Code:ICMP消息类型细分子项
  • Checksum:ICMP报文的校验和

ICMP报文格式

ICMP消息类型

|----------|-------|----------|
| ICMP报文类型 | 类型值 | 功能描述 |
| 差错报文 | 3 | 终点不可达 |
| 差错报文 | 5 | 重定向 |
| 差错报文 | 11 | 超时 |
| 差错报文 | 12 | 参数异常 |
| 询问报文 | 8/0 | 回送请求/应答 |
| 询问报文 | 13/14 | 时间戳请求/回答 |

ps:根据RFC 6633规定,类型4、10、9、15、16、17、18类型的报文均不再使用

ICMP的应用

PING命令工作原理

Ping是一个网络工具,用于测试网络连接是否可达,如:ping www.baidu.com来测试当前设备是否已经建立网络链接,是我们最常使用的命令之一;

Ping通过发送ICMP回显请求,并等待接收回显来工作

  1. 发送请求:当用户运行ping命令时,工具会创建一个ICMP回显请求数据包,并将其发送到指定的目标IP地址
  2. 接收应答:目标主机收到请求后,解析数据包并生成ICMP回显应答数据报文,返回给源设备
  3. 计算延时:源主机收到ICMP应答之后,计算从报文发送到接收应答所花费的时间,并显示给用户
  4. 统计信息:ping会统计发送和接收的报文数量,计算丢包率

ICMP的安全特性

为了防止ICMP消息的无线产生以及网络风暴,在一些特定场景下,ICMP不会产生差错报文

  • ICMP的差错报文不会再产生差错报文
  • 目的地址是广播地址或多播地址的IP数据报文
  • 不是IP分片的第一片
  • 作为链路层广播的数据包
  • 源地址不是单个主机的数据包,如零地址、环回地址、广播地址和多播地址

ICMP本身非常简单,也没有验证机制,因为它也经常被用于网络攻击

  • ICMP攻击

目前ICMP攻击的绝大部分都可以归类为拒绝服务攻击(Denial of Service,DOS),即ICMP泛洪:攻击者在短时间内发出海量的ICMP报文,使得局域网的网络资源被占满,从而无法为用户提供正常服务

  • 端口扫描攻击(针对连接的DOS攻击)

攻击者发送大量的端口扫描报文,交换机需要回应大量的ICMP目的地址不可达报文,这种攻击即占用了系统的资源,又能向攻击者提供系统当前开放的端口,进而针对端口展开更具针对性的攻击

ICMP攻击的防范方法

ICMP的防范可从减轻设备处理压力入手,目前主要可以通过ICMP报文限速、ICMP报文合法性检查、不响应不可达报文的方式来降低ICMP攻击的效果

  • 报文限速

ICMP报文限速包含了端口限速、VLAN限速和全局限速,同时也实现芯片的限速,通过多个维度避免ICMP泛洪的攻击

  • 合法性检查&丢弃不需要处理的报文

对于不合法的ICMP报文,如TTL为0、ICMP类型为15、16、17的报文,直接丢弃

  • 不响应不可达报文

设备收到不可达报文时,不对其进行响应,从而保护CPU资源

相关推荐
andxe8 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一9 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈9 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
中微极客11 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
猿的天空15 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_77715 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun31415915 小时前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
牛马工作号15 小时前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
牛马工作号15 小时前
Wi‑Fi 完全指南:从 802.11 协议到 Wi‑Fi 7、AC+AP 与 Mesh 工程组网
网络·网络协议·智能路由器
智慧光迅AINOPOL16 小时前
智慧工厂全光网怎么扛住AGV与强电磁?光电复合缆与工业级方案
网络·全光网解决方案·全光网·酒店全光解决方案·泛住宿全光网解决方案