Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

ICMP

ICMP(Internet Control Message Protocol)用于在 IP 网络中传递控制和错误信息,例如 Echo 请求/应答、目的不可达、超时等。排查 ping、traceroute、路径 MTU、路由不可达或主机/网络返回错误时,可以从 ICMP 入手。

不要把 ICMP 当成普通业务传输协议:它主要用于诊断和错误报告。也不要把“没有 ICMP 响应”直接等同于主机离线,防火墙、系统策略、设备限速或中间网络都可能影响 ICMP。

Wireshark 中看什么

目标重点字段或视图说明
判断消息类型icmp.typeicmp.codeEcho、不可达、超时等都由 type/code 区分。
分析 pingEcho request / Echo reply、Identifier、Sequence看请求与应答是否成对、序号是否连续、往返时间是否异常。
分析 tracerouteTime-to-live exceeded路由路径探测常依赖 TTL 过期返回。
查找不可达Destination unreachable继续看 code 判断网络、主机、端口或分片相关问题。
关联原始报文ICMP 错误中携带的原始 IP 头部和前部负载用于反查是哪条流量触发了错误。

常用显示过滤字段

text
icmp

只显示 ICMP 报文。

text
icmp.type == 8 || icmp.type == 0

查看 IPv4 ICMP Echo 请求和 Echo 应答,常用于 ping 分析。

text
icmp.type == 3

查看目的不可达消息。

text
icmp.type == 11

查看超时消息,常见于 traceroute 或 TTL 过期场景。

text
icmp.code == 4

在对应 ICMP 类型下查看特定 code。不同 type 下 code 含义不同,解读时要同时看 icmp.type

常见分析问题

ping 不通一定说明业务也不通吗?

不一定。ICMP 可能被禁用、限速或过滤,而 TCP/UDP 业务仍然可达;反过来,ping 通也不代表业务端口、认证或应用逻辑正常。

Destination unreachable 应该怎么看?

先看 icmp.typeicmp.code,再展开 ICMP 错误中携带的原始 IP 报文,确认是哪条通信触发了错误。不要只看一行摘要就判断根因。

traceroute 中的 ICMP 超时是不是故障?

不一定。traceroute 本来就利用 TTL 逐跳过期来发现路径。真正需要关注的是路径中断、异常跳变、持续丢失,或目标最终是否可达。

相关页面和外部参考

相关 Wireshark Wiki 页面

网络分析技术档案