谷歌QUIC協議推動Web從TCP遷移到UDP

banq發表於2016-08-01
QUIC協議(Qucik UDP Internet Connection 快速UDP網際網路連線)是一個全新的基於UDP而不是TCP的Web協議,有時稱之為TCP/2

QUIC協議最有意義一點是從TCP遷移到UDP,通常,現在Web都是基於TCP協議建立可靠的傳輸協議,為了啟動一個TCP協議需要三趟握手過程,這意味著對於每個啟動連線會增加額外的網路包來回傳送過程,也就是對新的連線會有額外的延遲。

如果希望在此基礎上達成TLS,建立一個安全加密的HTTPS連線,會額外增加更多網路包來回傳送。

類似TCP Fast Open這樣的技術會改善TCP情況,但是還沒有廣泛採用。

從另外一個方面看,UDP是一種發出就忘記(fire and forget)協議,一個訊息透過UDP傳送,並會假設到達目的地,在校驗包方面花費更少事件,缺點不可靠,那麼基於UDP再建立一個確認包傳遞可以解決這個問題。

Google的QUIC協議正是這麼做的。

QUIC協議能啟動一個連線,然後協商建立所有的TLS(HTTPS)引數,只需要1或2個包,依賴你連線的主機是否是新的或已知熟悉的主機。

這是對初始化一個連線和一個頁面下載造成巨大影響。

TCP協議提高目前很難,每個作業系統不同方式不同。而UDP非常簡單設計,QUIC結合了UDP快速和TCP的可靠。

QUIC很多優點:
1.QUIC能夠基於非堵塞傳輸協議結合SPDY和HTTP2多路複用兩者的優點。

2.QUIC沒有TCP中quadruplets(四組),不需要源IP,只需要一個唯一標識稱為連線UUID,如果你的手機從Wifi遷移到LTE網,可以一直保持你的連線UUID,這樣不需要重新確認連線或TLS,你之前的連線仍然有效。這個原理等同於Mosh Shell,能夠基於UDP保持SSH連線,擁有漫遊和移動良好體驗。這也開啟了多源抓取內容的大門。

目前QUIC協議已經在2014年的Chrome瀏覽器中支援,你可以在Chrome中啟用這個協議,網址中鍵入:chrome://flags/,找到實驗性QUIC協議(Experimental QUIC protocol),如果已經沒有啟用啟用可以啟用,目前預設啟用了。

Google已經在伺服器端Youtube和google.com和客戶端Chrome之前啟動了大規模產品化測試。

這裡外掛是一種顯示HTTP/2和SPDY的圖示顯示器。

Caddy是能夠讓你的Web伺服器執行QUIC協議。

經過實驗發現,QUIC協議對於影片服務能夠更快,YouTube會減少30%的重新緩衝。

Google’s QUIC protocol: moving the web from TCP to UDP

相關文章