在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

QUIC協議的特性、原理及應用場景

中興文檔 ? 來源:中興文檔 ? 2023-09-15 11:21 ? 次閱讀

QUIC(Quick UDP Internet Connection,快速UDP網絡連接)發音同 "quick",是 Google 公司在 2012 年提出的使用 UDP 進行多路并發傳輸的協議。

2016 年,互聯網工程任務組 IETF 開始標準化 QUIC。

2017 年,Google 開發并部署了 QUIC 協議的初始設計 gQUIC。

2021 年,QUIC 協議的正式標準化版本 RFC900 發布。

QUIC協議的特性

從 QUIC 的命名中可以看到兩個關鍵詞——快速和 UDP。這個兩個關鍵詞概括了 QUIC 的特性,提供更快速、更可靠、更安全的數據傳輸方式。

快速:QUIC 比 TCP 更簡單,能夠更快速地連接。其安全性也不亞于 TCP+TLS。

UDP:QUIC 是建立在 UDP 之上的新型傳輸協議,一般在應用層發揮作用。

92b314aa-5376-11ee-a25d-92fbcf53809c.png

QUIC協議棧

QUIC協議的原理

一個 QUIC 數據包由頭部(Header)和數據(Data)組成。

92c812e2-5376-11ee-a25d-92fbcf53809c.png

QUIC數據格式

頭部(Header)中包含以下字段:

標志位(Flags):用來指示該數據包的類型、狀態等信息。

連接ID(Connection ID):用于唯一標識一個連接。

版本號(Version):表示使用的協議版本號。

包編號(Packet Number):表示數據包的順序。

數據(Data)被拆分成多個小的數據幀(Frame),每個數據幀都有自己的類型、長度和負載。數據幀通過 Stream ID 進行標識,以便于在多路復用時進行管理。

PING 幀:用于測試連接的可用性。

ACK 幀:用于確認收到數據包。

RESET_STREAM 幀:用于重置數據流的狀態。

STOP_SENDING 幀:用于停止向特定的數據流發送數據。

CRYPTO 幀:用于傳輸加密數據。

STREAM 幀:用于傳輸普通數據流。

92d451c4-5376-11ee-a25d-92fbcf53809c.png

STREAM幀結構

下面介紹 QUIC 協議中的三個核心特性原來:0-RTT 連接建立、無隊頭阻塞的多路復用、無歧義重傳。

0-RTT 連接建立

QUIC 協議使用了 0-RTT(零往返時間)連接建立技術,可以在客戶端發送第一個請求時就建立起安全連接,從而減少連接建立所需的時間。這個技術通過使用 TLS 的 Session Ticket,在服務端重啟后仍然保留連接狀態,從而避免了重新握手的過程。

傳統 HTTPs 握手包含了 TCP 和 TLS 握手,如下圖所示,總共需要 3 個 RTT。

92e0891c-5376-11ee-a25d-92fbcf53809c.png

TCP和TLS握手

從中可以看出,TLS 握手需要 1 個 RTT。通過 1 次 RTT,客戶端和服務端就協商好了通信密鑰。

客戶端:生成隨機數 a,選擇公開的大數 G 和 P,計算 A=a*G%P。發送 Client Hello 消息,將 A 和 G 傳遞給服務端。

服務端:生成隨機數 b,計算 B=b*G%P。發送 Server Hello 消息。將 B 傳遞給客戶端。

客戶端:通過秘鑰加密算法生成通信密鑰 KEY = aB = ab*G%P。

服務端:通過秘鑰加密算法生成通信密鑰 KEY = bA = ba*G%P。

QUIC 的握手是基于 TLS1.3 實現的,建立連接時也應該需要1次 RTT,那 QUIC 的 0-RTT 連接是如何實現的?

首次握手后,QUIC 的客戶端緩存了 Server Hello,那么在下次建連時,可以直接使用緩存數據計算通信密鑰,如下圖所示。

9300454a-5376-11ee-a25d-92fbcf53809c.png

0-RTT連接

客戶端:生成隨機數 c,選擇公開的大數 G 和 P,計算 A=c*G%P。發送 Client Hello 消息,將 A 和 G 傳遞給服務器。

