(基本)TCPが機能する方法は、スロースタートフェーズから開始し、その後に輻輳ウィンドウ(CWD)を直線的に増加させることです。CWDはネットワークステータスに応じて調整されます。接続を開始します。ネットワークの状態によっては、接続が安定したCWDに到達するまでに時間がかかります。
したがって、このロジックにより、a TCP接続は、リンクの使用可能なすべての白黒を埋めようとします。したがって、複数のTCP接続がある場合、それぞれがCWDを調整して、輻輳が最小限になるようにします。
したがって、100 Mbpsのリンクがあるとします(トポロジは以下に示されています)UDPトラフィックを送信しているアプリケーションがあります並列を開始できる別のアプリケーションiperf
がありますTCPその同じリンク
[h1] ---- 100 Mbps ---- [h2]
h1 (UDP + iperf client)
h2 (UDP + iperf server)
私は次のように実験をしています
私の調査結果によると、1 TCP接続のスループットは8 TCP接続の合計(Exp1とExp4)のスループットよりも低い)です。維持する必要があります。 8つの接続の個々のスループットははるかに低いことに注意してください(これは明らかです)。
だから私の質問は、なぜ単一のTCP接続は、8 TCPが一緒にできるので、完全な白黒を利用できないのですか?
CUBICまたは別のAIMD輻輳制御アルゴリズムを使用している場合、輻輳に達すると、レートが少し下がり、ゆっくりと上昇して再び最大値を見つけます。これにより、他のフローが満たすことができる未使用の帯域幅の「スカラップ」(tcptraceグラフ内)がほとんど残りません。 UDPフローが固定レートの場合、それらのギャップを埋めることはできません。しかし、他の競合するTCPフローは確かにそうなります。あなたが持っているTCPフローが多ければ多いほど、他の人の輻輳によって残された帯域幅をより多く満たすでしょう。管理措置。