開發與維運

從雲網絡時延看應用部署架構

在引出雲網絡時延這看起來比較專業的話題前,先看幾個比較有意思的問題。
人的最快反應速度是多少毫秒?
機器人最快反應速度是多少毫秒?
這樣能在介紹雲網絡時延時讓大家有一個時間量級上的感知。

什麼是時延

人體能感知的時延量級

搶紅包時,為什麼總是別人能搶到?
搶爆品好貨時,為什麼別人扣的1總在你前面?
遊戲對戰時,為什麼總感覺比對手慢了半拍?
這些是人能明顯感知到的時延,這些時延量級在毫秒級(1秒=1000毫秒)。

應激反應

確切的說人類接受到外部刺激而做出反應,這個時延一般公認的極限是100ms

應激反應時延

大家可以在humanbenchmark這個網站測試一下自己的反應時間是多少ms,快的能到200ms左右,慢一點的就到三四百毫秒了。
image.png

機械反應

人體連續機械反應的極限,一般公認的極限是50ms
遊戲玩家“高橋名人”一秒點擊按鍵16次,是當前無法超越的奇蹟,摺合每次反應的平均時間是62.5毫秒。中國玩家熟悉的冒險島遊戲的主角就是高橋名人。

image.png

機器能感知的時延量級

自動駕駛

特斯拉的完全自動駕駛芯片,每秒可完成144萬億次的計算,能同時處理每秒2,300幀的圖像,結合本地的車載的神經網絡系統,發現異常並處理的時延可以做在0.5ms左右,是人類識別外界異常並做出反應的速度的200倍
image.png

工業製造

對於純機械的反應,機器的速度就更快了,ABB的機器人在50秒以內可以裝配出一量有5千多個零部件的汽車,是100年前福特流水線手工裝配速度的1000倍
image.png

整體上看,在機器的世界裡時延和速度的單位是零點幾毫秒,在人的世界裡時延和速度的單位是零點幾秒

不同應用對時延的要求

面向用戶的應用時延

下面這個表是電信系統中對不用應用業務的分類以及不同應用對時延和丟包的需求。

image.png

總結下來:
1.實時競技類遊戲的時延要求是50ms
2.實時交互類遊戲的時延要求是100ms
3.實時交互語音類的時延要求是100ms
4.實時交互視頻類的時延要求是150ms
5.非實時大部分互聯網應用時延要求是300ms

上面的標準是優秀的標準,如果時延增加50ms,則是及格線。

面向機器的應用的時延

5G場景下有對超低時延應用場景的劃分。5G的超低時延場景,主要是面向車聯網,物聯網和工業互聯網。
1.工業自動化控制的時延要求是小於10ms
2.遠程/遙控駕駛的時延要求是小於10ms
3.遠程超聲波檢測的時延要求是小於10ms

整體上看,如果滿足面向機器的超低時延應用,需要將雙向時延控制在10ms以內。
對於僅涉及到數據中心內部或數據中心間的機器之間的通信,比證券和期貨行業的高頻交易,這種網絡延遲甚至要求小於1ms。

端到端的時延構成

上面提到的不同應用的時延要求都是端到端的雙向時延,根據應用的不同這個端到端可能時用戶端和服務器端,也可能是用戶端和用戶端之間。
端到端的時延包括應用處理時延和網絡傳輸時延。

網絡層傳輸時延

網絡層傳輸時延指的是數據包的傳輸時延,比如數據包從手機發出到服務器接收,再從服務器發送到被終端接收。
網絡傳輸時延包括網絡接入時延,固網傳輸時延,數據中心內部網絡時延。

對於用戶從家庭寬帶的固定網絡來訪問雲端的應用來說,整個端到端的時延構成如下。
image.png

用戶終端接入到家庭路由器,如果通過WiFi方式,在WiFi接入用戶較少,輕負載的情況下時延一般在5-15ms左右,通過網線方式一般小於1ms。
家庭路由器的WAN口連接到運營商的本地固網,從本地固網到運營商骨幹網再到阿里雲數據中心,視距離的長短,網絡時延在1到100ms不等。
到阿里雲數據中心後,數據中心內部的時延一般小於2ms。

如果用戶的終端通過4G或5G接入網絡,整個端到端的時延構成會稍微複雜一些。

image.png
4G的終端到基站的空口時延一般在10到20ms左右。
5G的終端到基站的空口時延降低到了1ms。
基站到核心網的時延和物理距離強相關,時延在1到15ms不等。
核心網的互聯網出口會連接到本地固網。
從本地固網到運營商骨幹網再到阿里雲數據中心,視距離的長短,網絡時延在1到100ms不等。
到阿里雲數據中心後,數據中心內部的時延一般小於2ms。

