首页/网络/网络排障速查/序号缺口定位丢包段
本包目录(235 条)

序号缺口定位丢包段

抓包后把 TCP 序号与长度抽出来按序排列,缺口就是丢包点;两端对照即可判断丢在方向上哪一段。

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

提取序号找缺口

提取序号找缺口
tcpdump -nn -i eth0 -s 96 -w /tmp/seq.pcap 'host 10.0.0.5 and tcp port 443'
# 提取方向、序号、长度:
tshark -r /tmp/seq.pcap -T fields -e frame.number -e ip.src -e tcp.seq -e tcp.len | head -40
# 只看某一方向的连续数据帧:
tshark -r /tmp/seq.pcap -Y 'ip.src == 10.0.0.5 && tcp.len > 0' -T fields -e frame.number -e tcp.seq -e tcp.len | sort -k2 -n | head
原理同一方向数据帧的 seq 应连续递增(next_seq = seq + len)
缺口下一条 seq > 上一条 seq+len 即为空洞,中间那段没到
配合接收端看到的缺口 + 发送端无缺口 = 丢在路径中
有重传的情况下缺口会被补上:找的是『首次出现缺口的位置』,把首批出现空洞的帧号与两端抓包时间对齐,就能定位到具体段。

易错点

  • 按抓包文件里的顺序(而非 seq)判断连续性:乱序会让结论完全错
  • 忽略窗口/重传导致的反推错误:必须结合 tcp.len 计算 next_seq

数据来源与参考

  • RFC 9293:TCP 序号与确认
  • Wireshark 文档:TCP 序号分析

相关工具

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