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

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

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

HTTP/3 + QUIC:性能有余 安全不足

SDNLAB ? 來(lái)源:SDNLAB ? 2023-05-19 16:02 ? 次閱讀

HTTP 概述

超文本傳輸協(xié)議(HTTP)全稱Hyper Text Transfer Protocol,用于使用超文本鏈接加載網(wǎng)頁(yè)。HTTP 是一種應(yīng)用層協(xié)議,主要涉及客戶端向服務(wù)器發(fā)出請(qǐng)求,然后服務(wù)器發(fā)送響應(yīng)消息。

HTTP 是一種無(wú)狀態(tài)協(xié)議,目前主要與 TLS(傳輸層安全)協(xié)議一起使用,TLS為 HTTP 提供機(jī)密性、完整性和身份驗(yàn)證機(jī)制——通常稱為 HTTPS。 HTTP 由各種不同的組件組成,用于交換實(shí)際數(shù)據(jù)和元數(shù)據(jù):

HTTP 請(qǐng)求方法(即 GET、POST、PUT、PATCH、DELETE)

HTTP 標(biāo)頭(即 Cookie、XFF、主機(jī)、內(nèi)容類型、連接)

HTTP 響應(yīng)碼- 表示請(qǐng)求狀態(tài)的數(shù)值(例如:404 Not Found,表示在服務(wù)器上找不到請(qǐng)求的資源)

HTTP的歷史

歷史上最早的HTTP協(xié)議是1989年CERN(譯注:即“歐洲核子研究組織”的原稱 - Conseil Européen pour la Recherche Nucléaire)的 Tim Berners-Lee 發(fā)明的,目前命名為HTTP/0.9。然而,由于缺乏現(xiàn)代的傳輸機(jī)制、頭文件、方法等,它從未獲得官方的RFC,實(shí)際上也不再被使用。下面列出了官方 HTTP 初始規(guī)范 RFC,重點(diǎn)介紹了它們引入時(shí)最重要的新功能: HTTP/1.0 - 1996 年 5 月 - RFC 1945

支持 HTTP 報(bào)頭

支持 HTTP 狀態(tài)碼

支持 Content-Type 報(bào)頭

增加了新的POST 和 HEAD 方法

HTTP/1.1 - 1997 年 1 月 - RFC 2068

引入持久連接- 可以通過(guò)單個(gè)連接發(fā)送多個(gè)請(qǐng)求

強(qiáng)制主機(jī)頭 - 對(duì)web代理路由很重要

新的 HTTP 狀態(tài)碼 100

新的 HTTP 方法 - PUT、PATCH、DELETE、CONNECT、TRACE 和 OPTIONS

支持各種壓縮和解壓縮方法- Gzip 最常用

HTTP/2.0 - 2015 年 5 月 - RFC 7540

支持請(qǐng)求多路復(fù)用,引入 HTTP 流,現(xiàn)在請(qǐng)求/響應(yīng)可以多路復(fù)用并且不是連續(xù)的

支持請(qǐng)求優(yōu)先級(jí),例如,CSS 文件應(yīng)該在 JS 文件之前發(fā)送

自動(dòng) Gzip 壓縮

HTTP 連接重置支持,如果在 HTTP 級(jí)別發(fā)生錯(cuò)誤,可以立即重置連接

支持服務(wù)器推送,服務(wù)器可以在沒(méi)有明確請(qǐng)求的情況下主動(dòng)將內(nèi)容推送回客戶端。

支持報(bào)頭壓縮 (HPAK)

HTTP/3.0 - 2022 年 6 月 - RFC 9114

使用 QUIC 協(xié)議代替TCP/TLS 棧 - RFC 9000

2022 年 6 月,IETF(互聯(lián)網(wǎng)工程任務(wù)組)HTTP 組不僅發(fā)布了 HTTP/3 RFC 9114,還決定對(duì) HTTP RFC 結(jié)構(gòu)進(jìn)行細(xì)化、清理和重建。此外,有些東西已經(jīng)從 HTTP 標(biāo)準(zhǔn)中分離出來(lái),并移至它們自己的 RFC 中。

HTTP 語(yǔ)義- RFC 9110:HTTP 的總體架構(gòu)、常用術(shù)語(yǔ)和共享協(xié)議方面,例如請(qǐng)求和響應(yīng)消息/doc/rfc9111s、方法、狀態(tài)碼、頭和尾字段、消息內(nèi)容、表示數(shù)據(jù)、內(nèi)容編碼等等。

