By Sedrubal

HTTP/3は2022年に標準化されたHTTPの仕様で、開発当初は「HTTP over QUIC(QUICを使用したHTTP)」と呼ばれていました。HTTP/3を使用することで通信パフォーマンスが向上するとされていますが、特定の条件においては旧バージョンのHTTP/2の方がパフォーマンスが高まるという論文が発表されました。

QUIC is not Quick Enough over Fast Internet | Proceedings of the ACM Web Conference 2024

https://dl.acm.org/doi/10.1145/3589334.3645323

QUIC is not Quick Enough over Fast Internet - YouTube

2024年時点ではHTTPには大きく3つのバージョンが存在しています。そのうち過去のバージョンであるHTTP 1.1とHTTP/2はTCP接続を使用し、HTTP/3はUDP接続とQUICプロトコルを組み合わせて使用している点が大きく異なります。



TCP接続を確立する「ハンドシェイク」を行う際にはクライアントとサーバー間で2回通信を往復する必要があり、回線が細かったりサーバーが物理的に遠かったりする場合にパフォーマンスが低下してしまっていました。UDP+QUICではハンドシェイクを1往復の通信で行うことができるほか、同じ相手に対して別の通信を行う際のハンドシェイクが不要になるなどのメリットがあり、パフォーマンスに敏感な企業を中心に普及が進んでいます。

なぜHTTP/3は急速に普及していったのか、その利点とは? - GIGAZINE



今回の研究では、1Gbpsの帯域でサーバー・クライアント間に中継機器を1台だけ設置したネットワークで従来のHTTP/2とHTTP/3のプロトコルであるQUICの通信速度を比較しました。



ファイルサイズごとの通信速度の違いは下図の通り。単一のファイルを高速インターネット環境で転送する場合、ファイルサイズにかかわらずHTTP/2が最大の速度を記録したほか、CPUの使用率も低く抑えられることがわかります。



回線の帯域を変化させてみた際の違いは下図の通り。帯域幅が600Mbps程度までであればどのプロトコルでも速度に差はありませんが、600Mbpsを超えるとQUICの通信速度が低下しています。また、いずれの帯域幅であってもHTTP/2が一番CPU使用率が低いという結果になりました。



Chromeブラウザを使用した実験でも同じ結果が出ています。



その他のブラウザも同様に、HTTP/2の方が通信速度もCPU使用率も良好という結果。



下図は4Kのムービーをイーサネット・5G通信・4G通信でストリーミングする実験の結果です。縦軸がHTTP/3を使用した時のビットレート、横軸がHTTP/2を使用した時のビットレートで、点線の右下に点があればHTTP/2を使用した方が速度が出ているという意味になります。イーサネットと5G通信ではHTTP/2の方がビットレートが向上し、4G通信でも差がないという結果になりました。



「小さいファイルが多数ある」「回線が細くてよく切り替わる」などの状況ではHTTP/3のメリットを生かすことができますが、「少数の大きいファイル」「回線が太くて安定している」という状況では逆に速度が低下してしまうことが判明しました。

論文では、HTTP/3が通信速度を落としている理由として「根本的な原因は受信側の処理オーバーヘッドの高さ、特に過剰なデータパケットとQUICのユーザー空間ACKにある」と述べられています。