LAN上に2台のコンピューターがあります。 128Mbsの速度の最初のコンピューターとインターネット接続速度の2番目のコンピューターは256Mbsです。 250MBのファイルをダウンロードしてみました。最初のコンピューターが約48000秒の長さをダウンロードし、2番目のコンピューターが約24000秒かかると思われる場合。最初のコンピューターがファイルの一部をダウンロードし、2番目のコンピューターが他の部分をダウンロードする方法はありますか?
このソリューションは、2台のコンピューターがLAN上でネットワーク化されていることを前提としています。
Download Manager
をサポートするMultiple Proxies mode
を取得し、他のコンピューターに同じものをインストールします。「マルチプロキシモード」を使用すると、すべての作業スレッドに異なるプロキシを割り当てて、IPごとに1つの接続のみなど、特定のサイト制限を破ることができます。
Net Transport
コンピューターにダウンロードするすべてのファイルについて、最初のコンピューターにプロキシを個別のダウンロードスレッドとして追加します。編集済み:
スクリーンショットの右下のペインの「ログ」に表示されているように、each
ダウンロードはconcurrently in multiple threads
(ダウンロードサーバーとの個別の接続)で実行できます。このツールを使用すると、各スレッドがプロキシを使用するかどうかを指定できます。したがって、uは、プロキシコンピューターの帯域幅を使用するようにいくつかのスレッドを設定できます。
2台のコンピューターがあり、それぞれが1つの共有接続ではなくインターネットへの独自の独立した接続(つまり2つのISP接続)を持っている場合、理論的には、中断されたダウンロードの再開をサポートするFTPサーバーのようなものを使用することにより、各コンピューターは同時に半分をダウンロードできます。ファイル。
ただし、これを実行するソフトウェアはわかりません(ただし、適切なオフセットフェッチを実行するためにwgetまたはcurlを作成できる可能性があります)
ボトルネックがftpサーバー(または同等のプロトコルサーバー)である場合、2つの接続があると役に立ちません。
更新:私が考えていたのは
コンピューター1
dd if=/dev/zero bs=10000 count=5 > name-of-big.file
wget -continue http://www.example.com/name-of-big.file
コンピューター2(同時に別のインターネット接続経由)
wget http://www.example.com/name-of-big.file
コンピューター1でスキップされたチャンクのサイズに達したら、これを停止します。パイプを壊すddステートメントに出力をパイプすることで、wgetを停止できると思いましたが、これは機能しないことがわかりました。
wget -O - $URL | dd bs=10000 count=5
Ddがパイプを壊すと、Wgetは停止しますが、結果のファイルは適切なサイズではありません。したがって、実行させ、手動で停止し、必要な部分を切り取ります(ddを使用するなど)
最後に、コンピューター1でファイルのゼロ以外の部分を切り刻んで(たとえば、ddを使用して)コンピューター2にコピーし、それらの部分をまとめることができます。
これは私には厄介なようです、私はむしろ分散HTTPクライアントを見つけたり書いたりしたいです:-)
あなたがやろうとしていることの用語は「結合接続」と呼ばれます。 Mushroom Networksなど、接続を自動的に負荷分散する複数のWANポートを備えたルーターを作成する会社がいくつかあります。より安価なオプションは、両方の接続を1台のマシンに接続して実行することです。ネットワーク用の独自のプロキシ/負荷分散ソフトウェア。