機能リクエスト:LFN/VPNパフォーマンス向上のためTCP CUBICを置き換えるネイティブTCP BBR対応(またはUI切り替え)の追加

QNAP開発・ネットワークエンジニアリングチーム各位

Googleの**BBR(Bottleneck Bandwidth and Round-trip propagation time)**をQTS/QuTS heroのデフォルトのTCP輻輳制御アルゴリズムとして実装すること、もしくは最低限「Network & Virtual Switch」GUIにユーザー選択可能なトグルの追加をご検討いただけますよう、正式に要望いたします。

現状、QTSはTCP CUBICをデフォルトとしています。しかしCUBICは歴史的には標準であったものの、LFN(Long Fat Network)や高遅延WAN/VPNのような現代的なネットワーク環境では損失ベースの性質ゆえに著しく性能が低下します。

私のインフラ環境・ユースケース:

  • NAS: QNAP TS-473A(16GB RAM、QTS 5.2.9)

  • ルーティング: 両端でMikroTik RB5009ルーターを利用

  • トポロジー: サイト間WireGuard VPNを1Gbps FTTH回線(国際ISPノード、主にTIM/O2経由、中程度の遅延と時折ごくわずかなパケットロス)で接続

  • ワークロード: WireGuardトンネル越しの高ビットレートメディアストリーミング(Plex Direct Play)や大容量ファイル転送

CUBICの課題: 標準通信時、WireGuardトンネルのスループットが約39Mbpsに大幅に制限されていました。広範なiperf3テストで、国際トランジットノード上の軽微で避けられないパケットロスをCUBICが過敏に検知し、輻輳ウィンドウを急激に半減して帯域を著しく押さえ込み、不要な再送が多発し、高ビットレートのストリーミングがトランスコーディングなしでは不可能となっていました(Ryzen V1500BはiGPUを持たないため、すべてCPUで処理されます)。

解決策および実証結果(BBR): 問題切り分けのため、SSH経由でカーネルパラメータを手動で変更し、sysctl -w net.core.default_qdisc=fq sysctl -w net.ipv4.tcp_congestion_control=bbr を設定しました(永続化のためにはカスタムスクリプトをcrontabに登録する必要がありました。QTSはリブート時にsysctl.confを初期化してしまうためです)。

この切り替えによる効果は即座かつ劇的でした。損失ベースアルゴリズムから遅延ベースアルゴリズムに切り替えたことで:

  • スループットが10倍に向上: 同一のWireGuardトンネル上で約39Mbps→約380/400Mbpsまで向上しました。

  • 安定性: パケット配送が非常に滑らかになり、4K Direct Playメディアのバッファリングが解消されました。

要望: 既に主要なLinuxディストリビューション、Windows 11、クラウドプロバイダーでは、現実のインターネットトポロジーに優れた適応性を持つBBRへと移行しています。QTSも基本は堅牢なLinuxシステムであり、カーネルには既にbbrモジュールが実装されています。

つきましては、下記をご検討ください:

  1. TCP輻輳制御のデフォルトをCUBICからネイティブにBBRへ移行すること。

  2. あるいは、Network & Virtual Switchインターフェース内にCUBIC/BBRを選択可能とするシンプルなプルダウンを設け、CLIやcrontabを介した非推奨なワークアラウンド(ファームウェア更新で上書きされる危険性あり)をユーザーが回避できるようにしていただくこと。

お忙しい中、優れたハードウェア開発を続けてくださり、ありがとうございます。本件のアーキテクチャ的改善について、フィードバックをお待ちしております。

ご提案ありがとうございます!社内チームに回して検討してもらいます。

「いいね!」 1

@SteveKo ありがとう、とても感謝しています。
評価結果を追跡することはできますか?それとも内部のみですか?

「いいね!」 1

とても興味深いですね!

ありがとうございます!とても助かります!