在引出雲網絡時延這看起來比較專業的話題前,先看幾個比較有意思的問題。
人的最快反應速度是多少毫秒?
機器人最快反應速度是多少毫秒?
這樣能在介紹雲網絡時延時讓大家有一個時間量級上的感知。
什麼是時延
人體能感知的時延量級
搶紅包時,為什麼總是別人能搶到?
搶爆品好貨時,為什麼別人扣的1總在你前面?
遊戲對戰時,為什麼總感覺比對手慢了半拍?
這些是人能明顯感知到的時延,這些時延量級在毫秒級(1秒=1000毫秒)。
應激反應
確切的說人類接受到外部刺激而做出反應,這個時延一般公認的極限是100ms。
大家可以在humanbenchmark這個網站測試一下自己的反應時間是多少ms,快的能到200ms左右,慢一點的就到三四百毫秒了。
機械反應
人體連續機械反應的極限,一般公認的極限是50ms。
遊戲玩家“高橋名人”一秒點擊按鍵16次,是當前無法超越的奇蹟,摺合每次反應的平均時間是62.5毫秒。中國玩家熟悉的冒險島遊戲的主角就是高橋名人。
機器能感知的時延量級
自動駕駛
特斯拉的完全自動駕駛芯片,每秒可完成144萬億次的計算,能同時處理每秒2,300幀的圖像,結合本地的車載的神經網絡系統,發現異常並處理的時延可以做在0.5ms左右,是人類識別外界異常並做出反應的速度的200倍。
工業製造
對於純機械的反應,機器的速度就更快了,ABB的機器人在50秒以內可以裝配出一量有5千多個零部件的汽車,是100年前福特流水線手工裝配速度的1000倍。
整體上看,在機器的世界裡時延和速度的單位是零點幾毫秒,在人的世界裡時延和速度的單位是零點幾秒
不同應用對時延的要求
面向用戶的應用時延
下面這個表是電信系統中對不用應用業務的分類以及不同應用對時延和丟包的需求。
總結下來:
1.實時競技類遊戲的時延要求是50ms
2.實時交互類遊戲的時延要求是100ms
3.實時交互語音類的時延要求是100ms
4.實時交互視頻類的時延要求是150ms
5.非實時大部分互聯網應用時延要求是300ms
如果雙向時延能控制在50ms以內,能滿足絕大多數面向用戶業務的時延要求
面向機器的應用的時延
5G場景下有對超低時延應用場景的劃分。5G的超低時延場景,主要是面向車聯網,物聯網和工業互聯網。
1.工業自動化控制的時延要求是小於10ms
2.遠程/遙控駕駛的時延要求是小於10ms
3.遠程超聲波檢測的時延要求是小於10ms
整體上看,如果滿足面向機器的超低時延應用,需要將雙向時延控制在10ms以內。
對於僅涉及到數據中心內部或數據中心間的機器之間的通信,比證券和期貨行業的高頻交易,這種網絡延遲甚至要求小於1ms。
端到端的時延構成
上面提到的不同應用的時延要求都是端到端的雙向時延。
對於用戶從家庭寬帶的固定網絡來訪問雲端的應用來說,整個端到端的時延構成如下。
用戶終端接入到家庭路由器,如果通過WiFi方式,在WiFi接入用戶較少,輕負載的情況下時延一般在5-15ms左右,通過網線方式一般小於1ms。
家庭路由器的WAN口連接到運營商的本地固網,從本地固網到運營商骨幹網再到阿里雲數據中心,視距離的長短,網絡時延在1到100ms不等。
到阿里雲數據中心後,數據中心內部的時延一般小於2ms。
如果用戶的終端通過4G或5G接入網絡,整個端到端的時延構成會稍微複雜一些。
4G的終端到基站的空口時延一般在10到20ms左右。
5G的終端到基站的空口時延降低到了1ms。
基站到核心網的時延和物理距離強相關,時延在1到15ms不等。
核心網的互聯網出口會連接到本地固網。
從本地固網到運營商骨幹網再到阿里雲數據中心,視距離的長短,網絡時延在1到100ms不等。
到阿里雲數據中心後,數據中心內部的時延一般小於3ms。
總結下來,如果要搶紅包,搶爆品,打對戰遊戲,用電腦連網線的方式最快,其次是家庭WiFi,最後是4G或5G
如何降低時延
從上面的時延構成看,時延的組成部分有點多,涉及用戶接入側的時延,運營商基站到運營商核心網的時延,運營商骨幹網絡時延,雲數據中心內部時延。
通過固網或5G接入降低接入時延
5G通過信道編碼,微時隙調度,上行免調度傳輸技術將接入時延降低到了1ms,基本上接近固網用網線接入網絡的時延了。這代表著之前在一些時延敏感的工業場景下,用網線固定連接的設備可以無線化了。
然而對於大部分面向用戶的應用,如果用戶用WiFi,5G的低時延效應其實並不明顯。5G對面向用戶的應用主要優勢還是大帶寬,5G的低時延的主打場景主要也是面向車聯網,工業互聯網的。
應用就近部署降低固網傳輸時延
終端設備接入網絡後,要訪問雲上的應用系統,還要通過運營商的網絡。如果應用和用戶都在國內,則不涉及跨囯訪問;雲上數據中心的公網IP一般是多運營商同時發佈,一般也不會涉及跨運營商互訪的問題。
在同一個運營商內延遲主要取決與距離,1ms的往返時延代表的光纖距離為100km。
如果雲數據中心和用戶在同一個城市,比如雲數據中心在北京,用戶也在北京,那麼固網+阿里雲數據中心內部的傳輸時延一般小於5ms。
如果雲數據中心和用戶在同一個大區或相鄰的大區,比如都在華北區,比如雲數據中心在北京(華北區),用戶在山西(華北區)或遼寧(東北區),固網+阿里雲數據中心內部時延一般小於25ms。
如果雲數據中心和用戶較遠,比如雲數據中心在北京(華北區),用戶在深圳(華南區),固網+阿里雲數據中心內部傳輸時延一般小於50ms。
北京到新疆,西藏等距離較遠的地域的時延會比較大,一般在100ms左右。
下圖是阿里雲不同地域EIP到不同省份的撥測探針的雙向網絡時延數據。
北京BGP EIP到不同省份雙向時延數據
上海BGP EIP到不同省份雙向時延數據
深圳BGP EIP到不同省份雙向時延數據
成都BGP EIP到不同省份雙向時延數據
考慮到固網的延遲可以從1ms跨到100ms,如果對時延敏感的業務應該儘可能的將應用部署到靠近用戶的位置。
1.對於端到端時延要求小於10ms的業務需要同城市部署。這種業務一般是面向機器的業務,如車聯網或工業互聯網業務。
2.對於端到端時延要求小於25ms的業務,可以考慮全國多地域部署。比如用阿里雲北京Region覆蓋京津冀經濟區,用阿里雲上海Region覆蓋長三角地區,用阿里雲深圳Region覆蓋珠三角經濟區,用阿里雲成都Region覆蓋西三角經濟區。
3.對於端到端時延要求小於50ms的業務,一般在國內用阿里雲的一個Region即可覆蓋大部分國內省份。
使用有保障的輕載帶寬降低時延
上面提到了應用就近部署,
但離得近,也並不一定快,路還得順暢才行。如果路上堵車,雖然近但也不會快。
對於網絡來講,有保障的輕載帶寬就是順暢的路,沒保障的帶寬或重載帶寬就是擁堵的路。
對於阿里雲的國內的雲數據中心出口的Internet帶寬,總體資源是充足的,一般都是數百Tbps。但不同EIP的服務等級是不一樣的,比如按帶寬計費的EIP,因為用戶付了帶寬的費用,所以阿里雲是保障這種實例的帶寬的。
單個運營商內部的骨幹網當前帶寬還是比較充裕的,所以單運營商內部也一般不會出現擁塞。但對於跨運營商互訪的場景,由於運營商之間的鏈路帶寬有限,這種場景也會出現擁塞。阿里雲的BGP類型的EIP,一般情況下是不會出現跨運營商訪問的。但對於單線(單運營商)類型的EIP,比如說電信的單線EIP如果被聯通的用戶訪問時,會出現聯通用戶從聯通的網內跨運營商訪問電信單線EIP的場景,這種情況下也有可能在運營商互連的鏈路上出現擁塞,進而導致時延變大。
對於從中國內地訪問中國內地之外的流量,都要經過運營商國際出口。運營商的國際出口一般情況下擁塞比較嚴重,而且傳輸路徑會比較長,比如到國內到香港的訪問,可能會到美國繞一圈再到香港。在這種情況下,時延必然比較高。阿里雲從國內運營商採購了精品回國直連公網帶寬,精品回國帶寬本質上就是一張運營商單獨建設的精品輕載互聯網,阿里雲將精品回國帶寬包裝成了精品EIP。這種精品EIP由於架構在運營商的精品輕載互聯網上,所以相對於架構在運營商普通的重載互聯網的普通EIP,時延是比較低的。
阿里雲香港精品EIP到不同省份雙向時延數據
阿里雲香港普通EIP到不同省份雙向時延數據
提升網絡設備處理性能降低時延
對於大部分硬件轉發設備,設備的處理時延基本都在微秒級,1000微秒=1毫秒。
對於雲數據中心內部的網關,X86架構的網關或網元轉發時延在幾十個微秒的量級。
阿里雲自研的軟硬件一體架構的洛神硬件網關,轉發時延從40微秒降低到了1微秒。
這種對於面向機器交互的場景的降時延還是很有幫助的,因為機器之間為完成一個業務往往會進行多次交互。如果原來多次交互的累加時延是1ms,那麼使用了阿里雲自研的軟硬件一體網關可以將累積時延降低到0.025毫秒。
對於中間的網關或路由器設備,處理性能如果不夠,就會產生丟包,進而增加時延。
阿里雲自研的軟硬件一體架構的洛神硬件網關,單臺設備的轉發性能高達3.2Tbps,集群轉發性能高達數百Tbps,基本上不會出現因為設備轉發性能不足而產生丟包,進而增加時延的情況。
如果從雲數據中心內部的轉發時延看,阿里雲絕對是世界領先的水平。
通過網絡和應用層協議優化降低時延
通過網絡層協議和應用層協議對端到端的時延優化的技術當前已經比較成熟了,典型的代表包括網絡層的快速UDP協議QUIC,和應用層的音視頻RTC編解碼協議。
通過網絡協議層和應用層的協議優化,也可以比較好的改善端到端網絡時延。
比如一些比較複雜的應用,在應用層處理的時間有可能高達數十毫秒,通過應用層協議優化,可以將應用層時延縮短到幾個毫秒。
具體的詳細的優化方式,就不在此詳細展開了。
如何度量時延
時延是網絡質量的一個關鍵指標,如何有效的度量時延也變得很關鍵。下面是幾種比較有效的度量時延的方式。
Ping
如果想進行點到點的時延測量,那麼最簡單最使用的就是ICMP Ping了。
通過ICMP Ping可以獲取點到點的雙向時延數據。
如果要想進行點到多點的時延測量,這種業界一般叫網絡撥測。
對於網絡撥測阿里雲也有比較成熟的產品化工具。
實時撥測
當前阿里雲比較好用的網絡實時撥測工具的鏈接如下:
https://zijian.aliyun.com/detect/ping
當前這個撥測工具是免費的。
通過阿里雲的實時撥測工具,只需要輸入IP或域名,就可以直接發起全國的探針對目標域名或IP的實時探測,2分鐘就會出現全量的結果並以圖形化方式呈現。
持續撥測
如果希望對應用持續進行網絡質量的監控,如果出現故障後能否發送告警到具體的負責人,這種場景下阿里雲對應的產品是,雲監控的站點監控。
https://cloudmonitor.console.aliyun.com/index.htm#/newSite/list/
站點監控支持自定義探針和告警規則。
當前站點監控的探針基本上已經覆蓋了中國內地的90%以上的省份和運營商。
告警規則的定義也比較靈活,而且可以將告警以郵件,電話,短信,釘釘機器人的方式發送。