各分位(P99、P95、P50)連接速度提升30%~50%;
網(wǎng)絡(luò)延遲低連接耗時終端占比提升50%,高連接耗時終端占比壓縮至1%以內(nèi);
在基礎(chǔ)設(shè)施受限的弱網(wǎng)地區(qū)和連接效果難保證的跨網(wǎng)場景下,均可獲得與正常網(wǎng)絡(luò)相當?shù)捻槙丑w驗。
——這些都是融云基于QUIC深度優(yōu)化通信協(xié)議的實踐效果。
作為中國互聯(lián)網(wǎng)出海浪潮中最重要的基建公司之一,融云一直致力于提升全球網(wǎng)絡(luò)的“最后一公里體驗”。
基于QUIC深度優(yōu)化通信協(xié)議,融云實現(xiàn)了多鏈路智能競速選路,進一步降低連接時長,保證鏈路不僅連得快,而且連得穩(wěn)。移步【融云全球互聯(lián)網(wǎng)通信云】了解更多
一、關(guān)于QUIC
QUIC(Quick UDP Internet Connection)是Google提出的一個基于UDP的傳輸協(xié)議,因其高效的傳輸效率和多路并發(fā)的能力,成為下一代互聯(lián)網(wǎng)協(xié)議HTTP/3的底層傳輸協(xié)議。
2021年IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)發(fā)布RFC 9000,標志著該協(xié)議正式成為一個標準協(xié)議。
伴隨著移動互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)交互場景越來越豐富并對及時性提出更高要求,傳統(tǒng)TCP固有的性能瓶頸越來越不能滿足這一需求,需要引入UDP。兩者的特性分別為:
UDP(User Datagram Protocol)用戶數(shù)據(jù)報協(xié)議于1980年在RFC 768中定義,主要特性是數(shù)據(jù)傳輸效率快。
TCP(Transmission Control Protocol)傳輸控制協(xié)議于1981在RFC 793中定義,主要特性是數(shù)據(jù)傳輸可靠性。
基于UDP與TCP的特性,如果要實現(xiàn)可靠數(shù)據(jù)傳輸,TCP是較為簡單的選型,但是在網(wǎng)絡(luò)傳輸通道質(zhì)量較差的情況下,如丟包、延遲率較高、帶寬受限等,會產(chǎn)生建立連接的握手延遲大、隊頭阻塞、網(wǎng)絡(luò)擁塞等問題。
為了解決移動端場景常見的弱網(wǎng)和網(wǎng)絡(luò)切換問題,同時兼容互聯(lián)網(wǎng)上已經(jīng)運轉(zhuǎn)多年的網(wǎng)絡(luò)設(shè)備,Google提出了應(yīng)用層的QUIC協(xié)議。
QUIC融合了UDP協(xié)議的速度、性能與TCP的安全、可靠,具備安全、高效、可靠等傳輸特性。
建連更快
相比于TCP+TLS,QUIC建連速度提升了1~3倍。其客戶端第一次建連的握手協(xié)商需1-RTT(Round-Trip Time,往返時延)。
已建連的客戶端重新建連時,通過應(yīng)用數(shù)據(jù)和協(xié)商參數(shù)合并的方式,QUIC重用在先前的連接中協(xié)商的參數(shù),可以做到0-RTT,使得客戶端能夠在握手完成前就發(fā)送應(yīng)用數(shù)據(jù)。
對比來看:
TCP需要1-RTT;
TCP+TLS1.2需要3-RTT;
TCP+TLS1.3需要2-RTT。
TCP為了可靠性設(shè)計了一系列的規(guī)則,比如建立TCP連接時需要進行三次握手,這會造成更多的RTT花費及很多字節(jié)的額外開銷。
? TCP 1-RTT流程圖:
TLS1.2通過KeyExchange進行密鑰協(xié)商,即ServerKeyExchange、ClientKeyExchange,密鑰交換本身就需要一個交互來回,所以總共有四次握手交互,詳細參考RFC 5246。
? TLS1.2 2-RTT流程圖:
TLS1.3借助擴展進行密鑰交換,只需要三次握手交互,詳細參考RFC 8446。
? TLS1.3 1-RTT流程圖:
QUIC基于UDP,只需花費0~1-RTT就可以建立連接。
客戶端第一次建連的握手協(xié)商需1-RTT,建聯(lián)完成后即可發(fā)送數(shù)據(jù)。
?QUIC1-RTT流程圖:
已建連的客戶端重新建連可以使用之前協(xié)商好的緩存信息來恢復(fù)連接,僅需0-RTT時間。
?QUIC 0-RTT流程圖:
可插拔的擁塞控制
QUIC協(xié)議默認使用了TCP協(xié)議的Cubic擁塞控制算法,作為應(yīng)用層協(xié)議,它也支持CubicBytes、Reno、RenoBytes、BBR、PCC等擁塞控制算法,用戶可以插拔式選擇。
無隊頭阻塞多Stream
QUIC給每一個Stream都分配了一個獨立的滑動窗口,使得一個連接上的多個Stream之間沒有依賴關(guān)系,都是相互獨立的、各自控制的滑動窗口。
假如 Stream3丟了一個UDP包,也只會影響Stream3的處理,不會影響其他Stream。
? TCP連接
? QUIC連接
支持連接遷移
QUIC socket采用UDP收發(fā)數(shù)據(jù),一個連接用一個ConnectionID為唯一標識。
當用戶設(shè)備在蜂窩網(wǎng)絡(luò)和Wi-Fi等不同網(wǎng)絡(luò)切換時,只要數(shù)據(jù)包中的ConnectionID不變,服務(wù)端都可以將不同的四元組關(guān)聯(lián)到同一個連接上下文。
對用戶來說,無需斷線重連,可以無感知地完成信號切換,在越網(wǎng)情況下會有更好的表現(xiàn)。
? TCP重連VS.QUIC連接遷移
安全性
相比于TCP,QUIC是UDP與TLS的結(jié)合,在保證連接速度的同時保證了安全性,而TCP需要額外增加TLS相關(guān)安全傳輸層協(xié)議封裝。
? TCP+TLS VS. QUIC
二、融云優(yōu)化實踐及效果
移動互聯(lián)網(wǎng)深化發(fā)展,我們的生活、工作已經(jīng)全面實現(xiàn)移動化,各種移動端App成為了承載我們生活、工作場景的關(guān)鍵入口。
而移動端應(yīng)用體驗的一致性對網(wǎng)絡(luò)有著更高要求,比如拿著手機進入電梯,就會遇到網(wǎng)絡(luò)切換而重新建連的問題。亦或者,在融云服務(wù)中國互聯(lián)網(wǎng)出海的廣泛實踐中,新興市場參差不齊的網(wǎng)絡(luò)基建是最令開發(fā)者頭疼的難題之一。
而QUIC的更快建連和連接遷移等特性是解決以上問題的有效方案,因此融云基于QUIC對私有通信協(xié)議進行優(yōu)化。
優(yōu)化實踐
為保證鏈路的平滑過渡以及通道鏈路的穩(wěn)定性,在調(diào)整現(xiàn)有鏈路通道時,融云優(yōu)化升級整體設(shè)計及實施依照TCP/UDP通道互補、業(yè)務(wù)無感知、多鏈路競速等準則。
TCP/UDP雙通道
在原有TCP鏈路的基礎(chǔ)上增加QUIC接入鏈路,可以在保證鏈路可靠性的同時提升速度。
QUIC與全球加速鏈路結(jié)合,還可更好降低連接時延。
在網(wǎng)絡(luò)狀態(tài)不穩(wěn)定的地區(qū),當遇到網(wǎng)絡(luò)抖動時,QUIC有更友好的丟包重傳策略,可以做到丟哪個包補哪個包,而不需要對所有的包進行重傳。
無感知的通道升級
為保證對現(xiàn)有業(yè)務(wù)的無感升級,通過客戶端與服務(wù)端動態(tài)協(xié)商確認客戶端與服務(wù)端雙向支持協(xié)議,下發(fā)QUIC接入地址,在保持現(xiàn)有協(xié)議層次不變的基礎(chǔ)上對融云私有通信協(xié)議進行QUIC封裝,上層業(yè)務(wù)無感知。
?協(xié)議協(xié)商交互流程
客戶端與服務(wù)端動態(tài)協(xié)商,在雙方都支持QUIC鏈路的情況下開啟QUIC。
?協(xié)議棧層次
為保證上層業(yè)務(wù)無感知,采用QUIC對通信協(xié)議進行封裝,上層業(yè)務(wù)接口無變動。
多鏈路競速選路更優(yōu)
考慮到海外不同地區(qū)的網(wǎng)絡(luò)特點,在某些地區(qū),個別運營商可能對UDP進行QoS限速,融云采用TLS優(yōu)先,TCP為輔,QUIC保底的方式進行鏈路接入。
多鏈路競速在保證鏈路優(yōu)先級的情況下?lián)駜?yōu)選擇。
這樣,在保證接入鏈路穩(wěn)定性的同時保證連通率、連接速度。
優(yōu)化效果
連接耗時降低
QUIC協(xié)議握手連接更快,允許客戶端無需等待TLS握手完成就開始發(fā)送應(yīng)用程序數(shù)據(jù),從而達到快速建立連接的效果。
從客戶端數(shù)據(jù)看,P50降低30%,P95降低45%以上,P99降低50%以上,越是長尾指標提升越明顯。
從服務(wù)端看,Socket低耗時占比提升50%,高耗時的連接占比壓縮在1%以內(nèi),服務(wù)器的吞吐量得到提升。
弱網(wǎng)質(zhì)量與網(wǎng)絡(luò)兼容性提升
在一些弱網(wǎng)丟包和延遲的混合場景下,QUIC比TCP有10%左右的提升。
不過,在不同國家和地區(qū),對UDP以及TLS加密的網(wǎng)絡(luò)兼容策略不同,需要配合多通道探測和歷史策略下發(fā)一起使用。
總之,針對“最后一公里體驗”難題,融云不斷優(yōu)化服務(wù)、迭代產(chǎn)品,以更快連接、更高并發(fā)服務(wù)開發(fā)者豐富多樣的業(yè)務(wù)探索。本次通信協(xié)議優(yōu)化,是融云作為專業(yè)、簡單、穩(wěn)定的通信云服務(wù)商在用戶體驗和服務(wù)效率方面的又一次穩(wěn)步躍升。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責(zé)任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )