











注: 本文由ai生成
Wireshark 离线解析 pcapng 实战:定位 TCP 握手延迟与服务端队列积压
1. 安装版(推荐日常使用)
自带 Npcap 驱动,可抓实时流量 + 解析抓包文件
https://2.na.dl.wireshark.org/win64/Wireshark-4.6.8-x64.exe
2. 便携版(本次实操使用)
绿色免安装、无 Npcap、只能离线分析 pcapng,不能实时抓包
https://2.na.dl.wireshark.org/win64/WiresharkPortable64_4.6.8.paf.exe
建议:二选一安装,不要同时装,避免驱动冲突。
业务偶发连接建立慢,部分 TCP 握手延迟 1~7s。通过 123.pcapng 离线分析,区分:网络延迟 / 服务端 backlog 队列积压。
编辑 → 首选项 → Protocols → TCP
✅ 勾选:Calculate TCP analysis statistics
重要:改完必须关闭 pcapng、重新打开,否则不生成 RTT 字段。
表头右键 → 列首编辑 → 新增自定义列
tcp.analysis.initial_rtttcp.analysis.initial_rtt exists
作用:只展示三次握手完整成功、可统计握手RTT的连接。
tcp.flags.syn == 1 and tcp.flags.ack == 1
作用:筛选所有服务端 SYN+ACK 握手包,不依赖完整三次ACK,故障抓包必用。
查看RTT:选中报文 → TCP详情 → SEQ/ACK analysis → iRTT
很多人踩坑,核心原因3条:
使用便携版自带 tshark(必须加 -2 双遍解析参数)
# 导出所有正常握手 RTT 数据
tshark -2 -r 123.pcapng -Y "tcp.analysis.initial_rtt exists" -T fields -e tcp.stream -e ip.src -e ip.dst -e tcp.dstport -e tcp.analysis.initial_rtt > rtt.txt
# 导出 SYN 重传数据(判断队列积压核心证据)
tshark -r 123.pcapng -Y "tcp.flags.syn==1 and tcp.retransmission==1" -T fields -e frame.time_delta_displayed -e ip.src -e ip.dst > syn_retx.txt
判断结论:固定阶梯延迟 = 服务端 backlog 队列满、accept 积压,非网络丢包(网络丢包为 1/2/4/8s 指数退避)。
# 查看监听队列溢出次数
netstat -s | grep overflowed
# 查看当前监听队列状态
ss -lntp
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。