ICMP 与网络诊断
ICMP(Internet Control Message Protocol)是 IP 协议的辅助协议,用于差错报告与网络诊断,封装在 IP 报文内(协议号 1)。
ICMP 报文类型
| Type | 名称 | 作用 |
|---|---|---|
| 0 | Echo Reply | ping 响应 |
| 3 | Destination Unreachable | 目的不可达(网络/主机/端口不可达) |
| 5 | Redirect | 重定向(通知更优路径) |
| 8 | Echo Request | ping 请求 |
| 11 | Time Exceeded | 超时(TTL 耗尽/分片重组超时) |
| 13/14 | Timestamp 请求/应答 | 时间测量(较少用) |
ping 原理与排错
工作流程
- 发送方构造 ICMP Echo Request(Type 8)
- 中间设备检查 IP 可达性、路由、TTL
- 目的主机收到后回复 Echo Reply(Type 0)
- 发送方根据 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 // 检查 ARPtracert 原理
- 利用 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_路由基础与静态路由