柬埔寨头条APP
如何彻底解决「网络延迟」这个问题?
Taingvengly 发表于:2017-5-2 14:43:39 复制链接 看图 发表新帖
阅读数:10608

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
graph16.gif


我在想,要是有可以让全世界的人上网都不卡不延迟的技术,那一定和发明互联网一样了不起。这种梦想能否在有生之年实现呢?


答案是延迟(RTT)主要是链路层的时钟和令牌(不管是分时还是分频分码,都存在抢占),设备间的 buffer time和设备处理时间,中转次数,等几个要素决定的。上面说的这些都可以通过钱来解决的问题,比如最简单的换设备,增加信道容量,用更好的传输介质都可以解决,包括架设新的海底光缆。上面这些是最直接影响速率的东西,但是有个上限就是光速,光速一秒钟绕地球七圈半,数据从中国到美国往返一次,差不多是绕了地球一圈了,和 1000毫秒 / 7.5 = 133毫秒。所以 ping 美国 rtt 的理论下限是 133ms,不可能突破的。不过大部分美国服务器到中国的 ping 值都差不多是 250ms 左右,远远高于这个值,说明还有很大的提升空间。再说卡的问题,卡大分是中间设备丢包,为什么中间设备会丢包呢?


因为你告诉设备需要发送的包超过设备可以往外发的能力了。丢包又和信道拥挤程度有很大关系,忙的时候,每秒数据传输量接近信道容量限制,丢包就会指数上升。


有少部分情况是由于链路太长,中间节点过多,某些时候中间一个环节出问题(比如某个点遭受到其他方向的流量侵占),由于设备投资不够,缺乏优质的备选路由,所以会瞬断个几秒钟


不过还有一大半情况的卡是属于胖管道(fat-pipe),即带宽很高,延迟和丢包率同样也很高,比如带宽有余,但中间设备短时间内被其他方向的流量侵占,异或设备太旧 kps很低,就只能丢包,典型的情况是美国到中国,所以还有很多人黑tcp协议栈,每个往外发的包都发两遍,丢失了就用另外一个,然后从试验上看起来提高了美国到中国的数据传输速度,但其实就是在耍流氓。


上面这些丢包造成的卡 ,随着设备更新换代,都会得到改善。然而可悲的是骨干网建设大大落后于时代发展,大部分提速都是再提用户接入端的速度,不愿意投钱,又想卖给更多用户,就只能让更多人挤在一些便宜的窄窄的 “省道” “国道” 上了。


你如果自己愿意花钱,租用更好的专线,或者自己从深圳拉一根线到香港 IDC 出国,那么你相当于花钱走了高速公路,能获得比别人更好的服务质量。


想等着电信联通来升级骨干网?对不起,他们还在处于比谁更流氓的时代呢,还没进化到比谁服务更好的阶段,只能想开点了,早两年电信联通还在互相剪光缆呢,这两年他们已经文明了很多了。


说了那么多,其实总结下来只有三个字:钱!钱!钱!---------PS: 《三体》里面三体人和在地球的智子之间好像就使用了量子纠缠实现了超光速通信,量子纠缠是指粒子在由两个或两个以上粒子组成系统中相互影响的现象,这种影响不受距离的限制,即使两个粒子分隔在直径达10万光年的银河系两端,一个粒子的变化仍会瞬间影响另外一个粒子。


转自:知乎
条评论
您需要登录后才可以回帖 登录 | 注册
高级
Taingvengly 发表于 2017-5-2 14:45:30 | 阅读全部
TL;DR: 所有人都无延时上网是一个美丽的梦,在现有的技术框架和网络结构中,等那几秒是必须付出的代价。这不仅是有没有钱铺多少块光纤的问题,在网络架构的根源上还有着队列时间的问题。 等就等吧,毕竟在宇宙蛮长的138亿年中,那几秒相当于不存在。
---------------------------------------
把传播速度延时(propagation delay)做为延时的下限,这在理论上似乎无可争议,但这样的条件也仅仅存在于理论,而且是一个悖论(下面会说明)。

在实际情况中,我们所体验到的上网延时,诸如打开页面慢、加载视频时间长、更新个iOS升级系统得等一晚上这样的龌龊的事情,在应用层面,所使用程序的应用处理速度,云端的响应时间,自己使用的主机的牛X 程度对延时的体验也有影响,但这里我们只关注普遍意义上的『上网速度』。这『上网速度』所关注的网络层面,主要要怪三个妖怪:传播速度延时(propagation delay)、 传输速度延时(transmission delay)和队列延时(queuing delay)。

这三个延时妖怪中,传播速度延时是一个衡定输出,但基本没有什么攻击力。传输速度延迟是一个物理大招,而且根据你的单次数据加载量成正比的一个输出。队列延时是一个暴机伤害,一般都是 miss,但中了后伤起来却蛮吓人的。

首先是传播速度延时。更为准确的计算应该要考虑光纤的 refractive index。目前商用的单模光纤(Single-Mode Fiber) 的 core index 是1.46,所以绕地球一圈后的最小 RTT (round trip time) 近似是 1000 ms / 7.5 * 1.46 = 195.67 ms。然后世界上也没有什么人会在意这0.2s 的不痛不痒的延时。(对于时间真的就是金钱的高频交易公司的人来说,缩短这短短的传播速度延时对他们来说也是多一大笔钱 [1])

其次是大头的传输速度 delay。目前我们所花在同步文件、上传邮件附件、缓冲视频上等待的时间大多可以归结在传输速度不足上。这速度主要是电信局说了算。

