成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HTTP/3如何擊敗了HTTP/2?

譯文 精選
網絡
目前,HTTP/3已面市,它并非單純的升級,而是對用戶數據報協議(UDP)的重新設計。下面,讓我們來詳細了解真實用戶的使用感受,以及廣泛的互聯網性能監控。

譯者 | 陳峻

審校 | 重樓

如果你關注數據傳輸的性能、可靠性、以及在為移動應用布局的話,是時候測試和啟用HTTP/3了。

由互聯網工程任務組(IETF)于2015年正式發布下一代HTTP協議--HTTP/2,旨在解決當時HTTP/1.1協議存在的性能瓶頸問題,提升網絡傳輸效率。不過,盡管HTTP/2有著諸多承諾,但網絡延遲與抖動仍存在于現實的網絡世界中。目前,HTTP/3已面市,它并非單純的升級,而是對用戶數據報協議(UDP)的重新設計。下面,讓我們來詳細了解真實用戶的使用感受,以及廣泛的互聯網性能監控。

HTTP/2的核心限制

HTTP/2推出時,它通過引入多路復用、二進制幀和標頭壓縮,來解決HTTP/1.1的局限性。然而,其最大的缺陷在于它仍然與TCP綁定。而TCP是一種并不適合現代多路網絡工作負載的協議。其具體表現在:

  • TCP行頭(head-of-lineHOL)的阻塞:盡管HTTP/2允許在單個連接中跑多個傳輸流,但由于TCP的有序交付要求,一旦丟失的TCP數據包則會阻斷掉所有傳輸流。
  • 連接設置的開銷:建立HTTP/2連接往往需要經歷:DNS解析→TCP握手→TLS握手(通常使用應用層協議進行協商)的過程。
  • 恢復處罰:數據包丟失會觸發TCP級別的重新傳輸。由于增加了首字節(TTFB)和交互時間(TTI),因此這往往會影響到整個連接。而用戶在真實使用中確實能感受到由HTTP/2代理引發的抖動、丟包、延遲、以及可靠性降低。

HTTP/3如何解決TCP的核心瓶頸

其實,HTTP/3并非簡單地將HTTP/2應用到UDP上,而是為當前互聯網重新構建了HTTP/2,并運行在QUIC(快速UDP互聯網連接)上。此處的QUIC是由谷歌設計的傳輸協議。雖然用到了UDP,但它是一套針對可靠性、加密和性能而自行構建的技術棧。總的來說,HTTP/3的主要優勢在于:

  • 無行頭阻塞QUIC支持完全獨立的傳輸流。即使某個傳輸流中出現了丟失包,也不會阻止其他數據包的傳輸。
  • 更快的握手QUIC結合了加密和傳輸設置。TLS 1.3直接被集成到了QUIC中,以允許1-RTT(往返時間)甚至0-RTT的恢復。
  • 恢復的改進QUIC使用了數據包編號和ACK(確認)范圍,而非序號,因此具有更智能的擁塞控制和恢復機制。
  • 連接的遷移QUIC連接可以在IP變更中留存下來。這對于在Wi-FiLTE之間切換的移動網絡來說非常實用。此外,在高丟包率的條件下,HTTP/3仍能縮短現實傳輸的等待和加載時間。

HTTP/3工作原理

為了充分讀懂HTTP/3的工作原理,我們需要了解瀏覽器、DNS和緩存層,并獲悉它們是如何相互協同的。

1.初始DNS查詢

該過程始于客戶端對A/AAAA記錄執行DNS查詢時。該查詢會將IPV6映射到相應的域名上。為了讓HTTP/3使用UDP之上的QUIC,服務端必須向客戶端發出支持QUIC的信號。此類信號主要有兩種方式:

  • DNS級別:服務端可以使用HTTPS記錄(特別是各種服務綁定的參數或SvcParams)直接在DNS響應中包含對QUIC的支持,以告知客戶端支持QUIC(以及HTTP/3)。示例:_443._tcp.example.com. IN HTTPS 1 . alpn="h3, h2"
  • 瀏覽器級別:如果不通過DNS提供QUIC信息,服務端在初始化HTTP/2連接期間,仍可能在響應標頭中發出支持HTTP/3的信號。此處的Alt-Svc標頭(例如,alt-svc: h3=":443"; ma=2592000)被包含在服務端的HTTP/2響應中,以通知瀏覽器HTTP/3可用,客戶端需將其用于后續的連接。

