一部のネットワーク接続が他を支配するのはなぜですか?


15

理由については疑念がありますが、ネットワーキングのバックグラウンドが強い人に説明してもらいたいです。

複数の異なる場所からダウンロードするときに、特定の接続が帯域幅を飽和させ、支配的な接続が終了するまで他の接続をほとんどアイドルのままにするのはなぜですか?

回答:


26

通常、最速の接続が優先されます。ただし、Windows 7のネットワークが混乱する前は、パフォーマンスはひどいものでした。XPから20 mb / s以上を取得してみてください。

http://research.microsoft.com/pubs/70189/tr-2005-86.pdf

標準のTCP輻輳回避アルゴリズムは、加法的増加および乗法的減少(AIMD)スキームを採用しています。(3つの重複ACKまたは再送信タイムアウトにより)パケット損失が検出されない場合、輻輳ウィンドウ(cwnd)はRTTごとに1つの最大セグメントサイズ(MSS)ずつ増加します。それ以外の場合、パケット損失が検出されると、TCP送信者はcwndを半分に減らします。高速で長い遅延のネットワークでは、リンク容量を十分に活用するために、非常に大きなウィンドウ、たとえば数千パケットが必要です。したがって、単一の損失イベントで送信レートを回復するには、標準のTCPに多くのRTTが必要です。さらに、平均的なTCP輻輳ウィンドウがパケット損失率の平方根に反比例することはよく知られています。

接続が高速になるほどパケットが成功するため、そのcwnd / mssが増加し、接続全体がさらに多くなります。


より技術的ではありますが、それは私が考えていたものと一致していました。
ケルタリ

23
Windows XPの場合でも、1秒あたり20ミリビットはかなり低いです。:P
CodesInChaos

@codesinchaosどこにあなたが必要なときに退屈なバッジがある...-
アシュリー

1
@CodesInChaos私はあなたが少しを分割することができないので、あいまいさが本当に存在していないと思いますが、MB / sのは、おそらく人々は「メガバイト」と「メガビット」を混同したときに大きな問題がある;-)よりよい読んでいました...
comfreak

-1

アクティブなオープンTCPは、サーバーからの応答を測定することにより、ネットワークの状態をテストします。ルータのバッファが別の接続によって飽和し、高い遅延が発生する場合、クライアントはそれに応じて送信ウィンドウを調整します。古典的な輻輳制御方法が動作している場合、クライアントは、ドロップが発生するまで送信レートを継続的に増加させます。そのため、ルータを飽和状態にしているデバイスが深刻な低下を経験しているのに、新しいユーザがそうでない場合に、新しいユーザがその方向に力を入れることが可能です。

現在、ドロップを使用してネットワーク状態を測定するのではなく、メトリックとして遅延を使用する実験的でよりインテリジェントな輻輳制御方法があります。ただし、これらの新しい方法は、できるだけ多くの帯域幅を使用する、より粘り強い古典的な方法によっていじめられるという悪い習慣があります。

また、UDP接続では、大量の場合、不注意にビットをスプレーするため、ネットワークを支配します。アプリケーションによっては、ネットワークの状態に関係なく、ルータのバッファを無謀に飽和させます。

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