本篇大部分内容参考自 【网络知识】到地球另一面,需要多少跳路由?[1]
地球上相距最远的两个点---对趾点
地理学上有个概念称为对跖(zhí)点(也叫对趾点[2]或对映体 Antipodes),地球直径的两个端点互为对跖点。即从某个位置 A 连接地心,再从地壳中"穿出"的位置为 B, AB 两点就是对趾点.
对跖点指二者的经度和为 180°;纬度值相等,而南北半球相反。例如,北纬 40°,东经 120° 的对跖点是南纬 40°,西经 60°。对趾点是指地球的地心为原点,不是赤道零度线为原点。除此以外:
-
1、对跖点的地方时相差 12 小时。 -
2、对跖点的季节相反。 -
3、对跖点距离约 20000 千米。
国内大多数地点的对跖点都在南美洲,如"天津对应的是阿根廷的 Bahia Blance,上海对应的是乌拉圭的 Salto(萨尔托),香港对应的是阿根廷的 Humahuaca",北京则对应阿根廷潘帕斯草原,附近没有较大城市. 可以通过这个在线工具[3],查看地球上任意一点的对跖点
互为对跖点的两地是地球上距离最远的两个点,以从上海到阿根廷布宜诺斯艾利斯为例,最快的航班,普遍耗时都在 1 天以上,且走欧洲/非洲,而不会跨越太平洋 (主要原因大概是太平洋实在太大,远离陆地和人口聚集区,尤其尼莫点所在的南太平洋)

真实物理世界的万里之遥,耗时许久,在网络世界里会怎么样?
比如说从上海发一个请求到阿根廷的服务器,要经过多少跳路由? 路线如何? 耗时大概多少呢?
实践
以 梅西老家罗萨里奥(Rosario,也是迪玛利亚和斯卡罗尼的老家,其对跖点大致是南京)的罗萨里奥日报官网[4]为例, 使用traceroute
命令追踪其路由转发
traceroute
会显示数据包经过的每个路由器的 IP 地址和每一跳的延迟, 跟踪数据包在网络上的路径,诊断连接问题,并检测延迟( Windows 上可用 tracert
命令 )

