ICMP协议

基本概念

基本定位

  • 所属层级网络层协议(虽然基于 IP 封装,但功能是辅助 IP 层,而非传输层)
  • 诞生背景 :IP 协议本身是不可靠、无连接的,丢包时无法通知上层原因,ICMP 就是为了弥补这个缺陷而设计的。

核心功能

  • 确认可达性验证 IP 报文是否成功送达目标地址 (比如 ping 命令就是基于 ICMP 的 Echo 请求/应答)。
  • 差错通知 :当 IP 报文被丢弃时,向源主机发送差错报文,告知丢包原因(比如目标不可达、超时、需要分片但 DF=1 等)。
  • 辅助 IP 层 :为 IP 协议提供控制、诊断、差错报告能力,不参与数据传输。

关键细节

  • 依赖关系 :ICMP 报文封装在 IP 数据报中传输,所以它是基于 IP 协议工作的。
  • 层级归属 :因为它是为 IP 层服务的控制协议,而非为应用层提供端到端传输,所以归类为网络层,而非传输层。

总结

ICMP 是 IPv4 网络层的控制与诊断协议 ,核心作用是报告 IP 传输的可达性与丢包原因 (ICMP允许距离事故发生地最近的主机返回应答),弥补了 IP 协议不可靠的缺陷,是 pingtraceroute 等网络诊断工具的底层基础。

ICMP报文格式

ICMP 报文封装在 IP 数据报 中,整体分为 首部(固定 8 字节)数据部分

报文整体结构

字段 长度(字节) 说明
类型(Type) 1 定义报文功能(如 Echo 请求、目标不可达等)
代码(Code) 1 同一类型下的细分原因(如目标不可达分网络不可达/主机不可达)
校验和(Checksum) 2 对整个 ICMP 报文做差错校验
内容(可变) 4 随类型不同而变化(如 Echo 报文里是标识符+序列号)
数据部分 可变 差错报文会携带出错 IP 数据报的首部 + 前 8 字节数据

关键字段详解
(1)类型(Type)

常见类型值:

  • 0:Echo 应答(ping 响应)
  • 8:Echo 请求(ping 探测)
  • 3:目标不可达
  • 11:超时(TTL 耗尽)
  • 5:重定向

(2)代码(Code)

对类型的进一步细分,例如:

  • 类型 3(目标不可达):
    • 0:网络不可达
    • 1:主机不可达
    • 2:协议不可达
    • 3:端口不可达
    • 4:需要分片但 DF=1

(3)校验和(Checksum)

  • 覆盖整个 ICMP 报文(首部 + 数据)
  • 用于检测传输过程中的比特错误

两种典型报文格式

(1)Echo 请求/应答(ping 用)

  • 类型:请求为 8,应答为 0
  • 代码:固定为 0
  • 数据:通常填充任意字节(如 ASCII 字符)

(2)目标不可达/超时等差错报文

  • 数据部分:携带触发差错的原始 IP 数据报首部 + 前 8 字节,方便源端定位是哪个报文出了问题
相关推荐
果丁智能3 小时前
智能锁赋能网约房民宿数字化管控:身份核验+远程授权,筑牢安全防线、降本增效
网络·数据库·人工智能·安全·智能家居
杨浦老苏3 小时前
家庭实验室监控仪表盘HomeLab-Monitor
运维·docker·监控·群晖
wp123_14 小时前
射频前端无源器件观察:Coilcraft WBC1-1TLC vs TONEVEE WBT1-1CT 国产与进口巴伦变压器的技术博弈
网络
回忆2012初秋4 小时前
【Nginx】原理、配置与运维实战(2)
运维·nginx·策略模式
Urbano5 小时前
工装外套全制作流程、工序痛点及自动化设备升级方案
运维·自动化
映翰通朱工5 小时前
工业4G网关无公网IP远程运维实战(内网终端异地访问方案)
运维·服务器·网络·安全·智能路由器
天南散修5 小时前
MT7916 BA流程
网络·驱动开发·wifi·802.11
洪晓露5 小时前
将 rke2 集群证书延长至 10 年
运维·服务器·数据库
Yang96115 小时前
多功能一体化,成都鼎讯 LDMN-JM1 满足石油煤矿设备检定与训练需求
网络·能源
谢平康6 小时前
解决用 rm 报bash: /usr/bin/rm: Argument list too long错
linux·运维·运维开发