今日、たまたまブログの更新チェックをしていた所、セコンさんの、
【追記あり】 モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で 10 倍速にする - A Day in the Life
というブログ記事で TCP BBR と Shadowsocks という(中国の)金盾の回避ツールが紹介されていて、 TCP BBR と言うアルゴリズムと Shadowsocks というツールについて初めて知ったのですが、 モバイル環境でのセットアップはサーバが必要なのでとりあえず置いておくとして、 普段の自宅で固定回線で使ってる NixOS では TCP BBR は有効化出来そうだったので、 とりあえずそっちを試してみました。
やり方
どうも TCP BBR の Linux Kernel でのサポートは 4.9 辺りで入ってるらしく、
nixpkgs での master ブランチにおける pkgs.linuxPackages_latest
は 5.0.8
(2019-04-22 時点)なので、
下記の設定を施すだけで NixOS での TCP BBR を有効にする事が出来ました。簡単ですね:
{ ... }: { boot.kernelModules = [ "tcp_bbr" ]; boot.kernel.sysctl = { "net.core.default_qdisc" = "fq"; "net.ipv4.tcp_congestion_control" = "bbr"; }; }
で、早くなったのか
実のところ、ちゃんとベンチマークは取ってなかったので(ぉぃ 、 あんまり実感としては良くなってるのか分かってないのですが、 少なくとも、
でザックリと速度計測したところ、
下りが大体 30Mbps 前後、上りが 110Mbps 前後
という結果になりました。なお、ネットワークの環境としては、
- 回線は NTT 西日本のフレッツ光(だと思う。100Mbps * 2 セッション張れるやつだった気がする)
- プロバイダは OCN
- Wi-Fi は AirMac Extreme 5th Gen
という感じです。
まぁ私の住んでいる地域の回線事情として、下りは詰りぎみのワリには上りがおかしなほど空いてる 、 と言うのが有るのですが、まぁ上りが契約回線の割には 110Mbps という上限を超えて張り付いてるレベルの速度が出てるんで、 たぶん効果は出ているんだと思います。はい。
以上
まぁ Windows や macOS で TCP BBR を有効にする方法は良く分かってない(というか調べてない)のでどうなってるかは知らないんですが、 少なくとも NixOS では最新の Linux Kernel を使っていれば上記の設定で TCP BBR を有効化できるので、 とりあえずで有効にしておいても損は無いと思います。
また NixOS であれば Shadowsocks のサービスも /etc/nixos/configuration.nix
経由でワリとラクに有効化できるっぽいので、
時間や機会が有れば、そちらも今後試してみたいと思ってます。はい。