为什么 ping 的响应时间会不稳定?

网络工程 互联网
2022-02-21 00:49:31

我的互联网连接有问题,我想知道 ping 响应时间是否会受到互联网使用的影响。让我解释一下,当我打开我的电脑并且没有其他设备正在使用互联网连接时,我只做 ping www.google.com y 有下一个输出

$ ping www.google.com 
PING www.google.com (173.194.42.113): 48 data bytes
56 bytes from 173.194.42.113: icmp_seq=0 ttl=49 time=76.820 ms
56 bytes from 173.194.42.113: icmp_seq=1 ttl=49 time=73.923 ms
56 bytes from 173.194.42.113: icmp_seq=2 ttl=49 time=87.032 ms
56 bytes from 173.194.42.113: icmp_seq=3 ttl=49 time=75.011 ms
56 bytes from 173.194.42.113: icmp_seq=4 ttl=49 time=122.664 ms
56 bytes from 173.194.42.113: icmp_seq=5 ttl=49 time=76.388 ms
56 bytes from 173.194.42.113: icmp_seq=6 ttl=49 time=79.530 ms
56 bytes from 173.194.42.113: icmp_seq=7 ttl=49 time=78.308 ms

所以...

但是当我开始使用浏览器或邮件客户端或其他东西时,让我们看看.. 在浏览器中打开 youtube 时,ping 响应时间会突然改变

56 bytes from 173.194.42.113: icmp_seq=85 ttl=49 time=214.825 ms
56 bytes from 173.194.42.113: icmp_seq=86 ttl=49 time=932.497 ms
56 bytes from 173.194.42.113: icmp_seq=87 ttl=49 time=596.405 ms
56 bytes from 173.194.42.113: icmp_seq=88 ttl=49 time=299.450 ms
56 bytes from 173.194.42.113: icmp_seq=89 ttl=49 time=1628.341 ms
56 bytes from 173.194.42.113: icmp_seq=90 ttl=49 time=1440.310 ms
56 bytes from 173.194.42.113: icmp_seq=91 ttl=49 time=1219.659 ms
56 bytes from 173.194.42.113: icmp_seq=92 ttl=49 time=762.968 ms

而且一般来说,除了打开 youtube 之外,任何其他活动的互联网体验都会变得“更慢”,当 youtube 满载时,ping 时间再次变得正常(低于 100 毫秒)

这只是我的电脑,我的浏览器只是使用两个标签,youtube和其他一些随机网页只是为了测试,很明显,当其他主机连接到路由器并尝试访问互联网上的某个页面时,结果最差,我有播放 youtube 视频时达到 4000 毫秒的 ping。

所以我的问题......当使用互联网连接时,ping响应时间(到某些互联网站点)以这种方式改变是正常的吗?

2个回答

这通常与缓冲有关。通过缓冲区的延迟取决于该缓冲区的满载程度。

当流量很少时使用简单的缓冲区,缓冲区是空的。数据包快速通过。当流量超过传出接口可以处理的缓冲区时,缓冲区已满。当缓冲区已满时,它开始丢弃数据包,通常它会丢弃新到达的数据包,这种行为称为“尾部丢弃”。当发送方看到丢包时,它会稍微降低速度,然后发送方再次逐渐增加速度,直到再次看到丢包。

这样做的结果是,紧接在瓶颈之前的缓冲区几乎满了,而其他缓冲区几乎空了。我猜想导致您的问题的缓冲区位于流量从固定线路到无线的 ISP 端。

那么可以做些什么呢?ISP 原则上可以做几件事。

  • ISP 可以使缓冲区更小。
  • ISP 可以实现随机提前丢弃或显式拥塞通知等机制,以比“尾部丢弃”更不残酷的方式通知发送者拥塞。

在实践中,尽管他们的设备可能无法提供所需的选项,或者他们可能不愿意为您做出改变。

另一种选择是自己引入一个比连接到 ISP 稍慢的人工瓶颈。这意味着放弃一些带宽,并且只有在您的 ISP 的带宽是一致的情况下才能正常工作,但它可以提供一种控制缓冲的方法。

由于您 ping 您的路由器并且响应时间始终为 1 毫秒,因此您与互联网的连接是瓶颈。

当必须下载视频时,由于您的连接限制为1Mbit / s,因此只能逐个发送数据。您的网络无法在这段时间内接收到所有请求的数据。

在我家,我的室友往返时间很糟糕,或者在我下载文件时甚至无法 ping 任何服务器。

Upgrading your connection应该有助于解决这个问题。

另一种可能的解决方案是limit the amount of bandwidth that your browser is allowed to use. 但这会导致 Youtube 视频的等待时间更长。