吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

QUIC協(xié)議的特性、原理及應(yīng)用場(chǎng)景

中興文檔 ? 來(lái)源:中興文檔 ? 2023-09-15 11:21 ? 次閱讀

QUIC(Quick UDP Internet Connection,快速UDP網(wǎng)絡(luò)連接)發(fā)音同 "quick",是 Google 公司在 2012 年提出的使用 UDP 進(jìn)行多路并發(fā)傳輸?shù)膮f(xié)議。

2016 年,互聯(lián)網(wǎng)工程任務(wù)組 IETF 開(kāi)始標(biāo)準(zhǔn)化 QUIC。

2017 年,Google 開(kāi)發(fā)并部署了 QUIC 協(xié)議的初始設(shè)計(jì) gQUIC。

2021 年,QUIC 協(xié)議的正式標(biāo)準(zhǔn)化版本 RFC900 發(fā)布。

QUIC協(xié)議的特性

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

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

UDP:QUIC 是建立在 UDP 之上的新型傳輸協(xié)議,一般在應(yīng)用層發(fā)揮作用。

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

QUIC協(xié)議棧

QUIC協(xié)議的原理

一個(gè) QUIC 數(shù)據(jù)包由頭部(Header)和數(shù)據(jù)(Data)組成。

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

QUIC數(shù)據(jù)格式

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

標(biāo)志位(Flags):用來(lái)指示該數(shù)據(jù)包的類(lèi)型、狀態(tài)等信息。

連接ID(Connection ID):用于唯一標(biāo)識(shí)一個(gè)連接。

版本號(hào)(Version):表示使用的協(xié)議版本號(hào)。

包編號(hào)(Packet Number):表示數(shù)據(jù)包的順序。

數(shù)據(jù)(Data)被拆分成多個(gè)小的數(shù)據(jù)幀(Frame),每個(gè)數(shù)據(jù)幀都有自己的類(lèi)型、長(zhǎng)度和負(fù)載。數(shù)據(jù)幀通過(guò) Stream ID 進(jìn)行標(biāo)識(shí),以便于在多路復(fù)用時(shí)進(jìn)行管理。

PING 幀:用于測(cè)試連接的可用性。

ACK 幀:用于確認(rèn)收到數(shù)據(jù)包。

RESET_STREAM 幀:用于重置數(shù)據(jù)流的狀態(tài)。

STOP_SENDING 幀:用于停止向特定的數(shù)據(jù)流發(fā)送數(shù)據(jù)。

CRYPTO 幀:用于傳輸加密數(shù)據(jù)。

STREAM 幀:用于傳輸普通數(shù)據(jù)流。

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

STREAM幀結(jié)構(gòu)

下面介紹 QUIC 協(xié)議中的三個(gè)核心特性原來(lái):0-RTT 連接建立、無(wú)隊(duì)頭阻塞的多路復(fù)用、無(wú)歧義重傳。

0-RTT 連接建立

QUIC 協(xié)議使用了 0-RTT(零往返時(shí)間)連接建立技術(shù),可以在客戶端發(fā)送第一個(gè)請(qǐng)求時(shí)就建立起安全連接,從而減少連接建立所需的時(shí)間。這個(gè)技術(shù)通過(guò)使用 TLS 的 Session Ticket,在服務(wù)端重啟后仍然保留連接狀態(tài),從而避免了重新握手的過(guò)程。

傳統(tǒng) HTTPs 握手包含了 TCP 和 TLS 握手,如下圖所示,總共需要 3 個(gè) RTT。

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

TCP和TLS握手

從中可以看出,TLS 握手需要 1 個(gè) RTT。通過(guò) 1 次 RTT,客戶端和服務(wù)端就協(xié)商好了通信密鑰。

客戶端:生成隨機(jī)數(shù) a,選擇公開(kāi)的大數(shù) G 和 P,計(jì)算 A=a*G%P。發(fā)送 Client Hello 消息,將 A 和 G 傳遞給服務(wù)端。

