日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

HTTP/3 與 HTTP/2 的性能對比

 

在去年 Cloudflare生日周,我們宣布了初步支持HTTP/2 的下一代新協(xié)議– HTTP/3 。我們的目標(biāo)是為建立一個更好的互聯(lián)網(wǎng)而努力。在標(biāo)準(zhǔn)制定上進(jìn)行協(xié)作非常重要,我們很榮幸可以參與到制定標(biāo)準(zhǔn)的工作中來。

雖然 HTTP/3 仍處于草案狀態(tài),但是有大量用戶對此表現(xiàn)出濃厚興趣。截至目前,已經(jīng)有超過 113000 個網(wǎng)絡(luò)區(qū)域激活了 HTTP/3,如果你正在使用實(shí)驗(yàn)性的瀏覽器,則可以使用新協(xié)議對這些站點(diǎn)進(jìn)行訪問!有這么多用戶啟用 HTTP/3,這非常令人欣慰。

在與 google 的合作下,我們啟動了對HTTP/3 的支持,與此同時,Google 也在Google Chrome 中啟動了對HTTP/3 的實(shí)驗(yàn)性支持。從那時起,我們看到越來越多的瀏覽器增加對HTTP/3 的實(shí)驗(yàn)性支持:比如Firefox 的 Nightly 版本,其他基于 Chromium 的瀏覽器比如 Opera、Edge 以及 Safari 的技術(shù)預(yù)覽版本。

HTTP/3 發(fā)展現(xiàn)狀

IETF 標(biāo)準(zhǔn)化過程將協(xié)議開發(fā)為一系列文檔草案版本,其目的是確定最終版本,并根據(jù)該版本發(fā)布 RFC。QUIC 工作組的成員在分析、實(shí)施和互操作規(guī)范方面進(jìn)行協(xié)作,目的是及時發(fā)現(xiàn)問題并優(yōu)化協(xié)議。

我們目前支持了 HTTP/3 的 Draft-23 版本,此后會持續(xù)跟進(jìn)和適配未來新草案版本,在撰寫本文時,最新草案版本號為 27 。針對每次草案版本更新,QUIC 協(xié)議的內(nèi)容質(zhì)量都會有所提升,以保證協(xié)議內(nèi)容與其表現(xiàn)保持“基本共識”。為避免協(xié)議迭代發(fā)展過程中因?yàn)樯壏治鎏幱谕顟B(tài),異或是因?yàn)樽兏霈F(xiàn)無休止的調(diào)整,隨著每個新草案的提出,對已有規(guī)范提出修改的門檻一直在提高。這意味著版本之間的更改較小,并且最終的 RFC 應(yīng)該與我們當(dāng)前在生產(chǎn)環(huán)境中運(yùn)行的協(xié)議緊密聯(lián)系,差異更小。

HTTP/3 的優(yōu)點(diǎn)

HTTP/3 的主要優(yōu)點(diǎn)之一是性能提升,特別是在同時獲取多個對象時的性能。使用 HTTP/2,TCP 連接中的任何中斷(packet loss)會阻塞所有數(shù)據(jù)流(Head of line blocking)。因?yàn)?HTTP/3 基于 UDP 協(xié)議,所以如果數(shù)據(jù)包丟失,只會中斷一個數(shù)據(jù)流,而不會中斷所有流。

此外,HTTP/3 提供了 0-RTT 支持,這意味著在建立連接時通過消除與服務(wù)器的 TLS 確認(rèn),可以使后續(xù)連接的啟動速度更快。比起使用完全 TLS 協(xié)商的方式,客戶端可以更快地開始請求數(shù)據(jù),網(wǎng)站可以更早開始加載。

下圖說明了 HTTP/2 多路復(fù)用兩個請求時數(shù)據(jù)包丟失情況及其影響。客戶端通過 HTTP/2 向服務(wù)器發(fā)送請求,請求兩個資源(我們將請求及其關(guān)聯(lián)的響應(yīng)涂成綠色和黃色)。響應(yīng)被分解為多個數(shù)據(jù)包,可惜的是,如果一個數(shù)據(jù)包丟失,兩個請求都會響應(yīng)失敗。

HTTP/3 與 HTTP/2 的性能對比

 


HTTP/3 與 HTTP/2 的性能對比

 

上面顯示了使用 HTTP/3 協(xié)議多路復(fù)用 2 個請求的情況。當(dāng)丟失一個黃色的響應(yīng)數(shù)據(jù)包時,只對黃色數(shù)據(jù)包的響應(yīng)造成影響,并不會對綠色數(shù)據(jù)包代表的響應(yīng)造成影響。

會話啟動方式的改進(jìn)意味著與服務(wù)器的“連接”啟動速度更快,這意味著瀏覽器可以更快地獲取數(shù)據(jù)。我們很想知道改進(jìn)有多大,所以我們進(jìn)行了一些測試。為衡量由 0-RTT 支持帶來的改進(jìn),我們運(yùn)行了一些基準(zhǔn)測試來測量獲取第一個字節(jié)的用時(TTFB)。平均而言,使用 HTTP/3,我們獲取到第一個字節(jié)出現(xiàn)在 176ms 之后。使用 HTTP/2,這個時間是 201ms,這意味著 HTTP/3 的性能已經(jīng)提高了 12.4%!

HTTP/3 與 HTTP/2 的性能對比

 

