![为什么服务器距离越远,网络速度测试就越慢?](https://linux22.com/image/1369557/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B7%9D%E7%A6%BB%E8%B6%8A%E8%BF%9C%EF%BC%8C%E7%BD%91%E7%BB%9C%E9%80%9F%E5%BA%A6%E6%B5%8B%E8%AF%95%E5%B0%B1%E8%B6%8A%E6%85%A2%EF%BC%9F.png)
运行网络速度测试(如 speedtest.net)时,为什么距离较远的服务器会因为距离较远而导致速度较慢?
我认为数据包要经过更多的“跳跃”,并且第一个数据包比更近的服务器需要更长的时间才能到达,但是一旦第一个数据包到达并且“流”建立,它的流动速度不应该和附近的服务器一样快吗?
我把这个比喻成水(也许是错误的)——
我拿着两杯水,其中一杯倒进一根吸管,两秒钟后从另一端倒出。第二杯水则倒进三根吸管组成的路径,六秒钟后从另一端倒出。但现在两根吸管都已饱和,它们的倒水速度难道不应该一样吗?
为什么距离较远的服务器会导致带宽测试速度变慢?延迟响应变长是可以理解的,因为它是数量。然而,带宽速度测试是速度,因此,除非是跳数越多导致数据包丢失/错误路由的机会越多,否则我不明白为什么它会变慢。
答案1
Tcp 要求对每个数据包进行确认。有一个窗口大小,允许一些重新排序和延迟,但这是有限的。一旦计算机发送了那么多数据,它就必须等待确认,因此最大吞吐量受延迟限制,如 Wikipedia 页面上所示:http://en.m.wikipedia.org/wiki/TCP_tuning#TCP_speed_limits