网络时延、丢包可以手动调整?你说,那什么是真的?还有什么是真的?

在前段时间的双十一大促期间,我看到腾讯云有特别便宜的境外云主机,一年99元。

抛开折扣不谈,我们就看到手价格,2核2G配置,30M公网带宽,每个月1024 GB流量,这个规格一年99块钱真的是物超所值。
但是呢,他这里限定了所在地域为【新加坡/硅谷/法兰克福/东京/首尔】,按照我之前测算的时延数据,从北京到新加坡大约是80ms,北京到硅谷大约是150ms,北京到法兰克福大约是135ms,北京到东京大约是65ms,北京到首尔大约是60ms。但是呢,不同的运营商国际出口不同,有些运营商没有从北京到东京的出口线路,可能需要从上海或者香港绕转。如果按照稳妥一点的说法,走香港这个国际出口应该是没什么问题的。
那可能有小伙伴会问,为什么境外没有香港呢?

因为香港属于境内,在地域划分中,中国香港在中国大区域下面。对应的价格也比较高,相同配置的云主机要62元/月。
相比之下,中国其他地域的主机更贵。

对比下来,活动主机极具性价比了,平均一天33 GB的流量,正常来讲肯定是用不完的。
基于以上分析,我就在新加坡资源池订购了一台。
结果,意想不到的事情发生了。

使用北京电信网络进行测试,到新加坡云主机最短的时延也要197ms,平均210ms,ping测试100个包的过程中还有6%的丢包。一定程度上来讲,惨不忍睹。
但是,这能说明什么?要定位问题我们还得进行对比分析。
首先,这么大的时延肯定是不对的,200ms可以从北京到南非或者到南美了。我们先从香港测试一下。

丢包率0%,平均时延37ms,这个网络质量一点问题没有。
然后,我们换一下北京的腾讯云主机试试。

丢包率1%,平均时延77ms,或许这才是正常的网络质量。用我们之前介绍过的MTR工具测试一下网络路径(MTR网络诊断工具)。

可以看到,在59.43.46.70这一跳,时延增加到36ms,这个时延大概能到香港,经查,这个IP地址属于中国电信CN2骨干网。再往下走,能看到一个CTCN2.SG.SGP.CTGNet,从字面理解,应该是新加坡电信的CTGNet,而这个CTGNet就是中国电信国际公司的海外网络。
那么问题来了,既然跨境线路跟境外网络都是中国电信的网,那为什么我本地的北京电信就不行呢?

在本地进行tracert测试,发现到境外端的链路基本一致,都是走的中国电信CN2骨干网59.43.46.70,然后到CTCN2.SG.SGP.CTGNet,只不过后面的现象就不太正常了。
其实,结合我们之前介绍的TC命令(流量控制tc命令使用手册),你可能会想到,我们的流量可能被人为篡改了。
比如我们之前在南京开通的云主机,正常时延大概在23ms左右。

接下来,我们通过TC命令调整一下时延,实现原理就是使用netem网络模拟器(Network Emulator),netem是Linux流量控制设施的增强版,允许为从选定网络接口传出的数据包添加延迟、数据包丢失、重复和更多其他特性。
我们先试着把时延增加100ms。
tc qdisc add dev eth0 root netem delay 100ms

此时,我们再次进行测试,就能看到时延增加了整整100ms。

而netem不仅可以模拟时延,还能模拟丢包,我们设置一个丢包5%试一下。
tc qdisc add dev eth0 root netem loss 5%

再次进行测试。

因为丢包具有随机性,我们ping测100个包得到的丢包率为4%。

如果查看测试过程,可以发现没有什么规律,如果正常ping测4-5个报文,可能无法发现有丢包。
要删除模拟就简单了,只要将命令中的add修改为del即可。
tc qdisc del dev eth0 root netem delay 100ms
tc qdisc del dev eth0 root netem loss 5%

所以,到底是哪家运营商要手动调低网络质量?到底还有什么是真的?

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/423972.html

联系我们
联系我们
分享本页
返回顶部