客戶端:直接使用緩存的 Server Hello 計算通信密鑰 KEY = cB = cb*G%P,加密并發送應用數據。

服務端:根據 Client Hello 消息計算通信密鑰 KEY = bA = bc*G%P。

通過緩存 Server Hello,在生成 Client Hello 的同時,加密了應用數據,所以客戶端不需要經過握手就可以發送應用數據,這就是 QUIC 的 0-RTT 連接。

無隊頭阻塞的多路復用

瀏覽器限制了同一個域名下的請求數量。當請求達到最大數量時,剩余的資源需要等待其他資源請求完成后才能發起請求,這就是隊頭阻塞(Head of Line Blocking)。

在傳統的 HTTP/1 協議中,每個 TCP 連接只能處理唯一的請求,因此當需要請求多個資源時,需要建立多個 TCP 連接。為了解決 HTTP/1 的核心問題,在 HTTP/2 中引入了多路復用的技術,這個技術可以只通過一個 TCP 連接就可以傳輸所有的請求數據,如下圖。

多路復用很好的解決了瀏覽器限制同一個域名下的請求數量的問題,從而提高網絡吞吐量。此外,QUIC 協議還支持數據流級別的擁塞控制,可以更精細地控制網絡擁塞。

930aed88-5376-11ee-a25d-92fbcf53809c.png

TCP連接

HTTP/2 雖然通過多路復用解決了 HTTP 層的隊頭阻塞,但仍然存在 TCP 層的隊頭阻塞問題。在 HTTP/2 中,如果 TCP 連接中出現了丟包的情況,那么整個 TCP 都要開始等待重傳,后面的所有數據都將被阻塞。在這種情況下, HTTP/2 的表現情況反倒不如 HTTP/1 。

QUIC 通過為每個請求流都分配一個獨立的滑動窗口,解決 TCP 層的隊頭阻塞。如下圖,A 請求流上的丟包不會影響 B 請求流上的數據發送。

931bf696-5376-11ee-a25d-92fbcf53809c.png

QUIC連接

無歧義重傳

為了保證可靠性,TCP 使用基于序號的 Sequence Number 和 Ack 來確認消息的有序到達。在 TCP 中,重傳包的 sequence number 和原始包的Sequence Number 是不變的,也正是因此這個特性,引發了 Tcp 重傳歧義問題。當超時事件 RTO 發生后,客戶端發起重傳,然后接收到了 Ack 數據。但由于 Sequence Number 是一樣的,這個接收到的 Ack 到底是原始請求的響應還是重傳請求的響應呢?這導致了 RTT 計算歧義。

932bf122-5376-11ee-a25d-92fbcf53809c.png

TCP重傳歧義性

QUIC 則是采用了單向遞增的 Packet Number 來標識數據包,因此不會像 TCP 一樣,不會因為超時重傳了同樣序列的數據包,造成 RTT 和 RTO(Retransmission Time Out,重傳超時時間)的計算不準確。每個 Packet Number 都嚴格遞增,就算 Packet N 丟失了,重傳的 Packet N 的 Packet Number 已經不是 N,而是一個比 N 大的值。

934ea258-5376-11ee-a25d-92fbcf53809c.png

QUIC的RTT計算

QUIC 對于 RTT 的計算更為準確,預估的超時時間能夠有效防止更多的重傳請求被錯誤地發送回客戶端。同時也給予了 QUIC 網絡更為快速的反應時間,及時通知客戶端重傳數據包。

但是單純依靠嚴格遞增的 Packet Number 肯定是無法保證數據的順序性和可靠性。

QUIC 引入了 Stream Offset 的概念,通過 Stream Offset 可以保證應用數據的順序。假設客戶端先后發送了 Pakcet N 和 Pakcet N+1,Stream Offset 分別是 x 和 x+y。如果 Packet N 丟失,引發重傳,重傳的 Packet Number 是 N+2,但是它的 Stream Offset 依然是 x,這樣就算 Packet N + 2 是后到的,依然可以將 Stream x 和 Stream x+y 按照順序組織起來,交給應用程序處理。

QUIC協議的應用場景

QUIC 為各種領域提供了可靠、高效和安全的數據傳輸方案,其中最具潛力的應用場景包括:

實時 Web 和移動應用

