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 分别在响应各自接收到的视频和游戏要求。
假设视频网站Y的视频文件包先到路由 A,游戏信息S稍晚到达,按照路由分发先到先滚的原则,游戏信息 S 被存储在了路由器 A 本地,等待视频文件包发送完毕后才能发送,这个游戏信息 S 在路由器上被存储等待的时间即为队列时间。但王总家下载速度堪比骨干核心网络,数据包应该秒秒钟就送完啊?
这里出现了一个悖论:当你的流出信息流和流入信息流速度一致时,平均的队列延时会趋近于无穷大。假设进入该路由的数据包军事 L-bits, a 为每秒平均到达该路由的包的个数,这是流入流速为 La。我们设定流出流速为 R,定义为 La/R 流量强度(Traffic intensity)。同时我们假设抵达路由包的个数服从泊松随机分布.....(*&^%$#@#$....经过一堆你不会看我也不想仔细讲的推到之后,我们可以得到 期望队列时间 和 流量强度的关系
也就是说,当王总家的接入网速和骨干网一样的时候,因为总会有其他主干网的线路要接入连接王总家的路由,当王总同时有若干网络请求的时候,他的网络反而更容易出现拥塞。
放到一个更为广义的场景中,就是说若若干用户享用着当今前段的网络传输技术,他们互相之间有 N-K 超高清视频流要分享,但由于他们网速都太 tm 快了,互相之间可能只能收到一个用户所投递的视频流,另外几个人的包都死在了路由上。
这也是在设计网络的时候一定要遵循的 Traffic Intensity 一定要小于1的道理。并且因为当今Internet 是构架在经典的 TCP/IP 结构上,实际物理层面负责处理、中转 TCP/IP 数据包的是必定是路由,所以我们的用户终端接入技术必定是应该远小于骨干网的速度的。
为了大家好,每个人还是都慢一点。
(现实中几乎所有的接入流都会毕输出流要小,但仍然会发生丢包。原因就有很多了,但归根结底是因为队列时间过长所至。上面只是提到了一个队列延时的一个极端情况。)
或许现在能给我家连个1-Gbps的 FTTH,上网绝X对不会有什么延迟,但等若干年后,你看的视频都是4K 了,你可能就会叫不够用,得10-Gbps。技术的增长可能终究无法满足人类的欲望(好鸡汤的话)。
所以在缓冲视频的时候等两秒也就等两秒吧,毕竟前面广告都要有60秒呢。
而且
在宇宙蛮长的138亿年中,那几秒相当于不存在
|