2.Alt-Svc廣告

如果存在Alt-Svc標頭,則:

  • 瀏覽器在mamax-age)參數所定義的持續時間內對其緩存。
  • 在后續訪問時,瀏覽器直接嘗試HTTP/3,而無需先通過HTTP/2進行協商。

3.瀏覽器的緩存行為

一旦Alt-Svc被緩存:

  • 瀏覽器將對于后續同一來源的連接,優先考慮HTTP/3
  • 如果QUIC連接失敗(例如出現被阻止的UDPNAT問題),瀏覽器會通過TCP靜默地返回HTTP/2,而不會中斷用戶的瀏覽體驗。

4.TLS握手中的ALPN

應用層協議協商(ALPN)會在TLS握手期間被用于協商HTTP的版本:

  • 如果服務端支持HTTP/3,它便會發布h3 ALPN字符串。
  • QUIC握手則會啟用a1-RTT連接(如果使用的是會話恢復的話,則啟用0-RTT)。
  • 如果服務不支持h3,客戶端將會自動降回到HTTP/2

5.回退流(可通過Wireshark觀察到)

以下是HTTP/3在實踐中能夠發揮的作用:

  • 瀏覽器根據A/AAAA記錄(可能還有HTTPS/SVCB或服務綁定記錄)發送DNS查詢。
  • 它嘗試向目標IP和端口進行QUIC握手。
  • 如果在較短的超時窗口(通常為300-500毫秒)內沒有收到QUIC響應,瀏覽器將并行啟動TCP握手。

可見,瀏覽器上發生的實際上是QUICTCP的連接“比拼”,即:在完成握手后,判斷:

  • 如果QUIC成功,則使用HTTP/3
  • 如果QUIC被阻止或超時,基于TCPHTTP/2將接管。

這種雙握手模式確保了HTTP/3為首選,如果需要,則可以優雅地回退到HTTP/2,且不會影響用戶的體驗。就兼容性而言:

  • ChromeFirefox都能夠支持這種回退機制。
  • Microsoft Edge相對保守,可能需要手動啟用HTTP/3或實驗性設置,才能進行一致性的測試。

讓我們再從性能方面進行考慮:

  • 雖然回退較快,但并非瞬時,因此盡管QUICTCP的競賽最大限度地減少了中斷,但是在回退到TCP時可能會帶來較小的延遲,特別是在高損耗或高延遲環境中。
  • 而在網絡狀況的影響方面:在出現Aggressive NAT、以及網絡抖動或數據包丟失率過高等情況時,QUIC的連接也可能會中斷或失敗。此類情況在亞太地區和非洲尤為明顯。

總的說來,HTTP/3的雙回退策略(無論是通過DNSHTTPS記錄,還是Alt-Svc標頭發起)都能夠提供強大、用戶透明的協議協商功能。即使在次優的網絡條件下,瀏覽器也可以通過回退到HTTP/2來保持連接,以確保可靠性。

部署注意事項

盡管具有架構優勢,但是HTTP/3并非隨處可用。在現實世界的網絡中,仍然會有如下障礙,可能會影響到它的可靠性,甚至完全阻止其被使用。

關鍵的環境依賴性:

  • 中間層和防火墻:A.許多企業防火墻和一些傳統路由器會阻止或降低UDP流量的優先級。
    B.QUIC(以及h3擴展)使用UDP端口443,但并非所有網絡都配置為允許使用該端口。
  • 運營商級NATCGNAT):A.在移動和共享IP環境中,QUIC的連接ID是一個很大的優勢,但如果NAT映射過期設置太短或被快速重新分配,則會導致QUIC的中斷。
  • 舊路由器和網絡設備:A.一些較舊的路由器可能無法很好地處理高速UDP,導致在高吞吐量QUIC會話期間出現數據包的抖動或丟失。
  • TLS卸載和代理:

A.在卸載了TLS的邊緣架構處(如一些反向代理或負載平衡器),可能無法原生地支持QUIC,或需要架構的調整。

回退是一項特征,而并非失敗

QUIC因上述任何原因被阻止或失敗時,現代化的瀏覽器和CDN會優雅地回退到HTTP/2,這也是h3的精妙之處。下表是兩代技術的比較:

特點

HTTP/1.1

HTTP/2

HTTP/3

傳輸協議

TCP

TCP

UDP + QUIC

多路復用級別

無(每個連接1個請求)

應用層(多個流)