應用層處理時延

應用層時延包含用戶前端的終端上的應用處理時延和後端的服務器上的應用處理時延。
應用層處理時延根據不同的應用差異比較大,有的在10ms以內,有的則大於100 ms。
比如說搶紅包,買商品之類的簡單交互類應用,主要是一些數據包的交互,這種的應用層處理時延先對較少,很多在10ms以內。

image.png

對於工業互聯網類的應用,主要也時控制類的報文的交互,應用層處理時延會更小,很多在5ms以內。

對於遊戲類的應用,主要是終端向遊戲服務器發送各種指令,另外一個方向是終端收到服務的數據後展示給用戶。這種類型的應用的應用層處理時間比較適中,一般在30ms以內。
終端發送指令時延很短,很多時候可以小於1ms,在服務器側的遊戲處理邏輯情況下也很快,一般在5ms內都能處理完,用戶終端收到遊戲服務器的數據後通過渲染將畫面呈現給用戶,這個應用層的渲染過程會稍微耗時一些,根據用戶終端的處理性能,遊戲的炫酷程度,處理時延在5到30ms之間不等。整體上遊戲場景下的應用層處理時延在10到30ms。
image.png

而涉及到音視頻領域的應用層處理時延一般會比較高,主要是涉及到外設的音視頻採集,音視頻編解碼,降噪和渲染等信號處理。業界比較成熟的音視頻平臺的應用層端到端時延一般可以控制在100ms以內。

image.png

從時延角度看應用部署架構

工業互聯網類的應用部署架構

工業互聯網類的應用的實時性要求一般都比較高,很多要求端到端時延在10ms左右。

image.png

減去應用層的5ms左右的處理時延,留給網絡層的處理時延也就5ms了。
前面提到了網絡層的時延包括網絡接入時延,固網傳輸時延,數據中心內部網絡時延。
4G網絡的網絡接入時延一般在20ms左右,這種顯然滿足不了工業互聯網的需求。固網網線接入時延一般小於1ms,所以很多工業互聯網場景的設備時通過固網網線連接的。在5G時代,網絡接入時延可以在1ms以內,可以把之前固定的設備無線化。
對於數據中心內部處理時延,一般小型數據中心內部時延都小於1ms,超大型數據中心內部會大於1ms,但一般也會小於2ms。
如果按網絡接入時延1ms,數據中心內部時延1ms,留給固網傳輸時延就3ms了。固網的1ms雙向傳輸時延,代表光纖距離是100km。

這就要求在工業互聯網場景下雲數據中心要儘可能的靠近工業園區,基本上不能跨城。
在這種場景下用戶可以選擇的應用部署架構包括阿里云云盒本地部署,阿里雲混合雲本地部署。

實時音視頻類應用部署架構

實時音視頻類應用的特點是應用層處理時延較多,業界先進的音視頻平臺可以做到100ms以內。
實時音視頻類的端到端的時延如前文所述端到端時延最好能控制在150ms以內,如果是在200ms以內也可以接受。
此時留給網絡層的時延最多也就100ms。
而實時音視頻應用的特點是兩個用戶終端通信,在這種場景下實際上是兩個用戶的流量是通過音視頻服務器連接起來的,所以實際路徑是用戶1<—>音視頻服務器<->用戶2。

image.png

所以在音視頻場景下,服務器到用戶的網絡傳輸時延應該控制在50ms以內。
音視頻場景下大部分用戶都使用移動端,對於4G網絡網絡接入時延一般在20ms左右。此時留給固網傳輸時延的時間在30ms以內。
下面是阿里雲不同地域服務器到覆國內不同省份的固網時延圖。

image.png

image.png

image.png

image.png

在音視頻場景下,在4G時代,要想給用戶提供很好的用戶體驗,要考慮音視頻服務器多地域部署。比如用阿里雲北京Region覆蓋京津冀經濟區,用阿里雲上海Region覆蓋長三角地區,用阿里雲深圳Region覆蓋珠三角經濟區,用阿里雲成都Region覆蓋西三角經濟區。

在5G場景下,可以將網絡接入時延從20ms降低到1ms。此時留給固網的傳輸時延可以從30ms變為50ms。這將很大程度上簡化應用的部署架構,從理論上可以實現音視頻服務器從多地域部署變為單地域部署。
image.png

實時競技遊戲類應用部署架構

