导读:什么是时延?在电信系统中,不同应用对时延的要求是怎样的?如何通过部署架构降低网络传输时延?本文通过介绍云网络时延的构成,并对其进行量化分析,分享在不同云网络时延要求下,不同应用对应的部署架构,并简单分析了5G时代对应用部署架构的影响和度量云网络时延的工具。
导读:什么是时延?在电信系统中,不同应用对时延的要求是怎样的?如何通过部署架构降低网络传输时延?本文通过介绍云网络时延的构成,并对其进行量化分析,分享在不同云网络时延要求下,不同应用对应的部署架构,并简单分析了5G时代对应用部署架构的影响和度量云网络时延的工具。
在讨论云网络时延这个看起来比较专业的话题前,先看几个比较有意思的问题:
-
人的最快反应速度是多少毫秒?
-
机器人最快反应速度是多少毫秒?
这样能在介绍云网络时延时让大家有一个时间量级上的感知。
-
抢红包时,为什么总是别人能抢到?
-
抢爆品好货时,为什么别人扣的1总在你前面?
-
游戏对战时,为什么总感觉比对手慢了半拍?
这些是人能明显感知到的时延,这些时延量级在毫秒级(1秒=1000毫秒)。
确切的说是人接受到外部刺激而做出反应,这个时延一般公认的极限是100ms。
大家可以在humanbenchmark这个网站测试一下自己的反应时间是多少ms,快的能到200ms左右,慢一点的就到三四百毫秒了。
人体连续机械反应的极限,一般公认的极限是50ms。
游戏玩家“高桥名人”一秒点击按键16次,是当前无法超越的奇迹,折合每次反应的平均时间是62.5毫秒。中国玩家熟悉的冒险岛游戏的主角就是高桥名人。
特斯拉的完全自动驾驶芯片,每秒可完成144万亿次的计算,能同时处理每秒2,300帧的图像,结合本地的车载的神经网络系统,发现异常并处理的时延可以做在0.5ms左右,是人类识别外界异常并做出反应的速度的200倍。
对于纯机械的反应,机器的速度就更快了,ABB的机器人在50秒以内可以装配出一量有5千多个零部件的汽车,是100年前福特流水线手工装配速度的1000倍。
整体上看,在机器的世界里时延和速度的单位是零点几毫秒,在人的世界里时延和速度的单位是零点几秒。
下面这个表是电信系统中对不同应用业务的分类以及不同应用对时延和丢包的需求。
-
实时竞技类游戏的时延要求是50ms
-
实时交互类游戏的时延要求是100ms
-
实时交互语音类的时延要求是100ms
-
实时交互视频类的时延要求是150ms
-
非实时大部分互联网应用时延要求是300ms
上面的标准是优秀的标准,如果时延增加50ms,则是及格线。
5G场景下有对超低时延应用场景的划分。5G的超低时延场景,主要是面向车联网,物联网和工业互联网。
-
工业自动化控制的时延要求是小于10ms
-
远程/遥控驾驶的时延要求是小于10ms
-
远程超声波检测的时延要求是小于10ms
整体上看,如果满足面向机器的超低时延应用,需要将双向时延控制在10ms以内。
对于仅涉及到数据中心内部或数据中心间的机器之间的通信,比证券和期货行业的高频交易,这种网络延迟甚至要求小于1ms。
上面提到的不同应用的时延要求都是端到端的双向时延,根据应用的不同这个端到端可能是用户端和服务器端,也可能是用户端和用户端之间。
网络层传输时延指的是数据包的传输时延,比如数据包从手机发出到服务器接收,再从服务器发送到被终端接收。
网络传输时延包括网络接入时延、固网传输时延和数据中心内部网络时延。
对于用户从家庭宽带的固定网络访问云端的应用来说,整个端到端的时延构成如下:
如果用户的终端通过4G或5G接入网络,整个端到端的时延构成会稍微复杂一些。
应用层时延包含用户前端的终端上的应用处理时延和后端的服务器上的应用处理时延。
应用层处理时延根据不同的应用差异比较大,有的在10ms以内,有的则大于100 ms。
比如说抢红包,买商品之类的简单交互类应用,主要是一些数据包的交互,这种的应用层处理时延先对较少,很多在10ms以内。
工业互联网类的应用的实时性要求一般都比较高,很多要求端到端时延在10ms左右。
减去应用层的5ms左右的处理时延,留给网络层的处理时延也就5ms了。
前面提到了网络层的时延包括网络接入时延、固网传输时延和数据中心内部网络时延:
如果按网络接入时延1ms,数据中心内部时延1ms,留给固网传输时延就3ms了。固网的1ms双向传输时延,代表光纤距离是100km。
这就要求在工业互联网场景下云数据中心要尽可能的靠近工业园区,基本上不能跨城。
在这种场景下用户可以选择的应用部署架构包括阿里云云盒本地部署,阿里云混合云本地部署。
实时音视频类应用的特点是应用层处理时延较多,业界先进的音视频平台可以做到100ms以内。
实时音视频类的端到端的时延如前文所述端到端时延最好能控制在150ms以内,如果是在200ms以内也可以接受。
而实时音视频应用的特点是两个用户终端通信,在这种场景下实际上是两个用户的流量是通过音视频服务器连接起来的,所以实际路径是:用户1 <—> 音视频服务器 <-> 用户2。
所以在音视频场景下,服务器到用户的网络传输时延应该控制在50ms以内。
音视频场景下大部分用户都使用移动端,对于4G网络网络接入时延一般在20ms左右。此时留给固网传输时延的时间在30ms以内。
下面是阿里云不同地域服务器到覆国内不同省份的固网时延图。
在音视频场景下,在4G时代,要想给用户提供很好的用户体验,要考虑音视频服务器多地域部署。比如用阿里云北京Region覆盖京津冀经济区,用阿里云上海Region覆盖长三角地区,用阿里云深圳Region覆盖珠三角经济区,用阿里云成都Region覆盖西三角经济区。
在5G场景下,可以将网络接入时延从20ms降低到1ms。此时留给固网的传输时延可以从30ms变为50ms。这将很大程度上简化应用的部署架构,从理论上可以实现音视频服务器从多地域部署变为单地域部署。
实时竞技类游戏的端到端时延最好能控制在50ms以内,如果是在100ms以内也可以接受。
如果按端到端时延100ms来考虑,给游戏的前端和后端的应用层时延分配50ms。此时留给网络层的时延也变成了50ms。游戏场景下主要是用户和游戏服务器进行交互。此时要求游戏服务器到用户的网络层时延在50ms以内。
考虑到当前4G场景下,网络接入时延约20ms,此时留给固网传输时延的时间在30ms以内。在这种场景下和上面的实时音视频的应用部署架构要求基本一致了。
所以在4G场景下,对于实时竞技类游戏,需要多地域部署。可以考虑用阿里云北京Region覆盖京津冀经济区,用阿里云上海Region覆盖长三角地区,用阿里云深圳Region覆盖珠三角经济区,用阿里云成都Region覆盖西三角经济区。
实时竞技类游戏的端到端时延最好能控制在100ms以内,如果是在150ms以内也可以接受。
如果按端到端时延150ms来考虑,给游戏的前端和后端的应用层时延分配50ms。此时留给网络层的时延也变成了100ms。游戏场景下主要是用户和游戏服务器进行交互。此时要求游戏服务器到用户的网络层时延在100ms以内。
100ms的网络层传输时延是一个很宽松的要求,基本上用阿里云一个地域的服务器即可达到很好的覆盖效果。
所以对于实时交互类游戏应用,选择阿里云的一个地域部署应用即可。
电商类的应用的实时交互相对来讲不是太多,对端到端的时延能控制在300ms以内就能满足要求了。而电商应用后端和前端处理逻辑也相对来讲时延消耗也不是太多,给应用层处理时延分配100ms的话,网络层的时延还有200ms。
所以对于电商类的应用,单纯从时延的角度考虑,选择阿里云的一个地域部署应用即可。不过电商类的应用一般情况下对可靠性要求都比较高,综合考虑容灾和高可靠,还是建议多地域高靠部署。
时延是一个影响用户体验的关键指标,在一定程度上也能比较好的反应网络质量,如何有效的度量时延也变得很关键。
如果想进行点到点的时延测量,那么最简单最使用的就是ICMP Ping了。
通过ICMP Ping可以获取点到点的双向时延数据。
如果要想进行点到多点的时延测量,这种业界一般叫网络拨测。对于网络拨测阿里云也有比较成熟的产品化工具。
https://zijian.aliyun.com/detect/ping
通过阿里云的实时拨测工具,只需要输入IP或域名,就可以直接发起全国的探针对目标域名或IP的实时探测,2分钟就会出现全量的结果并以图形化方式呈现。
如果希望对应用持续进行网络质量的监控,如果出现故障后能否发送告警到具体的负责人,这种场景下阿里云对应的工具是云监控的站点监控,地址:
https://cloudmonitor.console.aliyun.com/index.htm#/newSite/list/
当前站点监控的探针基本上已经覆盖了中国内地的90%以上的省份和运营商。
告警规则的定义也比较灵活,而且可以将告警以邮件,电话,短信,钉钉机器人的方式发送。
作者:秋光