从上海到阿根廷的网络走线方式和耗时


本篇大部分内容参考自 【网络知识】到地球另一面,需要多少跳路由?[1]


地球上相距最远的两个点---对趾点


地理学上有个概念称为对跖(zhí)点(也叫对趾点[2]或对映体 Antipodes),地球直径的两个端点互为对跖点。即从某个位置 A 连接地心,再从地壳中"穿出"的位置为 B, AB 两点就是对趾点.


对跖点指二者的经度和为 180°;纬度值相等,而南北半球相反。例如,北纬 40°,东经 120° 的对跖点是南纬 40°,西经 60°。对趾点是指地球的地心为原点,不是赤道零度线为原点。除此以外:

  • 1、对跖点的地方时相差 12 小时。
  • 2、对跖点的季节相反。
  • 3、对跖点距离约 20000 千米。

国内大多数地点的对跖点都在南美洲,如"天津对应的是阿根廷的 Bahia Blance,上海对应的是乌拉圭的 Salto(萨尔托),香港对应的是阿根廷的 Humahuaca",北京则对应阿根廷潘帕斯草原,附近没有较大城市. 可以通过这个在线工具[3],查看地球上任意一点的对跖点

互为对跖点的两地是地球上距离最远的两个点,以从上海到阿根廷布宜诺斯艾利斯为例,最快的航班,普遍耗时都在 1 天以上,且走欧洲/非洲,而不会跨越太平洋 (主要原因大概是太平洋实在太大,远离陆地和人口聚集区,尤其尼莫点所在的南太平洋)

alt

真实物理世界的万里之遥,耗时许久,在网络世界里会怎么样?

比如说从上海发一个请求到阿根廷的服务器,要经过多少跳路由? 路线如何? 耗时大概多少呢?


实践


以 梅西老家罗萨里奥(Rosario,也是迪玛利亚和斯卡罗尼的老家,其对跖点大致是南京)的罗萨里奥日报官网[4]为例, 使用traceroute 命令追踪其路由转发

traceroute 会显示数据包经过的每个路由器的 IP 地址和每一跳的延迟, 跟踪数据包在网络上的路径,诊断连接问题,并检测延迟( Windows 上可用 tracert命令 )

alt
 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 在这个节点失败了,没有获取到有效结果。

失败的可能原因有以下几种:

  1. 路由器不支持 ICMP 回应,traceroute 依赖 ICMP 回应追踪路由,如果某个路由器过滤掉 ICMP,就无法取得结果。

  2. 网络超时,跃点间网络延迟过长,超过 traceroute 设定的最大等待时间。

  3. 网络路由改变,traceroute 检测期间网络路径出现变化。

  4. 安全策略阻断,某些路由器会过滤 traceroute 即安全考虑。

  5. 网络故障,如线路故障等导致跃点临时不可达。

所以,* * * 表示 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的运营商设备(长城宽带,可以认为和鹏博士是一家公司,这名字不像搞网络的..)

alt

之后两跳都是运营商内网地址,

第 6 跳124.74.43.177为上海电信,第 7-9 跳同样, 即还没有出市

第 10 跳应该是来到了广东惠州,

一个 IP 地址能给出多个不同归属地…突然很好奇,ip 归属地是怎么确定的?得到实时精确的 IP 归属,是很困难的一件事么

alt
alt

第 11,12 跳也在广东惠州,

CHINANET[6]是中国电信拥有的 2 张全国骨干网之一, 详细可参考互联网骨干网全面解析[7]

alt
alt

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

alt

其中关于 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到了阿根廷首都布宜诺斯艾利斯. 罗萨里奥是日报的服务器,并没有部署在本市,可能用的是云服务器

alt

从上海发起请求,到达目标服务器,耗时在 500ms 以内.

所以世界上最远的距离,对于网络设备来说也并不远 只需要 500ms 就可以穿过 21 个节点,抵达地球的另一面

这个地址[8]是世界上所有国际海底光缆的互动图

alt

所以从上海到阿根廷的网络包发送线路,基本和航班差不多,走欧洲-大西洋,而不是太平洋


另外下图是全球实时航空[9]海运[10]的情况,可见大西洋航路整体要比面积是其两倍,约占海洋总面积一半的太平洋"繁忙"很多.

且因为陆地和人口稀少,南太平洋可以算是"人迹罕至"

alt
alt
参考资料
[1]

【网络知识】到地球另一面,需要多少跳路由?: 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 多平台发布

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值