![見出し画像](https://assets.st-note.com/production/uploads/images/115270523/rectangle_large_type_2_6661c7ec1cb19cfdd87d650cd2446776.png?width=1200)
【サイバーセキュリティ】なんとTCPを使わない!?:QUICとHTTP/3
はい、こんにちは。前回記事からの続きです。サイバーセキュリティを学ぶ前提知識として重要な「HTTPの仕組み」を紹介しています。
前回は、HTTP/2のコア技術である「多重化ストリーミング」についてお話ししました。リクエストとレスポンスが「ストリーム」として制御されて、サーバがリクエスト順に処理しなくてよいことで、高速化が実現できるのでしたね!
![](https://assets.st-note.com/img/1693772393810-NTOVvqIiyG.png)
でも、まだまだウェブのデータ送受信の高速化は進められていきます。その代表的な技術として、Googleが開発した「QUIC」が挙げられます。「SPDY」(スピーディ)ときて、「QUIC」(クイック)と来ましたか!いかにも早くなりそうなネーミングですね~、Googleさん。
![](https://assets.st-note.com/img/1693772683198-NVUzcV4lgT.png)
ということで、今回はQUICとは何ものかを見ていくことにしましょう!
IETFによって標準化される
QUICは、Googleが開発、標準化を進めた結果、2018年にはIETF(Internet Engineering Task Force)によって「HTTP/3」として採用されました。
さらに、IETFは、2021年5月、QUICの技術仕様を「RFC 9000」として公開しました。
Googleが開発した一つの技術ではなく、幅広く普及しつつある技術ということですね!
データを確実に届ける「TPC」
ところで、トランスポート層(L4)で、ウェブブラウザとサーバ間のデータの送受信に使用されるプロトコルは何だと思いますか?
そう、お決まりの「TCP」ってやつですね。クライアントとサーバの間でデータが確実に送受信されるための仕組みです。HTTPメッセージを交換する前に、次のような3ウェイ・ハンドシェイクを行うのでした。
SYN(「つなぐよ」)
SYN/ACK(「いいよ、つなぐよ」)
ACK(「いいよ」)
![](https://assets.st-note.com/img/1693773811143-PlAIMtIpTe.png)
丁寧ですな。これならデータが確実に受け渡しできますね!(ちなみに、通信を止めるときも、FIN→FIN/ACK→ACKと同じような手順を踏みます。)
が、丁寧すぎて遅いのです。何とならないのかな?
斬新!ハンドシェイクを止めた!?
これを何とかしようとしたのが実は、QUICなんです。
なんと、QUICでは、トランポート層のプロトコルとして、「UDP」を採用します。え?UDP?
UDPは、上記のようなハンドシェイクは行わず、コネクションを作らずにデータを一方的に送り付けます。当然、すべてのデータが順番どおりに届く保証なんてありません。
ですから、動画のストリーミングとか、DHCP、DNS、SNMPとか裏方のプロトコルで使われるだけというイメージですね。
UDPでは、データが届かなかったり、順番が入れ替わるリスクがあります。それでいいのだろうか?いいわけがない、ですね。
![](https://assets.st-note.com/img/1693774933946-Pm4VLwLTkj.png)
はい、本日はここまで~。本日は、QUICの技術のさわりだけご紹介しました。
次回は、QUICの仕組みをもっと深堀しましょう!
では!