傳輸層(QUIC原生流)

并發請求/

6個(瀏覽器限制)

通過流媒體且無限制

通過流媒體且無限制

行頭阻塞

在應用程序/瀏覽器級別

是的(TCPHoL會影響所有流)

否(QUIC避免了傳輸級的HoL

性能(多資產)

排隊并被封鎖

并行加載

并行、更適合在較差的網絡中

TLS支持

可選/通過TCP

強制性(TLS 1.2/1.3

內置(僅限TLS 1.3

握手RTT

23RTTTCP + TLS

23RTT

1RTT0-RTT恢復后)

0-RTT支持

是(在恢復連接時)

IP移動性/NAT重新綁定

是(通過QUIC連接ID

連接恢復

TLS會話ID/

TLS會話恢復

QUIC-原生連接ID

連接重用

有限的

傳輸流優先級

需要加密

通常強制執行

始終(QUIC通過設計加密)

瀏覽器/CDN支持

通用

完全支持

快速增加(ChromeSafari等)

丟包狀況

影響整個連接

影響所有多路流

隔離到單個傳輸流

最佳用例

傳統系統,向后兼容

帶有常規網絡流量的穩定網絡

現代應用程序、移動、有損或高延遲網絡

現實世界正在加速采用HTTP/3

讓我們來查看一些基于年份的數據:

年份

HTTP/2的采用

HTTP/3的采用

2022

~63%

~22%(參考QUIC

2023

~64%

~28%

2024

~50%

~34%

2025(預計)

~62.5%

~41.5%

2026年(預計)

~52.5%

~57.5%

其中:

  • CloudflareFastlyAkamaiCDN現在已默認啟用HTTP/3
  • ChromeFirefoxSafariEdge都支持HTTP/3
  • 支持HTTP/3的網站呈增長趨勢,特別是在那些注重性能的地區。

HTTP/3的重要特性

根據我們的經驗和現實世界的測試,HTTP/3在以下領域意義重大:

  • 高延遲和損包地區:非洲、東南亞偏遠的拉丁美洲城市。
  • 移動網絡:在LTEWi-Fi之間頻繁切換。
  • 密集API的應用:通過非阻塞多路復用受益于多并發調用。
  • 性能第一團隊:愿意投資于毫秒級改進的團隊(如Core Web Vitals)。

真實測試洞見

我們使用跨多個國家的分布式主干節點,采用強制協議模式在HTTP/2HTTP/3之間進行并行比較。測量了以下方面:

  • DNS、連接、SSL、等待、加載時間
  • 跨區域的h2h3之間的性能
  • 數據包丟失/抖動與協議回退的相關性

在幾乎每個涉及非理想條件的情況下,HTTP/3在等待和加載時間上都優于HTTP/2

性能分析

通過對在六個國家運行的性能比較與分析,基于數千次運行結果,我們測量了首字節時間(TTFB)、最大內容顯示(Largest Contentful PaintLCP)和視覺完整性(VC)的中位數與第99百分位的數值,結果表明HTTP/3在關鍵網絡性能指標上始終優于HTTP/2

HTTP/3的主要改進

測量指標

改進(%

首字節到達時間的中位數(毫秒)

41.80%

首字節第99百分位到達時間的中位數(毫秒)

7.30%

最大內容顯示中位數(毫秒)

10.40%

最大內容顯示第99百分位數(毫秒)

9.60%

視覺完成中位數(毫秒)

10.50%

視覺完成第99百分位數(毫秒)

8.60%

如上表所示,HTTP/3大幅減少了TTFB中位數(平均41.8%)。可見,在所有測試區域中,初始服務端的響應時間與HTTP/2相比要快得多。同時,最大內容顯示(LCP)和視覺完成(VC)的改進也是一致的(平均約10%)。這意味著用戶使用HTTP/3能夠更快地看到最多的內容和完整的頁面。

國家級細分

國家

TTFB Mdn

TTFB 99th

LCP Mdn

LCP 99th

VC Mdn

VC 99th

澳大利亞

84.10%

4.10%

14.90%

16.40%

18.70%

16.30%

巴西

15.80%

-11.60%

7.60%

0.80%

3.20%

-2.30%

德國

78.70%

13.80%

19.10%

8.80%

21.90%

12.50%

日本

10.90%

27.30%

4.70%

20.70%

1.00%

11.80%

英國

47.10%

8.80%

14.40%

7.90%

15.70%

10.10%

美國

13.80%

1.30%

1.70%

3.10%

2.50%

3.30%

如上表所示:

  • 澳大利亞和德國通過HTTP/3(超過78%)得到了最大的TTFB改進,同時轉化為LCPVC的顯著提升。
  • 巴西的第99百分位數TTFBVC顯示了負改善。該異常情況表明,在最慢的請求中,HTTP/3的表現不如HTTP/2
  • 日本、英國和美國在大多數指標上,顯示出了適度且一致的改善,特別是在中位數方面。

其他觀察

  • 一致性:中位數的改進通常大于第99百分位數,表明HTTP/3對于那些典型(非極端)用戶的體驗特別奏效。
  • 區域差異性:雖然HTTP/3總體向好,但是實際改進程度因地而異,這與各地網絡基礎設施和延遲有關。

實際上,在多個國家的真實骨干測試中,HTTP/3一直優于HTTP/2。這在澳大利亞和德國最為明顯。它在減少初始化響應時間(TTFB)和頁面渲染速度(LCPVC)上的合理改善已卓見成效。相關案例也表明,HTTP/3可以為那些延遲敏感的應用程序,帶來網絡性能上的提升。而在巴西等一些地區的個案中,瀏覽器連接仍傾向于用HTTP/2來處理最慢的請求。

小結

綜上所述,HTTP/3不僅能提供更快的速度,而且具有一定的魯棒性。如果你關注數據傳輸的性能、可靠性、以及在為移動應用布局的話,是時候測試和啟用HTTP/3了。無論是自運營的基礎設施,還是使用第三方CDN,由HTTP/3帶來的協議上的演變,必將為現實世界中上億規模的用戶帶來更快的互聯網瀏覽體驗。

譯者介紹

陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。

原標題:HTTP/3 in the Wild: Why It Beats HTTP/2 Where It Matters Most,作者:Wasil Banday

責任編輯:姜華 來源: 51CTO
相關推薦

2024-11-05 08:16:04

HTTP/3HTTP 2.0QUIC

2020-03-08 21:22:03

HTTP112

2019-09-23 08:35:52

2019-04-12 10:44:39

2019-11-17 22:47:53

HTTP23

2022-06-21 10:10:14

HTTP協議TCP

2019-12-13 09:14:35

HTTP2協議

2022-07-13 14:12:41

HTTP/3前端

2020-12-04 09:30:18

HTTPWeb前端

2023-09-06 12:01:50

HTTP協議信息

2020-08-26 07:50:01

HTTP 3網絡協議HTTP

2021-10-30 19:57:00

HTTP2 HTTP

2020-06-01 15:25:20

HTTP3前端

2020-05-22 09:12:46

HTTP3網絡協議

2021-01-31 10:54:50

HTTP協議GET

2018-11-14 15:00:08

HTTP程序員前端

2024-02-02 09:28:21

FrankenPHP應用

2022-06-07 08:39:35

RPCHTTP

2018-06-27 15:14:31

HTTP編碼內容

2014-10-22 09:36:41

TCPIP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 韩国理论电影在线 | 久久久精品在线 | 一级视频在线免费观看 | 在线观看亚洲 | 人人做人人澡人人爽欧美 | 国产精品欧美一区二区三区不卡 | 一区二区三区久久 | 黄色播放 | 精品中文字幕一区二区三区 | www视频在线观看 | 国产精品久久国产精品久久 | 亚洲三级在线观看 | 91精品国产综合久久久久久蜜臀 | 国产精品久久久久久久久久久久 | 国产a级毛毛片 | 精品国产欧美一区二区三区成人 | 久久毛片| 自拍偷拍亚洲欧美 | 亚洲精品大片 | 男女午夜激情视频 | 国产精品区二区三区日本 | 久久婷婷国产香蕉 | 久久国产亚洲 | 日韩欧美国产精品一区 | 亚洲大片 | 一区二区三区欧美 | 亚洲午夜三级 | 中文字幕1区2区 | 久久久久久国产一区二区三区 | 亚洲福利视频一区二区 | 91精品国产乱码久久久久久久久 | 亚洲精品久久久一区二区三区 | 中文字幕日韩一区 | 日韩精品一区二区三区中文字幕 | 欧美成人h版在线观看 | 色天天综合 | 天天操天天干天天透 | 成年人免费看的视频 | 亚洲视频不卡 | 欧美电影网 | 国产精品美女久久久久aⅴ国产馆 |