首页/网络/网络排障速查/间歇丢包排查方法论

间歇丢包排查方法论

间歇性丢包不能靠一次 ping 定论:先固定现象边界(谁、在哪里、什么时段),再用长周期无损探测拿数据,最后按段夹逼定位。

网络排障速查网络更新于 2026-10-13

间歇丢包怎么查

间歇性丢包不能靠一次探测定论:一次十几个包的测试只能说明那一瞬间,而千分之几的丢包率就足以让吞吐明显下降、业务偶发卡顿。方法论的顺序是三步——先固定现象边界(哪些源地址、哪个机房、什么时段、是否与业务高峰同步),再用长周期探测拿到连续数据,最后把路径切成几段分别观测,夹逼出问题所在的那一段。

基本信息

场景偶发卡顿、随机超时、重传偶发
工具带时间戳的长跑探测、逐跳统计,配合抓包留证
平台Linux 与 macOS 用系统自带工具;Windows 用长 ping 与路径统计工具
原则先量化再定位,不用一次快照下结论
采样要求按秒记录并保留文件,采样时长以小时计

排查步骤

  • ① 现象边界:哪些源地址、哪个机房、是否与业务高峰同步
  • ② 把主观感受量化成指标:丢包率、重传数、长尾时延
  • ③ 分段观测:本机到网关、网关到出口、出口到对端分别长跑
  • ④ 与变更、发布、运营商事件的时间线对齐
  • ⑤ 抓包验证:用序号缺口锁定丢包发生在哪一段
  • ⑥ 反向复测:从对端向本端回测,确认是否单向

长周期采样

长周期采样
ping -D -n -i 1 <目标> > /tmp/longping.log 2>&1 &      # 每秒一包,带时间戳长跑
ping -D -n -i 1 <网关IP> > /tmp/longping-gw.log 2>&1 & # 同时测网关,用于分段对比
tail -f /tmp/longping.log | grep --line-buffered -E 'no answer|timeout'   # 实时看失败
grep -c 'no answer' /tmp/longping.log                   # 事后统计失败次数
grep 'no answer' /tmp/longping.log | head -20           # 看失败时刻是否集中
mtr -r -c 1000 -n <目标> > /tmp/mtr-long.log &          # 逐跳长跑,定位恶化起点
tcpdump -i any -nn -W 10 -C 10 -w /tmp/loss.pcap 'host <目标>' &   # 分卷抓包留证

丢包形态与指向

形态常见指向验证手段
集中在业务高峰链路拥塞或上联带宽不足把失败时刻与流量曲线叠加
随机且短促物理层误码、光衰、无线干扰查接口错误计数与重传统计
周期性出现定时任务、备份窗口、路由震荡与定时任务和备份计划对齐
只有个别源地址复现该来源所在链路或接入设备问题换源地址交叉测试,分段夹逼
只有单个方向丢包单向链路质量差异或路由不对称两端同时长跑并比对方向
按秒记录并保留文件,比现场回想「刚才好像丢了一下」有说服力得多。判定线也要现实:低比例丢包就足以让传输层吞吐腰斩,不要用「丢得不多」作为忽略的理由。
分段夹逼是效率关键:本机到网关、网关到出口、出口到对端三段同时观测,出问题的那一段会明显比其它段难看,避免把整条路径都当成怀疑对象。

易错点

  • 用十几个包的一次探测判定「网络正常」,漏掉比例很低的间歇丢包
  • 只在一台机器上测就下全网结论,忽略不同源地址走的路径可能不同
  • 采样时长不够,故障在小时级才复现,短测自然抓不到
  • 只看丢包计数不结合时间分布,无法区分拥塞、误码与周期性任务
  • 观测脚本不打时间戳,事后无法与业务日志和变更记录对齐

数据来源与参考

  • RFC 792:ICMP
  • Wireshark Wiki:丢包与时延分析方法

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