k41531

Rustのライブラリs2n-quicをきっかけにQUICの存在を知り、備忘録として簡単にまとめておきます。随時追記する予定です。

QUIC(クイック)

トランスポートレイヤーのネットワークプロトコルで、GoogleのJim Roskindによって2012年に設計されました。後にIETFで標準化が進められ、RFC9000として勧告されています。

QUICは、HTTPで使われるプロトコルです(HTTPに限るわけではない)。従来のHTTPではTCPを使った通信をしていましたが、QUICを使うことによって従来プロトコルより効率的な通信が可能になります。このQUICが使われた新しいHTTPのことをHTTP/3と呼びます。
ただし、QUICはTCPと並列なプロトコルではなく、TCPと並列なUDPの上に作られているものです。全く新しいプロトコルにしてしまうと、多くの機器はTCPもしくはUDPの通信のみを許可していため、広めることが難しいからです。

QUICがRFC9000として策定されたのが2021のため、HTTP/3は、まだインターネットドラフトの状態です。ただ、すでにGoogleChromeのユーザーのうち25%以上は自動的にHTTP/3が使われるようになっているようです。

HTTPの歴史

1996年:HTTP/1
1997年:HTTP/1.1
2015年:HTTP/2(RFC 7540)
2016年:HTTP over QUIC(Internet-Draft)
2018年:HTTP/3(Internet-Draft)
2021年:QUIC(RFC 9000)

参考文献

https://http3-explained.haxx.se/ja/why-quic