QUICプロトコルを試したい
2018年6月13日の Google Cloud Platform ( GCP )のブログで、HTTPS LORD BALANCING のQUICプロトコルのサポートが紹介されました。
GCPのHTTPS LOAD BALANCING を利用している場合、QUICプロトコルに対応している Chrome ブラウザを使えば、速度UPを見込めるはずです。
そこで本記事では、GCP HTTPS LORD BALANCING + Google Compute Engine ( GCE )+ Chrome ブラウザを使って、プロトコルによるWEBブラウジング速度を比較しました。
本記事の目的
HTTP/1.1、HTTP/2、QUICプロトコルのWEBブラウジング速度を比較し、QUICプロトコルの有用性を確認する。
検証環境
以下の検証環境を使用しました。
◎WEBサーバ
・ Google Compute Engine ( GCE )
- ゾーン:us-east1-b
- マシンタイプ:f1-micro(vCPU x 1、メモリ 0.6 GB)
- ディスク:標準の永続ディスク 10GB
- OS・ソフトウェア:CentOS7 + Apache 2.4.6 + OpenSSL 1.0.2
◎WEBブラウザ
・ Google Chrome v67.0.3396.87
◎インターネット回線
・so-net光(参考速度 下り:448Mbps、上り:359Mbps)
◎測定曜日・時刻
・土曜日 21時30分前後
お断り
本記事ではGCPのGCE インスタンス作成手順、HTTP(S) LOAD BALANCING の作成手順は省略します。
また、CentOS7にApache 2.4.6、OpenSSL 1.0.2のインストール、検証のための設定手順も省略します。
確認方法
WEBブラウザに表示するファイル
WEBサーバに以下のサイズの画像ファイルと、画像ファイルをリンクしたindex.htmlファイルを置きました。
・index.html (サイズ:174B)
・test.png (サイズ:9KB × 1 ファイル をリンク)
・jpegtest.jpg (サイズ:237KB × 5 ファイルをリンク = 1,185KB)
プロトコル設定
HTTP/1.1、HTTP/2、QUICプロトコルを、以下のように設定しました。
◎HTTP/1.1
・HTTP/1.1は、HTTPS LOAD BALANCING では利用できないため、直接WEBサーバにHTTPSでアクセスする。
◎HTTP/2
・HTTPS LOAD BALANCING のQUICネゴシエーションを無効とする。
・HTTPS LOAD BALANCING のバックエンドサービスはHTTPとする。
◎QUICプロトコル
・HTTPS LOAD BALANCING のQUICネゴシエーションを有効とする。
・HTTPS LOAD BALANCING のバックエンドサービスはHTTPとする。
Chrome ブラウザから"https://"で接続し、上記3プロトコルを5回ずつ計測しました。WEBブラウザのキャッシュは計測前にクリアしています。
HTTP/1.1のWEBブラウジング速度
HTTPS LOAD BALANCING では、HTTP/1.1の設定ができないため、WEBサーバに直接HTTPS接続して測定しました。
測定結果
Chrome DevTools を使って測定します。
ネットワークタブのprotocol欄に"HTTP/1.1"と表示されています。(画像は1回目のみ載せます。)
実際の計測結果です。
計測 | 結果 |
---|---|
1回目 | 1.92 s |
2回目 | 1.71 s |
3回目 | 1.70 s |
4回目 | 2.37 s |
5回目 | 3.60 s |
平均 | 2.26 s |
HTTP/2のWEBブラウジング速度
HTTPS LOAD BALANCING の設定
フロントエンドのQUICネゴシエーションを"無効"に設定して、Chrome ブラウザからhttpsで接続し測定します。
測定結果
ネットワークタブのprotocol欄に"h2"(HTTP/2)と表示されています。右下にブラウジング速度が表示されています。(画像は1回目のみ載せます。)
実際の測定結果です。
計測 | 結果 |
---|---|
1回目 | 945 ms |
2回目 | 1.03 s |
3回目 | 793 ms |
4回目 | 620 ms |
5回目 | 889 ms |
平均 | 855.4 ms |
QUICプロトコルのWEBブラウジング速度
HTTPS LOAD BALANCING の設定
フロントエンドのQUICネゴシエーションを"有効"に設定して、Chrome ブラウザからhttpsで接続し測定します。
測定結果
ネットワークタブのprotocol欄に"http/2+QUIC/39"と表示されてQUIC プロトコルが使用されていることがわかります。右下にブラウジング速度が表示されています。(画像は1回目のみ載せます。)
実際の測定結果です。
計測 | 結果 |
---|---|
1回目 | 907 ms |
2回目 | 796 ms |
3回目 | 983 ms |
4回目 | 728 ms |
5回目 | 798 ms |
平均 | 842.4 ms |
結果
今回の3プロトコルの速度比較は想定通り、以下の順になりました。
QUICプロトコル(842.4 ms) < HTTP/2(855.4 ms) < HTTP/1.1(2.26 s)
現在、GCP の HTTPS LOAD BALANCING を利用しているWEBサービス・システムは、QUICプロトコルに対応したChrome ブラウザを使用するだけで、より高速なWEBブラウジングが期待できると考えます。(GCPの設定変更等は各自の責任において行ってください。)
おわりに
期待通りの結果ではありましたが、QUICプロトコルとHTTP/2は微妙な差でした。しかし、QUICプロトコルはUDPベースであることから、本記事の検証より更に大量かつサイズが大きい画像をリンクしているファイルのWEBブラウジングやトラフィックが混んでいる時にその特性を活かし、有用性は更に高まると考えます。(時間ができたら検証します)