UDPとQUICでTCPの限界突破
HTTP/2は通信の効率化を目指したプロトコルである。しかし、TCPを採用していることで様々な制限がある(図5)。
まず、接続開始時にハンドシェークによりコネクションを確立するため、その分の遅延は避けられない。また、前述したようにパケットロス時の速度低下が大きい。HTTP/2では暗号通信にTLS▼を利用するが、TCPヘッダーが暗号化されないため、通信を妨害する攻撃が可能だという問題もある。
さらに、携帯端末で通信している際に場所の移動などでネットワークが切り替わると、その時点で通信が切れてしまう。
そこで、HTTP/3ではTCPを捨てるという選択により、これらの問題を解決している。具体的には、TCPの代わりにUDPを使い、これにグーグルが開発した「QUIC▼」という新プロトコルを組み合わせる。QUICは、TCPと同等の信頼性確保の仕組みを備えつつ、前述したTCPの問題点を解決している。これにより、HTTP/3では通信のさらなる効率化が可能になる。
HTTP/2に対応しているWebサーバーは、現時点で3割強だ▼(図6)。HTTP/3が登場したからといってHTTP/2がすぐになくなるわけではない。ただ、HTTP/3はHTTP/2の目的である通信の効率化をより推し進めるものであり、HTTP/2と用途は似ている。将来はHTTP/2に代わってHTTP/3が使われるようになる可能性は高いと考えられる。OTTの大規模なWebサーバーから導入が進んでいくだろう。
では、WebサーバーがHTTP/3に対応することで、ユーザーにはどのような影響があるのだろうか。結論から言うと、ユーザーはほとんど何もしなくてもHTTP/3のメリットを享受できる(図7)。
HTTP/3ではTCPの主な機能をQUICがより効率的に実現する。つまり、通信の仕方が極端に変わることはない。
また、HTTPよりも下の層の通信が変わるだけで、HTTP通信のやり方▼自体は従来と同じだ。リクエストメッセージとレスポンスメッセージを使ってやりとりする。WebブラウザーがHTTP/3に対応しさえすれば、ユーザーが意識することなくHTTP/3が通信に使われるようになる。
ここでこの講座の構成を説明しておこう。第2回ではTCP、第3回ではHTTPの基本についておさらいする。HTTP/3を理解するにはこうした知識が不可欠だからだ。第4回でHTTP/3とQUICがどのような技術なのかを解説する。
HyperText Transfer Protocolの略。
HyperText Markup Languageの略。
Cascading Style Sheetsの略。
実際にはHTTP/1.0以前にHTTP/0.9という仕様がドキュメント化されている。しかし、GETメソッド(第3回で後述)しかなく、レスポンスも定義されていないなど、不完全な仕様だった。
Over The Topの略。通信事業者以外で、動画や音声、メッセージなどの大量のデータを提供する事業者を指す。
Internet Engineering Task Forceの略。
Transmission Control Protocolの略。
User Datagram Protocolの略。
Internet Protocolの略。
通信しているサービスを区別するために使われる番号。
Real-time Transport Protocolの略。
Transport Layer Securityの略。
グーグルが開発した当初はQuick UDP Internet Connectionsの略だったが、現在は略語ではないとされている。
オーストリアのQ-サクセスがHTTP/2対応Webサイトの割合を公表している「Usage of HTTP/2 for web sites」による。
HTTPのセマンティクス(意味論)と呼ぶ。