quic是乙個谷歌提出的新的網際網路協議。
quic解決出現在現在網路協議的一些傳輸層和應用層的問題,而且幾乎不需要應用更改。quic和tcp+tls+http2十分相似,但是基於udp實現。使用quic作為乙個獨立的協議可以做到一些別的協議做不到的創新,因為它們受到傳統客戶端和中介軟體的阻礙。
和tcp+tls+http2相比,quic的核心優勢有以下幾點:
簡單來說,在傳送有效負載前,和tcp+tls的1~3rt相比,quic通常需要0rt。
當quic客戶端第一次鏈結到服務端時,客戶端必須執行1rt的握手來獲取完成握手的所有必要資訊。客戶端傳送乙個chlo,服務端返回乙個帶有客戶端用來繼續執行的拒信,包括源位址令牌和伺服器證書。下次客戶端傳送chlo時,可以使用上次連線快取的證書來立刻返回乙個加密的訊息。
quic有可插拔的擁塞控制,而且比tcp給擁塞控制提供更豐富的資訊。這允許乙個quic傳送者識別重發的ack和原始的ack避免tcp的重發歧義問題。quic ack還明確傳輸資料報傳送和接收的延時,以及單調增加的序列號。這允許準確的rt計算。
基於tcp的http2更大的乙個問題是排頭阻塞。應用視tcp連線為乙個位元組流。當乙個tcp包丟失,http2連線上沒有資料流向前推進,直到包被重傳而且被遠端接受——甚至當這些資料流已經到達而且在快取等待。
由於quic一開始就是為多路復用操作設計的,因此傳輸單個流資料丟失的資料報通常只影響該特定的流。每個流的幀可以立即被分發並且在應用推進。
為了在不等待重傳情況下從丟包中恢復,quic可以用fec包補充一組包。很像raid-4,在fec組裡包含部分fec包。如果組中的乙個包丟失,則可以從fec包和組中剩餘的包恢復這個包。傳送者可以決定是否傳送fec包來優化特殊的場景(例如,乙個請求的開始和結束)。
quic連線被乙個64位的連線id識別,被客戶端隨機生成。相比之下,tcp連線被乙個由源位址,源埠,目標位址,目標埠的4元組識別。這意味著如果乙個客戶端改變位址(例如,從wi-fi切到流動網路)或者埠(如果乙個nat丟失並且這個埠連線重新繫結),任何可用的tpc連線不再有效。當乙個quic客戶端改變ip位址,它可以在不打斷執行中的請求的情況下從這個新的ip位址使用這個老的連線id。
quic是幹什麼的?
quic quick udp internet connections 是一種新的預設加密的網際網路通訊協議,它提供了許多改進,旨在加速http通訊,同時使其變得更加安全,其最終目的是在web上代替tcp和tls協議 可以看到發起http請求時涉及到tcp三次握手 tls ssl的秘鑰互動。tcp三...
什麼是HTTP協議?什麼是HTTPS協議?
什麼是http協議?什麼是https協議?1.http和https的區別 區別 2.對稱加密和非對稱加密 對稱加密 非對稱加密 3.建立連線 4.三次握手和四次分手 5.一次完整的http事務流程 6.dns網域名稱解析 解析過程 7.tcp協議如何來保證傳輸的可靠性 對於可靠性,tcp通過以下方式...
什麼是協議
計算機網路中有乙個術語 協議。什麼是協議,協議的作用是什麼?為了理解這一概念,我們可以通過和一些人類活動場景模擬來理解。如下圖1左側所示,該場景是我們生活中比較典型的交流場景。人與人之間的交流,總是需要先由其中一方傳遞乙個 我要和你交流 的訊號,從而開始與另一方的交流。對應到圖1的場景,訊號就是第乙...