ping 结果为何差异这么大?

ping 结果为何差异这么大?

我仍在处理我的另一个问题这里在执行此操作的同时,我需要能够测量连接的质量。我发现测量结果非常不可靠(尽管测量了几分钟并取了平均值),然后我尝试同时运行两个 ping 命令,两个命令都指向我的本地路由器。一个显示延迟 2-4 毫秒,第二个显示延迟 40-60 毫秒。这怎么可能呢?

不同的 ping

更新:几分钟后,相同的 ping 命令(我在写这个问题时没有停止它们)切换了它们的角色。

在此处输入图片描述

答案1

Wi-Fi 上 ping 时间变化较大的最常见原因实际上不是干扰(包括繁忙的 RF 介质),而是 802.11 省电模式。

无线客户端通过在数据包之间(或数据包突发之间)休眠其无线电接收器来节省电量。一旦客户端使其接收器休眠,它就不会再次唤醒它,直到它有另一个数据包要发送,或者至少直到 AP 即将发送下一个信标帧(有时客户端会休眠超过一个信标间隔)。大多数 AP 默认每 100 Kiµsec(100 Kibi(nary)微秒 = 102400 µsec = 102.4 ms = 略低于每秒 10 个信标),因此喜欢在当前信标间隔的剩余时间内处于睡眠状态的客户端将平均为任何每秒一次的 ping 增加 51.2 ms 的延迟。

最重要的是,客户端通常会在数据包传输或接收之后短暂地保持其接收器处于唤醒状态,以便查看它是否处于突发的中间,从而值得让接收器保持唤醒。

我认为,如果我们深入研究您的 AP 的信标间隔和您的客户端的 802.11 省电策略,就可以通过不同的每秒一次的 ping 如何恰好与您的网络的信标时间一致来解释您的 ping 时间差异。例如,也许一个窗口中的 ping 恰好对齐,使得 ping 请求在信标之前几毫秒发出,因此客户端在 2-3 毫秒后醒来以进行回复;而另一个窗口的 ping 请求在信标之后立即发出,因此当 ping 回复到达 AP 时客户端已经处于睡眠状态,因此 AP 必须将其排队以供该客户端下次唤醒,这可能是一两个信标之后。

有两种简单的方法可以测试这个理论。其中任何一种都可以:

  • 将 ping 间隔降低到十分之一秒,而不是默认的一整秒,这样你就可以在每个信标间隔内进行 ping。这将使大多数接收器始终保持清醒。

    ping -i 0.1 192.168.0.1

  • 调整 802.11 驱动程序的高级属性以禁用 802.11 省电模式。

相关内容