這些應用需要低延遲和可靠的數據傳輸。通過相互獨立的數據流和擁塞控制機制,QUIC 可以快速高效地發送和接收數據。在多路復用模式下,QUIC 同一連接內不同數據流之間的數據傳輸互不干擾。

物聯網設備通信

物聯網設備通常使用 TCP 和 MQTT 等協議進行通信,在受限的網絡環境中可能存在高延遲和丟包等問題。相比之下,QUIC 可以極近實現 0-RTT,為高延遲和丟包的網絡環境,提供了更可靠和高效的替代方案。

支付和電子商務應用

這些應用需要安全可靠的數據傳輸。QUIC 通過 TLS 加密和可靠的數據流,使其成為這些應用的理想選擇,有助于保證數據安全完整地傳輸。從用戶的角度來看,QUIC 通過保證更快、更順暢的交易,優化了用戶體驗。

當前,QUIC 協議已經成為 IETF 標準化工作組的一個項目,并且越來越多的互聯網公司開始支持 QUIC 協議。隨著 QUIC 協議的普及,我們可以期待更快、更安全、更可靠的網絡體驗。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據傳輸
    +關注

    關注

    9

    文章

    1983

    瀏覽量

    65296
  • 物聯網
    +關注

    關注

    2920

    文章

    45575

    瀏覽量

    383864
  • UDP
    UDP
    +關注

    關注

    0

    文章

    329

    瀏覽量

    34331
  • Quic
    +關注

    關注

    0

    文章

    25

    瀏覽量

    7354

原文標題:三分鐘,帶你了解下一代傳輸層協議QUIC

