天天看點

新一代網際網路傳輸協定QUIC淺析

QUIC(Quick UDP Internet Connection)是谷歌制定的一種網際網路傳輸層協定,它基于UDP傳輸層協定,同時兼具TCP、TLS、HTTP/2等協定的可靠性與安全性,可以有效減少連接配接與傳輸延遲,更好地應對目前傳輸層與應用層的挑戰。

QUIC的由來:為什麼是UDP而非TCP?

UDP和TCP都屬于傳輸層協定。TCP是面向連接配接的,更強調的是傳輸的可靠性,通過TCP連接配接傳送的資料,無差錯,不丢失,不重複,按序到達,但是因為TCP在傳遞資料之前會有三次握手來建立連接配接,是以效率低、占用系統的CPU、記憶體等硬體資源較高;而UDP的無連接配接的(即發送資料之前不需要建立連接配接),隻需要知道對方位址即可發送資料,具有較好的實時性,工作效率比TCP高,占用系統資源比TCP少,但是在資料傳遞時,如果網絡品質不好,就會很容易丢包。

我們知道,大部分Web平台的資料傳輸都基于TCP協定。實際上,TCP在設計之初,網絡環境複雜、丢包率高、網速差,是以TCP可以完美解決可靠性的問題。而如今的網絡環境和網速都已經取得了巨大的改善,網絡傳輸可靠性已經不再是棘手的問題。另外,TCP還有一個很大的問題是更新非常困難。這是因為:TCP網絡協定棧的實作依賴于系統核心更新,一旦系統核心更新,終端裝置、中間裝置的系統更新都會非常緩慢,疊代需要花費幾年甚至十幾年的時間,這顯然跟不上當今網際網路的發展速度。是以現在解法就是,抛棄TCP而使用UDP,來實作低延遲的傳輸需求。

新一代網際網路傳輸協定QUIC淺析

(QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP)

為了結合兩者優點,谷歌公司推出了QUIC,它的更新不依賴于系統核心,隻需要Client和Server端更新到指定版本。如此一來,基于UDP的QUIC就能月更甚至周更,很好的解決了TCP部署和更新的困難,更靈活地實作部署和更新。

為什麼要用QUIC?

第一,建連延遲低

網民傳統TCP三向交握+TLS1~2RTT握手+http資料,基于TCP的HTTPS一次建連至少需要2~3個RTT,而QUIC基于UDP,完整握手隻需要1RTT乃至0RTT,可以顯著降低延遲。

新一代網際網路傳輸協定QUIC淺析

(握手比對)

第二,安全又可靠

QUIC具備TCP、TLS、HTTPS/2等協定的安全、可靠性的特點,通過提供安全功能(如身份驗證和加密)來實作加密傳輸,這些功能由傳輸協定本身的更高層協定(如TLS)來實作。

第三,改造靈活

QUIC在應用程式層面就能實作不同的擁塞控制算法,不需要作業系統和核心支援,這相比于傳統的TCP協定改造靈活性更好。

第四,改進的擁塞控制

QUIC主要實作了TCP的慢啟動、擁塞避免、快重傳、快恢複。在這些擁塞控制算法的基礎上改進,例如單調遞增的 Packet Number,解決了重傳的二義性,確定RTT準确性,減少重傳次數。

第五,無隊頭阻塞的多路複用

HTTP2實作了多路複用,可以在一條TCP流上并發多個HTTP請求,但基于TCP的HTTP2在傳輸層卻有個問題,TCP無法識别不同的HTTP2流,實際收資料仍是一個隊列,當後發的流先收到時,會因前面的流未到達而被阻塞。QUIC一個connection可以複用傳輸多個stream,每個stream之間都是獨立的,一個stream的丢包不會影響到其他stream的接收和處理。

新一代網際網路傳輸協定QUIC淺析

綜上所述,QUIC具有衆多優點,它融合了UDP協定的速度、性能與TCP的安全與可靠,大大優化了網際網路傳輸體驗。

作為提升終端使用者通路效率的CDN服務,其節點之間存在大量資料互通,節點之間的網絡連接配接、傳輸架構等因素都會對CDN服務品質産生影響。而将QUIC應用在CDN系統中,CDN使用者開啟QUIC功能後,系統将遵循QUIC協定進行使用者IP請求處理,既能滿足安全傳輸的需求,也能提升傳輸效率。目前,阿裡雲CDN除了在資源部署、智能排程等方面進行提升之外,也在網絡傳輸協定優化上不斷鑽研演進,以此確定為使用者提供更低延遲、更高性能的内容分發加速服務。

早在2018年杭州雲栖大會上,阿裡雲率先提出AliQUIC的概念,它是基于QUIC協定而推出的一種CDN last mile和middle mile的網絡傳輸解決方案。在這個網絡方案裡,AliQUIC不僅僅針對Web類應用,它在遊戲,實時音視訊通信,互動直播和IM彈幕等各種場景中,延伸出針對性地算法和技術,以達到最佳的加速效果。

點選閱讀詳情。
新一代網際網路傳輸協定QUIC淺析

阿裡雲CDN全面支援QUIC協定

阿裡雲CDN全面支援QUIC協定,适用的産品包含靜态内容分發(圖檔小檔案、大檔案下載下傳、視音頻點播)和 動态内容分發(全站加速)。QUIC基于UDP協定,可以為使用者提供更高的弱網性能、更低的握手延遲、更好的多路複用和更靈活的擁塞算法。

使用者隻需在CDN、全站加速控制台對域名開啟【QUIC協定開關】功能,支援QUIC協定的用戶端即可通過QUIC協定與阿裡雲CDN節點通信。

新一代網際網路傳輸協定QUIC淺析

(在阿裡雲CDN中使用QUIC的工作原理)

QUIC對用戶端的要求

  • 如果您使用Chrome浏覽器,則隻支援QUIC協定Q43版本。目前阿裡雲CDN的QUIC協定是Q39版本,不支援直接對阿裡雲CDN發起QUIC請求。
  • 如果您使用自研App,則App必須內建支援QUIC協定的網絡庫,例如:lsquic-client或cronet網絡庫。

QUIC應用場景

一、圖檔小檔案:明顯降低檔案下載下傳總耗時,提升效率

二、視訊點播:提升首屏秒開率,降低卡頓率,提升使用者觀看體驗

三、動态請求:适用于動态請求,提升通路速度,如網頁登入、交易等互動體驗提升

四、弱網環境:在丢包和網絡延遲嚴重的情況下仍可提供可用的服務,并優化卡頓率、請求失敗率、秒開率、提高連接配接成功率等傳輸名額

五、大并發連接配接:連接配接可靠性強,支援頁面資源數較多、并發連接配接數較多情況下的通路速率提升

六、加密連接配接:具備安全、可靠的傳輸性能

如何開通使用QUIC

目前QUIC對外開放處于公測階段,請您掃下方二維碼進入釘釘群,進群後按群公告提供域名資訊,由背景工程師幫您開啟QUIC協定。當您在阿裡雲CDN開啟QUIC協定功能時,阿裡雲CDN将會處理通過QUIC協定發起的使用者請求。

Tips:QUIC協定屬于增值服務,會對QUIC請求數進行額外計費,詳情請參見

CDN詳細價格資訊的QUIC部分

新一代網際網路傳輸協定QUIC淺析

繼續閱讀