43
网络中光速与传播延迟(延迟的最后一公里)

正如爱因斯坦在他的狭义相对论里所说的,光速是所有能量、物质和信息运动所能达到的最高速度。这个结论给网络分组的传播速度设定了上限。好消息是光速极快,每秒能达到299792458米(大约30万公里)。但是,别忘了还有个但是,这是光在真空中的传播速度。而网络中的分组是通过铜线、光纤等介质传播的,这些介质会导致传播速度变慢。光速与分组在介质中传播速度之比,叫做该介质的折射率。

这个值越大,光在该介质中传播的速度就越慢。传播分组的光纤,大多数折射率从1.4到1.6不等。不过,技术员们也在逐渐改进传播材料的质量,从而不断降低折射率。为简单起见,我们大都假定光通过光纤的速度约为每秒200000000米,对应的折射率约为1.5。值得一提的是,现在已经能够把折射率降低到最大速度的一个很小的常数因子的范围内了!仅此就堪称一项了不起的成就。

当然,我们还是不太习惯以光速为参照来思考,因此下面给出了几个例子,以便我们能够直观地想象。

blob.png

光速已经很快了,尽管如此从纽约到悉尼的一个往返(RTT)也要花160ms。事实上,以上这些数字都是理想情况下的结果,因为我们假设传送分组的光缆恰好是连接两个城市的一条完美的大弧形线路(地球表面两点间最短的距离)。而实际上纽约和悉尼之间是没有这样一条线路的,分组旅行的距离比这要长得多。这条线路中的 每一跳都会涉及寻路、处理、排队和传输延迟。结果呢,纽约到悉尼的实际RTT,大约在200~300ms之间。即便如此,还是很快的,对吧?

我们都不习惯用ms来度量身边的事物,但研究表明:在软件交互中,哪怕100~200ms左右的延迟,我们中的大多数人就会感觉到“拖拉”;如果超过了300ms的门槛,那就会说“反应迟钝”;而要是延迟达到1000ms(1s)这个界限,很多用户就会在等待响应的时候分神,有人会想入非非,有人恨不得忙点别的什么事儿。结论很简单:要想给用户最佳的体验,而且保证他们全神贯注于手边的任务,我们的应用必须在几百ms之内响应。这几乎没有给我们——特别是网络,留出多少出错的余地。若要成功,必须认真对待网络延迟,在每个开发阶段都为它设立明确的标准,也就意味着我们需要一款合适的服务器,诸如香港服务器一类的产品。

CDN(ContentDeliveryNetwork,内容分发网络)服务的用途很多,但最重要的就是通过把内容部署在全球各地,让用户从最近的服务器加载内容,大幅降低传播分组的时间。或许我们不能让数据传输得更快,但我们可以缩短服务器与用户之间的距离!把数据托管到CDN能够显著提高性能。

你说怪不怪,延迟中相当大的一部分往往花在了最后几公里,而不是在横跨大洋或大陆时产生的,这就是所谓的“最后一公里”问题。为了让你家或你的办公室接入互联网,本地ISP需要在附近安装多个路由收集信号,然后再将信号转发到本地的路由节点。连接类型、路由技术和部署方法五花八门,分组传输中的这前几跳往往要花数十ms时间才能到达ISP的主路由器!根据美国联邦通信委员会(FCC)发布于2012年年中的《美国宽带测量报告》(MeasuringBroadbandAmerica),在通信高峰的几个小时内,光纤入户服务的平均往返时间为18ms,有线电视线路上网平均为26ms,DSL专线平均为43ms。

这里18~43ms的延迟测量的还只是ISP核心网络中与用户最近的节点,此时分组甚至都还没有启程呢!FCC的报告只反映了美国的情况,但最后一公里的延迟却是世界任何一个角落的互联网提供商共同面临的问题。如果你好奇,那只要一条简单的traceroute命令,就能知道上网服务商的拓扑结构和速度。

分组从森尼维耳市开始,跳到圣克拉拉,经过奥克兰,返回圣何塞,又被路由到“529Bryant”数据中心,从那儿才开始向谷歌服务器进发,最终在第11跳到达目的地。整个行程大约18ms,所有延迟都算上了,还不错。但与此同时,我们的分组几乎穿越了大半个美国本土!

最后一公里的延迟与提供商、部署方法、网络拓扑,甚至一天中的哪个时段都有很大关系。作为最终用户,如果你想提高自己上网的速度,那选择延迟最短的ISP是最关键的。大多数网站性能的瓶颈都是延迟,而不是带宽!

traceroute是一个简单的网络诊断工具,可以列出分组经过的路由节点,以及它在IP网络中每一跳的延迟。为找到每一跳的节点,它会向目标发送一系列分组,每次发送时的“跳数限制”都会递增(1、2、3等等)。在达到跳数限制时,中间的节点会返回ICMPTimeExceeded消息,traceroute根据这个消息可以计算出每一跳的延迟。在Unix平台上,可以在命令行运行traceroute。而在Windows平台中,相应的命令叫tracert。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!