谷歌QUIC協議推動Web從TCP遷移到UDP
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之前啟動了大規模產品化測試。
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%的重新緩衝。
相關文章
- KCP協議:從TCP到UDP家族QUIC/KCP/ENET協議TCPUDPUI
- TCP和UDP協議TCPUDP協議
- TCP/IP、UDP/IP協議TCPUDP協議
- 谷歌的QUIC協議會取代TCP嗎? - levelup谷歌UI協議TCP
- TCP 和 UDP 協議簡介TCPUDP協議
- 通訊協議:HTTP、TCP、UDP協議HTTPTCPUDP
- 傳輸層協議 TCP 和 UDP協議TCPUDP
- 系列TCP/IP協議-UDP(009)TCP協議UDP
- UDP 和 TCP 兩種協議簡介UDPTCP協議
- DNS何時使用TCP與UDP協議?DNSTCPUDP協議
- QUIC加密協議UI加密協議
- 終於懂了TCP和UDP協議區別TCPUDP協議
- 淺談TCP和UDP協議的區別TCPUDP協議
- [面試∙網路] TCP/IP(四):TCP 與 UDP 協議簡介面試TCPUDP協議
- TCP協議與UDP協議以及兩者之間的區別TCP協議UDP
- QUIC協議詳解UI協議
- TCP對應的協議和UDP對應的協議(簡單概述)TCP協議UDP
- Python教程之udp和tcp協議介紹PythonUDPTCP協議
- 淺談TCP、UDP、ICMP三種常見協議TCPUDP協議
- 【網路協議】UDP協議協議UDP
- 下一代HTTP底層協議將棄用TCP協議 改用QUIC技術HTTP協議TCPUI
- QUIC 協議初探 - iOS 實踐UI協議iOS
- 網路程式設計協議(TCP和UDP協議,黏包問題)以及socketserver模組程式設計協議TCPUDPServer
- TCP協議TCP協議
- UDP協議詳解UDP協議
- Socket:UDP協議小白UDP協議
- 實用TCP協議(1):TCP 協議簡介TCP協議
- 10 分鐘講完 QUIC 協議。UI協議
- 基於TCP/UDP的Socket程式設計,HTTP/HTTPS協議TCPUDP程式設計HTTP協議
- 在Linux中,我們都知道,dns採用了tcp協議,又採用了udp協議,什麼時候採用tcp協議?什麼 時候採用udp協議?為什麼要這麼設計?LinuxDNSTCP協議UDP
- 從Perforce遷移到GitGit
- 系列TCP/IP協議-TCP協議概述(011)TCP協議
- tcp/ip協議TCP協議
- Android與物聯網裝置通訊-UDP&TCP協議AndroidUDPTCP協議
- 【網路協議】TCP協議簡介協議TCP
- 從 golang flag 遷移到 cmdrGolang
- 從 Nginx 遷移到 Envoy ProxyNginx
- UDP協議抓包分析 -- wiresharkUDP協議