为什么用显示过滤器
抓到的包往往成千上万,用显示过滤器能直接筛出异常:重传、乱序、重复确认、零窗口、重置,以及某一条具体的连接。先把出问题的那条流找到,再看它到底出了什么问题,比逐包翻要快得多。
从流开始排查
常见顺序是:先按会话统计找出最差的那条流,再用流编号把范围锁死,最后在锁定的范围内叠加异常过滤器。这样既能看清上下文,也不会在无关流量上浪费时间。
基本信息
| 常用过滤器 | 重传、乱序、重复确认、零窗口、重置,以及按流编号筛选 |
|---|---|
| 前提条件 | 分析类过滤器需要抓包文件带有分析信息,通常默认开启 |
| 配套面板 | 会话统计可按吞吐与丢包排序 |
| 习惯建议 | 先锁定流编号,再叠加异常条件 |
典型使用场景
- 排查偶发超时:看是否存在重传与零窗口
- 定位卡顿:按包间隔筛出停顿点
- 分析单条连接:用流编号把范围锁定
- 对比两端抓包:确认丢包发生在哪一段链路
过滤器速查
过滤器速查
tcp.analysis.retransmission # 重传段,丢包的证据
tcp.analysis.out_of_order # 乱序段,链路重排
tcp.analysis.duplicate_ack # 重复确认,缺口的信号
tcp.analysis.zero_window # 零窗口,接收端处理不过来
tcp.flags.reset == 1 # 重置
tcp.stream eq 5 # 只看第 5 条流
tcp.time_delta > 0.5 # 间隔超过 500 毫秒的包,用于定位停顿过滤器与用途
| 过滤器 | 筛出什么 | 用途 |
|---|---|---|
| tcp.analysis.retransmission | 重传段 | 丢包证据 |
| tcp.analysis.out_of_order | 乱序段 | 链路重排 |
| tcp.analysis.duplicate_ack | 重复确认 | 缺口信号 |
| tcp.analysis.zero_window | 零窗口 | 接收端瓶颈 |
| tcp.flags.reset == 1 | 重置 | 连接被拒或被重置 |
| tcp.stream eq 5 | 第 5 条流 | 跟随单条连接 |
| tcp.time_delta > 0.5 | 间隔较大的包 | 停顿定位 |
会话统计面板能一次看到每条流的吞吐与丢包排名,先找最差的那条,比凭感觉挑包高效得多。
分析类过滤器只在包含分析信息的抓包文件上有效:若抓包时关闭了相关选项,或边抓边看还没完成分析,筛选结果会不完整,容易得出「链路很干净」的错误结论。
组合排查更有效:先锁定某条流,再在其中叠加重传与重复确认条件,可以快速看出这条连接是偶尔丢包还是持续异常。