traceroute www.elciudadanoweb.com
traceroute to www.elciudadanoweb.com (190.57.233.230), 64 hops max, 52 byte packets
1 192.168.1.1 (192.168.1.1) 4.869 ms 10.104 ms 10.581 ms | 本地
2 124.14.56.1 (124.14.56.1) 7.404 ms 12.895 ms 10.954 ms |
3 10.64.132.150 (10.64.132.150) 10.967 ms 8.312 ms 7.850 ms
4 10.64.4.65 (10.64.4.65) 15.315 ms
10.64.4.73 (10.64.4.73) 9.074 ms 9.792 ms
5 * * *
6 124.74.43.177 (124.74.43.177) 9.034 ms 11.949 ms 14.535 ms
7 101.95.89.45 (101.95.89.45) 9.627 ms
101.95.89.97 (101.95.89.97) 8.514 ms
101.95.89.37 (101.95.89.37) 16.248 ms
8 101.95.89.98 (101.95.89.98) 27.841 ms
101.95.89.42 (101.95.89.42) 12.169 ms
101.95.89.98 (101.95.89.98) 10.552 ms
9 * * 61.152.26.98 (61.152.26.98) 22.034 ms
10 * 202.97.71.34 (202.97.71.34) 20.179 ms
202.97.57.157 (202.97.57.157) 24.970 ms
11 202.97.39.61 (202.97.39.61) 11.583 ms
202.97.51.161 (202.97.51.161) 11.322 ms *
12 202.97.95.206 (202.97.95.206) 230.975 ms
202.97.43.38 (202.97.43.38) 180.878 ms
202.97.63.26 (202.97.63.26) 216.756 ms
13 te-0-3-0-35-3-grtfraix4.priv.net.telefonicaglobalsolutions.com (213.140.53.209) 239.429 ms 213.793 ms 210.840 ms
14 213.140.36.95 (213.140.36.95) 188.987 ms
176.52.248.125 (176.52.248.125) 207.647 ms 191.291 ms
15 94.142.127.43 (94.142.127.43) 385.709 ms
94.142.127.8 (94.142.127.8) 357.323 ms *
16 * * 84.16.15.66 (84.16.15.66) 289.405 ms
17 94.142.99.166 (94.142.99.166) 386.778 ms
94.142.97.22 (94.142.97.22) 358.863 ms
94.142.99.166 (94.142.99.166) 389.131 ms
18 213.140.39.119 (213.140.39.119) 363.053 ms 390.179 ms 370.400 ms
19 * * *
20 * * *
21 elciudadanoweb.revisionalpha.net (190.57.233.230) 491.422 ms 367.375 ms 387.253 ms
下面是一些解释:
原理:
有很多个***
的,即请求超时,这是因为转发节点关闭了 TTL 为 0 的数据包回复
traceroute
通过向目标地址发送 TTL 依次递增的 ICMP 报文,记录收发报文的时间来判断网络延迟.
TTL 是 IPV4 报头中的一个字段,是为防环设计的,不同系统默认值不同(最大的是 255).
报文每经过一个转发节点,TTL 的值就会-1. 如果设备收到 TTL 等于零的报文,会先丢弃,然后给源节点 发送一个 ICMP 超时报文通知丢包.
比如在这个例子中,我的电脑首先会向目标主机(此处为第一站路由器)发送 TTL 为 1 的 ICMP 报文.
TTL 等于 1,代表这个报文只能转发一次 第一站路由器收到之后,会先检查报头,发现 TTL 不足以支撑继续转发,就会丢包,然后告诉我的电脑.
我的电脑收到回复会记录延迟,然后发送 TTL 等于 2 的 ICMP 报文.这时第一站路由器就可以进行转发了,到达第二站路由器之后,报文会再次被丢弃,然后向我的电脑发送超时报文..
通过这样的方法,最终将报文发送至目标主机.目标主机回复 ICMP 应答,就可以知道途经多少台路由器,以及每个转发节点的延迟了.
但是很多转发设备为了节省硬件资源,防止网络攻击,会禁止回复 ICMP
如果我的电脑没有收到回复报文,会等待一个超时时间,如果依然没有收到应答,会增加 TTL 继续发送. 所以即使途经设备不回复报文,依然可以判断经过了一跳,但这样就无法确定途经了哪个节点,以及经过节点的延迟时间. 这就是为什么有很多请求超时,依然可以完成路径测试的原因(比如此处的第 5 跳,第 19,20 跳)
1 192.168.1.1 (192.168.1.1) 4.869 ms 10.104 ms 10.581 ms
为什么有三个时间?
traceroute 命令每个跃点(即 节点)会发送三个数据包来测试该路由器,记录三次数据包的往返时间。(如果其中某个包 traceroute 没有得到响应,则会显示为*,如第 11 跳的202.97.51.161 (202.97.51.161) 11.322 ms *
),不影响分析.
具体来说:
-
第一个时间 4.869ms,是第一个数据包从本地到达该路由器 192.168.1.1 的往返时间。
-
第二个时间 10.104ms,是第二个数据包从本地到达该路由器的往返时间。
-
第三个时间 10.581ms,是第三个数据包从本地到达该路由器的往返时间。
发送三个数据包并记录时间,是为了更准确地探测和检查网络连接状态。因为网络延迟可能会有波动,三次测试结果可以反映出网络延迟的平均值和波动范围。
若只发送一个数据包,记录的往返时间仅仅是一个瞬时值,无法反映网络真实情况。通过三次测试可以获取更可靠的测量结果。
5 * * *
为什么显示为*?
第 5 跳节点显示的是* * *
,表示 traceroute 在这个节点失败了,没有获取到有效结果。
失败的可能原因有以下几种:
-
路由器不支持 ICMP 回应,traceroute 依赖 ICMP 回应追踪路由,如果某个路由器过滤掉 ICMP,就无法取得结果。
-
网络超时,跃点间网络延迟过长,超过 traceroute 设定的最大等待时间。
-
网络路由改变,traceroute 检测期间网络路径出现变化。
-
安全策略阻断,某些路由器会过滤 traceroute 即安全考虑。
-
网络故障,如线路故障等导致跃点临时不可达。
所以,* * * 表示 traceroute 在这个网络节点失败,可能由于上述原因无法获取有效响应。一般不影响整体路径检查
第 10 跳 10 * 202.97.71.34 (202.97.71.34) 20.179 ms
前面为什么有个*?
10 号跃点第一个结果为*
是因为 traceroute 在为这个跃点发送第一个数据包时失败了,没有得到响应。
具体原因可能是:
-
网络超时,第一个数据包响应时间过长超出限制。
-
安全策略阻断了第一个数据包。
但可以看到后两个结果返回正常,显示往返时间 20.179ms 和 24.970ms。
所以:
-
第一个数据包传输失败,显示为*。
-
第二个和第三个数据包传输正常取得时间。
这通常不影响判断此跃点的网络质量,只是第一个尝试失败了。同时后两个成功结果也表明该跃点网络基本可用。
即一般会发 3 个数据包,某次失败了就会以*
表示.
第 7 跳为什么会有 3 个 ip 地址?
即
7 101.95.89.45 (101.95.89.45) 9.627 ms
101.95.89.97 (101.95.89.97) 8.514 ms
101.95.89.37 (101.95.89.37) 16.248 ms
对于同一个节点,traceroute 可能会显示多个 IP 地址,这与路由器技术有关:
-
当网络流量通过负载平衡(Load Balancing)时,同一地点可能使用多个路由器进行流量分担。
-
当路由器使用 ECMP(Equal-Cost Multi-Path)功能时,流量可能通过多个出口链路离开同一节点。
-
内部使用 Anycast 技术的路由器,外部显示的 IP 地址不是固定的,可能变化。
所以在 7 号跃点,数据包可能通过三个不同的物理路由器 101.95.89.45、101.95.89.97 与 101.95.89.37 离开这个网络节点。
显示多个 IP 地址并不意味着路径有问题,而是反映了底层网络结构特征,如负载平衡、ECMP 等技术的应用。
而每个 IP 地址对应的往返时间就记录了通过这个物理路由器的数据包的耗时,这对诊断网络性能更有帮助。
多个 IP 地址表明数据在同一网络节点内可能通过不同途径发送,这在现代网络结构中很常见。
分析:
可以看到从地球的这边到地球的那边,一共用了 21 跳
来看下转发的路径,查询 ip 归属地的在线工具有很多,经过必选使用iplocation.net/[5],可以聚合多个网站的查询结果
首先是内网网关,一台 TP-LINK 路由器, 内网延迟通常都非常低,都是 10ms 甚至更短.
然后是一台地址为124.14.56.1
的运营商设备(长城宽带,可以认为和鹏博士是一家公司,这名字不像搞网络的..)

