2

漫谈公网网络延迟_耳东-Erdong的技术博客_51CTO博客

 2 years ago
source link: https://blog.51cto.com/erdong/5397851
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

漫谈公网网络延迟

原创

erdongx 2022-06-20 23:27:00 博主文章分类:监控 ©著作权

文章标签 服务器 数据 网络延迟 文章分类 云平台 云计算 yyds干货盘点 阅读数164

互联网发展至今,网络可以说是基础,所有的数据、内容都跑在网络上,今天和同事在沟通工作的过程中,发现很多人对公网的网络延迟是没有概念的。

我们知道网络延迟是指数据在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间。针对这个延迟我们可以使用 Ping 命令基于 ICMP 协议来进行测试。比如我们 Ping 百度的域名。

Erdong@Erdong-Test # ping baidu.com            
PING baidu.com (220.181.38.251): 56 data bytes
64 bytes from 220.181.38.251: icmp_seq=0 ttl=50 time=12.563 ms
64 bytes from 220.181.38.251: icmp_seq=1 ttl=50 time=9.514 ms
64 bytes from 220.181.38.251: icmp_seq=2 ttl=50 time=9.023 ms
64 bytes from 220.181.38.251: icmp_seq=3 ttl=50 time=9.192 ms
64 bytes from 220.181.38.251: icmp_seq=4 ttl=50 time=17.045 ms
64 bytes from 220.181.38.251: icmp_seq=5 ttl=50 time=11.408 ms
64 bytes from 220.181.38.251: icmp_seq=6 ttl=50 time=13.894 ms
64 bytes from 220.181.38.251: icmp_seq=7 ttl=50 time=10.504 ms
64 bytes from 220.181.38.251: icmp_seq=8 ttl=50 time=10.980 ms
64 bytes from 220.181.38.251: icmp_seq=9 ttl=50 time=15.370 ms
64 bytes from 220.181.38.251: icmp_seq=10 ttl=50 time=10.628 ms
^C
--- baidu.com ping statistics ---
11 packets transmitted, 11 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 9.023/11.829/17.045/2.501 ms

上边显示整个过程发送了 11 个数据包,平均延迟是 11.829ms ,这个就是我当前电脑本地到百度最近的服务的延迟,这个延迟相对来说是很好的了。

对于公网来说,网络延迟是和地理位置强相关的一个指标。假设我们在北京部署了一个站点,从深圳访问的时候,这个延迟大概要 40ms ,基本不会低于 30ms。那么这延迟是怎么来的,为什么是这个数值,能不能减少呢?

我们都知道,网络传输是通过传输介质来进行的,常见的传输介质就是双绞网线和光纤,另外还有其他类型的线材。短距离一般是双绞网线,普通场景下的网络延迟基本可以忽略不计,长距离和超长距离一般是光纤光缆,这个时候迟延就非常明显。

我们已知光在真空中传播,折射率为 1,其光速约为 c=30 万公里/秒,当光在其他介质里来面传播,其介质折射自率为 n,光在其中的速度就降为 v=c/n,光纤的材料是二氧化硅,其折射率 n 为 1.44 左右,计算延迟的时候,可以近似认为 1.5,我们通过计算可以得出光纤中的光传输速度近似为 v=c/1.5= 20 万公里/秒。

以北京和深圳为例,直线距离 1920 公里,接近 2000 公里,传输介质如果使用光纤光缆,那么延迟时间 t=L/v = 0.2 万公里/20 万公里/秒=10ms ,也就是说从北京到深圳拉一根 2000 公里的光缆,单纯的距离延迟就要 10ms ,实际上是没有这么长的光缆的,中间是需要通过基站来进行中继,并且当光功率损耗到一定值以后,需要通过转换器加强功率以后继续传输,这个中转也是要消耗时间的。另外数据包在网络中长距离传输的时候是会经过多次的封包和拆包,这个也会消耗时间。

综合考虑各种情况以后,以北京到深圳为例,总的公网延迟大约在 40ms 左右,北京到上海的公网延迟大约在 30ms ,同城的情况下,公网延迟大约在 10ms ~ 15ms ,基本维持在 20ms 以内。如果数据出国的话,延迟会更大,比如中国到美国,延迟一般在 150ms ~ 200ms 左右,因为要经过太平洋的海底光缆过去的。

现在我们对于公网的延迟有了一个基本的概念,也理解了为什么自己附近的网站打开会快一些,越远的网站打开会越慢。那么回到开头 Ping 百度域名的例子里,有没有人想过为什么 Ping 百度的域名总是很快,好像全国各地差别并不大?

这个其实是百度在全国很多城市都有放置服务器,我们每个人访问的百度都是离自己最近的服务器,并不会出现,人在北京,访问了一台深圳的服务器的情况。所以访问会快很多。

好了,今天就聊这么多。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK