2011-12-21 9 views
0

これは重複している可能性がありますが、これは完全には解明されていません。HTTPのダウンロードと複数のスレッド

スレッドを使用するとHTTPダウンロードスループットが向上しますか? 私の考えは、サーバー上のTCPスタックが次のデータのチャンクを送信する前に受信者からのACKを待っているときに、別のスレッドがデータの要求を送信していて、それが処理されてスループットが向上するということです。

これは間違いありませんか?

答えて

0

はい、それはかなり正しいです。 HTTPリクエストをスレッド化すると、サーバー上で最大接続数が達成されるまでスループットが向上し、この増加は平準化されます。パフォーマンスの向上は、もちろん、サーバーとクライアントコンピュータのスレッド能力の両方に制限されます。

0

転送時に起動時にのみ正しいです。TCPには、ACKを受信せずに送信できるデータの動的ウィンドウがあります。

したがって、データ転送が行われている間、ほとんどの状況で、送信可能なデータのすべてのチャンクが送信され、最大のスループットが得られます。

複数のスレッドを使用すると、TCPハンドシェイクのデッドタイムを短縮できます。 別のサーバーからファイルをダウンロードする必要がある場合や、サーバーが接続ごとの帯域幅を制限する場合にも、これは便利です。

関連する問題