iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Modern Web

快還要更快,讀作 quick 的下一代傳輸層協定: QUIC 系列

隨著 RFC 9114 HTTP/3 規範的正式推出,其底層所使用的傳輸層協定 QUIC 又更進一步的受到大家的矚目。從 HTTP/1.0 開始,到 HTTP/2,不論應用層協定如何改進,傳輸層都是採用 TCP。 TCP 在網路發展的過程中也有很多人討論它的缺點,但因為很多歷史共業導致大幅更新 TCP 協定是很不切實際的,所以想要解決 TCP 諸多問題的唯一去路,就是放棄 TCP 協定,轉而發展新的傳輸層協定 QUIC。

本系列文章會著重於 QUIC 協定的原理以及實現,以及 QUIC 較之前的 TCP + TLS 套餐改進了什麼地方,在設計上做了什麼取捨。

參賽天數 23 天 | 共 23 篇文章 | 16 人訂閱 訂閱系列文 RSS系列文
DAY 1

【Day 01】快還要更快,讀作 quick 的下一代傳輸層協定 - QUIC

前言 隨著 RFC 9114 HTTP/3 規範的正式推出,其底層所使用的傳輸層協定 QUIC 又更進一步的受到大家的矚目。從 HTTP/1.0 開始,到 H...

2022-09-16 ‧ 由 davimperiald 分享
DAY 2

【Day 02】HTTP/3, QUIC 簡介

在深入介紹 QUIC 的技術細節以及實作之前,我們會先簡單介紹一下 QUIC 協定的發展歷史,順便簡述一些 QUIC 身為新的傳輸層協定有什麼新的功能,這些功能...

2022-09-17 ‧ 由 davimperiald 分享
DAY 3

【Day 03】為什麼棄用 TCP,重新發展新的傳輸層協定是為了解決什麼問題?

前言 在正式介紹協定本身之前,還是要先做一下背景介紹,雖然前兩天的文章有簡單提到了,但今天的議題還是來深入探討一下 TCP 有什麼問題,HTTP/3 會選擇棄用...

2022-09-18 ‧ 由 davimperiald 分享
DAY 4

【Day 04】QUIC 基本概念介紹

前言 今天會簡單介紹一些之後在文中可能會提到的專有名詞,雖然這次主題會牽涉到實作的 source code,但大部份內容還是需要搭配 RFC 的規格一起服用,才...

2022-09-19 ‧ 由 davimperiald 分享
DAY 5

【Day 05】聊聊 QUIC 的 Operations

QUIC operations 正如一開始介紹了,QUIC 在網路分層上雖然已經有點跨層次的感覺(整合傳輸層以及 TLS1.3),但使用上定位還是被歸類在傳輸層...

2022-09-20 ‧ 由 davimperiald 分享
DAY 6

【Day 06】編譯 ngtcp2 範例

我們後面的系列文章會配合著 RFC 的規格書以及 ngtcp2 的實作來講解,那今天我們就先試著把 ngtcp2 編譯起來,跑跑看範例來嘗鮮一下,如果連編譯都編...

2022-09-21 ‧ 由 davimperiald 分享
DAY 7

【Day 07】淺談 QUIC Handshake 流程 (一)

前言 在前幾天的介紹中,我們介紹了 RFC9000 中描述的一些基本名詞概念,今天終於要開始攻略第一個 QUIC 的重要關卡 - Handshake 流程。 H...

2022-09-22 ‧ 由 davimperiald 分享
DAY 8

【Day 08】淺談 QUIC Handshake 流程 (二): 以密碼學角度簡述交互流程

今天原本寫好草稿之後開心的上傳,發現鐵人賽的 Markdown 沒有支援 LaTex 的數學公式,所以底下很多文章的區域都是以截圖的方式呈現,造成不便敬請見諒,...

2022-09-23 ‧ 由 davimperiald 分享
DAY 9

【Day 09】淺談 QUIC Handshake 流程 (三) - 設定 wireshark 來抓 QUIC 封包

前言 在前一天的文章中我們透過密碼學的角度,簡單講解了 QUIC 在 Handshake 時交換金鑰的流程,今天我們要以封包的角度探討在 Client 端與 S...

2022-09-24 ‧ 由 davimperiald 分享
DAY 10

【Day 10】淺談 QUIC Handshake 流程 (四) - 怎麼利用 wireshark 去對照 RFC + 筆者的段落反思

前言 在前一天的文章中我們設定了 wireshark 對於 QUIC 的支持,今天我們將來介紹在 RFC9000 中描述 Handshark 的流程,因為加密的...

2022-09-25 ‧ 由 davimperiald 分享