1. 程式人生 > >Google 的 QUIC 華麗轉身成為下一代網路協議: HTTP/3.0

Google 的 QUIC 華麗轉身成為下一代網路協議: HTTP/3.0

HTTP/2.0 還沒有普及,HTTP/3.0 標準就要被制定了。

據 IETF 透露,HTTP-over-QUIC 實驗協議將被重新命名為 HTTP/3,併成為 HTTP 協議的第三個正式版本

IETF 是 Internet Engineering Task Force 的縮寫,意思是網際網路工程任務小組,主要負責網際網路標準的開發和推動。被他們“欽定”,HTTP-over-QUIC 成為HTTP/3.0 算是沒跑了。

QUIC

先來了解一下什麼是 QUIC。

QUIC(Quick UDP Internet Connections),是快速 UDP 網際網路連線

的縮寫,這是一種實驗性的傳輸層協議,由 Google 開發,在 2013 年實現。

QUIC 是基於 UDP 協議,它在兩個端點之間建立連線,且支援多路複用。在設計之初 QUIC 希望能夠提供等同於 SSL/TLS 層級的安全保障的同時,減少資料傳輸及建立連線時的延遲時間,雙向控制頻寬,從而達到更快速的體驗。

QUIC 相比現在廣泛應用的 HTTP2 + TCP + TLS 協議有如下的優勢:

  1. 減少 TCP 三次握手及 TLS 握手時間。
  2. 改進的擁塞控制。
  3. 避免隊頭阻塞的多路複用。
  4. 連線遷移。
  5. 前向冗餘糾錯。

HTTP-over-QUIC 算是 QUIC 協議的一種應用實現,而在 IETF 開始標準化該協議時,也有意將它分為兩層:傳輸

HTTP 部分。

這個想法也是想將 QUIC 傳輸的部分獨立出來,這樣可以方便的用於其他場景下的資料傳輸,而不僅僅為 HTTP 或者其他類 HTTP 的協議使用。

Google 與 QUIC

Google 一直在對協議標準上做努力,早年間提出的 SPDY 協議,被 IETF 標準化之後推出了類似於 SPDY 的 HTTP/2.0 協議標準,Google 立即宣佈放棄對 SPDY 的支援,轉而支援 HTTP/2。而 QUIC 也是 Google 提出的一種基於 UDP 的傳輸協議。

Google 希望 QUIC 能夠慢慢取代 TCP 和 UDP,成為移動網際網路上,二進位制資料傳輸的新協議。

通過 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 協議的下一個主要版本。

QUIC 還有多遠

雖然 Chrome 從 29 版本開始就添加了 HTTP-over-QUIC 的支援,並且今年開始 Facebook 也開始採用這項技術。

但是這個在 HTTP/2.0 還不是主流的環境下,HTTP/3.0 已經確定,它就在未來的某個地方。

據 W3Techs 統計,截止到 2018 年 11 月,前 1000 萬網站在中,有 31.2% 支援了 HTTP/2.0,而 QUIC 只有 1.2%,從趨勢上看,可以說離我們還很遠。

小結

HTTP/3.0 是一個仍在開發中的協議,計劃在今年內完成,但是可以預見的,它離普及還很遠。

很多協議的設計思想是非常值得我們借鑑與學習的,對協議有興趣的朋友,我找了一篇騰訊團隊的資深研發工程師寫的一篇 QUIC 協議的原理分析,通俗易懂,有興趣可以[點選檢視](https://zhuanlan.zhihu.com/p/32553477)。

覺得有幫助記得點贊和分享哦,謝謝。

參考:

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


公眾號後臺回覆成長『成長』,將會得到我準備的學習資料,也能回覆『加群』,一起學習進步;你還能回覆『提問』,向我發起提問。

推薦閱讀:

圖解 Chrome,架構篇 | 利用預處理指令碼,管理小程式程式碼| 分詞,科普及解決方案| 圖解:HTTP 範圍請求 | 小程式學習資料 |HTTP 內容編碼 | 輔助模式實戰 | 輔助模式玩出花樣 | 小程式 Flex 佈局