服務(wù)端:生成隨機(jī)數(shù) b,計(jì)算 B=b*G%P。發(fā)送 Server Hello 消息。將 B 傳遞給客戶端。

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

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

QUIC 的握手是基于 TLS1.3 實(shí)現(xiàn)的,建立連接時(shí)也應(yīng)該需要1次 RTT,那 QUIC 的 0-RTT 連接是如何實(shí)現(xiàn)的?

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

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

0-RTT連接

客戶端:生成隨機(jī)數(shù) c,選擇公開(kāi)的大數(shù) G 和 P,計(jì)算 A=c*G%P。發(fā)送 Client Hello 消息,將 A 和 G 傳遞給服務(wù)器。

客戶端:直接使用緩存的 Server Hello 計(jì)算通信密鑰 KEY = cB = cb*G%P,加密并發(fā)送應(yīng)用數(shù)據(jù)。

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

通過(guò)緩存 Server Hello,在生成 Client Hello 的同時(shí),加密了應(yīng)用數(shù)據(jù),所以客戶端不需要經(jīng)過(guò)握手就可以發(fā)送應(yīng)用數(shù)據(jù),這就是 QUIC 的 0-RTT 連接。

無(wú)隊(duì)頭阻塞的多路復(fù)用

瀏覽器限制了同一個(gè)域名下的請(qǐng)求數(shù)量。當(dāng)請(qǐng)求達(dá)到最大數(shù)量時(shí),剩余的資源需要等待其他資源請(qǐng)求完成后才能發(fā)起請(qǐng)求,這就是隊(duì)頭阻塞(Head of Line Blocking)。

在傳統(tǒng)的 HTTP/1 協(xié)議中,每個(gè) TCP 連接只能處理唯一的請(qǐng)求,因此當(dāng)需要請(qǐng)求多個(gè)資源時(shí),需要建立多個(gè) TCP 連接。為了解決 HTTP/1 的核心問(wèn)題,在 HTTP/2 中引入了多路復(fù)用的技術(shù),這個(gè)技術(shù)可以只通過(guò)一個(gè) TCP 連接就可以傳輸所有的請(qǐng)求數(shù)據(jù),如下圖。

多路復(fù)用很好的解決了瀏覽器限制同一個(gè)域名下的請(qǐng)求數(shù)量的問(wèn)題,從而提高網(wǎng)絡(luò)吞吐量。此外,QUIC 協(xié)議還支持?jǐn)?shù)據(jù)流級(jí)別的擁塞控制,可以更精細(xì)地控制網(wǎng)絡(luò)擁塞。

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

TCP連接

HTTP/2 雖然通過(guò)多路復(fù)用解決了 HTTP 層的隊(duì)頭阻塞,但仍然存在 TCP 層的隊(duì)頭阻塞問(wèn)題。在 HTTP/2 中,如果 TCP 連接中出現(xiàn)了丟包的情況,那么整個(gè) TCP 都要開(kāi)始等待重傳,后面的所有數(shù)據(jù)都將被阻塞。在這種情況下, HTTP/2 的表現(xiàn)情況反倒不如 HTTP/1 。

QUIC 通過(guò)為每個(gè)請(qǐng)求流都分配一個(gè)獨(dú)立的滑動(dòng)窗口,解決 TCP 層的隊(duì)頭阻塞。如下圖,A 請(qǐng)求流上的丟包不會(huì)影響 B 請(qǐng)求流上的數(shù)據(jù)發(fā)送。

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

QUIC連接

無(wú)歧義重傳

為了保證可靠性,TCP 使用基于序號(hào)的 Sequence Number 和 Ack 來(lái)確認(rèn)消息的有序到達(dá)。在 TCP 中,重傳包的 sequence number 和原始包的Sequence Number 是不變的,也正是因此這個(gè)特性,引發(fā)了 Tcp 重傳歧義問(wèn)題。當(dāng)超時(shí)事件 RTO 發(fā)生后,客戶端發(fā)起重傳,然后接收到了 Ack 數(shù)據(jù)。但由于 Sequence Number 是一樣的,這個(gè)接收到的 Ack 到底是原始請(qǐng)求的響應(yīng)還是重傳請(qǐng)求的響應(yīng)呢?這導(dǎo)致了 RTT 計(jì)算歧義。

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

