QUIC(Quick UDP Internet Connection)是由谷歌提出的基于UDP的傳輸層協(xié)議,因其高效的傳輸效率和多路并發(fā)的能力,已經(jīng)成為下一代網(wǎng)絡(luò)協(xié)議HTTP/3的底層傳輸協(xié)議。
除Web領(lǐng)域外,QUIC協(xié)議還適用于低延遲、高吞吐的應(yīng)用場景,例如車聯(lián)網(wǎng)、CDN加速等。
一、為什么需要QUIC
HTTP從最初的HTTP/0.9,歷經(jīng)HTTP/1.x、HTTP/2、HTTP/3三次大的迭代。在HTTP/3版本之前,HTTP底層都是用TCP傳輸數(shù)據(jù)。
TCP協(xié)議作為傳統(tǒng)的可靠傳輸協(xié)議,主要有如下兩個不足:
一是握手延遲大。TCP三次握手的過程,對于直播等需要首幀秒開場景,握手延遲太大。
二是隊頭擁塞。使用TCP時,如果丟失一個數(shù)據(jù)包,接下來所有的數(shù)據(jù)包都會停止傳輸,直到丟失的那個數(shù)據(jù)包被重新發(fā)送,這種現(xiàn)象被稱為“隊頭阻塞”。隊頭擁塞會導(dǎo)致延遲明顯增加,影響傳輸速度。
二、QUIC的優(yōu)勢
QUIC是用來替代TCP、SSL/TLS的傳輸層協(xié)議,使用UDP端口號來區(qū)分連接,同時又提供數(shù)據(jù)包重傳、擁塞控制,以及其他與TCP類似的功能。
相比廣泛應(yīng)用的 HTTP2+TCP+TLS協(xié)議,QUIC有如下優(yōu)勢:
一是建立連接速度更快。不需要三次握手,初次握手時即交換安全密鑰,從而使加密連接速度提升一倍。
二是丟包敏感性較低。QUIC使用類似HTTP/2的多路復(fù)用模式,可以同時支持多個數(shù)據(jù)流。如果一個數(shù)據(jù)流發(fā)送錯誤,導(dǎo)致丟包,其他數(shù)據(jù)流會繼續(xù)發(fā)送數(shù)據(jù)包,不會阻塞傳輸。
三是切換網(wǎng)絡(luò)時的性能提升較高。QUIC協(xié)議連接遷移功能,在切換網(wǎng)絡(luò)時,可以實現(xiàn)平穩(wěn)過渡,避免卡頓,提升用戶體驗。
聯(lián)系客服