之后两跳都是运营商内网地址,
第 6 跳124.74.43.177
为上海电信,第 7-9 跳同样, 即还没有出市
第 10 跳应该是来到了广东惠州,
一个 IP 地址能给出多个不同归属地…突然很好奇,ip 归属地是怎么确定的?得到实时精确的 IP 归属,是很困难的一件事么


第 11,12 跳也在广东惠州,
CHINANET[6]是中国电信拥有的 2 张全国骨干网之一, 详细可参考互联网骨干网全面解析[7]


第 13 跳213.140.53.209
出了国,到了西班牙马德里

其中关于 priv.net.telefonicaglobalsolutions.com,
Telefónica Global Solutions 是一个全球性的电信服务提供商,隶属于西班牙电信集团 Telefónica。
priv.net 指的是 Telefónica Global Solutions 的专用网络(Private Network),也就是 Telefónica 集团内部通信用的网络域名。
telefonicaglobalsolutions.com 则是 Telefónica Global Solutions 公司的主域名。
所以 priv.net.telefonicaglobalsolutions.com 代表了:
-
此次 traceroute 跨越的是一个 Telefónica 集团内部的专用网络
-
这个网络属于 Telefónica 旗下的全球服务供应商 Telefónica Global Solutions 运营
-
位置处于从阿根廷到西班牙的国际通信骨干部分
所以当 traceroute 显示这个域名时,说明数据包已进入 Telefónica 私有国际骨干网络,离目标网站位置已非常接近。
马德里是西欧和拉丁美洲的主要连接通道, 很多国际线路都会在这里中转.
之后的几跳也一直在马德里中转,最后一跳190.57.233.230
到了阿根廷首都布宜诺斯艾利斯. 罗萨里奥是日报的服务器,并没有部署在本市,可能用的是云服务器

从上海发起请求,到达目标服务器,耗时在 500ms 以内.
所以世界上最远的距离,对于网络设备来说也并不远 只需要 500ms 就可以穿过 21 个节点,抵达地球的另一面
这个地址[8]是世界上所有国际海底光缆的互动图

所以从上海到阿根廷的网络包发送线路,基本和航班差不多,走欧洲-大西洋,而不是太平洋
另外下图是全球实时航空[9]和海运[10]的情况,可见大西洋航路整体要比面积是其两倍,约占海洋总面积一半的太平洋"繁忙"很多.
且因为陆地和人口稀少,南太平洋可以算是"人迹罕至"


【网络知识】到地球另一面,需要多少跳路由?: https://www.bilibili.com/video/BV1eb4y1A7wb
[2]对趾点: https://baike.baidu.com/item/%E5%AF%B9%E8%B9%A0%E7%82%B9/9450492
[3]这个在线工具: https://www.freemaptools.com/tunnel-to-other-side-of-the-earth.htm
[4]罗萨里奥日报官网: https://www.elciudadanoweb.com/
[5]iplocation.net/: https://www.iplocation.net/ip-lookup
[6]CHINANET: https://baike.baidu.com/item/%E4%B8%AD%E5%9B%BD%E5%85%AC%E7%94%A8%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BA%92%E8%81%94%E7%BD%91/6025096
[7]互联网骨干网全面解析: https://zhuanlan.zhihu.com/p/32090927
[8]这个地址: https://www.infrapedia.com/
[9]航空: https://zh.flightaware.com/
[10]海运: https://www.marinetraffic.com/
本文由 mdnice 多平台发布