TCP重傳歧義性

QUIC 則是采用了單向遞增的 Packet Number 來(lái)標(biāo)識(shí)數(shù)據(jù)包,因此不會(huì)像 TCP 一樣,不會(huì)因?yàn)槌瑫r(shí)重傳了同樣序列的數(shù)據(jù)包,造成 RTT 和 RTO(Retransmission Time Out,重傳超時(shí)時(shí)間)的計(jì)算不準(zhǔn)確。每個(gè) Packet Number 都嚴(yán)格遞增,就算 Packet N 丟失了,重傳的 Packet N 的 Packet Number 已經(jīng)不是 N,而是一個(gè)比 N 大的值。

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

QUIC的RTT計(jì)算

QUIC 對(duì)于 RTT 的計(jì)算更為準(zhǔn)確,預(yù)估的超時(shí)時(shí)間能夠有效防止更多的重傳請(qǐng)求被錯(cuò)誤地發(fā)送回客戶端。同時(shí)也給予了 QUIC 網(wǎng)絡(luò)更為快速的反應(yīng)時(shí)間,及時(shí)通知客戶端重傳數(shù)據(jù)包。

但是單純依靠嚴(yán)格遞增的 Packet Number 肯定是無(wú)法保證數(shù)據(jù)的順序性和可靠性。

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

QUIC協(xié)議的應(yīng)用場(chǎng)景

QUIC 為各種領(lǐng)域提供了可靠、高效和安全的數(shù)據(jù)傳輸方案,其中最具潛力的應(yīng)用場(chǎng)景包括:

實(shí)時(shí) Web 和移動(dòng)應(yīng)用

這些應(yīng)用需要低延遲和可靠的數(shù)據(jù)傳輸。通過(guò)相互獨(dú)立的數(shù)據(jù)流和擁塞控制機(jī)制,QUIC 可以快速高效地發(fā)送和接收數(shù)據(jù)。在多路復(fù)用模式下,QUIC 同一連接內(nèi)不同數(shù)據(jù)流之間的數(shù)據(jù)傳輸互不干擾。

物聯(lián)網(wǎng)設(shè)備通信

物聯(lián)網(wǎng)設(shè)備通常使用 TCP 和 MQTT 等協(xié)議進(jìn)行通信,在受限的網(wǎng)絡(luò)環(huán)境中可能存在高延遲和丟包等問(wèn)題。相比之下,QUIC 可以極近實(shí)現(xiàn) 0-RTT,為高延遲和丟包的網(wǎng)絡(luò)環(huán)境,提供了更可靠和高效的替代方案。

支付和電子商務(wù)應(yīng)用

這些應(yīng)用需要安全可靠的數(shù)據(jù)傳輸。QUIC 通過(guò) TLS 加密和可靠的數(shù)據(jù)流,使其成為這些應(yīng)用的理想選擇,有助于保證數(shù)據(jù)安全完整地傳輸。從用戶的角度來(lái)看,QUIC 通過(guò)保證更快、更順暢的交易,優(yōu)化了用戶體驗(yàn)。

當(dāng)前,QUIC 協(xié)議已經(jīng)成為 IETF 標(biāo)準(zhǔn)化工作組的一個(gè)項(xiàng)目,并且越來(lái)越多的互聯(lián)網(wǎng)公司開(kāi)始支持 QUIC 協(xié)議。隨著 QUIC 協(xié)議的普及,我們可以期待更快、更安全、更可靠的網(wǎng)絡(luò)體驗(yàn)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1953

    瀏覽量

    64855
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2913

    文章

    44928

    瀏覽量

    377054
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    327

    瀏覽量

    34043
  • Quic
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    7320

