TCP 流分析82 条

TCP 流编号管理

Wireshark 给每条 5 元组会话编号(tcp.stream);结合 Conversations 列表与流编号,可以在"连接层面"理解抓包构成。

流编号是什么

Wireshark 会给每条由五元组标识的会话分配一个编号 tcp.stream,用它可以把某条连接的报文单独筛出来分析。配合会话统计列表,可以按包数或字节数排序快速找出异常会话,再回到具体会话里逐包查看。

基本信息

适用工具Wireshark 3.x / 4.x
字段tcp.stream
配套入口Statistics → Conversations
编号生成按文件解析顺序分配
注意不同抓包文件之间的编号不可比较

典型使用场景

  • 把会话统计里发现的异常连接单独筛出来细看
  • 跟踪一条长连接的完整生命周期
  • 统计某条连接的报文数量与字节数
  • 对比同一业务不同会话的行为差异
  • 把单条会话导出为独立文件交给他人

操作方式

操作方式
Statistics → Conversations → 按包数或字节排序   # 找异常会话
点击会话右键 → Apply as Filter → Selected    # 筛出该会话
tcp.stream == 3                               # 手工指定流编号
tcp.stream == 3 && tcp.analysis.flags         # 只看该会话的异常事件

观察项与用途

观察项含义用途
包数或字节数最高的会话流量集中确认是否为业务主干
会话数量异常多短连接频繁核对连接复用策略
会话时长很短连接反复重建检查保活与超时设置
同一地址对多条会话端口复用长周期分析需合并观察
流编号按文件解析顺序生成,两份文件之间的编号没有可比性,不要跨文件引用。
频繁端口复用的环境下会话数量会偏多,这属于正常现象。

补充要点

  • 会话统计与端点统计配合使用:先找地址再看该地址下的具体会话
  • 把会话列表按字节排序能快速发现大流量传输,按包数排序更容易发现小包风暴
  • 导出的单会话文件适合作为证据附件,体积小且聚焦
  • 分析长连接时把会话编号记录下来,便于后续复核
同一会话在不同抓包文件里编号不同,跨文件比对要用五元组而不是编号。

易错点

  • 跨文件引用流编号:同一会话在两份文件里的编号完全不同,对照会得错误结论
  • 只看会话数量不看分布,短连接与长连接的排查方向完全不同
  • 按连接统计吞吐却当成单请求耗时,忽略一条连接上承载多个请求的情况

数据来源与参考

  • Wireshark User's Guide(TCP 流)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