从新加坡到美国(~2ms)的延迟值怎么会这么低?

网络工程 潜伏 rtt
2021-07-07 14:32:58

这是新加坡的 ping 输出:

64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=1.96 ms

新加坡到 8.8.8.8 = ~2ms

另一个 ping 输出:

64 bytes from 23.59.8.146: icmp_seq=81 ttl=44 time=66.1 ms

新加坡到 23.59.8.146 = ~66ms

现在我的问题是,即使两台服务器都位于美国(从https://ipinfo.io/找到),为什么第一台服务器的延迟/RTT 出奇地低?

2个回答

正如其他人指出的那样,谷歌 DNS 使用 IP 任播,它允许多个位置的多台服务器有效地共享一个 IP 地址。Google(与许多其他公司一样)在全球拥有许多响应 8.8.8.8 的服务器。

因此,当您 ping 该地址时,响应的服务器是离您最近的服务器,可能是您所在国家/地区的服务器。

请注意,地理定位服务(如 ipinfo)使用多种技术,包括注册信息。这一切都是估计。

IP 地理定位数据库本质上代表了地理定位公司对 IP 所在位置的猜测。它们通常基于 whois 注册中的地址,有时辅以地理定位公司自己的研究。对于最终用户 IP,它们通常准确到国家级别,但对于基础设施 IP,即使经常关闭。

当谈到基础设施时,IP 地址和物理位置之间通常几乎没有关系。例如,考虑欧洲和美国之间的点对点链接。尽管位于不同的大陆,但链路两端的接口可能具有相邻的 IP 地址,地理定位数据库提供商不会希望在其数据库中包含该级别的详细信息。

并且有些地址实际上同时存在于多个位置。路由基础设施实际上并不知道或关心给定地址块的所有路由是否最终将数据传送到同一个地方。一些服务运营商故意在一种称为“任播”的技术中利用这一点,他们在多个位置部署服务器,这些服务器都响应同一服务 IP* 上的请求,然后从所有位置通告 IP 块。这就是为什么您会看到来自世界各地的 8.8.8.8 的低 ping。

* 除了共享服务 IP,服务器可能至少有一个非共享 IP,用于管理和传出请求。