文章出處:【微信號:ztedoc,微信公眾號:中興文檔】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AG32VF-MIPI應用場景

    的基礎上,集成了MIPI接口協議,提供了豐富的功能和特性,能夠滿足不同應用場景的需求,為用戶提供更加全面、便捷、高效的數據傳輸方案。 基本參數: MIPI up to 1.5Gbps LVDS up
    發表于 01-22 08:56

    USB協議分析儀的技術原理和應用場景

    USB協議分析儀的技術原理和應用場景可以詳細闡述如下:技術原理USB協議分析儀的技術原理主要基于以下幾個方面: 總線監聽:USB協議分析儀通過監聽USB總線上的數據傳輸過程,實時捕獲U
    發表于 09-24 14:29

    NFC協議分析儀的技術原理和應用場景

    NFC協議分析儀的技術原理和應用場景可以詳細闡述如下:技術原理NFC(Near Field Communication,近場通信)協議分析儀是一種用于分析NFC通信協議和性能的專業設備
    發表于 09-25 14:45

    實時示波器的技術原理和應用場景

    有頻譜分析功能,可以將時域信號轉換為頻域信號,從而顯示信號的頻譜特性。綜上所述,實時示波器憑借其獨特的技術原理和廣泛的應用場景,在電子工程和通信技術領域發揮著不可替代的作用。
    發表于 10-23 14:22

    時域網絡分析儀的原理和應用場景

    進行計算。 頻域/時域轉換:網絡分析儀通過FFT(快速傅里葉變換)和CZT(線性調頻Z變換)實現時域到頻域的轉換,從而能夠獲取被測器件在時域上的響應特性。 應用場景 軍用電子裝備:在相控陣雷達、精確
    發表于 01-13 16:03

    混合信號分析儀的原理和應用場景

    混合信號分析儀是一種集成度高、功能強大的電子測量設備,其原理和應用場景如下:一、原理混合信號分析儀由模擬部分和數字部分組成,用于混合信號的分析。其工作原理主要包括以下幾個方面: 信號采樣:混合信號
    發表于 01-21 16:45

    什么是QUIC協議?

    Quic
    電子學習
    發布于 :2023年02月08日 11:25:15

    幾種LED調光協議分析及具體應用場景介紹

    市面上主流幾種LED調光協議分析及具體應用場景介紹目前國內外的LED驅動已經不僅僅滿足照明需求,更多是去追求各種不同場景的應用,搭配各種數字協議,實現某種特定的功能,比如在汽車大燈的應
    發表于 12-31 08:04

    一文帶你了解QUIC協議

    當通過網絡傳輸數據時,一種新的協議QUIC(Quick UDP Internet Connection,快速UDP互聯網連接)正在成為FAANG的默認選擇。本篇文章描述了QUIC協議
    的頭像 發表于 09-02 09:39 ?4576次閱讀
    一文帶你了解<b class='flag-5'>QUIC</b><b class='flag-5'>協議</b>

    QUIC通信協議到底講了什么?

    QUIC(Quick UDP Internet Connection)是谷歌制定的一種基于UDP的低時延的互聯網傳輸層協議,很好地解決了當今傳輸層和應用層面臨的各種需求,包括處理更多的連接,低延遲以及安全性保障等,目前QUIC
    的頭像 發表于 12-14 10:24 ?1115次閱讀

    什么是QUIC,QUIC在MQTT通信場景中的應用前景

    QUIC(Quick UDP Internet Connection)是Google提出的一個基于UDP的傳輸協議,因其高效的傳輸效率和多路并發的能力,已經成為下一代互聯網協議HTTP/3的底層傳輸
    發表于 12-26 11:56 ?4435次閱讀

    QUIC是如何工作的?為什么HTTP/3要選擇QUIC協議

    QUIC發布之前,HTTP 使用 TCP 作為傳輸數據的底層協議。隨著移動互聯網的不斷發展,人們對實時交互和多樣化網絡場景的需求越來越大。
    的頭像 發表于 08-10 17:21 ?2498次閱讀
    <b class='flag-5'>QUIC</b>是如何工作的?為什么HTTP/3要選擇<b class='flag-5'>QUIC</b><b class='flag-5'>協議</b>?

    一文讀懂QUIC協議:更快、更穩、更高效的網絡通信

    HTTP/3 是第三個主要版本的 HTTP 協議。與其前任 HTTP/1.1 和 HTTP/2 不同,在 HTTP/3 中,棄用 TCP 協議,改為使用基于 UDP 協議QUIC
    的頭像 發表于 08-24 15:43 ?2096次閱讀
    一文讀懂<b class='flag-5'>QUIC</b><b class='flag-5'>協議</b>:更快、更穩、更高效的網絡通信

    UDP的特性與應用場景

    一、UDP的特性與應用場景 采用UDP有3個關鍵點: 網絡帶寬需求較小,而實時性要求高 大部分應用無需維持連接 需要低功耗 應用場景: 網頁瀏覽:新浪微博就已經用了QUIC
    的頭像 發表于 11-13 15:34 ?1142次閱讀
    UDP的<b class='flag-5'>特性</b>與應<b class='flag-5'>用場景</b>

    UART協議的工作原理和應用場景

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)協議是一種廣泛使用的串行通信協議,它允許計算機與外部設備之間通過串行接口進行數據傳輸。以下是對UART協議的詳
    的頭像 發表于 08-25 17:15 ?4746次閱讀
    主站蜘蛛池模板: www.亚洲色图.com | 禁漫羞羞入口 | 奇米影视大全 | 91九色porny蝌蚪 | 欧美成网站 | 一本到在线观看视频不卡 | 免费在线视频你懂的 | 伊人久久精品成人网 | 亚洲嫩草影院在线观看 | 交在线观看网站视频 | 性欧美videofree丝袜 | 四虎www成人影院免费观看 | 丁香婷婷亚洲 | 操国产美女| 色婷婷亚洲| 天天操天天摸天天爽 | 色噜噜噜噜 | 免费网址视频在线看 | 717影院理伦午夜论八戒 | 狠狠亚洲狠狠欧洲2019 | 大量真实偷拍情侣视频野战 | 午夜免费视频 | 日本黄色站 | 狠狠色综合久久婷婷 | 欧美aaaaa性bbbbb小妇 | 国产精品久久免费观看 | 欧美成人伊人久久综合网 | 色屁屁www免费看视频影院 | 国产精品理论片在线观看 | 欧美视频精品一区二区三区 | 午夜看片在线观看 | 91拍拍在线观看 | 手机看片精品国产福利盒子 | 日本免费大黄 | 国产九色在线 | 日本高清免费一本视频在线观看 | h网站在线 | 国产产一区二区三区久久毛片国语 | 自拍偷自拍亚洲精品被多人伦好爽 | 激情五月激情综合色区 | 狠狠色丁香婷婷综合最新地址 |