實時競技類遊戲的端到端時延最好能控制在50ms以內,如果是在100ms以內也可以接受。
如果按端到端時延100ms來考慮,給遊戲的前端和後端的應用層時延分配50ms。此時留給網絡層的時延也變成了50ms。遊戲場景下主要是用戶和遊戲服務器進行交互。此時要求遊戲服務器到用戶的網絡層時延在50ms以內。

image.png

考慮到當前4G場景下,網絡接入時延約20ms,此時留給固網傳輸時延的時間在30ms以內。在這種場景下和上面的實時音視頻的應用部署架構要求基本一致了。
所以在4G場景下,對於實時競技類遊戲,需要多地域部署。可以考慮用阿里雲北京Region覆蓋京津冀經濟區,用阿里雲上海Region覆蓋長三角地區,用阿里雲深圳Region覆蓋珠三角經濟區,用阿里雲成都Region覆蓋西三角經濟區。
在5G大規模部署的場景下,可以考慮單個地域部署。

實時交互類應用部署架構

實時競技類遊戲的端到端時延最好能控制在100ms以內,如果是在150ms以內也可以接受。
如果按端到端時延150ms來考慮,給遊戲的前端和後端的應用層時延分配50ms。此時留給網絡層的時延也變成了100ms。遊戲場景下主要是用戶和遊戲服務器進行交互。此時要求遊戲服務器到用戶的網絡層時延在100ms以內。
100ms的網絡層傳輸時延是一個很寬鬆的要求,基本上用阿里雲一個地域的服務器即可達到很好的覆蓋效果。

image.png

所以對於實時交互類遊戲應用,選擇阿里雲的一個地域部署應用即可。

電商類應用部署架構

電商類的應用的實時交互相對來講不是太多,對端到端的時延能控制在300ms以內就能滿足要求了。而電商應用後端和前端處理邏輯也相對來講時延消耗也不是太多,給應用層處理時延分配100ms的話,網絡層的時延還有200ms。
200ms的網絡層傳輸時延是一個更寬鬆的指標。

image.png


所以對於電商類的應用,單純從時延的角度考慮,選擇阿里雲的一個地域部署應用即可。不過電商類的應用一般情況下對可靠性要求都比較高,綜合考慮容災和高可靠,還是建議多地域高靠部署。

如何度量時延

時延是一個影響用戶體驗的關鍵指標,在一定程度上也能比較好的反應網絡質量,如何有效的度量時延也變得很關鍵。
下面簡單介紹幾種比較有效的度量時延的工具和產品。

Ping

如果想進行點到點的時延測量,那麼最簡單最使用的就是ICMP Ping了。
image.png

通過ICMP Ping可以獲取點到點的雙向時延數據。

如果要想進行點到多點的時延測量,這種業界一般叫網絡撥測。
對於網絡撥測阿里雲也有比較成熟的產品化工具。

實時撥測

當前阿里雲比較好用的網絡實時撥測工具的鏈接如下:
https://zijian.aliyun.com/detect/ping
當前這個撥測工具是免費的。
image.png

通過阿里雲的實時撥測工具,只需要輸入IP或域名,就可以直接發起全國的探針對目標域名或IP的實時探測,2分鐘就會出現全量的結果並以圖形化方式呈現。

持續撥測

如果希望對應用持續進行網絡質量的監控,如果出現故障後能否發送告警到具體的負責人,這種場景下阿里雲對應的產品是,雲監控的站點監控。
https://cloudmonitor.console.aliyun.com/index.htm#/newSite/list/

image.png

站點監控支持自定義探針和告警規則。
當前站點監控的探針基本上已經覆蓋了中國內地的90%以上的省份和運營商。
告警規則的定義也比較靈活,而且可以將告警以郵件,電話,短信,釘釘機器人的方式發送。

image.png

總結

不同的應用對於端到端的時延要求不同,對應的應用的部署架構也不一樣。
端到端的時延包含應用層處理時延和網絡層傳輸時延。
應用層處理時延一般情況下不太好優化,網絡層傳輸時延可以通過部署架構優化的方式降低。
網絡層傳輸時延包括網絡接入時延,固網傳輸時延和雲數據中心內網絡時延。
通過將應用部署到靠近用戶的位置,可以有效的降低固網傳輸時延。
5G主要優化的是網絡接入時延,在5G普及後對實時音視頻,實時競技遊戲類應用部署架構的簡化會比較有幫助。
度量固網傳輸時延可以使用比較成熟的實時撥測和持續撥測工具。

Leave a Reply

Your email address will not be published. Required fields are marked *