見出し画像

【サイバーセキュリティ】なんとTCPを使わない!?:QUICとHTTP/3

はい、こんにちは。前回記事からの続きです。サイバーセキュリティを学ぶ前提知識として重要な「HTTPの仕組み」を紹介しています。

前回は、HTTP/2のコア技術である「多重化ストリーミング」についてお話ししました。リクエストとレスポンスが「ストリーム」として制御されて、サーバがリクエスト順に処理しなくてよいことで、高速化が実現できるのでしたね!

リクエストの順番通りである必要がなくなった

でも、まだまだウェブのデータ送受信の高速化は進められていきます。その代表的な技術として、Googleが開発した「QUIC」が挙げられます。「SPDY」(スピーディ)ときて、「QUIC」(クイック)と来ましたか!いかにも早くなりそうなネーミングですね~、Googleさん。

ということで、今回は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(「いいよ」)

丁寧ですな。これならデータが確実に受け渡しできますね!(ちなみに、通信を止めるときも、FIN→FIN/ACK→ACKと同じような手順を踏みます。)

が、丁寧すぎて遅いのです。何とならないのかな?

斬新!ハンドシェイクを止めた!?

これを何とかしようとしたのが実は、QUICなんです。

なんと、QUICでは、トランポート層のプロトコルとして、「UDP」を採用します。え?UDP?

UDPは、上記のようなハンドシェイクは行わず、コネクションを作らずにデータを一方的に送り付けます。当然、すべてのデータが順番どおりに届く保証なんてありません。

ですから、動画のストリーミングとか、DHCP、DNS、SNMPとか裏方のプロトコルで使われるだけというイメージですね。

UDPでは、データが届かなかったり、順番が入れ替わるリスクがあります。それでいいのだろうか?いいわけがない、ですね。


はい、本日はここまで~。本日は、QUICの技術のさわりだけご紹介しました。

次回は、QUICの仕組みをもっと深堀しましょう!

では!

この記事が気に入ったらサポートをしてみませんか?