技術盛宴丨銳捷雲桌面EST協議之RUTP傳輸技術

作者:銳捷雲桌面產品事業部EST技術組

00前言

摘要

銳捷雲桌面EST協議,最早只適用於局域網。為了能滿足遠程辦公,即跨廣域網的辦公需求,就要支持上更符合弱網絡實時傳輸要求的UDP傳輸協議(原來版本只支持TCP協議)。

結合雲桌面場景分析,我們提出了一個新的傳輸協議,叫做RUTP協議,即基於UDP的可靠用戶層傳輸協議。該協議能一定程度上解決網絡丟包引發的使用卡頓問題。

關鍵字

UDP、RUTP、用戶空間、EST、TCP。

術語清單


技術盛宴丨銳捷雲桌面EST協議之RUTP傳輸技術

01概述

隨著網絡的發展,廣域網帶寬越來越大,雲桌面在廣域網中使用成為可能,但是相比局域網,廣域網存在更高延時、更高丟包的特點,導致雲桌面體驗不佳。為了改善雲桌面在廣域網中體驗不佳的問題,我們需要優化雲桌面協議中的可靠傳輸協議特性,使其能儘可能地適應高延時、高丟包的廣域網遠程實時傳輸要求。

傳統的可靠傳輸協議一般都使用TCP,TCP實現在內核層,如果要優化它,需要根據不同的操作系統去優化TCP內核模塊。優化TCP內核模塊,從技術上來說難度大且容易出問題,或者說出了問題可能直接導致整個系統崩潰,但理論上是可行的。那麼,我們再從部署情況來考慮,雲桌面協議的傳輸子模塊,包括傳輸客戶端子模塊和傳輸服務端子模塊,前者一般作為上層應用軟件部署在不同的終端設備上,後者一般部署在服務端上。假設即使後者的服務端操作系統可控可改,前者對於不同終端設備操作系統來說,基本也是不允許去改動的,或者說一大部分是閉源的。綜上所述,要基於現有的TCP技術去做優化,可行性低。

在實時數據傳輸這塊,UDP除了在傳輸特性上相比TCP更具有優勢外,也能改造成滿足雲桌面協議部署要求——應用層上的傳輸優化,以達到便捷部署的目的。

綜合以上因素, 我們基於UDP提出了適配雲桌面的可靠的應用層傳輸協議,稱為RUTP協議。

02技術介紹

2.1廣域網實時傳輸重要概念

這裡介紹在廣域網下要實現桌面協議實時傳輸的幾個概念。

1.廣域網網絡特性

廣域網(Wide Area Network,縮寫為 WAN),又稱外網、公網。是連接不同地區局域網或城域網計算機通信的遠程網。通常跨接很大的物理範圍,所覆蓋的範圍從幾公里到幾十公里甚至到幾千公里,它能連接多個地區、城市和國家,或橫跨幾個洲並能提供遠距離通信,形成國際性的遠程網絡。廣域網有如下特點:

  • 廣域網相對局域網來說,帶寬相對較小,傳輸速率低很多,如局域網內端到端的帶寬基本可以保障在百兆甚至更高的速率;另外,一般工作單位的出口帶寬容量有限,考慮多併發要求,所以分攤到個人的帶寬容量也相對較小。
  • 廣域網延時大,從幾毫秒到幾百毫秒不等且會存在延遲抖動,而局域網延時大部分情況都小於1ms;
  • 廣域網根據鏈路情況一般會有不同程度的丟包(如0.5%~5%,5%~30%都有可能,且存在丟包抖動),而局域網大部分情況不會出現丟包。

2.可靠傳輸

可靠傳輸,就是採用一系列技術來保障信息在發送方和接收方準確、精確的傳輸。TCP為了保證報文傳輸的可靠,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的字節發回一個相應的確認(ACK)。如果發送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的數據(假設丟失了)將會被重傳。

3.UDP協議特性

