一、quic 協議概述
quic 全稱 quick udp internet connection [1],「快速 udp 網際網路連線」,(和英文 quick 諧音,簡稱「快」)是由 google 提出的使用 udp 進行多路併發傳輸的協議。
quic 相比現在廣泛應用的 http2+tcp+tls 協議有如下優勢:
下圖是網路層對比圖:下圖是通訊延遲對比圖:
二、quic需要的原因
1、概述
從上個世紀 90 年代網際網路開始興起一直到現在,大部分的網際網路流量傳輸只使用了幾個網路協議。使用 ipv4 進行路由,使用 tcp 進行連線層面的流量控制,使用 ssl/tls 協議實現傳輸安全,使用 dns 進行網域名稱解析,使用 http 進行應用資料的傳輸。
而且近三十年來,這幾個協議的發展都非常緩慢。tcp 主要是擁塞控制演算法的改進,ssl/tls 基本上停留在原地,幾個小版本的改動主要是密碼套件的公升級,tls1.3[3] 是乙個飛躍式的變化,但截止到今天,還沒有正式發布。ipv4 雖然有乙個大的進步,實現了 ipv6,dns 也增加了乙個安全的 dnssec,但和 ipv6 一樣,部署進度較慢。
隨著移動網際網路快速發展以及物聯網的逐步興起,網路互動的場景越來越豐富,網路傳輸的內容也越來越龐大,使用者對網路傳輸效率和 web 響應速度的要求也越來越高。
一方面是歷史悠久使用廣泛的古老協議,另外一方面使用者的使用場景對傳輸效能的要求又越來越高。
2、問題描述
這裡分小節簡單說明一下。2.1 中間裝置的僵化
2.2 依賴於作業系統的實現導致協議僵化2.3 建立連線的握手延遲大2.4 隊頭阻塞三、quic 核心特性1、連線建立延時低
0rtt 建連可以說是 quic 相比 http2 最大的效能優勢。所謂的0rtt就是,通訊雙方發起通訊連線時,第乙個資料報便可以攜帶有效的業務資料。那什麼是 0rtt 建連呢?
這裡面有兩層含義:
2、改進的擁塞控制tcp 的擁塞控制實際上包含了四個演算法:慢啟動,擁塞避免,快速重傳,快速恢復 [22]。
quic 協議當前預設使用了 tcp 協議的 cubic 擁塞控制演算法 [6],同時也支援 cubicbytes, reno, renobytes, bbr, pcc 等擁塞控制演算法。
從擁塞演算法本身來看,quic 只是按照 tcp 協議重新實現了一遍,那麼 quic 協議到底改進在哪些方面呢?主要有如下幾點。
【可插拔】:
什麼叫可插拔呢?就是能夠非常靈活地生效,變更和停止。體現在如下方面:
stgw 在配置層面進行了優化,我們可以針對不同業務,不同網路制式,甚至不同的 rtt,使用不同的擁塞控制演算法。【單調遞增的 packet number】:
圖 4 stream offset 保證有序性
【不允許 reneging】:
【ack delay 時間】:3、基於 stream 和 connecton 級別的流量控制quic 實現流量控制的原理比較簡單: quic 的流量控制和 tcp 有點區別,tcp 為了保證可靠性,視窗左邊沿向右滑動時的長度取決於已經確認的位元組數。如果中間出現丟包,就算接收到了更大序號的 segment,視窗也無法超過這個序列號。但 quic 不同,就算此前有些 packet 沒有接收到,它的滑動只取決於接收到的最大偏移位元組數。
圖 5 quic flow control
4、沒有隊頭阻塞的多路復用那 quic 多路復用為什麼能避免上述問題呢? 5、加密認證的報文6、連線遷移7、其他亮點參考鏈詳解基於UDP的低延時網路傳輸層協議 QUIC
quic 全稱 quick udp internet connection 1 快速 udp 網際網路連線 和英文 quick 諧音,簡稱 快 是由 google 提出的使用 udp 進行多路併發傳輸的協議。quic 相比現在廣泛應用的 http2 tcp tls 協議有如下優勢 2 減少了 tcp...
可靠的UDP協議 QUIC協議
quic是一種新的傳輸 方式,與tcp相比可以減少延遲。表面上,quic與在udp上實現 的tcp tls http 2非常相似。由於tcp是在作業系統核心和中介軟體韌體中實現的,所以對tcp進行重大改變幾乎是不可能的。但是,由於quic是建立在udp之上的,所以沒有這樣的限制。quic相比於上述介...
詳解低延時高音質 編譯碼篇
語音社交已經出現了數十年,而近期的 互動播客 場景讓音訊互動再次成為業界焦點。如何提供好的音訊互動體驗?怎麼優化音質?如何應對全球傳輸下的網路挑戰?如何在高音質的基礎上讓聲音更悅耳?我們將從今天開始通過 詳解低延時高音質 系列內容,從多個層面深入淺出逐一解答這些問題。繼 elon musk 後,bi...