HTTP 緩存- RFC 9111:HTTP 緩存和相關(guān)的報(bào)頭字段來(lái)控制響應(yīng)緩存的行為。

HTTP/1.1 - RFC 9112

HTTP/2.0 - RFC 9113

QPAC - RFC 9204

310fed2a-f568-11ed-90ce-dac502259ad0.png

| 圖 1 HTTP 相關(guān) RFC

在最初的HTTP/1.0發(fā)布之后,用戶很快發(fā)現(xiàn)它缺少很多潛在的特性,需要進(jìn)行一些優(yōu)化。僅半年之后就發(fā)布了HTTP/1.1來(lái)解決這些問(wèn)題。而新的官方HTTP/2標(biāo)準(zhǔn)花了整整18年的時(shí)間來(lái)開(kāi)發(fā),主要是為了解決性能方面的問(wèn)題。7年后的2022年6月,HTTP/3協(xié)議被引入。

HTTP/3協(xié)議最大的變化是放棄了對(duì) TCP/TLS 堆棧的支持,并用新的互聯(lián)網(wǎng)協(xié)議——QUIC傳輸協(xié)議取而代之。

讓我們比較一下 HTTP/2 和 HTTP/3 協(xié)議。

HTTP/2 與 HTTP/3

311fcc90-f568-11ed-90ce-dac502259ad0.png

| 圖2HTTP/2 vs. HTTP/3

我們逐層進(jìn)行分析:

1)第 3 層沒(méi)有變化——IP 堆棧保持不變;支持 IPv4 和 IPv6

2)在第 4-6 層,我們看到了主要差異:

UDP(用戶數(shù)據(jù)報(bào)協(xié)議)取代了TCP 協(xié)議進(jìn)行包轉(zhuǎn)發(fā)

QUIC:

取代了所有 TCP 協(xié)議功能,如面向連接、提供擁塞控制和避免、流量控制機(jī)制等

集成TLS1.3協(xié)議,負(fù)責(zé)流量加解密

TLS 層正在與 QUIC 集成,并提供密鑰協(xié)商、身份驗(yàn)證和會(huì)話恢復(fù)功能

流復(fù)用機(jī)制也從HTTP層搬到了QUIC層

3)在 HTTP 層使用更高效的 QPACK 頭壓縮算法,可以利用 QUIC 協(xié)議功能 HTTP/2 和 HTTP/3 之間最大的區(qū)別是使用 QUIC over UDP 而不是 TCP 作為傳輸機(jī)制,其中 QUIC 協(xié)議不僅集成了 TCP 典型功能,還集成了 TLS 來(lái)提供安全性和流復(fù)用。值得一提的是,在 QUIC 實(shí)現(xiàn)中,TLS 的使用是強(qiáng)制性的——因此 HTTP/3 不再有純文本 HTTP。

HTTP/2與 HTTP/3- 性能考慮

減少線頭阻塞

通過(guò)將流多路復(fù)用從HTTP層移到QUIC傳輸層,HOL阻塞的情況可能會(huì)減少,不過(guò)它在很大程度上取決于 Web 瀏覽器上的特定多路復(fù)用實(shí)現(xiàn)。

0-RTT 會(huì)話設(shè)置

下圖通過(guò)客戶端和服務(wù)器之間示例流的往返時(shí)間來(lái)比較 HTTP/2 和 HTTP/3:

312cbfcc-f568-11ed-90ce-dac502259ad0.png

| 圖 3 不同實(shí)現(xiàn)之間的 RTT 比較

TLS1.3 的特性是0-RTT 會(huì)話恢復(fù),假設(shè)我們最近與特定的 Web 服務(wù)器進(jìn)行過(guò)通信,我們可以自動(dòng)重用密鑰,并在初始會(huì)話設(shè)置時(shí)開(kāi)始傳輸實(shí)際數(shù)據(jù)。對(duì)于 TCP,它會(huì)將 RTT 減少到 2,而QUIC 可以減少到 1。

下圖顯示了 TCP 和 QUIC 在最佳情況下的差異:

3135a592-f568-11ed-90ce-dac502259ad0.png

| 圖 4 TLS1.3 0-RTT TCP與QUIC對(duì)比

雖然這看起來(lái)只是節(jié)省一個(gè) RTT,但是在衛(wèi)星和長(zhǎng)距離連接方面可能是一個(gè)巨大優(yōu)勢(shì)。

連接遷移