有趣的是,協(xié)議的每個方面并不都受到草案或 RFC 的約束。協(xié)議實(shí)現(xiàn)方式的選擇,例如有效的數(shù)據(jù)包傳輸和擁塞控制算法的選擇,會影響其性能。擁塞控制是用戶計(jì)算機(jī)和服務(wù)器用來適應(yīng)過載網(wǎng)絡(luò)的一種技術(shù):通過丟棄數(shù)據(jù)包,隨后的數(shù)據(jù)傳輸就會受到限制。由于 QUIC 是一種新協(xié)議,因此正確地進(jìn)行擁塞控制設(shè)計(jì)和實(shí)現(xiàn)需要進(jìn)行實(shí)驗(yàn)和調(diào)整。

從簡潔性和安全性角度出發(fā),丟失檢測和擁塞控制規(guī)范建議使用 Reno 算法,但允許用戶根據(jù)自身情況選擇任何算法。我們的實(shí)現(xiàn)從 New Reno 算法開始,基于以往經(jīng)驗(yàn),我們知道可以通過其他方式獲得更好的性能。我們最近已遷移到 CUBIC 算法,在數(shù)據(jù)傳輸量大且數(shù)據(jù)包丟失頻繁的網(wǎng)絡(luò)情況下,CUBIC 算法性能與 New Reno 算法相比有很大提升。

對于現(xiàn)有的 HTTP/2 技術(shù)棧,我們目前支持 BBR V1 (TCP)。這意味著在我們的測試中,我們無法進(jìn)行精確的比較,因?yàn)檫@些擁塞控制算法在較小數(shù)據(jù)傳輸和較大數(shù)據(jù)傳輸之間的行為會有所不同。雖然如此,與 HTTP/2 相比,我們已經(jīng)看到使用 HTTP/3 在較小內(nèi)容傳輸下的速度更快。對于較大區(qū)域,改進(jìn)后的 HTTP/2 的擁塞控制在性能上大放異彩。

對于 15KB 的小型測試網(wǎng)頁,HTTP/3 平均需要 443ms 加載,而 HTTP/2 則為 458ms。但是,一旦我們將頁面大小增加到 1MB,優(yōu)勢就會消失:HTTP/3 僅比當(dāng)今網(wǎng)絡(luò)上的 HTTP/2 慢一點(diǎn),HTTP/3 加載花費(fèi) 2.33 秒,而 HTTP/2 加載花費(fèi) 2.30 秒。

HTTP/3 與 HTTP/2 的性能對比

 


HTTP/3 與 HTTP/2 的性能對比

 


HTTP/3 與 HTTP/2 的性能對比

 

基準(zhǔn)測試很有意思,然而我們更想知道 HTTP/3 在現(xiàn)實(shí)世界中的表現(xiàn)。

為進(jìn)行衡量,我們希望有一個第三方可以像瀏覽器一樣在我們的網(wǎng)絡(luò)上加載網(wǎng)站。WebPageTest 是一個通用框架,通過漂亮的瀑布圖來展示頁面加載時間。為了分析后端,我們使用了自家的 Browser Insights 來捕獲白屏?xí)r間。然后,我們將這兩部分?jǐn)?shù)據(jù)通過自動化的方式結(jié)合在一起。

作為測試用例,我們決定對公司博客進(jìn)行性能監(jiān)控。我們在全球范圍配置了 WebPageTest 實(shí)例,以同時通過 HTTP/2 和 HTTP/3 加載站點(diǎn)。我們還啟用了 HTTP/3 和 Browser Insight。因此,每當(dāng)我們的測試腳本檢測到使用支持 HTTP/3 的瀏覽器訪問該站點(diǎn)加載網(wǎng)頁時,瀏覽器就會將報(bào)告數(shù)據(jù)返回。清洗數(shù)據(jù)并與 HTTP/2 的報(bào)告數(shù)據(jù)進(jìn)行比較。

下圖顯示了真實(shí)頁面( blog.cloudflare.com )的頁面加載時間,以比較 HTTP/3 和 HTTP/2 的性能。同時我們還從不同的地理位置進(jìn)行了這些性能評估。

HTTP/3 與 HTTP/2 的性能對比

 

如上圖所見,在北美,HTTP/3 性能仍落后于 HTTP/2 性能,性能差距平均水平約為 1-4%,在歐洲,亞洲和南美也得到類似結(jié)論。我們懷疑這可能是由于擁塞算法不同所致:BBR v1 上的 HTTP/2 與 CUBIC 上的 HTTP/3 不同。將來,我們將努力在兩者上支持相同的擁塞算法,以實(shí)現(xiàn)更準(zhǔn)確的性能對比。

結(jié)論

總體而言,我們很高興一起參與推動這一標(biāo)準(zhǔn)的發(fā)展。我們的實(shí)現(xiàn)效果很好,在某些情況下提供了更好的性能,并且在最壞的情況下性能也和 HTTP/2 相近。隨著標(biāo)準(zhǔn)的定稿,我們期待瀏覽器在主流版本中增加對 HTTP/3 的支持。對我們來說,我們將繼續(xù)支持最新的草案,同時尋找更多的方法,比如擁塞調(diào)整、優(yōu)先級劃分或者系統(tǒng)容量(CPU 和原始網(wǎng)絡(luò)吞吐量),利用 HTTP/3 獲得更好的性能。

分享到:
標(biāo)簽:HTTP
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定