但不要立马怪责到电信垄断不愿升级骨干网的阴谋论上,华为、中兴的销售可每天都拍着电信局的马屁要他们买设备升级网络,现在的运营商也愁为什么没有够粗的管道 (fat pipe) 来帮他们解决流量问题。现在实现商用的骨干光纤网络可以实现单频道 (single channel) 100-Gbit/s 的传输速度 [2],如果完整的利用起 C-band (1539nm - 1565nm) 和 L-band (1565nm - 1625nm) 的波段,现有的 ITU-T 的 50-GHz 框架下一根光纤可以塞进200以上的100-Gbit/s 频道,这样来算是有 20-Tbit/s。这是已经商用的成果,若放眼通信业界未来几年的路线图,使用高阶调制技术(High-order modulation format) 和超级频道技术 (Superchannel) 来实现400G 乃至单频道 1Tbit/s 的结果也都已经赫然纸上 [3],若加上近年来炒的超红火的的 SDM (Spatial division multiplexing) 技术,再一根光纤里塞上 ExBit/s (1后面18个0) 的传输速度也不是不现实 [4]。想必未来诸如『一秒传输 XXX 部4K电影网速实现』的标题党文章不愁没有素材。

但就算能在一根光纤里塞进去这样的速度,这个世界上目前也没有人能够享用到20-Tbit/s级别的网速和世界互联。I mean, no one. 原因如下三点:

1. 一根光纤不是给你一个少年用的。一个骨干网的光纤首先要接入一个地方局RO (Regional Office),在这个 RO 高速光纤的速度被分载成 N 份分配给各个用户 (实际情况要复杂的多,这里只是列举了一个极简模型)。再快的速度被诸如几万用户分一分,能给你100-Mbps 的速度,你知道工程师们有多努力么!

2. 那说电信为什么不多铺一点光纤,不铺还不是因为资本家属性 (电信是社会主义国有企业,去他妈的资本家)。 假设我们把一根核心网的光纤铺到了你家门口,单模 SMF 100G 全波段 20-Tbit/s,以后看片再也不用等菊花转的幻想在我眼前浮现。但等等, 你拿什么东西去收这信号?你得有一个 Modern 吧。一个100-Gb/s 的接收器具体 Alcatel-lucent 买多少钱我还没到那个 level 不知道,但可以和你把里面的设备拆解一下:首先因为100G 以上的速度都要使用相干技术,得有一个 Laser,线宽得窄一些,最好在 KHz 级别,要价在几千刀;其次你要有高频响带宽的 photodiode,要价在几千刀;再次你要有一个 sampler和高速 DSP 去处理接受的信号,要价在几万美元刀几十万美元不等。这样算来光一个100G 的收发器就得最少花掉个还几万刀的,你肯么?

3. 好,我们客户是国民老公王思聪,装个宽带几万到算什么,给我最先进的技术,钱都不是问题,我家就要都用最好的。似乎一切都没好了。

但这时出现的最后一道壁垒,也就是第三个延迟成分 队列延时 (queuing delay) 和他带来的悖论问题。队列延时是指数据包在经过路由中转分发是在路由器上所滞留的时间。如图所示,假设王思聪家是 B 点,A 是直接连接王思聪家和外部 internet 的路由,视频网站Y 和游戏服务器 S 分别在响应各自接收到的视频和游戏要求。

1.png

假设视频网站Y的视频文件包先到路由 A,游戏信息S稍晚到达,按照路由分发先到先滚的原则,游戏信息 S 被存储在了路由器 A 本地,等待视频文件包发送完毕后才能发送,这个游戏信息 S 在路由器上被存储等待的时间即为队列时间。但王总家下载速度堪比骨干核心网络,数据包应该秒秒钟就送完啊?

这里出现了一个悖论:当你的流出信息流和流入信息流速度一致时,平均的队列延时会趋近于无穷大。假设进入该路由的数据包军事 L-bits, a 为每秒平均到达该路由的包的个数,这是流入流速为 La。我们设定流出流速为 R,定义为 La/R 流量强度(Traffic intensity)。同时我们假设抵达路由包的个数服从泊松随机分布.....(*&^%$#@#$....经过一堆你不会看我也不想仔细讲的推到之后,我们可以得到 期望队列时间 和 流量强度的关系


1.jpg
也就是说,当王总家的接入网速和骨干网一样的时候,因为总会有其他主干网的线路要接入连接王总家的路由,当王总同时有若干网络请求的时候,他的网络反而更容易出现拥塞。
放到一个更为广义的场景中,就是说若若干用户享用着当今前段的网络传输技术,他们互相之间有 N-K 超高清视频流要分享,但由于他们网速都太 tm 快了,互相之间可能只能收到一个用户所投递的视频流,另外几个人的包都死在了路由上。

这也是在设计网络的时候一定要遵循的 Traffic Intensity 一定要小于1的道理。并且因为当今Internet 是构架在经典的 TCP/IP 结构上,实际物理层面负责处理、中转 TCP/IP 数据包的是必定是路由,所以我们的用户终端接入技术必定是应该远小于骨干网的速度的。


为了大家好,每个人还是都慢一点。

(现实中几乎所有的接入流都会毕输出流要小,但仍然会发生丢包。原因就有很多了,但归根结底是因为队列时间过长所至。上面只是提到了一个队列延时的一个极端情况。)

或许现在能给我家连个1-Gbps的 FTTH,上网绝X对不会有什么延迟,但等若干年后,你看的视频都是4K 了,你可能就会叫不够用,得10-Gbps。技术的增长可能终究无法满足人类的欲望(好鸡汤的话)。

所以在缓冲视频的时候等两秒也就等两秒吧,毕竟前面广告都要有60秒呢。
而且
在宇宙蛮长的138亿年中,那几秒相当于不存在


使用道具 举报
回复
相关推荐