由于 QUIC 協(xié)議使用了叫做源和目標(biāo)Circuit ID (CID) 的新字段,現(xiàn)在在不丟失文件傳輸?shù)那闆r下從一個(gè)連接遷移到另一個(gè)連接要容易得多。例如,連接可以輕松地從 Wi-Fi 遷移到 5G,并且仍然可以重用現(xiàn)有的 QUIC 會(huì)話。

總結(jié)性能考慮因素——通常在現(xiàn)代城市地區(qū)——從 TCP+HTTP/2 遷移到 QUIC+HTTP/3 的好處可能不會(huì)那么大。然而,不太理想的連接條件將變成 QUIC+HTTP/3 應(yīng)該表現(xiàn)得更好并提供更好的性能和可靠性。

在性能方面,如果是在現(xiàn)代城市地區(qū),從TCP+HTTP/2遷移到QUIC+ HTTP/3的優(yōu)勢(shì)可能不是那么大。然而,在連接條件不太理想的情況下,QUIC+HTTP/3的表現(xiàn)會(huì)更好,并能夠提供更好的性能和可靠性。

此外,TCP 實(shí)現(xiàn)通常是在操作系統(tǒng)內(nèi)核上,這大大減慢了新 TCP 擴(kuò)展和機(jī)制的開(kāi)發(fā)和采用,而QUIC是用戶空間實(shí)現(xiàn)。隨著時(shí)間的推移,越來(lái)越多的 QUIC 功能將被轉(zhuǎn)移到操作系統(tǒng)級(jí)別,以提高性能,此外還將引入 SmartNIC,將部分或全部 QUIC 功能卸載到硬件級(jí)別。

HTTP/2 與 HTTP/3 - 安全考慮

HTTP/3 與 HTTP/2 有兩個(gè)主要的安全考慮因素:

最終用戶角度

從最終用戶的角度來(lái)看,默認(rèn)情況下使用 HTTP/3 應(yīng)該更加安全。HTTP/3目前僅支持 TLS1.3 安全通信,此外與 HTTP/2 相比,HTTP/3 暴露在網(wǎng)絡(luò)報(bào)頭中的信息要少得多。

目前谷歌、Facebook等公司已經(jīng)支持 HTTP/3了,甚至在 RFC 最終確定之前,谷歌服務(wù)實(shí)際上就在 QUIC 上使用 HTTP/2,所以它被稱為 HTTP/2 over QUIC,后來(lái)變成了 HTTP/3。

中間人視角(防火墻 TLS 代理)

所有主要的下一代防火墻都使用一種稱為 TLS 代理的技術(shù),以便能夠解密 TLS 流量,基本上,防火墻成為充當(dāng)代理的中間人設(shè)備,下圖說(shuō)明了這一點(diǎn)。

3145058c-f568-11ed-90ce-dac502259ad0.png

| 圖 5 防火墻傳統(tǒng)

TLS 代理解決方案,來(lái)源PaloAlto Networks 這種方法不再適用于 QUIC 協(xié)議,因?yàn)楹苌儆兄С纸饷?QUIC 協(xié)議的供應(yīng)商,并且存在很多挑戰(zhàn),所有 NGFW檢測(cè)模塊都必須重寫(xiě)才能支持此類功能,這肯定會(huì)花費(fèi)很多時(shí)間.

另一個(gè)問(wèn)題是,目前還沒(méi)有真正的方法來(lái)有效地跟蹤這樣的連接。理論上,目標(biāo)Circuit ID聽(tīng)起來(lái)是個(gè)不錯(cuò)的選擇,然而,在活動(dòng)連接期間,客戶端可以隨意更改其源Circuit ID。另一方面,在第4層,它看起來(lái)就像是動(dòng)態(tài)src-port和dst-port為443的常規(guī)UDP數(shù)據(jù)包,打開(kāi)此類流量可能會(huì)導(dǎo)致通過(guò)防火墻發(fā)起UDP打洞攻擊。

幸運(yùn)的是,如果無(wú)法建立快速連接,則會(huì)自動(dòng)回退到 HTTP/2 over TCP,然后防火墻可以對(duì)其進(jìn)行解密和檢查。

HTTP/2 與 HTTP/3 使用統(tǒng)計(jì)

根據(jù)Web Technologies Surveys,截至 2022 年 11 月,約 42% 的網(wǎng)絡(luò)流量是 HTTP/2。但是,自 2021 年 11 月以來(lái),它的使用率一直在下降。

31550360-f568-11ed-90ce-dac502259ad0.png

| 圖 6 HTTP/2的使用情況,2022 年 11 月 另一方面,HTTP/3 協(xié)議的使用自 2021 年以來(lái)一直在增加,并在 2022 年 11 月達(dá)到 26%。

315f889e-f568-11ed-90ce-dac502259ad0.png

| 圖 7 HTTP/3的使用情況,2022 年 11 月 HTTP/3的缺點(diǎn)在于前述的與 QUIC 不兼容的中間防火墻內(nèi)容檢查和解密機(jī)制。截至撰寫(xiě)本文時(shí),幾乎沒(méi)有支持 HTTP/3 解密和檢查的防火墻供應(yīng)商。

總 結(jié)

HTTP/3 主要是為了引入一個(gè)更健壯、靈活和現(xiàn)代的傳輸層協(xié)議——QUIC。QUIC 協(xié)議不必只與 HTTP 一起使用,有一些新的舉措可以將它與其他協(xié)議一起使用,例如 DNS 和 SSH。

其次是性能提升,如果與 HTTP/2+TCP+TLS1.3(0-RTT)的最佳可能實(shí)現(xiàn)相比,HTTP/3 仍然有一個(gè)往返時(shí)間 (RTT) 的優(yōu)勢(shì)。在現(xiàn)代、快速、城市化的網(wǎng)絡(luò)中,這可能聽(tīng)起來(lái)不多,但絕對(duì)是一種改進(jìn)。在較慢的網(wǎng)絡(luò)和流量突發(fā)的情況下,加載頁(yè)面/資源可能會(huì)節(jié)省幾百毫秒。在連接遷移方面也有好處,特別是允許移動(dòng)用戶更改連接方法并且仍然能夠繼續(xù)下載文件或維持現(xiàn)有連接。

最后,QUIC 仍處于開(kāi)發(fā)階段的早期,第 1 版專注于完成基本的傳輸和安全協(xié)議,更多高級(jí)功能尚未出現(xiàn),并且隨著時(shí)間的推移它只會(huì)變得更好更快。由于現(xiàn)有的實(shí)現(xiàn)是在用戶空間而不是操作系統(tǒng)級(jí)內(nèi)核空間中開(kāi)發(fā)的,因此新的高級(jí)功能的開(kāi)發(fā)應(yīng)該更快更容易采用。目前HTTP/3 已經(jīng)在互聯(lián)網(wǎng)上得到了部署和使用。谷歌、Meta、微軟、Akamai、Cloudflare、Fastly、F5 和愛(ài)立信等大型科技公司已經(jīng)在大量使用它。




審核編輯:劉清

聲明:本文內(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)投訴
  • RFC
    RFC
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    10089
  • Quic
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    7271
  • HTTP協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    9685
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4192
  • TLS
    TLS
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    4220

