Linux Sniffer诊断网络延迟的实用方法
一、核心思路与指标
二、快速定位流程
三、关键抓包命令与过滤表达式
四、典型现象与判读要点
| 现象 | 抓包判读要点 | 可能原因 | 建议动作 |
|---|---|---|---|
| 首包明显慢,后续正常 | DNS 查询-响应时延显著;TCP 三次握手正常 | DNS 解析慢/缓存未命中 | 优化 DNS(缓存/预取/HTTPDNS),检查上游 DNS 性能 |
| 握手后长时间无数据,偶发 retrans | 三次握手完成但长时间无应用数据;后续出现重传 | 应用处理慢/后端慢 | 服务端性能剖析(CPU/DB/锁/GC),缩短首包时间 |
| 建连慢或偶发失败 | SYN 重传、SYN-ACK 延迟大 | 网络拥塞/中间设备限速/ACL 过滤 | 抓 SYN/SYN-ACK 时间戳定位高时延跳;核查防火墙/限速策略 |
| 传输中时延抖动大 | dup ack、retransmission、TCP Window Full/Zero Window | 链路拥塞/窗口受限/接收端慢 | 扩容带宽、优化发送端速率/窗口;检查接收端处理与缓冲区 |
| 路径中间某跳高延迟/丢包 | traceroute 某跳开始 * 或高 RTT;抓包端到端 RTT 正常 | 运营商/设备链路问题 | 持续 mtr 监控;向运营商报障或更换路径/线路 |
| ping 正常但业务慢 | ICMP 可达且 RTT 小;TCP 应用响应慢 | 应用层瓶颈(如慢查询/序列化) | 服务端应用与依赖组件调优,结合抓包与日志定位热点 |
五、实践建议