地球两端之间的网络延迟

网络工程 网络 潜伏
2021-07-18 15:39:38

这只是出于好奇。

当我 ping 诸如 bbc.co.uk 和 google.com(在加利福尼亚州)之类的域时,我得到大约 5 毫秒的延迟,如下所示:

64 bytes from xx: icmp_seq=0 ttl=55 time=2.940 ms
64 bytes from xx: icmp_seq=1 ttl=55 time=3.785 ms
64 bytes from xx: icmp_seq=2 ttl=55 time=6.299 ms
64 bytes from xx: icmp_seq=3 ttl=55 time=4.065 ms
64 bytes from xx: icmp_seq=4 ttl=55 time=4.231 ms

考虑到地理距离,我希望延迟至少为 50 毫秒。幕后发生了什么?也是通过跨洋光纤传输的流量吗?

4个回答
  • 谷歌尤其在全球使用分布式数据中心。它们在不同的地方公布相同的 IP 网络,并且由于路由协议的工作方式,您可以到达最近的一个。这称为任播

  • bbc.co.uk 指向一个属于 Fastly, Inc 的 IP 地址,这是一个内容交付网络,该网络在世界各地(包括亚洲)都有存在点,但我不知道他们是否使用相同的技术。
    (从法国我有大约 60 毫秒到 bbc.co.uk (151.101.192.81))

但是,由于您看到的延迟极低,我敢打赌您没有联系实际服务器,但这是一个响应您代理

绕地球一半的电缆的最短延迟为 100 毫秒,往返时间为 200 毫秒(20,000 公里距离/200,000 公里/秒信号速度)——这是物理限制。[1]

实际上,链接并不像乌鸦飞行(根本),并且中间有额外的活动组件,增加了延迟 - 更现实的数字是 150 或更多的单向。

任何具有较低延迟或 ping 时间的东西都离您更近。正如 Ron 和 JFL 指出的那样,大型服务提供商使用具有特定位置的 DNS 解析或任播的全球分布式基础设施将您连接到附近的服务器。

[1] 唯一比近地表光纤更快的选择是直接穿过地球的电缆(以目前的技术完全不可能)或使用光速接近 300,000 公里/秒的低地球轨道卫星网络(如 Starlink一种在今天看来几乎可行的方法)。从理论上讲,地球上的无线网络可能比卫星网络更快,但成本过高。

主要域在世界各地都有服务器,并设置了 DNS,以便您获得离您最近的 IP 地址。

您可以通过 ping 特定主机来避免这种情况。例如,Debian (GNU/Linux) 项目有一个世界各国的镜像列表其中大多数是特定主机,无论您身在何处,它们都会查找相同的 IP。 尤其是大学软件镜像几乎从不支持内容交付代理网络。

例如,mirror.csclub.uwaterloo.ca位于加拿大安大略省滑铁卢市,并且会响应 ping 请求。现在(清晨)从加拿大新罕布什尔州哈利法克斯获得了大约 37 毫秒的 ping 时间

澳大利亚的 mirror.aarnet.edu.au 可能是离我最远的地方之一;整个澳大利亚在网络方面与世界其他大部分地区相去甚远。(尽管东南亚比大多数地区更接近)我的 ping 时间是~295ms

是的,围绕地球圆周的距离造成的光速延迟是其中的主要部分,以及跳跃的路由延迟。(请记住,它是玻璃纤维中的光速,而不是真空中的光速。光纤纤芯的折射率通常约为 1.3 到 1.4,因此光速为c/1.4。(它的折射率必须高于包层产生全内反射,这是光纤的全部意义。)因此,长期使用的现代光纤确实试图将其折射率保持在尽可能低的水平。


使用traceroutetracepath找出数据包采用的网络路径。

你似乎在做两个基本假设

  • 域名将始终映射到相同的 IP 地址。
  • IP 地址将始终路由到同一台服务器。

这些假设都不是绝对正确的。DNS 服务器可以返回不同的结果,IP 地址可以根据客户端的位置路由到不同的服务器。

正如您所说,到远程服务器的往返时间有多短是有物理限制的,那么不可避免的结论是,如果您看到对您认为是远程服务器的 ping 时间很短,那就是该服务器没有您那么远认为这是。

主要站点的运营商在性能和成本的某种组合的推动下,投入大量精力优化他们为最终用户流量提供服务的位置。他们可能会在内部执行此操作,可能会使用第三方内容分发网络的服务,或者可能会使用这两种策略的某种组合。