ICMP 与网络诊断

ICMP(Internet Control Message Protocol)是 IP 协议的辅助协议,用于差错报告与网络诊断,封装在 IP 报文内(协议号 1)。

ICMP 报文类型

Type名称作用
0Echo Replyping 响应
3Destination Unreachable目的不可达(网络/主机/端口不可达)
5Redirect重定向(通知更优路径)
8Echo Requestping 请求
11Time Exceeded超时(TTL 耗尽/分片重组超时)
13/14Timestamp 请求/应答时间测量(较少用)

ping 原理与排错

工作流程

  1. 发送方构造 ICMP Echo Request(Type 8)
  2. 中间设备检查 IP 可达性、路由、TTL
  3. 目的主机收到后回复 Echo Reply(Type 0)
  4. 发送方根据 RTT 判断网络质量

ping 不通的排查思路

现象可能原因
Request timed out目的不通、被防火墙丢弃、路由缺失
Destination host unreachable本地无路由/网关不可达
Destination net unreachable路由器无目的网段路由
TTL expired in transit环路或跳数过多
高延迟/丢包链路拥塞、无线干扰、带宽不足

通用诊断命令

ping 192.168.1.1                    // 基本连通性
ping -c 100 192.168.1.1             // 连续测试丢包率(Linux)
ping 192.168.1.1 -t                 // 持续 ping(Windows)
tracert 8.8.8.8                     // Windows 跟踪路由
traceroute 8.8.8.8                  // Linux/网络设备

华为设备:

<Huawei> ping -c 100 192.168.1.1
<Huawei> tracert 8.8.8.8
<Huawei> display ip routing-table    // 检查路由
<Huawei> display arp                 // 检查 ARP

tracert 原理

  • 利用 TTL 逐跳递增:TTL=1 的报文在第一个路由器超时,回复 ICMP Time Exceeded
  • 依次 TTL=2、3… 直至到达目的(目的回复 Echo Reply 或端口不可达)
  • 可发现路径上的环路、黑洞与高延迟节点

ICMPv6

  • ICMPv6 承担更多职责:邻居发现(NS/NA/RS/RA)、路径 MTU 探测
  • 替代 IPv4 中的 ARP、IGMP、部分 ICMP 功能

抓包诊断

  • Wireshark 过滤:icmp、icmp.type == 3
  • 关注 RTT 波动:ping -f 可测试 MTU(不分片标志)
  • 结合 display ip routing-table 与 display arp 定位故障点

💡 排错口诀:先本机(IP/网关)→ 再链路(ping 网关)→ 再路由(tracert)→ 再安全(ACL/防火墙)。

🔗 相关笔记:02.01_网络协议详解 03.04_路由基础与静态路由