原文標(biāo)題:HTTP/3 + QUIC:性能有余,安全不足

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    海外HTTP安全挑戰(zhàn)與應(yīng)對(duì)策略

    海外HTTP安全挑戰(zhàn)與應(yīng)對(duì)策略是確??鐕?guó)網(wǎng)絡(luò)通信穩(wěn)定、安全的關(guān)鍵。
    的頭像 發(fā)表于 10-18 07:33 ?91次閱讀

    HTTP海外安全挑戰(zhàn)與解決方案:保護(hù)跨國(guó)數(shù)據(jù)傳輸

    HTTP海外安全挑戰(zhàn)與解決方案是保護(hù)跨國(guó)數(shù)據(jù)傳輸安全的重要議題。
    的頭像 發(fā)表于 10-15 08:08 ?106次閱讀

    HTTP海外訪問(wèn)優(yōu)化:提升跨國(guó)網(wǎng)絡(luò)性能的秘訣

    HTTP海外訪問(wèn)優(yōu)化是提升跨國(guó)網(wǎng)絡(luò)性能的關(guān)鍵,涉及多個(gè)方面的技術(shù)和策略。
    的頭像 發(fā)表于 10-15 08:04 ?165次閱讀

    VCA824和VCA821性能有什么差異沒(méi)?

    VCA824和VCA821 ,帶寬都可達(dá)400MHz,都是 都有兩種封裝,一種是SOP14,另一種是MSOP10的,請(qǐng)問(wèn)兩種不同的封裝,性能有什么差異沒(méi)?比如帶寬的差異,放大40倍的話,帶寬還有多少?
    發(fā)表于 09-18 07:55

    放大器的噪聲系數(shù)對(duì)性能有什么影響

    放大器的噪聲系數(shù)是衡量其噪聲性能的關(guān)鍵指標(biāo),對(duì)放大器的整體性能有著深遠(yuǎn)的影響。以下將詳細(xì)探討放大器的噪聲系數(shù)對(duì)性能的具體影響,并從多個(gè)角度進(jìn)行闡述。
    的頭像 發(fā)表于 08-16 17:10 ?660次閱讀

    驅(qū)動(dòng)電流對(duì)MOSFET性能有什么影響

    驅(qū)動(dòng)電流對(duì)MOSFET(金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管)性能有著顯著的影響。MOSFET作為現(xiàn)代電子系統(tǒng)中常用的開(kāi)關(guān)元件,其性能直接決定了系統(tǒng)的效率、穩(wěn)定性和可靠性。以下將詳細(xì)分析驅(qū)動(dòng)電流對(duì)MOSFET性能的影響。
    的頭像 發(fā)表于 07-24 16:27 ?346次閱讀

    講解HTTP代理類別,使用設(shè)置,測(cè)試HTTP代理方法

    HTTP
    jf_62215197
    發(fā)布于 :2024年07月19日 07:03:46

    磁芯大小對(duì)工字插件電感的性能有影響嗎

    電子發(fā)燒友網(wǎng)站提供《磁芯大小對(duì)工字插件電感的性能有影響嗎.docx》資料免費(fèi)下載
    發(fā)表于 05-13 09:19 ?0次下載

    電池模組絕緣片的制造工藝有哪些,它們對(duì)電池性能有何影響?

    電池模組絕緣片的制造工藝對(duì)電池性能有著重要影響,它們不僅確保電池的安全性,還有助于提高電池的工作效率和延長(zhǎng)其使用壽命。
    的頭像 發(fā)表于 04-12 18:12 ?1190次閱讀

    科普功率電感材質(zhì)對(duì)電性能有什么影響

    科普功率電感材質(zhì)對(duì)電性能有什么影響 編輯:谷景電子 功率電感是我們接觸比較多的一種電子元器件,它憑借其特殊的結(jié)構(gòu)又是而備受關(guān)注。在功率電感的應(yīng)用中,選型這一步是非常重要的。在選型參考的很多原因中,電
    的頭像 發(fā)表于 02-23 10:54 ?349次閱讀

    網(wǎng)宿基于QUIC的技術(shù)方案實(shí)踐

    網(wǎng)宿基于業(yè)務(wù)場(chǎng)景和網(wǎng)絡(luò)環(huán)境的實(shí)戰(zhàn)也發(fā)現(xiàn),QUIC優(yōu)化效果明顯。以直播業(yè)務(wù)為例,使用同一服務(wù)器,推兩路1M碼率的直播流到同一邊緣節(jié)點(diǎn),在丟包20%的情況下,QUIC的流暢度比TCP高20%,首包時(shí)間比TCP少0.2-0.8秒,傳輸性能
    發(fā)表于 12-05 13:56 ?373次閱讀
    網(wǎng)宿基于<b class='flag-5'>QUIC</b>的技術(shù)方案實(shí)踐

    時(shí)鐘抖動(dòng)對(duì)ADC性能有什么影響

    電子發(fā)燒友網(wǎng)站提供《時(shí)鐘抖動(dòng)對(duì)ADC性能有什么影響.pdf》資料免費(fèi)下載
    發(fā)表于 11-28 10:24 ?1次下載
    時(shí)鐘抖動(dòng)對(duì)ADC<b class='flag-5'>性能有</b>什么影響

    什么是內(nèi)壓測(cè)試?環(huán)境溫度對(duì)電池性能有何影響?

    什么是內(nèi)壓測(cè)試?環(huán)境溫度對(duì)電池性能有何影響? 內(nèi)壓測(cè)試是指通過(guò)將電池放入具有不同氣壓的容器中進(jìn)行測(cè)試,以評(píng)估電池的結(jié)構(gòu)和性能。該測(cè)試是評(píng)估電池安全性和可靠性的重要方法之一,因?yàn)樗梢阅M電池在不同氣
    的頭像 發(fā)表于 11-06 10:49 ?643次閱讀

    提高儀器IFM傳感器性能有哪些方法?

    電子發(fā)燒友網(wǎng)站提供《提高儀器IFM傳感器性能有哪些方法?.doc》資料免費(fèi)下載
    發(fā)表于 11-01 09:34 ?0次下載
    提高儀器IFM傳感器<b class='flag-5'>性能有</b>哪些方法?

    rt1052性能有多強(qiáng)?

    rt1052性能有多強(qiáng)
    發(fā)表于 10-27 06:17