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