protocol

ICMP 协议原理

·2 分钟阅读·757 字

Internet 控制报文协议,网络层附属协议,差错报告与网络探测

📋 目录

ICMP 协议原理

一、基础定位

ICMP 依附 IP 协议(协议号 1),属于网络层不独立封装链路头,报文封装在 IP 数据报的数据部分。

作用:差错报告 + 网络探测 + 控制通知,IP 本身无差错纠错能力,靠 ICMP 补全。

二、报文结构

IP首部 | ICMP首部(1B类型 + 1B代码 + 2B校验和 + 可变字段) | 原始IP报文前8字节

三、两大分类

1. ICMP 差错报告报文(被动触发,出错才发)

Type名称说明
3目的不可达Code0 网络不可达、Code1 主机不可达、Code3 端口不可达
4源站抑制路由器拥塞通知降速(已弃用)
5重定向告知主机存在更优路由
11超时TTL 耗尽(traceroute 原理)、分片重组超时

2. ICMP 查询报文(主动收发,一问一答)

Type名称说明
8/0回显请求/应答ping 核心,连通性+时延探测
13/14时间戳请求/应答时钟同步(已淘汰)

四、经典应用原理

ping 原理

  1. 源主机构造 ICMP Type8 请求,封装 IP 发出
  2. 目标收到后构造 ICMP Type0 应答原路返回
  3. 源计算往返 RTT、丢包率

traceroute 原理(TTL + ICMP 超时)

  1. 第1跳:IP 包 TTL=1,首台路由 TTL-1=0 → 丢弃,返回 ICMP Type11 超时报文
  2. 持续递增 TTL 直到抵达目标主机
  3. 目标返回端口不可达/echo 应答,追踪结束

关联文档 -../网络 — 网络基础

  • ../../linux/system/Linux — ping/traceroute 命令