LoginSignup
4
4

More than 5 years have passed since last update.

QUIC に関する調査メモ

Posted at

QUIC についての資料

QUIC の実装

  • Chromium
  • libquic
    • chromium のソースコードからライブラリを構成している。goquicのベース
  • goquic
    • libquicのGo言語用バインディング
  • proto-quic
    • Google製ではあるが、非公式サポート版。
    • QUIC開発者のサイドプロジェクト
    • Linuxのみサポートしているが、WindowsとiOSをサポート予定
  • quic-go
    • QUICのGo言語実装
  • quic-version-detector
    • QUICサーバの対応バージョンを列挙してくれるコマンド

Chromium での QUIC 接続テスト

  • Ubuntu 16.04
  • Chromium 51.0.2704.79

google.co.jp に対して強制的にQUICプロトコルでアクセスする。

chromium-browser --enable-quic --origin-to-force-quic-on=www.google.co.jp:443 --quic-version=QUIC_VERSION_30 https://www.google.co.jp

--quic-version=QUIC_VERSION_30 オプションは、QUICのバージョンを指定できる。末尾の数字変更することでバージョンを指定できる。

アクセス後に、 chrome://net-internals/#quic を開くと、 www.google.co.jp:443 を確認できる。

ネットワーク環境によっては、アクセスできない時がある。自宅のネットワーク有線回線で繋がらない場合は、モバイルネットワークに切り替えると繋がりやすかった。

QUICサーバの対応バージョンを確認

QUIC はドラフト版なので、バージョンが変更される。このため、サーバが最新のQUICバージョンに対応しているとは限らない。クライアント側から、サーバの対応バージョンを確認する必要がある。確認するには、quic-version-detector を利用できる。

Ubuntu 16.04でのインストール

sudo apt install python3-pip
sudo pip3 install --upgrade quic-version-detector

実行

quicver www.google.co.jp 443

結果

"www.google.co.jp:443" supported versions:
     Q036
     Q035
     Q034
     Q033
     Q032
     Q031
     Q030

proto-quic に関するメモ

サンプルクライアントの実行

cd src
./out/Release/quic_client --host=`dig www.google.com +short | head -1` --quic-version=32 --port=443 http://www.google.com

https://github.com/google/proto-quic/blob/master/src/net/net.gyp の quic_client ターゲットを見ると、 QUIC のアプリ作成に必要なライブラリがわかる。net.gypを流用できそうだ。

caddy に関するメモ

caddy のインストール

go get github.com/mholt/caddy/caddy

caddy を QUIC で実行

caddy -quic

実行できたものの、クライアントからアクセスできていない。

メモ欄

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4