【技術盛宴】銳捷云桌面EST協議之RUTP傳輸技術
前言
摘要
銳捷云桌面EST協議,最早只適用于局域網。為了能滿足遠程辦公,即跨廣域網的辦公需求,就要支持上更符合弱網絡實時傳輸要求的UDP傳輸協議(原來版本只支持TCP協議)。
結合云桌面場景分析,我們提出了一個新的傳輸協議,叫做RUTP協議,即基于UDP的可靠用戶層傳輸協議。該協議能一定程度上解決網絡丟包引發的使用卡頓問題。
關鍵字
UDP、RUTP、用戶空間、EST、TCP。
術語清單
縮略語/術語 |
說 明 |
---|---|
UDP |
User Datagram Protocol,一種無需建立連接就可以發送封裝的 IP 數據包的協議 |
RUTP |
Reliable User Transportation Protocol,基于UDP可靠用戶層傳輸協議 |
用戶空間 |
用戶程序的運行空間,用戶的程序崩潰了,內核也不受影響 |
EST |
Enhanced Stream Transmission,增強的桌面流傳輸協議 |
TCP |
Transmission Control Protocol,是一種面向連接的、可靠的、基于字節流的傳輸層通信協議 |
弱網絡 |
網絡存在一定的丟包、延遲、抖動的網絡,稱為弱網絡。這里把弱網絡定義為:丟包率>0.1% 或 延遲>20ms 或 抖動>5ms的網絡稱為弱網絡 |
1. 概述
隨著網絡的發展,廣域網帶寬越來越大,云桌面在廣域網中使用成為可能,但是相比局域網,廣域網存在更高延時、更高丟包的特點,導致云桌面體驗不佳。為了改善云桌面在廣域網中體驗不佳的問題,我們需要優化云桌面協議中的可靠傳輸協議特性,使其能盡可能地適應高延時、高丟包的廣域網遠程實時傳輸要求。
傳統的可靠傳輸協議一般都使用TCP,TCP實現在內核層,如果要優化它,需要根據不同的操作系統去優化TCP內核模塊。優化TCP內核模塊,從技術上來說難度大且容易出問題,或者說出了問題可能直接導致整個系統崩潰,但理論上是可行的。那么,我們再從部署情況來考慮,云桌面協議的傳輸子模塊,包括傳輸客戶端子模塊和傳輸服務端子模塊,前者一般作為上層應用軟件部署在不同的終端設備上,后者一般部署在服務端上。假設即使后者的服務端操作系統可控可改,前者對于不同終端設備操作系統來說,基本也是不允許去改動的,或者說一大部分是閉源的。綜上所述,要基于現有的TCP技術去做優化,可行性低。
在實時數據傳輸這塊,UDP除了在傳輸特性上相比TCP更具有優勢外,也能改造成滿足云桌面協議部署要求——應用層上的傳輸優化,以達到便捷部署的目的。
綜合以上因素, 我們基于UDP提出了適配云桌面的可靠的應用層傳輸協議,稱為RUTP協議。
2. 技術介紹
2.1 廣域網實時傳輸重要概念
這里介紹在廣域網下要實現桌面協議實時傳輸的幾個概念。
2.1.1 廣域網網絡特性
廣域網(Wide Area Network,縮寫為 WAN),又稱外網、公網。是連接不同地區局域網或城域網計算機通信的遠程網。通常跨接很大的物理范圍,所覆蓋的范圍從幾公里到幾十公里甚至到幾千公里,它能連接多個地區、城市和國家,或橫跨幾個洲并能提供遠距離通信,形成國際性的遠程網絡。廣域網有如下特點:
- 廣域網相對局域網來說,帶寬相對較小,傳輸速率低很多,如局域網內端到端的帶寬基本可以保障在百兆甚至更高的速率;另外,一般工作單位的出口帶寬容量有限,考慮多并發要求,所以分攤到個人的帶寬容量也相對較小。
- 廣域網延時大,從幾毫秒到幾百毫秒不等且會存在延遲抖動,而局域網延時大部分情況都小于1ms;
- 廣域網根據鏈路情況一般會有不同程度的丟包(如0.5%~5%,5%~30%都有可能,且存在丟包抖動),而局域網大部分情況不會出現丟包。
2.1.2可靠傳輸
可靠傳輸,就是采用一系列技術來保障信息在發送方和接收方準確、精確的傳輸。TCP為了保證報文傳輸的可靠,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節發回一個相應的確認(ACK)。如果發送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據(假設丟失了)將會被重傳。
2.1.3 UDP協議特性
UDP 是User Datagram Protocol的簡稱,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768 是UDP的正式規范。UDP報文沒有可靠性保證、順序保證和流量控制字段等,可靠性較差。UDP具有如下特性:
- UDP包頭只有8個字節,相對于TCP的20個字節信息包的額外開銷很小,數據傳輸效率高;
- 吞吐量不受擁塞控制算法的調節,只受應用軟件生成數據的速率、傳輸帶寬、 源端和終端主機性能的限制;
- UDP是一個非連接的協議,傳輸數據之前源端和終端不建立連接, 當它想傳送時就簡單地去抓取來自應用程序的數據,并盡可能快地把它扔到網絡上,從而延時較TCP小。
UDP的這些特性,使得我們要在應用層去控制和改造它以更加適配遠程桌面傳輸場景提供了可能。
大部分應用廠商想要去適配廣域網實時傳輸場景的,也基本是基于UDP來進行改造。
2.1.4 擁塞控制算法
擁塞現象是指到達通信子網中某一部分的分組數量過多,使得該部分網絡來不及處理,以致引起這部分乃至整個網絡性能下降的現象,嚴重時甚至會導致網絡通信業務陷入停頓即出現死鎖現象。擁塞控制算法,即采用不錯的策略(或者方式)減少或者避免擁塞現象的發生,如CUBIC、BBR擁塞算法等。
2.1.5 安全傳輸
為了保護敏感數據在傳送過程中的安全,發送端對敏感數據進行加密,加密后再進行傳輸,接收端接收到數據后要進行解密后才能獲取到數據。目前主要使用SSL(Security Socket Layer)加密機制來保證數據安全。這也基本是業界的一個做法。
2.2 EST-RUTP協議介紹
RUTP(Reliable User Transportation Protocol)基于UDP底層網絡傳輸協議為基礎,實現類似TCP協議數據重傳,實現可靠傳輸,結合桌面業務特性,引入較為先進的擁塞控制算法,實現高效傳輸,具體實現如下圖所示:
RUTP傳輸協議對擁塞控制算法做了改進,使得數據重傳更快,延時更小,提高了傳輸效率。該算法不再基于丟包判斷并且也不再使用線性增乘性減策略來維護擁塞窗口,而是分別采樣估計極大帶寬和極小延時,并用二者乘積作為發送窗口,而且引入一些機制限制數據發送速率來降低沖擊。
簡單來說可將網絡鏈路比喻成水管,如果我們希望盡可能地使用網絡傳輸數據,方法就是給水管注水,水管的容積 = 水管粗細 × 水管長度。以前的擁塞算法是一直往水管中充水,水管爆了,充水量立馬下降到原來一半,而RUTP擁塞算法是周期性探測水管容量,按照水管容量平穩發送數據,盡量不導致水管爆了。
同時,RUTP協議也支持SSL加密傳輸,可由管理層自動配置是否啟用。
3. 銳捷RUTP技術特點
3.1 RUTP技術特點
RUTP協議具有如下技術特點:
- 引入基于桌面業務特點的擁塞控制算法,相同場景下延時較原先TCP更小,傳輸效率更高;
- 支持連接遷移,移動端使用時經常會有網絡切換,對于TCP,切換網絡時桌面連接會斷開,影響用戶體驗,對于RUTP,網絡切換時桌面連接不會斷,不影響用戶體驗;
- 協議支持“丟包率<=1%,延時<=50ms,抖動<=10ms”的場景,原來的TCP只能支持“丟包率<=0.1%,延時<=20ms,抖動<=5ms”的場景。當然,當丟包率更大時,部分體驗會有所降低;
- RUTP協議是用戶空間協議,出問題可快速定位且不會影響其他用戶。
4. 限制信息
4.1 RUTP協議限制信息
對于RUTP協議目前只支持“丟包率<=1%,延時<=50ms,抖動<=10ms”的場景。當用戶網絡在“丟包率為1%,延時為50ms左右,抖動為10ms”時,桌面基本可用,但流暢度上較“丟包率為0.5%,延時為30ms”時會差一些。因此需要明確客戶所使用的具體業務對桌面要求進行評估。
5. 結束語
銳捷云桌面EST協議之RUTP傳輸技術優化使云桌面適配更多的場景,保證桌面顯示質量和顯示流暢度。