HTTP/3

これまで、インターネット上の通信はほとんどTCPが使われています、たまにUDPでなければ都合が悪いこともあるので、その場合だけUDPを使います、という風に認識していましたし、人にもそうやって教えてきました。ところが、これからはほとんどの通信がTCPを使わない世界がやってきそうです。

というのは、IETFが次世代のHTTPであるHTTP/3について、QUICを使用することを決めたからです。

TCPやUDPというのは、トランスポート層のプロトコルであり、通信相手とのやり取りを安定させたり、どのアプリケーションが使う通信なのか識別したりする役割のあるプロトコルです。TCPは、通信相手とセッションを成立させてから通信を行い、送ったパケットがすべて相手に届くようにコントロールしてくれます。

一方のUDPでは、セッションの確立は行わず、一方的にパケットを送ります。相手が受け取ったかどうか確認しません。

Youtubeで動画を見る際、通信環境が悪いと再生が止まってしまう場合があると思いますが、通信環境が回復すれば、止まったところから再生されると思います。これは、TCPでパケットを順番通りすべて受信できるように調整してくれているからです。ただ、例えば電話での通話のようにリアルタイム性が重視される通信では、届かなかったパケットがあるからといって、そこでストップして届かなかったパケットを待っていては使い物になりません。届かなかった部分は飛ばして届いている部分を受信すれば一部の音声が途切れるだけで会話を続けることができます。このようにリアルタイム性が重視されるような通信ではUDPを使います。

 

当然、TCPではパケットに通信を制御するための情報を多く添付しなければならないため、その分、同じ時間で届けられるデータ量はUDPより少なくなります。TCPはUDPよりオーバーヘッドが大きいという言い方をします。

 

HTTP/3では、TCPの代わりにQUICというプロトコルを使用することになります。QUICとは、UDPをベースにしたプロトコルで、UDPの機能に加えて、通信の制御や暗号化を行うことができるプロトコルです。TCPには暗号化の機能はないので、TCPより機能が多岐にわたるとも言えます。このQUICは、TCPよりオーバーヘッドが小さいプロトコルなので、このQUICをHTTPで使用しようというのです。

QUICはGoogleが開発したプロトコルなので、Googleが積極的に普及を進めようとしていましたが、主要なプロトコルであるHTTPの時期規格であるHTTP/3で採用されることになったので、インターネットの大半はQUICによる通信という時代が来ると思われます。

https://xtech.nikkei.com/atcl/nxt/news/18/13024/

 

ちなみに、最近Web3という言葉もよく聞きますが、こちらはブロックチェーンの技術を使った新しいインターネットの使い方の話であり、HTTP/3とは直接関係はありません。

 

コラム一覧へ