Googleが2015年頃に公開した新しいプロトコルがQUICです。
難しい話は抜きにして、簡潔に言ってしまうと従来の通信方法よりサイト表示が速くなる技術がこのQUICになります。
しかしQUICを採用するとなぜ速くなるのか、気になるところです。
そこでQUICを利用すると高速化する理由について解説していこうかと思います。
※正直筆者も完全に理解しているわけではないので、情報の信頼性を絶対的に保証することはできないことご理解いただけるようお願いいたします。
QUICはHTTP/2をUDP土台で通信するための技術
- HTTP/2をUDPの上でやればもっと速いよね
- でもUDPの上にSSL(TLS)おけないからできない……
- じゃあUDPの上でもSSL(TLS)使えるようQUIC作ったろ!
というのが大まかな開発理由で、この理由がそのままQUICを使うとなぜ高速化するかの解説に繋がってきます。
要はHTTP/2という高速化技術を、UDPという土台の上で運用するために作られたのがQUICというわけです。
このままQUICの特徴を詳しく掘り下げても良いのですが、「HTTP/2とUDPってなんぞや?」という疑問を抱えている人も多いでしょうし、まずはそこの解説から行きましょう。
HTTP/2とは通信を多重化することで高速化する技術
HTTP/2とは、従来の通信方法だったHTTP/1.1を改善し、高速化したものです。
HTTP/1.1の頃は例えば”データAとB”のやりとりをする時「Aが欲しい→Aを上げる。Bが欲しい→Bを上げる」と一つずつ処理を行っていました。
HTTP/2では”データAとB”を「AとBが欲しい→AとB上げる」とまとめて行えるようにし、高速化を実現しています。
ユーザーはサイト表示に3秒かかると、ストレスでサイトを見ずに離脱してしまう確率が一気に伸びるため、HTTP/2という高速化技術は重宝されているわけです。
ちなみにHTTP/2はSSL(TLS)化されているサイトの通信でしか、基本的に利用できません。
HTTP/2を更に詳しく知りたい方は「HTTP/2の適応方法や高速性を解説」しているページをチェックしてみてください。
HTTP/2にはTCP上でしか実質運用できないという特徴があり、それを解決するためにQUICが開発されました。(TCP上でしかTLS(SSL)が使えないため)
TCPとUDPの違い、高速性などが変わってくる
HTTP/2という高速化技術を使うにはTCPを土台にする必要があるのですが、TCPはUDPと比べ低速という弱点があります。
というのもTCPは安全性や通信の確かさを上げるために、「Aが欲しい→Aが上げますよろしいですか→いいよ→上げます」みたいに確認のフェイズが入るので、遅くなってしまうわけです。
UDPの場合は「Aが欲しい→A送るね」と確認のフェイズが入らないため、TCPより高速です。
そのため「HTTP/2をもっと高速にしたいから、TCPじゃなくてUDPを土台にしたい」という話になりました。
UDP上でHTTP/2を動かすためにはUDPでSSL(TLS)を使えるようにする必要があり、その問題を解決するためにQUICが誕生したわけです。
結論、QUICがあるとHTTP/2が更に高速になる
- HTTP/2はTCP上でしか動かない
- TCPよりUDPのほうが速いのでUDPの上でHTTP/2を動かしたい
- UDPの上でHTTP/2を動かすためにQUICを作った
冒頭と似たようなこと書いてますが、こういうわけでQUICは作られ、高速化に貢献しているわけです。
ちなみに「UDPってTCPと比べて安全性に劣るんじゃないの」と思われるかもしれませんが、「QUIC Crypto」というもので暗号化されてますので特に問題はありません。
そもそもTCPのほうが安全だと言われているのは、その上でしかSSL(TLS)が動かないからで、QUICはそれをUDPの上で動かすためのプロトコルですから、そりゃ安全ですよね。
ぶっちゃけここまでの話難しかったと思うので、「HTTP/2のみより、HTTP/2 + QUICに対応している方がサイト表示が高速になる」と理解しておけば大丈夫かと。
QUICで接続されているか確認する方法
Google Chromeにて、「HTTP/2 and SPDY indicator」という拡張機能を利用すれば確認できます。
ちなみに色ごとの意味は
青:HTTP/2のみ
緑:SPDY
赤:QUIC
での接続を表しているとか。
しかし、検証したところSPDYを表す緑色でも大体QUICでの接続を表しているのが多いように感じます。
「Why google.com swtich to spdy(http/2+quic/35) instead of http/2」というページでも、緑色(SPDY)ばかりで赤色(QUIC)にならないよという疑問に、それ緑だけどQUIC接続になってるよという回答が届いています。

緑色のマークだが、QUIC接続になっている
QUICについてまとめ
- QUICはHTTP/2を更に高速化させる技術
- HTTP/2をUDP上で動かせるため高速化する
- UDP上で動くが安全性も特に問題ない
まだまだ新しい技術なため、QUICに対応しているサイトは少なめです。
だからこそサイト運営者的にはQUICに対応すれば、他サイトとの差別化につながるかと。
ちなみにレンタルサーバーでQUICに対応しているのは現状、「mixhost」というサーバーぐらいということを報告しておきます。