第44篇:网络抖动、接口偶发卡顿?抓包看懂TCP丢包重传真相

抓包实战系列第24篇

上周跟同事排查一个线上问题,折腾了俩小时,最后结论还是那句老话——“应该是网络抖了一下”。

说实话,听到这句话我血压都上来了。

网络抖动这四个字,已经成了运维圈最大的甩锅词汇。页面卡了?网络抖动。接口超时了?网络抖动。下载忽快忽慢?还是网络抖动。

巧了,什么都往网络抖动上推,那还要我们排查什么?

网络抖动只是现象,不是结论。

真实故障证据全在报文里藏着。今天不扯虚的,直接上手抓包,把TCP重传、重复ACK、零窗口这些标记掰开揉碎讲清楚,看完你也能精准定位故障点。


一、先泼盆冷水:你理解的"丢包"可能全是错的

先做个小测试,以下哪个是真正的丢包?

  • 数据包发出去了,接收方没收到
  • 数据包接收方收到了,但ACK确认包半路丢了
  • 数据包绕了个远路,比后面的包到得还晚
  • 抓包工具自己把包丢了,Wireshark啥都没抓到

答案是——全都是。

更扎心的是,这四种情况在Wireshark里可能都显示为TCP Retransmission,但故障原因和处理方式天差地别。

不懂区分,你连故障在哪一头都搞不清楚。


二、TCP重传不是BUG,是保命机制

TCP能成为互联网基石,靠的就是"丢了就补"的生存本能。但