UDP 是User Datagram Protocol的簡稱,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768 是UDP的正式規範。UDP報文沒有可靠性保證、順序保證和流量控制字段等,可靠性較差。UDP具有如下特性:

  • UDP包頭只有8個字節,相對於TCP的20個字節信息包的額外開銷很小,數據傳輸效率高;
  • 吞吐量不受擁塞控制算法的調節,只受應用軟件生成數據的速率、傳輸帶寬、 源端和終端主機性能的限制;
  • UDP是一個非連接的協議,傳輸數據之前源端和終端不建立連接, 當它想傳送時就簡單地去抓取來自應用程序的數據,並儘可能快地把它扔到網絡上,從而延時較TCP小。

UDP的這些特性,使得我們要在應用層去控制和改造它以更加適配遠程桌面傳輸場景提供了可能。

大部分應用廠商想要去適配廣域網實時傳輸場景的,也基本是基於UDP來進行改造。

4.擁塞控制算法

擁塞現象是指到達通信子網中某一部分的分組數量過多,使得該部分網絡來不及處理,以致引起這部分乃至整個網絡性能下降的現象,嚴重時甚至會導致網絡通信業務陷入停頓即出現死鎖現象。擁塞控制算法,即採用不錯的策略(或者方式)減少或者避免擁塞現象的發生,如CUBIC、BBR擁塞算法等。

5.安全傳輸

為了保護敏感數據在傳送過程中的安全,發送端對敏感數據進行加密,加密後再進行傳輸,接收端接收到數據後要進行解密後才能獲取到數據。目前主要使用SSL(Security Socket Layer)加密機制來保證數據安全。這也基本是業界的一個做法。


2.2EST-RUTP協議介紹

RUTP(Reliable User Transportation Protocol)基於UDP底層網絡傳輸協議為基礎,實現類似TCP協議數據重傳,實現可靠傳輸,結合桌面業務特性,引入較為先進的擁塞控制算法,實現高效傳輸,具體實現如下圖所示:

技術盛宴丨銳捷雲桌面EST協議之RUTP傳輸技術

RUTP傳輸協議對擁塞控制算法做了改進,使得數據重傳更快,延時更小,提高了傳輸效率。該算法不再基於丟包判斷並且也不再使用線性增乘性減策略來維護擁塞窗口,而是分別採樣估計極大帶寬和極小延時,並用二者乘積作為發送窗口,而且引入一些機制限制數據發送速率來降低衝擊。

簡單來說可將網絡鏈路比喻成水管,如果我們希望儘可能地使用網絡傳輸數據,方法就是給水管注水,水管的容積 = 水管粗細 × 水管長度。以前的擁塞算法是一直往水管中充水,水管爆了,充水量立馬下降到原來一半,而RUTP擁塞算法是週期性探測水管容量,按照水管容量平穩發送數據,儘量不導致水管爆了。


技術盛宴丨銳捷雲桌面EST協議之RUTP傳輸技術

同時,RUTP協議也支持SSL加密傳輸,可由管理層自動配置是否啟用。

03銳捷RUTP技術特點

3.1RUTP技術特點

RUTP協議具有如下技術特點:

  1. 引入基於桌面業務特點的擁塞控制算法,相同場景下延時較原先TCP更小,傳輸效率更高;
  2. 支持連接遷移,移動端使用時經常會有網絡切換,對於TCP,切換網絡時桌面連接會斷開,影響用戶體驗,對於RUTP,網絡切換時桌面連接不會斷,不影響用戶體驗;
  3. 協議支持“丟包率<=1%,延時<=50ms,抖動<=10ms”的場景,原來的TCP只能支持“丟包率<=0.1%,延時<=20ms,抖動<=5ms”的場景。當然,當丟包率更大時,部分體驗會有所降低;
  4. RUTP協議是用戶空間協議,出問題可快速定位且不會影響其他用戶。

04限制信息

4.1RUTP協議限制信息

對於RUTP協議目前只支持“丟包率<=1%,延時<=50ms,抖動<=10ms”的場景。當用戶網絡在“丟包率為1%,延時為50ms左右,抖動為10ms”時,桌面基本可用,但流暢度上較“丟包率為0.5%,延時為30ms”時會差一些。因此需要明確客戶所使用的具體業務對桌面要求進行評估。

05結束語

銳捷雲桌面EST協議之RUTP傳輸技術優化使雲桌面適配更多的場景,保證桌面顯示質量和顯示流暢度。


分享到:


相關文章: