QUIC
UDP上に構築されたトランスポート層プロトコル。TLS 1.3による暗号化を必須で組み込んでおり、平文での通信を許さない設計になっている。GoogleのJim Roskindらによって2012年頃に考案され、IETFにより2021年5月にRFC 9000として標準化された。HTTP/3やWebTransportの基盤として使われる。 #protocol
TCPとの違い
- ハンドシェイク: TCPは3-wayハンドシェイクの後に別途TLSネゴシエーションが必要で複数RTTを要するが、QUICはトランスポートのハンドシェイクにTLS 1.3を統合しており、既知のサーバーには0-RTTでの再接続も可能
- ストリーム多重化: 複数の独立したストリームをトランスポート層で多重化できる。1つのストリームでのパケットロスが他のストリームをブロックしない(Head-of-lineブロッキングの回避)。TCPは単一のバイトストリームしか扱えないため、この分離ができない
- コネクションの識別: IPアドレス+ポートの組ではなく、コネクションIDでコネクションを識別する。そのためWi-Fi⇔モバイル回線のようなネットワーク切り替えでも接続を維持できる