QUICとは
Googleが開発している新プロトコルのことで「Quick UDP Internet Connections」の略となります。「クイック」と読みます。
簡単にいうとWebプロトコルをTCPではなくUDPで行うものです。今までは信頼性からTCPが用いられていましたがパケット数の増加により速度が速くてパケット数の少ないプロトコルが必要となってきました。そこでUDPのスピードにTCP+TLS(SSL)の信頼性を加えたプロトコルが開発されました。TCP+TLSを使わないため暗号化は独自となります。
このプロトコルによってWebの速度は数%向上するようです。もともと速度が速い環境では改善はほとんどありませんが、通信環境の悪い(回線品質が低い)環境では大きな改善がみられるそうです。
UDPはもう40年くらい前に作られたプロトコルで信頼性の問題からTCPへと移っていった過去のものという印象があります。そのUDPを使うという発想がGoogleのすごいところでしょうか。規格としてはまだ標準化はされていませんので対応状況も少ないですし、今後すべてがQUICへと移行していくかはわかりません。(2018年8月現在)
現在の対応状況
QUICを使うにはサーバー側とクライアント(ブラウザ)側の対応が必要になります。Google関連のサイトは全て対応していますが、他のWebサーバーはまだよくわからない状況です。QUICに対応と宣伝しているところはまだ少ないようです。
ブラウザの対応状況ですが、当然ですがGoogle Chromeは対応しています。他にもOperaが使えるようです。
これらの対応状況からYoutubeをChromeで見る場合はQUICが使えることになります。そのため回線品質が悪い場合はQUICによってスムーズな動画再生が期待できます。
QUICによる不具合
筆者の環境では回線速度確保のためにIPv6対応の環境で通信を行っています。そのためのルータとしてNEC Aterm WG1810HPを使っています。このルータが2018年8月から頻繁に再起動するようになりました。最初は熱暴走かと思って冷やしていたのですが気温に関係が無いことがわかり、別の落ちるタイミングを探り始めました。
まず無線LANからのアクセス中は落ちません、有線LANの時だけだと判明。PCではブラウザを4種類(IE11/Edge/Firefox/Chrome)使っています。その中でChromeを使っているときだけ、しかもWebサイトにログインやログアウトするときに必ず落ちることがわかりました。
ここで初めてルータ側のお知らせを調べてみました。そうするとすぐに見つかりました。2018年8月9日付でWindows 10 / 7環境における「Google Chrome使用時にAtermが再起動することがある件」※が掲載されていました。
※このお知らせは9月6日に更新されて、回避策にファームウェアバージョンアップ(バージョン1.3.15以降)が追記されています。
対策はQUICの無効化
原因は記載されておらず、対策として「Chromeを使わない」という方法が最初に書いてあります。そしてChromeを使う場合の方法としては下記の2つが挙げられていました。
2.ルータ側でQUICパケットを廃棄する
どちらの対処方法にするか迷いましたがブラウザ側のChrome設定変更を採用しました。ルータ側の設定は複数のPCからアクセスすることがある場合は一括で設定できていいのかもしれませんが、ルータでパケットを破棄するというのは最善の方法とはいえないと思います。
- ChromeのURL欄に直接「chrome://flags」と入力する。
- 「Experiments」という隠し設定メニューが起動する。
- 検索欄に「QUIC」とキーワードを入れて検索する。
- 「Experimental QUIC protocol」をDisableに設定する。
ルータで無効化する方法はUDPポートを指定してパケットを全て廃棄する方法です。QUICはUDPの443ポートを使っています。この送信元ポート、送信先ポートのパケットを全て破棄する設定になります。これだとブラウザや端末に関係なくすべてのQUICパケットが無効になります。もしQUICを使いたいときやブラウザ対応状況が変わったときには設定を変える必要があります。
一番の問題はブラウザ側では無駄なQUIC通信を試行することになり速度低下の要因にもなると思います。お薦めしない設定方法です。
原因はセキュリティ?
ルータ再起動の原因推測ですが、無線LAN接続でルータ再起動が起きないのは偶然だったのかもしれません。NEC Atermのお知らせには無線LANでも発生することが記載されています。ですが環境によっては無線LANプロトコルの暗号化の中でQUICの独自信号の影響が無くなっているとも考えられます。
そして再現率がほぼ100%だった有線LANのログインやログアウト時の再起動ですが、これはQUICの独自暗号化処理がルーター側で対応できていないのではないかと推測します。
2018年8月から再起動が起きている時期的な問題はChromeのバージョンアップによるものだと思います。憶測ですがQUICの有効化が初期値になったのかもしれません。そこはリリースノートをみてもわかりませんでした。
今後ルータ側のバージョンアップがあるのか、Chrome側のバージョンアップで不具合がなくなるのか様子をみたいと思います。
Aterm WG1810HPのファームウェアバージョンアップ
2018年9月6日にルーター側のバージョンアップがあったようです。9月20日にプロバイダからの通知メールで気づきました。
更新日 2018年9月6日
更新内容 一部のWebブラウザ(Google Chrome)との接続性を改善しました。
このバージョンアップで今までの対策(1.Chromeの設定でQUICを無効にする。2.ルータ側でQUICパケットを破棄する)という暫定対応は元に戻して利用可能になります。
実際に元に戻してChromeを使ってみましたが以前の条件では再起動は発生しませんでした。
ルータ側のバージョンアップをすればこの問題は解決します。