Quic協議(一)------HTTP3基礎之QUIC協議介紹

簡述

快速UDP網絡連接 ( Quick UDP Internet Connections),基于UDP的多路復用安全傳輸協議懈息。是由 Google 提出的實驗性網絡傳輸協議 歌豺,位于 OSI 模型傳輸層阻星。 QUIC 旨在解決 TCP 協議的缺陷,并最終替代 TCP 協議背镇, 以減少數據傳輸套耕,降低連接建立延遲時間,加快網頁傳輸速度上渴。

簡單來說QUIC就是UDP之上的快速握手+TLS+HTTP/2(流)

主要特點

  • 多流控制設計;

  • 低等待延遲喜颁;

  • 加密性能更優(yōu)稠氮;

  • 前向糾錯;

  • 連接保持半开;

0-RTT

說到QUIC隔披,就不得不提0-RTT,QUIC的設置之初寂拆,就是為了減少http請求過程中握手的消耗锹锰。傳統(tǒng)的http基于tcp協議,每次創(chuàng)建連接漓库,都需要進行三次握手。對于很多短連接場景园蝠,這樣的握手延遲影響很大渺蒿,且無法消除。

stream

應用程序協議通過流(按字節(jié)順序排列)在QUIC連接上交換信息彪薛∶埃可以創(chuàng)建兩種類型的流:

  • 雙向流怠蹂,允許兩個端點發(fā)送數據;

  • 單向流少态,允許單個端點發(fā)送數據城侧。基于信任的方案可以用于限制流的創(chuàng)建并限制可以發(fā)送的數據量彼妻。

擁塞控制

TCP 的擁塞控制實際上包含了四個算法:慢啟動嫌佑,擁塞避免,快速重傳侨歉,快速恢復 屋摇。

相比于TCP,QUIC 協議當前默認使用了 TCP 協議的 Cubic 擁塞控制算法 [6]幽邓,同時也支持 CubicBytes, Reno, RenoBytes, BBR, PCC 等擁塞控制算法炮温。

從擁塞算法本身來看,QUIC 只是按照 TCP 協議重新實現了一遍牵舵,關于改進我們后面詳細深入了解柒啤。

安全性

QUIC默認支持TLS1.3版本,相比于TCP來說畸颅,TCP 協議頭部沒有經過任何加密和認證担巩,所以在傳輸過程中很容易被中間網絡設備篡改,注入和竊聽重斑。比如修改序列號兵睛、滑動窗口。這些行為有可能是出于性能優(yōu)化窥浪,也有可能是主動攻擊祖很。

QUIC 的 packet 可以說是武裝到了牙齒。除了個別報文比如 PUBLIC_RESET 和 CHLO漾脂,所有報文頭部都是經過認證的假颇,報文 Body 都是經過加密的。這樣只要對 QUIC 報文任何修改骨稿,接收端都能夠及時發(fā)現笨鸡,有效地降低了安全風險。

應用場景

HTTP3
5分鐘看懂HTTP3-InfoQ

SDK和支持

C/C++

Name Version Roles Handshake GitHub
Microsoft's MsQuic draft-29/v1 client, server TLS 1.3 RFC https://github.com/microsoft/msquic
Facebook's mvfst draft-29 library, client, server TLS 1.3 https://github.com/facebookincu

Rust

Name Version Roles Handshake GitHub
Cloudflare's quiche draft-27, draft-28, draft-29 library, client, server TLSv1.3 (RFC8446) https://github.com/cloudflare/quiche
Mozilla/Firefox's Neqo draft-27 through version 1 library, client, server TLS 1.3 https://github.com/mozilla/neqo
Quinn draft-28 library, client, server TLS 1.3 https://github.com/djc/quinn

Go

Name Version Roles Handshake GitHub
quic-go always the current draft library, client, server TLS 1.3 RFC https://github.com/lucas-clemente/quic-go

參考:RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport (rfc-editor.org)

QUIC 開源實現列表(持續(xù)更新) - 知乎 (zhihu.com)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末坦冠,一起剝皮案震驚了整個濱河市形耗,隨后出現的幾起案子,更是在濱河造成了極大的恐慌辙浑,老刑警劉巖激涤,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異判呕,居然都是意外死亡倦踢,警方通過查閱死者的電腦和手機送滞,發(fā)現死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辱挥,“玉大人犁嗅,你說我怎么就攤上這事∥畹猓” “怎么了褂微?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哼蛆。 經常有香客問我蕊梧,道長,這世上最難降的妖魔是什么腮介? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任肥矢,我火速辦了婚禮,結果婚禮上叠洗,老公的妹妹穿的比我還像新娘甘改。我一直安慰自己,他們只是感情好灭抑,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布十艾。 她就那樣靜靜地躺著,像睡著了一般腾节。 火紅的嫁衣襯著肌膚如雪忘嫉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天案腺,我揣著相機與錄音庆冕,去河邊找鬼。 笑死劈榨,一個胖子當著我的面吹牛访递,可吹牛的內容都是我干的。 我是一名探鬼主播同辣,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼拷姿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旱函?” 一聲冷哼從身側響起响巢,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棒妨,沒想到半個月后抵乓,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年灾炭,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颅眶。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜈出,死狀恐怖,靈堂內的尸體忽然破棺而出涛酗,到底是詐尸還是另有隱情铡原,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布商叹,位于F島的核電站燕刻,受9級特大地震影響,放射性物質發(fā)生泄漏剖笙。R本人自食惡果不足惜卵洗,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弥咪。 院中可真熱鬧过蹂,春花似錦、人聲如沸聚至。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扳躬。三九已至脆诉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贷币,已是汗流浹背击胜。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留片择,地道東北人潜的。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像字管,于是被迫代替她去往敵國和親啰挪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內容

  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    極客學院Wiki閱讀 7,253評論 0 3
  • 不知不覺易趣客已經在路上走了快一年了,感覺也該讓更多朋友認識知道易趣客硫戈,所以就謝了這篇簡介锰什,已做創(chuàng)業(yè)記事。 易趣客...
    Physher閱讀 3,426評論 1 2
  • 雙胎妊娠有家族遺傳傾向,隨母系遺傳汁胆。有研究表明梭姓,如果孕婦本人是雙胎之一,她生雙胎的機率為1/58嫩码;若孕婦的父親或母...
    鄴水芙蓉hibiscus閱讀 3,705評論 0 2
  • 晴天铸题,擁抱陽光铡恕,擁抱你。雨天丢间,想念雨滴探熔,想念你。 我可以喜歡你嗎可以啊 我還可以喜歡你嗎可以烘挫,可是你要知道我們不可...
    露薇霜凝閱讀 1,222評論 1 2