很多人第一次接触ping命令,基本都是打游戏的时候,画面右下角跳出一个数字,几十毫秒就觉得网络没问题,要是跳到几百毫秒,就会直接吐槽运营商。这个工具实际检测的内容很明确:你的设备发出一个小型数据包,传到目标服务器,服务器收到之后再回传数据包,这一来一回耗费的时间,就叫往返延迟,单位是毫秒,ping值就是这个数值。
命令执行后的输出内容,一般类似这样:来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=64。其中“时间=1ms”就是单次测出的ping值。Windows系统默认一次性发送四个数据包,执行结束后会输出统计信息,包含最短、最长、平均三组延迟数字。平均数值参考价值最高,但如果最短值和最长值差距很大,就代表网络波动明显,就算平均值看着正常,实际使用时网络也会断断续续。Linux和macOS平台的ping不会自动停止,会持续发包,需要按下Ctrl+C终止之后才会输出统计结果,除了min/avg/max,还附带mdev,这个数值代表网络抖动,数字越小网络越稳定。

想要读懂ping返回的数值,需要先清楚不同区间代表的网络质量。在局域网内ping路由器,1毫秒以内属于正常现象,偶尔浮动到2至3毫秒也不用紧张。和同城同运营商服务器通信,延迟大多落在10到30毫秒。国内跨省份,走骨干网络的情况下,30至80毫秒都属于正常区间,北方连接南方,或是电信跨联通线路,延迟还会再高一些。像日本、韩国、新加坡这类亚洲邻近国家,受物理距离限制,50到120毫秒比较普遍。访问美国西海岸站点,优化线路可以把延迟控制在150毫秒左右,普通国际出口线路,200到300毫秒也很常见。卫星网络的延迟起步就在500毫秒,用来玩网络游戏基本不现实。
但ping值并不是唯一评判网络好坏的指标,甚至算不上最重要的一项。丢包率对使用体验的影响往往比延迟更大。四个数据包丢失一个,丢包率就是25%,就算剩下三个包延迟都只有30毫秒,游戏里依旧会出现人物瞬移,视频会议也会频繁卡顿断连。抖动也是同理,平均延迟50毫秒,但每次测量在20到200毫秒之间来回跳动,体验会远差于稳定保持80毫秒的网络。查看ping结果的时候,不能只盯着平均延迟,丢包数据以及最大最小延迟差值,都需要一并留意。
还有一个经常被误解的知识点:ping低不等于网速快。ping测量的是延迟,和带宽是两个概念。延迟低代表网络响应速度快,带宽大代表单位时间能够传输更多数据。网络游戏更看重延迟,下载大容量文件依赖带宽,观看直播则两项指标都有要求。一条延迟10毫秒、带宽仅10Mbps的线路,对比延迟80毫秒、带宽500Mbps的线路,哪一条更好用,取决于你当下要做什么操作。
部分服务器无法ping通,不代表服务器已经宕机。大量机房和云服务商,会在防火墙直接拦截ICMP协议,以此防范扫描和网络攻击。这种场景下ping命令提示请求超时,但网站依旧可以正常打开,SSH连接也能建立,服务本身运行正常。想要测试这类服务器的延迟,可以使用TCP ping工具,或者直接查看浏览器开发者工具里网络请求耗时,这个数据更贴近真实访问体验。
如果ping值偏高,可以借助tracert或者mtr工具,定位路由链路上哪一跳节点造成延迟上涨。有时候问题出在自家路由器或者无线Wi-Fi,切换有线连接之后ping值就能明显下降。有些情况是运营商之间互联节点拥堵,晚高峰的网络表现会明显比凌晨差。还有一种情况,目标服务器处理ICMP报文的优先级很低,正常业务请求响应速度正常,只是不会优先回复ping数据包。先区分清楚故障类型,再判断是否需要进一步排查。