Google 的 QUIC 華麗轉(zhuǎn)身成為下一代協(xié)議標準: HTTP/3.0
HTTP/2.0 還沒有普及,HTTP/3.0 標準就要被制定了。
據(jù) IETF 透露,HTTP-over-QUIC 實驗協(xié)議將被重命名為 HTTP/3,并成為 HTTP 協(xié)議的第三個正式版本。
IETF 是 Internet Engineering Task Force 的縮寫,意思是互聯(lián)網(wǎng)工程任務小組,主要負責互聯(lián)網(wǎng)標準的開發(fā)和推動。被他們“欽定”,HTTP-over-QUIC 成為HTTP/3.0 算是沒跑了。
QUIC
先來了解一下什么是 QUIC。
QUIC(Quick UDP Internet Connections),是快速 UDP 互聯(lián)網(wǎng)連接的縮寫,這是一種實驗性的傳輸層協(xié)議,由 Google 開發(fā),在 2013 年實現(xiàn)。
QUIC 是基于 UDP 協(xié)議,它在兩個端點之間創(chuàng)建連接,且支持多路復用。在設計之初 QUIC 希望能夠提供等同于 SSL/TLS 層級的安全保障的同時,減少數(shù)據(jù)傳輸及創(chuàng)建連接時的延遲時間,雙向控制帶寬,從而達到更快速的體驗。
QUIC 相比現(xiàn)在廣泛應用的 HTTP2 + TCP + TLS 協(xié)議有如下的優(yōu)勢:
- 減少 TCP 三次握手及 TLS 握手時間。
- 改進的擁塞控制。
- 避免隊頭阻塞的多路復用。
- 連接遷移。
- 前向冗余糾錯。
HTTP-over-QUIC 算是 QUIC 協(xié)議的一種應用實現(xiàn),而在 IETF 開始標準化該協(xié)議時,也有意將它分為兩層:傳輸和 HTTP 部分。
這個想法也是想將 QUIC 傳輸?shù)牟糠知毩⒊鰜恚@樣可以方便的用于其他場景下的數(shù)據(jù)傳輸,而不僅僅為 HTTP 或者其他類 HTTP 的協(xié)議使用。
Google 與 QUIC
Google 一直在對協(xié)議標準上做努力,早年間提出的 SPDY 協(xié)議,被 IETF 標準化之后推出了類似于 SPDY 的 HTTP/2.0 協(xié)議標準,Google 立即宣布放棄對 SPDY 的支持,轉(zhuǎn)而支持 HTTP/2。而 QUIC 也是 Google 提出的一種基于 UDP 的傳輸協(xié)議。
Google 希望 QUIC 能夠慢慢取代 TCP 和 UDP,成為移動互聯(lián)網(wǎng)上,二進制數(shù)據(jù)傳輸?shù)男聟f(xié)議。通過 Google 的測試證明,QUIC 更快也更安全。
QUIC 即 HTTP/3.0
QUIC 雖然在 2013 年就被 Google 提出,但是直到 2015 年才被提議作為 IETF 的標準草案,并在一年之后,就是 2016 年 7 月,提出了 HTTP-over-QUIC。
在上個月的郵件討論中,IETF HTTP 和 QUIC 工作組主席 Mark Nottingham 正式提出將 HTPP-over-QUIC 重命名為 HTTP/3.0。隨后的幾天討論中,此項提議被 IETF 成員接受,并給出了官方認可。
自此,HTTP-over-QUIC 正式成為 HTTP/3.0,為 HTTP 協(xié)議的下一個主要版本。
QUIC 還有多遠
雖然 Chrome 從 29 版本開始就添加了 HTTP-over-QUIC 的支持,并且今年開始 Facebook 也開始采用這項技術。
但是這個在 HTTP/2.0 還不是主流的環(huán)境下,HTTP/3.0 已經(jīng)確定,它就在未來的某個地方。
據(jù) W3Techs 統(tǒng)計,截止到 2018 年 11 月,前 1000 萬網(wǎng)站在中,有 31.2% 支持了 HTTP/2.0,而 QUIC 只有 1.2%,從趨勢上看,可以說離我們還很遠。
小結(jié)
HTTP/3.0 是一個仍在開發(fā)中的協(xié)議,計劃在今年內(nèi)完成,但是可以預見的,它離普及還很遠。
很多協(xié)議的設計思想是非常值得我們借鑒與學習的,對協(xié)議有興趣的朋友,我找了一篇騰訊團隊的資深研發(fā)工程師羅成寫的一篇 QUIC 協(xié)議的原理分析,通俗易懂,有興趣可以點擊“閱讀原文”查看。
參考:https://www.zdnet.com/article/http-over-quic-to-be-renamed-http3
https://daniel.haxx.se/blog/2018/11/11/http-3
https://zhuanlan.zhihu.com/p/32553477
【本文為51CTO專欄作者“張旸”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號聯(lián)系作者獲取授權(quán)】