近日,騰訊云頒布頒發(fā)負(fù)載均衡(CLB)率先支持QUIC(全稱是“Quick UDP Internet Connections”)協(xié)議,成為國(guó)內(nèi)首家擁抱新一代網(wǎng)絡(luò)傳輸尺度的云計(jì)算辦事商。這意味著用戶基于該協(xié)議進(jìn)行網(wǎng)絡(luò)文件傳輸時(shí),能夠?qū)莺蛩俣却蠓嵘?5%以上,獲得更高效的網(wǎng)絡(luò)傳輸體驗(yàn)。此外,QUIC協(xié)議在切換網(wǎng)絡(luò)時(shí)連接連結(jié)的特性,可以實(shí)現(xiàn)客戶端在4G和Wifi間的無縫切換,極大提升用戶體驗(yàn)。
QUIC協(xié)議實(shí)現(xiàn)更快速的網(wǎng)絡(luò)傳輸
QUIC是由Google提出的基于UDP構(gòu)建的安適多路并發(fā)的傳輸層協(xié)議,代表了快速UDP Internet連接。作為一個(gè)新興的協(xié)議,QUIC具有非常大的勢(shì)能與效用。它通過改進(jìn)TCP協(xié)議的功能,重構(gòu)TLS(Transport Layer Security,即傳輸層安適)協(xié)議,以及吸收HTTP2的大部分特性,使其在網(wǎng)絡(luò)傳輸不變性、安適性、并發(fā)性和快速性等方面做了很大提升。
QUIC支持加密層和傳輸層0RTT(Round-Trip Time,即往返時(shí)延)握手即可實(shí)現(xiàn)數(shù)據(jù)發(fā)送,而且0RTT的成功率比擬TLS的Session ticket要高很多。在QUIC連接里,數(shù)據(jù)可以直接發(fā)送,而不消等待辦事器握手完成。
QUIC最基本的傳輸單元是Packet(信息包),加密和認(rèn)證過程也是基于Packet。QUIC Stream之間又彼此獨(dú)立,單個(gè)Stream的數(shù)據(jù)丟失不會(huì)影響其他的Stream.因此基于QUIC傳輸大量數(shù)據(jù)時(shí),好比視頻,受到隊(duì)頭阻塞的影響很小。QUIC的擁塞控制實(shí)現(xiàn)了可插件形式,使用Packet Number代替TCP的sequence number,每個(gè)Packet Number都嚴(yán)格遞增。而且,QUIC在協(xié)議層面禁止Reneging,有效減少數(shù)據(jù)重傳的干擾。同時(shí),它還提供更多的Ack塊,既能夠更加精準(zhǔn)地計(jì)算RTT,又能夠提供更加豐富的重傳信息。
與以往TCP連接差別的是,QUIC連接是以一個(gè)64位的隨機(jī)數(shù)作為ID來標(biāo)識(shí)。這樣即使IP或者端口發(fā)生變革時(shí),只要ID不亂,QUIC連接依然維持,整個(gè)網(wǎng)絡(luò)和IP切換過程,用戶和業(yè)務(wù)將毫無感知。
騰訊云負(fù)載均衡率先支持QUIC協(xié)議
早在2016年,騰訊云便對(duì)QUIC協(xié)議的特性及性能做了一個(gè)全面的測(cè)試,測(cè)試結(jié)果證明QUIC的優(yōu)勢(shì)對(duì)比HTTP也較為突出。例如,在頁(yè)面元素比較少(12個(gè)元素)的情況下,比擬HTTP提升9%,比擬HTTP2提升42%,比擬HTTPS提升52%;在頁(yè)面元素增多的情況下,比擬HTTP提升36%,比擬HTTP2提升47%,比擬HTTPS提升64%。
用戶接入騰訊云CLB并使用QUIC協(xié)議時(shí)將通過如下步驟:
![](/d/20211015/4350ce19e97ea420c36bdeeb0cc651a5.gif)
QUIC接入架構(gòu)
1. 用戶側(cè)使用的各種請(qǐng)求,首先接入CLB;
2. 請(qǐng)求到達(dá)CLB后,CLB使用ID負(fù)載均衡算法將請(qǐng)求轉(zhuǎn)發(fā)到CLB QUIC集群;非QUIC協(xié)議,使用用戶配置的各種負(fù)載均衡算法進(jìn)行轉(zhuǎn)發(fā);
3. CLB針對(duì)請(qǐng)求進(jìn)行解析,如果需要私鑰計(jì)算(好比TLS完全握手),會(huì)將部分重要參數(shù)轉(zhuǎn)發(fā)到私鑰計(jì)算集群進(jìn)行高強(qiáng)度計(jì)算。如果需要查詢Session ID或者Server Config ID,會(huì)做一些緩存查詢。這樣能夠減少計(jì)算量,也能減少握手時(shí)間;
4. CLB接下去會(huì)將QUIC/HTTP2/HTTPS協(xié)議統(tǒng)一轉(zhuǎn)換成HTTP1.1請(qǐng)求。由于QUIC使用的是UDP協(xié)議,HTTP1.1使用的是TCP,UDP協(xié)議的內(nèi)容經(jīng)過轉(zhuǎn)換后會(huì)使用TCP進(jìn)行轉(zhuǎn)發(fā);
5. 業(yè)務(wù)集群只需要處理HTTP1.1協(xié)議即可。如果是自定義的私有協(xié)議,騰訊云也支持TCP/UDP透明轉(zhuǎn)發(fā),,由業(yè)務(wù)自行處理。
目前,騰訊云已在包孕QQ黃鉆頁(yè)面,游戲頁(yè)面在內(nèi)的多項(xiàng)內(nèi)部業(yè)務(wù)中驗(yàn)證了QUIC協(xié)議的性能數(shù)據(jù)。
![](/d/20211015/ad3c4ea8bfb75f681d6367b905dc662e.gif)
Qzone QUIC頁(yè)面
如上圖所示,圖中紅色箭頭指向的綠色標(biāo)識(shí)體現(xiàn)該頁(yè)面使用了QUIC協(xié)議,可以看出灰度實(shí)驗(yàn)的效果也非常明顯。其中QUIC請(qǐng)求的首字節(jié)時(shí)間比http2平均減少326ms,性能提升約25%。此外,QUIC請(qǐng)求發(fā)出的時(shí)間比http2平均減少250ms,QUIC請(qǐng)求頁(yè)面加載完成的時(shí)間平均減少2s,由于整體頁(yè)面比較復(fù)雜,很多其它的資源加載阻塞,導(dǎo)致整體加載完成的時(shí)間約9s,性能提升比例約22%。
可以發(fā)現(xiàn),用戶在通過QUIC協(xié)議進(jìn)行網(wǎng)絡(luò)操作時(shí),即使網(wǎng)絡(luò)頁(yè)面元素較多,也將極大的提高頁(yè)面的加載進(jìn)度,從而有效降低網(wǎng)絡(luò)延時(shí)帶來的用戶體驗(yàn)欠安的風(fēng)險(xiǎn)。
騰訊云網(wǎng)絡(luò)產(chǎn)品中心總監(jiān)劉穎體現(xiàn),騰訊云會(huì)持續(xù)探索業(yè)界先進(jìn)的尺度協(xié)議并提供支持和優(yōu)化,以更安適、更快速的網(wǎng)絡(luò)辦事助力用戶業(yè)務(wù)在云端實(shí)現(xiàn)增值創(chuàng)新。