LinuxおよびWindowsのTCP実装のパフォーマンスについて


13

WindowsとLinuxでのTCPスタックの実装は異なることを理解しています。WindowsはTCP Renoと呼ばれる輻輳制御アルゴリズムを使用し、LinuxはCubicを使用します。

2つのプロトコルは、同じネットワーク上に共存する場合、どのように比較されますか?Cubic(Linux)の方が攻撃的であり、最終的に帯域幅のシェアが高くなると言うのは本当ですか?

回答:


4

輻輳制御アルゴリズムはアップストリームトラフィックのみに影響し、したがってアップストリーム帯域幅のみに影響することに注意してください。

そうは言っても、特に高帯域幅遅延製品を使用するネットワークでは、Cubicは実際にはより攻撃的です。Linuxの実装には、同じ状況でrenoよりも小さな送信レートを使用しないようにするルールも組み込まれています。

Linux Cubicアルゴリズムには、キュービックアルゴリズムが少なくとも標準TCPと同じくらい積極的であることを保証するコードも含まれています。

-Leith、Shorten、McCullagh、Cubic-TCPの実験的評価

そのため、YouTubeの動画を見ながらWindowsの更新をダウンロードすると、YoutubeのトラフィックがMicrosoftのトラフィックを枯渇させる可能性があり、それに対してできることは何もありません。


12

まず、あなたが言うことは事実上正しくありません:

  • カーネルバージョン2.6.18までのLinuxは、デフォルトでBICを使用します。
  • Linuxカーネル2.6.19以降では、デフォルトでCUBICが使用されます。
  • LinuxのTCP輻輳制御メカニズムはプラグイン可能です。たとえば、それらを即座に変更できます。
  • Windows XP以前ではTCP Reno(またはNew Reno)を使用します
  • Windows Vista以降には、複合TCPもあります。これは、Server 2008ではデフォルトで有効になっており、必要に応じてVistaおよびWindows 7で有効にできます。

これらのアルゴリズムはすべて、利用可能なネットワーク帯域幅、遅延、利用可能なメモリなどに応じて自己調整されます。また、それらを手動で調整できる多くの構成パラメーターもあります。

そのため、正確な特定のネットワークトポロジ、使用されているハードウェアおよびソフトウェアなどを確認せずに、実際に一方を他方と比較することはできません。CUBICの方がBICほど攻撃的ではないのは事実ですが、実際には、どの種類のTCP輻輳アルゴリズムを使用するかよりも、他の考慮事項の方が重要です。

非常に狭いスコープで通常とは異なるネットワークシナリオに調整しようとしない限り、これらのアルゴリズムはすべて十分に機能し、すぐに使用できます。


ネットワークシナリオは、1000の奇数のコンピューターで混雑した100 Mbps LANです。プロキシサーバーを介したインターネット接続。PCの一部はLinuxですが、ほとんどはWindowsベースです。Linuxを介したブラウジングの方が速いようです。私はこの観察を合理化しようとしていた
AIB

測定せずに、そしてあなたのネットワークで実際に何が起こっているかを見ずに、それを言うのは難しいです。しかし、特にネットワークが常に100%混雑していない場合、TCP輻輳アルゴリズムの違いである可能性はかなり低いと思います。閲覧速度に影響を与える可能性のある他の多くの要因があります。
haimg

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.