TCP がアグレッシブなプロトコルなのか、アグレッシブでないプロトコルなのか疑問に思っていました。
実際には、攻撃的ではない側で間違っている、通常としましょう。TCP は、スループットを最大化し、輻輳を最小化するアルゴリズムを使用します。その目標は、ネットワークでサポートされている最高の伝送速度で送信することですが、それ以上ではありません。輻輳が検出されると、バックオフします。だから最適と言えます。
このため、他のプロトコルを評価する際の参考として使用されます。通常、目標は、プロトコルが TCP よりも積極的にならないことです。
リンクが 1 つしかなく、他のトラフィックがない場合、(TCP) 送信者はリンクのすべてのスループットを使用できますか?
はい。
2 つの TCP フローがある場合、各 TCP フローはスループットの半分を取得できますか?
はい、おおよそ、平均してより長い期間です。これを公平性と呼びます。ただし、RTT が類似している場合に限ります。RTT が異なっていてもボトルネック リンクを共有している場合、RTT が大きいフローは通常、スループットが低くなります。
マルチパス TCP がパス上の TCP よりも攻撃的ではないことを示す目標があります。この目標に基づいて、次の図では、マルチパス TCP (2 つのサブフローが一緒になっている) はチャネルの最大 50% を取得できますか?
注: 画像はこの記事からのものです: https://www.eecs.berkeley.edu/~sylvia/cs268-2014/papers/mptcp.pdf
はい。複数のサブフローを持つ MPTCP フローが TCP フローとボトルネック リンクを共有する場合、MPTCP フローは帯域幅の約 50% を使用します。
MPTCP が複数の並列の通常の TCP フローに置き換えられた場合は当てはまらないことに注意してください。図のように 2 としましょう。その場合、並列転送は帯域幅の 66% を取得します。
3G または WIFI での TCP スループットに制限はありますか?
通常、TCP はどのようなネットワーク上で実行されているかを知りませんし、知る必要もありません。それは単に使用します:
- パケットが宛先に到達したことを示す肯定応答。この場合、さらに送信する必要があります。
- 輻輳の兆候としてのパケット損失。この場合、バックオフする必要があります
- RTT はスループットに間接的な影響を与えます。これにより、肯定応答が遅延して到着し、最終的に送信が遅くなるためです。
ワイヤレスの問題は、リンクが混雑していたり、無線干渉が原因でパケットがドロップされる可能性があることです。前者の場合、TCP はバックオフする必要があり、後者の場合、すぐに再送信する必要があります。これを処理するためのアイデアは、https://en.wikipedia.org/wiki/WTCP (RFC 3481) です。実際にどのくらいの頻度で導入されているかはわかりませんが、2008 年 1 月 1 日、H. Esaki および H. Sunahara による書籍「Broadband Internet Deployment in Japan」によると (ISBN-13: 978-1586038625 ISBN-10: 1586038621 ) 日本で少なくとも 1 つの ISP、NTT DoCoMo が 3G ネットワークに展開しました。