應(yīng)用部署架構(gòu):如何降低云網(wǎng)絡(luò)時延?
什么是時延?在電信系統(tǒng)中,不同應(yīng)用對時延的要求是怎樣的?如何通過部署架構(gòu)降低網(wǎng)絡(luò)傳輸時延?本文通過介紹云網(wǎng)絡(luò)時延的構(gòu)成,并對其進行量化分析,分享在不同云網(wǎng)絡(luò)時延要求下,不同應(yīng)用對應(yīng)的部署架構(gòu),并簡單分析了5G時代對應(yīng)用部署架構(gòu)的影響和度量云網(wǎng)絡(luò)時延的工具。
在討論云網(wǎng)絡(luò)時延這個看起來比較專業(yè)的話題前,先看幾個比較有意思的問題:
- 人的最快反應(yīng)速度是多少毫秒?
- 機器人最快反應(yīng)速度是多少毫秒?
這樣能在介紹云網(wǎng)絡(luò)時延時讓大家有一個時間量級上的感知。
一 什么是時延
1 人體能感知的時延量級
- 搶紅包時,為什么總是別人能搶到?
- 搶爆品好貨時,為什么別人扣的1總在你前面?
- 游戲?qū)?zhàn)時,為什么總感覺比對手慢了半拍?
這些是人能明顯感知到的時延,這些時延量級在毫秒級(1秒=1000毫秒)。
應(yīng)激反應(yīng)
確切的說是人接受到外部刺激而做出反應(yīng),這個時延一般公認(rèn)的極限是100ms。
大家可以在humanbenchmark這個網(wǎng)站測試一下自己的反應(yīng)時間是多少ms,快的能到200ms左右,慢一點的就到三四百毫秒了。
機械反應(yīng)
人體連續(xù)機械反應(yīng)的極限,一般公認(rèn)的極限是50ms。
游戲玩家“高橋名人”一秒點擊按鍵16次,是當(dāng)前無法超越的奇跡,折合每次反應(yīng)的平均時間是62.5毫秒。中國玩家熟悉的冒險島游戲的主角就是高橋名人。
2 機器能感知的時延量級
自動駕駛
特斯拉的完全自動駕駛芯片,每秒可完成144萬億次的計算,能同時處理每秒2,300幀的圖像,結(jié)合本地的車載的神經(jīng)網(wǎng)絡(luò)系統(tǒng),發(fā)現(xiàn)異常并處理的時延可以做在0.5ms左右,是人類識別外界異常并做出反應(yīng)的速度的200倍。
工業(yè)制造
對于純機械的反應(yīng),機器的速度就更快了,ABB的機器人在50秒以內(nèi)可以裝配出一量有5千多個零部件的汽車,是100年前福特流水線手工裝配速度的1000倍。
整體上看,在機器的世界里時延和速度的單位是零點幾毫秒,在人的世界里時延和速度的單位是零點幾秒。
二 不同應(yīng)用對時延的要求
1 面向用戶的應(yīng)用時延
下面這個表是電信系統(tǒng)中對不同應(yīng)用業(yè)務(wù)的分類以及不同應(yīng)用對時延和丟包的需求。
總結(jié)下來:
- 實時競技類游戲的時延要求是50ms
- 實時交互類游戲的時延要求是100ms
- 實時交互語音類的時延要求是100ms
- 實時交互視頻類的時延要求是150ms
- 非實時大部分互聯(lián)網(wǎng)應(yīng)用時延要求是300ms
上面的標(biāo)準(zhǔn)是優(yōu)秀的標(biāo)準(zhǔn),如果時延增加50ms,則是及格線。
2 面向機器的應(yīng)用的時延
5G場景下有對超低時延應(yīng)用場景的劃分。5G的超低時延場景,主要是面向車聯(lián)網(wǎng),物聯(lián)網(wǎng)和工業(yè)互聯(lián)網(wǎng)。
- 工業(yè)自動化控制的時延要求是小于10ms
- 遠(yuǎn)程/遙控駕駛的時延要求是小于10ms
- 遠(yuǎn)程超聲波檢測的時延要求是小于10ms
整體上看,如果滿足面向機器的超低時延應(yīng)用,需要將雙向時延控制在10ms以內(nèi)。
對于僅涉及到數(shù)據(jù)中心內(nèi)部或數(shù)據(jù)中心間的機器之間的通信,比證券和期貨行業(yè)的高頻交易,這種網(wǎng)絡(luò)延遲甚至要求小于1ms。
三 端到端的時延構(gòu)成
上面提到的不同應(yīng)用的時延要求都是端到端的雙向時延,根據(jù)應(yīng)用的不同這個端到端可能是用戶端和服務(wù)器端,也可能是用戶端和用戶端之間。
端到端的時延包括應(yīng)用處理時延和網(wǎng)絡(luò)傳輸時延。
1 網(wǎng)絡(luò)層傳輸時延
網(wǎng)絡(luò)層傳輸時延指的是數(shù)據(jù)包的傳輸時延,比如數(shù)據(jù)包從手機發(fā)出到服務(wù)器接收,再從服務(wù)器發(fā)送到被終端接收。
網(wǎng)絡(luò)傳輸時延包括網(wǎng)絡(luò)接入時延、固網(wǎng)傳輸時延和數(shù)據(jù)中心內(nèi)部網(wǎng)絡(luò)時延。
對于用戶從家庭寬帶的固定網(wǎng)絡(luò)訪問云端的應(yīng)用來說,整個端到端的時延構(gòu)成如下:
- 用戶終端接入到家庭路由器,如果通過WiFi方式,在WiFi接入用戶較少,輕負(fù)載的情況下時延一般在5-15ms左右,通過網(wǎng)線方式一般小于1ms。
- 家庭路由器的WAN口連接到運營商的本地固網(wǎng),從本地固網(wǎng)到運營商骨干網(wǎng)再到阿里云數(shù)據(jù)中心,視距離的長短,國內(nèi)的網(wǎng)絡(luò)時延在1到100ms不等。
- 到阿里云數(shù)據(jù)中心后,數(shù)據(jù)中心內(nèi)部的時延一般小于2ms。
如果用戶的終端通過4G或5G接入網(wǎng)絡(luò),整個端到端的時延構(gòu)成會稍微復(fù)雜一些。
- 4G的終端到基站的空口時延一般在10到20ms左右。
- 5G的終端到基站的空口時延降低到了1ms。
- 基站到核心網(wǎng)的時延和物理距離強相關(guān),時延在1到15ms不等。
- 核心網(wǎng)的互聯(lián)網(wǎng)出口會連接到本地固網(wǎng)。
- 從本地固網(wǎng)到運營商骨干網(wǎng)再到阿里云數(shù)據(jù)中心,視距離的長短,網(wǎng)絡(luò)時延在1到100ms不等。
- 到阿里云數(shù)據(jù)中心后,數(shù)據(jù)中心內(nèi)部的時延一般小于2ms。
2 應(yīng)用層處理時延
應(yīng)用層時延包含用戶前端的終端上的應(yīng)用處理時延和后端的服務(wù)器上的應(yīng)用處理時延。
應(yīng)用層處理時延根據(jù)不同的應(yīng)用差異比較大,有的在10ms以內(nèi),有的則大于100 ms。比如說搶紅包,買商品之類的簡單交互類應(yīng)用,主要是一些數(shù)據(jù)包的交互,這種的應(yīng)用層處理時延先對較少,很多在10ms以內(nèi)。
- 對于工業(yè)互聯(lián)網(wǎng)類的應(yīng)用,主要也時控制類的報文的交互,應(yīng)用層處理時延會更小,很多在5ms以內(nèi)。
- 對于游戲類的應(yīng)用,主要是終端向游戲服務(wù)器發(fā)送各種指令,另外一個方向是終端收到服務(wù)的數(shù)據(jù)后展示給用戶。這種類型的應(yīng)用的應(yīng)用層處理時間比較適中,一般在30ms以內(nèi)。終端發(fā)送指令時延很短,很多時候可以小于1ms,在服務(wù)器側(cè)的游戲處理邏輯情況下也很快,一般在5ms內(nèi)都能處理完,用戶終端收到游戲服務(wù)器的數(shù)據(jù)后通過渲染將畫面呈現(xiàn)給用戶,這個應(yīng)用層的渲染過程會稍微耗時一些,根據(jù)用戶終端的處理性能,游戲的炫酷程度,處理時延在5到30ms之間不等。整體上游戲場景下的應(yīng)用層處理時延在10到30ms。
- 而涉及到音視頻領(lǐng)域的應(yīng)用層處理時延一般會比較高,主要是涉及到外設(shè)的音視頻采集,音視頻編解碼,降噪和渲染等信號處理。業(yè)界比較成熟的音視頻平臺的應(yīng)用層端到端時延一般可以控制在100ms以內(nèi)。
四 從時延角度看應(yīng)用部署架構(gòu)
1 工業(yè)互聯(lián)網(wǎng)類的應(yīng)用部署架構(gòu)
工業(yè)互聯(lián)網(wǎng)類的應(yīng)用的實時性要求一般都比較高,很多要求端到端時延在10ms左右。
減去應(yīng)用層的5ms左右的處理時延,留給網(wǎng)絡(luò)層的處理時延也就5ms了。
前面提到了網(wǎng)絡(luò)層的時延包括網(wǎng)絡(luò)接入時延、固網(wǎng)傳輸時延和數(shù)據(jù)中心內(nèi)部網(wǎng)絡(luò)時延:
- 4G網(wǎng)絡(luò)的網(wǎng)絡(luò)接入時延一般在20ms左右,這種顯然滿足不了工業(yè)互聯(lián)網(wǎng)的需求。
- 固網(wǎng)網(wǎng)線接入時延一般小于1ms,所以很多工業(yè)互聯(lián)網(wǎng)場景的設(shè)備時通過固網(wǎng)網(wǎng)線連接的。在5G時代,網(wǎng)絡(luò)接入時延可以在1ms以內(nèi),可以把之前固定的設(shè)備無線化。
- 對于數(shù)據(jù)中心內(nèi)部處理時延,一般小型數(shù)據(jù)中心內(nèi)部時延都小于1ms,超大型數(shù)據(jù)中心內(nèi)部會大于1ms,但一般也會小于2ms。
如果按網(wǎng)絡(luò)接入時延1ms,數(shù)據(jù)中心內(nèi)部時延1ms,留給固網(wǎng)傳輸時延就3ms了。固網(wǎng)的1ms雙向傳輸時延,代表光纖距離是100km。
這就要求在工業(yè)互聯(lián)網(wǎng)場景下云數(shù)據(jù)中心要盡可能的靠近工業(yè)園區(qū),基本上不能跨城。
在這種場景下用戶可以選擇的應(yīng)用部署架構(gòu)包括阿里云云盒本地部署,阿里云混合云本地部署。
2 實時音視頻類應(yīng)用部署架構(gòu)
實時音視頻類應(yīng)用的特點是應(yīng)用層處理時延較多,業(yè)界先進的音視頻平臺可以做到100ms以內(nèi)。
實時音視頻類的端到端的時延如前文所述端到端時延最好能控制在150ms以內(nèi),如果是在200ms以內(nèi)也可以接受。
此時留給網(wǎng)絡(luò)層的時延最多也就100ms。
而實時音視頻應(yīng)用的特點是兩個用戶終端通信,在這種場景下實際上是兩個用戶的流量是通過音視頻服務(wù)器連接起來的,所以實際路徑是:用戶1 <—> 音視頻服務(wù)器 <-> 用戶2。
所以在音視頻場景下,服務(wù)器到用戶的網(wǎng)絡(luò)傳輸時延應(yīng)該控制在50ms以內(nèi)。
音視頻場景下大部分用戶都使用移動端,對于4G網(wǎng)絡(luò)網(wǎng)絡(luò)接入時延一般在20ms左右。此時留給固網(wǎng)傳輸時延的時間在30ms以內(nèi)。
下面是阿里云不同地域服務(wù)器到覆國內(nèi)不同省份的固網(wǎng)時延圖。
??
在音視頻場景下,在4G時代,要想給用戶提供很好的用戶體驗,要考慮音視頻服務(wù)器多地域部署。比如用阿里云北京Region覆蓋京津冀經(jīng)濟區(qū),用阿里云上海Region覆蓋長三角地區(qū),用阿里云深圳Region覆蓋珠三角經(jīng)濟區(qū),用阿里云成都Region覆蓋西三角經(jīng)濟區(qū)。
在5G場景下,可以將網(wǎng)絡(luò)接入時延從20ms降低到1ms。此時留給固網(wǎng)的傳輸時延可以從30ms變?yōu)?0ms。這將很大程度上簡化應(yīng)用的部署架構(gòu),從理論上可以實現(xiàn)音視頻服務(wù)器從多地域部署變?yōu)閱蔚赜虿渴稹?/p>
??
3 實時競技游戲類應(yīng)用部署架構(gòu)
實時競技類游戲的端到端時延最好能控制在50ms以內(nèi),如果是在100ms以內(nèi)也可以接受。
如果按端到端時延100ms來考慮,給游戲的前端和后端的應(yīng)用層時延分配50ms。此時留給網(wǎng)絡(luò)層的時延也變成了50ms。游戲場景下主要是用戶和游戲服務(wù)器進行交互。此時要求游戲服務(wù)器到用戶的網(wǎng)絡(luò)層時延在50ms以內(nèi)。
考慮到當(dāng)前4G場景下,網(wǎng)絡(luò)接入時延約20ms,此時留給固網(wǎng)傳輸時延的時間在30ms以內(nèi)。在這種場景下和上面的實時音視頻的應(yīng)用部署架構(gòu)要求基本一致了。
所以在4G場景下,對于實時競技類游戲,需要多地域部署。可以考慮用阿里云北京Region覆蓋京津冀經(jīng)濟區(qū),用阿里云上海Region覆蓋長三角地區(qū),用阿里云深圳Region覆蓋珠三角經(jīng)濟區(qū),用阿里云成都Region覆蓋西三角經(jīng)濟區(qū)。
在5G大規(guī)模部署的場景下,可以考慮單個地域部署。
4 實時交互類應(yīng)用部署架構(gòu)
實時競技類游戲的端到端時延最好能控制在100ms以內(nèi),如果是在150ms以內(nèi)也可以接受。
如果按端到端時延150ms來考慮,給游戲的前端和后端的應(yīng)用層時延分配50ms。此時留給網(wǎng)絡(luò)層的時延也變成了100ms。游戲場景下主要是用戶和游戲服務(wù)器進行交互。此時要求游戲服務(wù)器到用戶的網(wǎng)絡(luò)層時延在100ms以內(nèi)。
100ms的網(wǎng)絡(luò)層傳輸時延是一個很寬松的要求,基本上用阿里云一個地域的服務(wù)器即可達到很好的覆蓋效果。
??
所以對于實時交互類游戲應(yīng)用,選擇阿里云的一個地域部署應(yīng)用即可。
5 電商類應(yīng)用部署架構(gòu)
電商類的應(yīng)用的實時交互相對來講不是太多,對端到端的時延能控制在300ms以內(nèi)就能滿足要求了。而電商應(yīng)用后端和前端處理邏輯也相對來講時延消耗也不是太多,給應(yīng)用層處理時延分配100ms的話,網(wǎng)絡(luò)層的時延還有200ms。
200ms的網(wǎng)絡(luò)層傳輸時延是一個更寬松的指標(biāo)。
所以對于電商類的應(yīng)用,單純從時延的角度考慮,選擇阿里云的一個地域部署應(yīng)用即可。不過電商類的應(yīng)用一般情況下對可靠性要求都比較高,綜合考慮容災(zāi)和高可靠,還是建議多地域高靠部署。
五 如何度量時延
時延是一個影響用戶體驗的關(guān)鍵指標(biāo),在一定程度上也能比較好的反應(yīng)網(wǎng)絡(luò)質(zhì)量,如何有效的度量時延也變得很關(guān)鍵。
下面簡單介紹幾種比較有效的度量時延的工具和產(chǎn)品。
1 Ping
如果想進行點到點的時延測量,那么最簡單最使用的就是ICMP Ping了。
通過ICMP Ping可以獲取點到點的雙向時延數(shù)據(jù)。
如果要想進行點到多點的時延測量,這種業(yè)界一般叫網(wǎng)絡(luò)撥測。對于網(wǎng)絡(luò)撥測阿里云也有比較成熟的產(chǎn)品化工具。
2 實時撥測
當(dāng)前阿里云比較好用的網(wǎng)絡(luò)實時撥測工具的鏈接如下:https://zijian.aliyun.com/detect/ping
當(dāng)前這個撥測工具是免費的。
通過阿里云的實時撥測工具,只需要輸入IP或域名,就可以直接發(fā)起全國的探針對目標(biāo)域名或IP的實時探測,2分鐘就會出現(xiàn)全量的結(jié)果并以圖形化方式呈現(xiàn)。
3 持續(xù)撥測
如果希望對應(yīng)用持續(xù)進行網(wǎng)絡(luò)質(zhì)量的監(jiān)控,如果出現(xiàn)故障后能否發(fā)送告警到具體的負(fù)責(zé)人,這種場景下阿里云對應(yīng)的工具是云監(jiān)控的站點監(jiān)控,地址:https://cloudmonitor.console.aliyun.com/index.htm#/newSite/list/
站點監(jiān)控支持自定義探針和告警規(guī)則。
當(dāng)前站點監(jiān)控的探針基本上已經(jīng)覆蓋了中國內(nèi)地的90%以上的省份和運營商。
告警規(guī)則的定義也比較靈活,而且可以將告警以郵件,電話,短信,釘釘機器人的方式發(fā)送。
六 總結(jié)
- 不同的應(yīng)用對于端到端的時延要求不同,對應(yīng)的應(yīng)用的部署架構(gòu)也不一樣。
- 端到端的時延包含應(yīng)用層處理時延和網(wǎng)絡(luò)層傳輸時延。
- 應(yīng)用層處理時延一般情況下不太好優(yōu)化,網(wǎng)絡(luò)層傳輸時延可以通過部署架構(gòu)優(yōu)化的方式降低。
- 網(wǎng)絡(luò)層傳輸時延包括網(wǎng)絡(luò)接入時延、固網(wǎng)傳輸時延和云數(shù)據(jù)中心內(nèi)網(wǎng)絡(luò)時延。
- 通過將應(yīng)用部署到靠近用戶的位置,可以有效的降低固網(wǎng)傳輸時延。
- 5G主要優(yōu)化的是網(wǎng)絡(luò)接入時延,在5G普及后對實時音視頻、實時競技游戲類應(yīng)用部署架構(gòu)的簡化會比較有幫助。
- 度量固網(wǎng)傳輸時延可以使用比較成熟的實時撥測和持續(xù)撥測工具。