运维群里最常见的截图之一:ping 结果丢包 20%,一群人开始讨论换机房。

先别急。有一半的「丢包」,其实不是网络丢包。

ICMP 是最容易被区别对待的协议

Ping 走的是 ICMP。这个协议在很多网络设备上优先级最低,路由器忙的时候先丢它,云厂商也常对 ICMP 做限速。

所以会出现一种典型现象:丢包 20%,但延迟很稳,网站打开也正常。这不是链路坏,是探测包被针对了。

用 TCP 测一次就能分清楚

Ping 测的是 ICMP 往返,TCP 测速测的是三次握手能不能完成。

如果 Ping 丢 20%,TCP 建连成功率 100%,那基本可以判定:ICMP 被限速,业务没受影响。

反过来,TCP 也大量失败,那才是真丢包,该查线路了。

真丢包长什么样

延迟跟着丢包一起涨,忽高忽低,TCP 建连时间从 30ms 跳到 300ms,甚至超时。

这种通常是跨网互联、国际出口拥塞,或者中间某一跳设备过载。用路由追踪能看出是哪一跳开始变差。

看丢包率的方法

单次 ping 几十个包,丢两三个说明不了什么。至少发 100 个,看长期比例。丢包率 1% 以内可以忽略,3% 以上会影响 TCP 吞吐,10% 以上基本能感觉到卡。

还要看分布:随机丢和连续丢是两回事。连续丢十几个包,说明链路有周期性中断,比均匀丢包严重得多。

移动网络别较真

4G、5G 下丢包 5% 很常见,跟基站切换、信号有关。移动网络上的 Ping 数据只能当参考,不能作为判断服务器好坏的依据。

想确认业务是否正常,用 TCP 或网站测速更靠谱。PING 测速入口在 PING 测速,多节点各跑一次,比本地 ping 有说服力。