惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
爱范儿
爱范儿
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
博客园_首页
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
V
Visual Studio Blog
Jina AI
Jina AI
博客园 - Franky
量子位
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
aimingoo的专栏
aimingoo的专栏
M
MIT News - Artificial intelligence

博客园 - 草木物语

Day2: Prompt Engineering 与结构化输出 - 草木物语 三招优化电脑瞬间变流畅 Hutool 的 HttpUtil.post() 方法在高并发场景下的线程安全问题 从技术大牛到管理新手:那些让你痛苦的转换期,终会成为你的铠甲 Git 提交 与 修正提交 AI的"半衰期"陷阱 越用AI我能力越差? AI时代的"认知差异陷阱" 教育在AI时代,得重新来过 AI都能写作业了,孩子还要不要学习? AI 时代,你的孩子要学会这些 java17 有什么好用的特性 vue2,vue3 父子组件交互 props,emit,slot vue3 ref()和reactive() 软件工程-第七章第七节 组织 软件工程-六 谁是解结的人 软件工程-软件工程层状模型(EHM) 软件工程-五 过程 软件工程-三 团队缺乏的不只是管理 软件工程-四 流于形式的沟通 Netty ChannelHandler的生命周期 Netty 客户端与服务端收发消息demo
Wireshark 解析抓包文件 123.pcapng
草木物语 · 2026-08-19 · via 博客园 - 草木物语

注: 本文由ai生成

Wireshark 离线解析 pcapng 实战:定位 TCP 握手延迟与服务端队列积压

一、版本下载(Windows10)

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 队列积压

三、关键配置(解决 RTT 字段为空、过滤不生效)

1. 开启 TCP 统计计算(必开)

编辑 → 首选项 → Protocols → TCP

✅ 勾选:Calculate TCP analysis statistics

重要:改完必须关闭 pcapng、重新打开,否则不生成 RTT 字段。

2. 新增「握手RTT」列

表头右键 → 列首编辑 → 新增自定义列

  • 名称:握手RTT(秒)
  • 类型:Custom
  • 表达式:tcp.analysis.initial_rtt

四、过滤语句(两套方案,适配所有情况)

方案一:精准过滤完整握手连接(正常情况用)

tcp.analysis.initial_rtt exists

作用:只展示三次握手完整成功、可统计握手RTT的连接。

方案二:兜底万能过滤(方案一无效时必用

tcp.flags.syn == 1 and tcp.flags.ack == 1

作用:筛选所有服务端 SYN+ACK 握手包,不依赖完整三次ACK,故障抓包必用。

查看RTT:选中报文 → TCP详情 → SEQ/ACK analysis → iRTT

五、为什么 tcp.analysis.initial_rtt exists 经常无效?

很多人踩坑,核心原因3条:

  1. 开启TCP统计后没重启加载抓包文件,旧报文不会二次计算字段
  2. 故障场景大量连接握手不完整(排队超时、重传、无第三次ACK),天然无 RTT 字段
  3. initial_rtt 是 Wireshark 二次计算字段,pcapng 原始文件不存在该数据

六、批量导出握手延迟数据(可直接用于AI分析)

使用便携版自带 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

七、延迟区间统计标准(可直接做Excel分析)

  • 正常网络区间:2~35ms(0.002~0.035s)
  • 服务排队区间:1s / 3s / 7s 阶梯延迟

判断结论:固定阶梯延迟 = 服务端 backlog 队列满、accept 积压,非网络丢包(网络丢包为 1/2/4/8s 指数退避)。

八、服务端最终验证命令

# 查看监听队列溢出次数
netstat -s | grep overflowed

# 查看当前监听队列状态
ss -lntp

九、实战总结

  1. 便携版只能离线解析,实时抓包必须安装版 Npcap 驱动
  2. RTT 字段为空 90% 是未重载抓包文件
  3. 故障抓包优先用 SYN+ACK 过滤,兼容性最强
  4. AI 无法直接读取 pcapng,必须导出文本统计后再分析