原文標(biāo)題:三分鐘,帶你了解下一代傳輸層協(xié)議QUIC

文章出處:【微信號(hào):ztedoc,微信公眾號(hào):中興文檔】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AG32VF-MIPI應(yīng)用場(chǎng)景

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

    USB協(xié)議分析儀的技術(shù)原理和應(yīng)用場(chǎng)景

    USB協(xié)議分析儀的技術(shù)原理和應(yīng)用場(chǎng)景可以詳細(xì)闡述如下:技術(shù)原理USB協(xié)議分析儀的技術(shù)原理主要基于以下幾個(gè)方面: 總線監(jiān)聽(tīng):USB協(xié)議分析儀通過(guò)監(jiān)聽(tīng)USB總線上的數(shù)據(jù)傳輸過(guò)程,實(shí)時(shí)捕獲U
    發(fā)表于 09-24 14:29

    NFC協(xié)議分析儀的技術(shù)原理和應(yīng)用場(chǎng)景

    NFC協(xié)議分析儀的技術(shù)原理和應(yīng)用場(chǎng)景可以詳細(xì)闡述如下:技術(shù)原理NFC(Near Field Communication,近場(chǎng)通信)協(xié)議分析儀是一種用于分析NFC通信協(xié)議和性能的專(zhuān)業(yè)設(shè)備
    發(fā)表于 09-25 14:45

    實(shí)時(shí)示波器的技術(shù)原理和應(yīng)用場(chǎng)景

    有頻譜分析功能,可以將時(shí)域信號(hào)轉(zhuǎn)換為頻域信號(hào),從而顯示信號(hào)的頻譜特性。綜上所述,實(shí)時(shí)示波器憑借其獨(dú)特的技術(shù)原理和廣泛的應(yīng)用場(chǎng)景,在電子工程和通信技術(shù)領(lǐng)域發(fā)揮著不可替代的作用。
    發(fā)表于 10-23 14:22

    混合信號(hào)分析儀的原理和應(yīng)用場(chǎng)景

    混合信號(hào)分析儀是一種集成度高、功能強(qiáng)大的電子測(cè)量設(shè)備,其原理和應(yīng)用場(chǎng)景如下:一、原理混合信號(hào)分析儀由模擬部分和數(shù)字部分組成,用于混合信號(hào)的分析。其工作原理主要包括以下幾個(gè)方面: 信號(hào)采樣:混合信號(hào)
    發(fā)表于 01-21 16:45

    什么是QUIC協(xié)議?

    Quic
    電子學(xué)習(xí)
    發(fā)布于 :2023年02月08日 11:25:15

    =>的使用場(chǎng)景有哪些

    使用場(chǎng)景
    發(fā)表于 10-27 13:25

    幾種LED調(diào)光協(xié)議分析及具體應(yīng)用場(chǎng)景介紹

    市面上主流幾種LED調(diào)光協(xié)議分析及具體應(yīng)用場(chǎng)景介紹目前國(guó)內(nèi)外的LED驅(qū)動(dòng)已經(jīng)不僅僅滿足照明需求,更多是去追求各種不同場(chǎng)景的應(yīng)用,搭配各種數(shù)字協(xié)議,實(shí)現(xiàn)某種特定的功能,比如在汽車(chē)大燈的應(yīng)
    發(fā)表于 12-31 08:04

    一文帶你了解QUIC協(xié)議

    當(dāng)通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí),一種新的協(xié)議QUIC(Quick UDP Internet Connection,快速UDP互聯(lián)網(wǎng)連接)正在成為FAANG的默認(rèn)選擇。本篇文章描述了QUIC協(xié)議
    的頭像 發(fā)表于 09-02 09:39 ?4417次閱讀
    一文帶你了解<b class='flag-5'>QUIC</b><b class='flag-5'>協(xié)議</b>

    QUIC通信協(xié)議到底講了什么?

    QUIC(Quick UDP Internet Connection)是谷歌制定的一種基于UDP的低時(shí)延的互聯(lián)網(wǎng)傳輸層協(xié)議,很好地解決了當(dāng)今傳輸層和應(yīng)用層面臨的各種需求,包括處理更多的連接,低延遲以及安全性保障等,目前QUIC開(kāi)
    的頭像 發(fā)表于 12-14 10:24 ?1012次閱讀

    什么是QUIC,QUIC在MQTT通信場(chǎng)景中的應(yīng)用前景

    QUIC(Quick UDP Internet Connection)是Google提出的一個(gè)基于UDP的傳輸協(xié)議,因其高效的傳輸效率和多路并發(fā)的能力,已經(jīng)成為下一代互聯(lián)網(wǎng)協(xié)議HTTP/3的底層傳輸
    發(fā)表于 12-26 11:56 ?4091次閱讀

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

    QUIC發(fā)布之前,HTTP 使用 TCP 作為傳輸數(shù)據(jù)的底層協(xié)議。隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,人們對(duì)實(shí)時(shí)交互和多樣化網(wǎng)絡(luò)場(chǎng)景的需求越來(lái)越大。
    的頭像 發(fā)表于 08-10 17:21 ?2272次閱讀
    <b class='flag-5'>QUIC</b>是如何工作的?為什么HTTP/3要選擇<b class='flag-5'>QUIC</b><b class='flag-5'>協(xié)議</b>?

    一文讀懂QUIC協(xié)議:更快、更穩(wěn)、更高效的網(wǎng)絡(luò)通信

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

    UDP的特性與應(yīng)用場(chǎng)景

    一、UDP的特性與應(yīng)用場(chǎng)景 采用UDP有3個(gè)關(guān)鍵點(diǎn): 網(wǎng)絡(luò)帶寬需求較小,而實(shí)時(shí)性要求高 大部分應(yīng)用無(wú)需維持連接 需要低功耗 應(yīng)用場(chǎng)景: 網(wǎng)頁(yè)瀏覽:新浪微博就已經(jīng)用了QUIC
    的頭像 發(fā)表于 11-13 15:34 ?983次閱讀
    UDP的<b class='flag-5'>特性</b>與應(yīng)<b class='flag-5'>用場(chǎng)景</b>

    UART協(xié)議的工作原理和應(yīng)用場(chǎng)景

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)協(xié)議是一種廣泛使用的串行通信協(xié)議,它允許計(jì)算機(jī)與外部設(shè)備之間通過(guò)串行接口進(jìn)行數(shù)據(jù)傳輸。以下是對(duì)UART協(xié)議的詳
    的頭像 發(fā)表于 08-25 17:15 ?3819次閱讀
    百家乐小路单图解| 百家乐棋牌游戏正式版| 澳门百家乐的玩法技巧和规则| 百家乐官网高手的心得| 大发888娱乐城都有啥扑克牌游戏| 网上百家乐官网是不是真的| 连环百家乐| 博彩百家乐字谜总汇| 芝加哥百家乐官网的玩法技巧和规则| 本溪| 大发888娱乐城可靠吗| 百家乐佣金计算| 八大胜百家乐官网现金网| 百家乐机器手怎么做弊| 百家乐官网群1188999| 众发国际娱乐| 百家乐公式与赌法| 联众百家乐官网的玩法技巧和规则| 网上百家乐官网哪里| 大发888 真钱娱乐平台| 百家乐下| 金沙百家乐现金网| 百家乐官网扑克桌| e世博百家乐官网技巧| 德州扑克网站| 新奥博百家乐娱乐城| 公海百家乐官网的玩法技巧和规则| 澳门百家乐论坛| 百家乐免费体验金| 凯时百家乐技巧| 百家乐官网打大必赢之法| 六合彩开奖直播| 金榜百家乐的玩法技巧和规则 | 白菜娱乐城| 来博娱乐| 大发888赌博| 百家乐平注法到65| 百家乐真人游戏网上投注 | 百家乐投注软件有用吗| 破战百家乐官网的玩法技巧和规则 | 清河县|