私はtcp/ipネットワーク上で多くのファイルを転送するとき、tcp slowstartアルゴリズムと共通の問題について考えました。TCPスロースタートアルゴリズムは、多くの単一ファイルの転送が遅い理由ですか?
多数の小さなファイル(サイズ:50kb、量:10,000)を転送すると、同じamoutのデータ(50kb * 10,000 = 500,000 kb)を一度に転送する場合よりも時間がかかります。そして、私のために、それは(もちろん、オーバーヘッドのような他のものが...)、TCPの低速起動がその理由の1つです。
スロースタートが正しく理解されていれば、受信者からの確認なしに転送できる最大量のデータが発生します。各ファイルの新しい接続を確立すると、各転送の開始時にスロースタートが発生し、スロースタートアルゴリズムがスループットを向上させるため、ファイルが転送され、新しい接続が開始されます。したがって、最適化されたスループット・レートに達することはありません。一方、1つの大きなファイルを転送する場合、slowstartは最大の未確認のデータ量を最適化し、より高いスループット率に達することができます。
この仮定は正しいですか? もう1つの質問:cやC++や.netのslowstartの実装は同じですか?
「なぜ私のファイル転送は遅いのですか?」という複製は表示されません。スロースタートアルゴリズムが多くの小さなファイルの転送が遅い理由であるかどうか尋ねています。
大丈夫、論理的に接続を再利用しています。 – whymatter
パッシブFTPモードは、各ファイルに対して新しい接続を確立する必要があるため、低速になる可能性はありますか? – whymatter
@whymatter、パッシブまたはアクティブFTPモードは、より遅くなる傾向があり、それは正しい観察です。 – SergeyA