Skip to content

「Windowsシリーズ」Windows 11でBBR輻輳制御アルゴリズムを導入してインストールする方法

692字程度約2分

ネットワーク設定使用ガイド

2025-03-12

​ Windows 11 22H2はTCP BBR v2輻輳制御をサポートしています。本記事では、簡単な設定で、WindowsのデフォルトのCubic輻輳制御からBBR v2輻輳制御に切り替え、再起動なしでネットワーク速度を飛躍的に向上させる方法を説明します。

一、BBRアルゴリズムとは?

​ BBR (Bottleneck Bandwidth and Round-trip propagation time) は、TCPプロトコルの輻輳制御アルゴリズムで、高帯域幅および高パケットロスのネットワーク環境でのパフォーマンス最適化を目的としています。BBRは、ネットワークの輻輳状況と遅延に基づいて送信速度を動的に調整し、最大のネットワークスループットと最小の遅延を実現します。BBRアルゴリズムは、ネットワークの帯域幅と遅延を動的に測定・推定し、適切な輻輳ウィンドウサイズを決定して、より良い伝送効果を達成します。BBRアルゴリズムは、Googleのネットワークサービス(YouTubeやGoogle Cloudプラットフォームなど)で広く使用されています。

二、現在Windowsのデフォルトアルゴリズムは?

​ CUBIC (Cubic TCP) アルゴリズムは、BB-Renoアルゴリズムに似た輻輳制御アルゴリズムで、BB-Renoアルゴリズムと異なり、非線形の輻輳ウィンドウ増加方式を採用しており、高帯域幅、高遅延のネットワーク環境により適応しやすい特徴があります。

​ CUBICアルゴリズムの輻輳ウィンドウは、立方体のような増加曲線に従い、輻輳ウィンドウの適応を、輻輳ウィンドウのフィッティングカーブを計算する仕組みで調整します。CUBICアルゴリズムは、パケットロスの監視を通じてウィンドウサイズを調整し、輻輳の回避と制御を行います。CUBICアルゴリズムは、ネットワークの輻輳時に自動的に輻輳回避および復旧措置を講じ、ネットワークのパフォーマンスを安定させ、スムーズに保つことができます。

​ CUBICアルゴリズムは、LinuxのTCPモジュールで広く使用されており、さまざまな広域ネットワークやインターネット環境でも利用されている非常に実用的な輻輳制御アルゴリズムです。

三、BBRとCUBICの違い

BBRアルゴリズムとCUBICアルゴリズムには、以下のような本質的な違いがあります:

  1. アルゴリズムの考え方:BBRアルゴリズムは、ネットワーク内で最後のボトルネックとなるリンクの帯域幅と遅延を維持することを核心としており、ネットワークの最小帯域幅と最大遅延を基準に輻輳制御を行います。一方、CUBICアルゴリズムは、輻輳ウィンドウの変化に基づいて自適応制御を行います。
  2. アルゴリズムのパラメータ:BBRアルゴリズムは、帯域幅や遅延などのネットワークパラメータを動的に測定・推定する必要があります。CUBICアルゴリズムは、輻輳ウィンドウサイズの変化に応じて調整します。
  3. アルゴリズムの適用環境:BBRアルゴリズムは、高帯域幅、高遅延、小さなパケットのネットワーク環境に適しています。Googleのネットワークサービスなどで使用されています。一方、CUBICアルゴリズムは、高帯域幅、長距離の広域ネットワーク環境に適しています。

四、どの環境で異なるアルゴリズムを使用すべきか?

​ 簡単に言うと、最適な輻輳制御アルゴリズムの選択は、ネットワーク環境によって決まります。一般的に、ネットワークの帯域幅が大きく、パケットロスが少ない場合、BBRアルゴリズムが有利です。なぜなら、BBRはネットワークの帯域幅を迅速に検出し、それを最大限に活用できるからです。反対に、ネットワークの帯域幅が小さく、パケットロスが多い場合は、CUBICアルゴリズムがネットワーク状況に適応しやすく、パケットロスや輻輳の問題を減らすことができます。したがって、アルゴリズムの選択は、実際のネットワーク状況や要件に基づいて行う必要があります。

五、Windows 11でBBRアルゴリズムに切り替える方法

5.1 現在のアルゴリズムを確認

  • 管理者としてPowerShellを開きます。

  • 以下のコマンドを入力して、現在のアルゴリズムを確認します。

     NetTCPSetting | Select SettingName, CongestionProvider

5.2 BBRアルゴリズムに切り替える

  • 以下のコマンドを順番に入力します。

     netsh int tcp set supplemental template=Internet congestionprovider=BBR2
     netsh int tcp set supplemental template=InternetCustom congestionprovider=BBR2
     netsh int tcp set supplemental template=Datacenter congestionprovider=BBR2
     netsh int tcp set supplemental template=DatacenterCustom congestionprovider=BBR2
     netsh int tcp set supplemental template=Compat congestionprovider=BBR2
  • すべてのコマンドを実行した後、再度「現在のアルゴリズムを確認」のコマンドを入力して、正しく切り替わっているか確認します。

     SettingName      CongestionProvider
     -----------      ------------------
     Automatic
     InternetCustom   BBR2
     DatacenterCustom BBR2
     Compat           BBR2
     Datacenter       BBR2
     Internet         BBR2

六、備考

  • 再起動なしで、すぐに切り替えが反映されます。

  • BBRに切り替えた後、ネットワーク速度が遅くなった場合は、上記の手順で「CUBIC」に戻すことができます。

BBR v2からCUBICに戻す方法

​ PowerShellで以下のコマンドを入力します:

 netsh int tcp set supplemental Template=Internet CongestionProvider=cubic
 netsh int tcp set supplemental Template=Datacenter CongestionProvider=cubic
 netsh int tcp set supplemental Template=Compat CongestionProvider=newreno
 netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=cubic
 netsh int tcp set supplemental Template=InternetCustom CongestionProvider=cubic

​ その後、再度以下のコマンドで現在のTCP輻輳制御を確認します:

 Get-NetTCPSetting | Select SettingName, CongestionProvider
What do you think?
  • 0
  • 0
  • 0
  • 0
  • 0
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v3.4.1

本站支持IPv6访问

公告

親愛なる読者の皆様へ:

いつも私のブログをご覧いただき、温かいご支援をありがとうございます!より良い思考や創作を共有するために、私は日々コンテンツの改善に取り組んでおります。しかし、この過程ではGoogle翻訳やAIなどのツールを使用することがあり、時折表現が完全ではない場合がございます。

日本語版が記事内容を理解するための重要な手段であると感じている読者の方も多いかと思います。そのため、できるだけ早くこれらの内容を補足し、改善するよう努めています。また、特定の記事やテーマを優先的に翻訳してほしい場合は、ぜひコメント欄でお知らせください。皆様のご要望に可能な限りお応えしたいと思っております!

ご理解とご辛抱に心より感謝申し上げます。これからも価値あるコンテンツを創作し、より豊かな読書体験をお届けできるよう努力してまいります。ここで皆様との交流を楽しみにしています!