QUIC(Quick UDP Internet Connection)是谷歌制定的一種互聯網傳輸層協議,它基於UDP傳輸層協議,同時兼具TCP、TLS、HTTP/2等協議的可靠性與安全性,能夠有效減小鏈接與傳輸延遲,更好地應對當前傳輸層與應用層的挑戰。算法
UDP和TCP都屬於傳輸層協議。TCP是面向鏈接的,更強調的是傳輸的可靠性,經過TCP鏈接傳送的數據,無差錯,不丟失,不重複,按序到達,可是由於TCP在傳遞數據以前會有三次握手來創建鏈接,因此效率低、佔用系統的CPU、內存等硬件資源較高;而UDP的無鏈接的(即發送數據以前不須要創建鏈接),只須要知道對方地址便可發送數據,具備較好的實時性,工做效率比TCP高,佔用系統資源比TCP少,可是在數據傳遞時,若是網絡質量很差,就會很容易丟包。瀏覽器
咱們知道,大部分Web平臺的數據傳輸都基於TCP協議。實際上,TCP在設計之初,網絡環境複雜、丟包率高、網速差,因此TCP能夠完美解決可靠性的問題。而現在的網絡環境和網速都已經取得了巨大的改善,網絡傳輸可靠性已經再也不是棘手的問題。另外,TCP還有一個很大的問題是更新很是困難。這是由於:TCP網絡協議棧的實現依賴於系統內核更新,一旦系統內核更新,終端設備、中間設備的系統更新都會很是緩慢,迭代須要花費幾年甚至十幾年的時間,這顯然跟不上當今互聯網的發展速度。因此如今解法就是,拋棄TCP而使用UDP,來實現低延遲的傳輸需求。安全
(QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP)網絡
爲告終合二者優勢,谷歌公司推出了QUIC,它的升級不依賴於系統內核,只須要Client和Server端更新到指定版本。如此一來,基於UDP的QUIC就能月更甚至周更,很好的解決了TCP部署和更新的困難,更靈活地實現部署和更新。架構
網民傳統TCP三次握手+TLS1~2RTT握手+http數據,基於TCP的HTTPS一次建連至少須要2~3個RTT,而QUIC基於UDP,完整握手只須要1RTT乃至0RTT,能夠顯著下降延遲。併發
(握手比對)性能
QUIC具有TCP、TLS、HTTPS/2等協議的安全、可靠性的特色,經過提供安全功能(如身份驗證和加密)來實現加密傳輸,這些功能由傳輸協議自己的更高層協議(如TLS)來實現。優化
QUIC在應用程序層面就能實現不一樣的擁塞控制算法,不須要操做系統和內核支持,這相比於傳統的TCP協議改造靈活性更好。ui
QUIC主要實現了TCP的慢啓動、擁塞避免、快重傳、快恢復。在這些擁塞控制算法的基礎上改進,例如單調遞增的 Packet Number,解決了重傳的二義性,確保RTT準確性,減小重傳次數。阿里雲
HTTP2實現了多路複用,能夠在一條TCP流上併發多個HTTP請求,但基於TCP的HTTP2在傳輸層卻有個問題,TCP沒法識別不一樣的HTTP2流,實際收數據還是一個隊列,當後發的流先收到時,會因前面的流未到達而被阻塞。QUIC一個connection能夠複用傳輸多個stream,每一個stream之間都是獨立的,一個stream的丟包不會影響到其餘stream的接收和處理。
綜上所述,QUIC具備衆多優勢,它融合了UDP協議的速度、性能與TCP的安全與可靠,大大優化了互聯網傳輸體驗。
做爲提高終端用戶訪問效率的CDN服務,其節點之間存在大量數據互通,節點之間的網絡鏈接、傳輸架構等因素都會對CDN服務質量產生影響。而將QUIC應用在CDN系統中,CDN用戶開啓QUIC功能後,系統將遵循QUIC協議進行用戶IP請求處理,既能知足安全傳輸的需求,也能提高傳輸效率。目前,阿里雲CDN除了在資源部署、智能調度等方面進行提高以外,也在網絡傳輸協議優化上不斷鑽研演進,以此確保爲用戶提供更低延遲、更高性能的內容分發加速服務。
早在2018年杭州雲棲大會上,阿里雲率先提出AliQUIC的概念,它是基於QUIC協議而推出的一種CDN last mile和middle mile的網絡傳輸解決方案。在這個網絡方案裏,AliQUIC不只僅針對Web類應用,它在遊戲,實時音視頻通訊,互動直播和IM彈幕等各類場景中,延伸出針對性地算法和技術,以達到最佳的加速效果。點擊閱讀詳情。
阿里雲CDN全面支持QUIC協議,適用的產品包含靜態內容分發(圖片小文件、大文件下載、視音頻點播)和 動態內容分發(全站加速)。QUIC基於UDP協議,能夠爲用戶提供更高的弱網性能、更低的握手延遲、更好的多路複用和更靈活的擁塞算法。
用戶只需在CDN、全站加速控制檯對域名開啓【QUIC協議開關】功能,支持QUIC協議的客戶端便可經過QUIC協議與阿里雲CDN節點通訊。
(在阿里雲CDN中使用QUIC的工做原理)
1、圖片小文件:明顯下降文件下載總耗時,提高效率
2、視頻點播:提高首屏秒開率,下降卡頓率,提高用戶觀看體驗
3、動態請求:適用於動態請求,提高訪問速度,如網頁登陸、交易等交互體驗提高
4、弱網環境:在丟包和網絡延遲嚴重的狀況下仍可提供可用的服務,並優化卡頓率、請求失敗率、秒開率、提升鏈接成功率等傳輸指標
5、大併發鏈接:鏈接可靠性強,支持頁面資源數較多、併發鏈接數較多狀況下的訪問速率提高
6、加密鏈接:具有安全、可靠的傳輸性能
目前QUIC對外開放處於公測階段,請您掃下方二維碼進入釘釘羣,進羣后按羣公告提供域名信息,由後臺工程師幫您開啓QUIC協議。當您在阿里雲CDN開啓QUIC協議功能時,阿里雲CDN將會處理經過QUIC協議發起的用戶請求。
Tips:QUIC協議屬於增值服務,會對QUIC請求數進行額外計費,詳情請參見CDN詳細價格信息的QUIC部分。
本文做者:樰籬
本文爲雲棲社區原創內容,未經容許不得轉載。