LAN 上に 2 台のコンピュータがあります。1 台目のコンピュータの速度は 128Mbs、2 台目のコンピュータのインターネット接続速度は 256Mbs です。250MB のファイルをダウンロードしようとしました。1 台目のコンピュータのダウンロードには約 48,000 秒かかり、2 台目のコンピュータのダウンロードには約 24,000 秒かかると思います。1 台目のコンピュータがファイルの一部をダウンロードし、2 台目のコンピュータが他の部分をダウンロードする方法はありますか?
答え1
2 台のコンピューターがあり、それぞれがインターネットへの独立した接続 (つまり、2 つの ISP 接続) を持ち、1 つの共有接続を持たない場合、理論的には、中断されたダウンロードの再開をサポートする 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 にコピーして、断片を cat で結合します。
これは私にとっては面倒に思えます。分散 HTTP クライアントを見つけるか、作成するほうがいいと思います :-)
答え2
このソリューションでは、2 台のコンピューターが LAN 上でネットワーク接続されていることを前提としています。
- まず、プロキシいずれかのコンピューターでは、任意の HTTP プロキシを使用できます。
- 得るネットトランスポート
Download Manager
をサポートするものをMultiple Proxies mode
見つけて、それを他のコンピュータにインストールします。「複数プロキシ モード」を使用すると、作業中のスレッドごとに異なるプロキシを割り当てて、IP ごとに 1 つの接続のみなど、特定のサイト制限を解除できます。
- したがって、コンピューターにダウンロードするファイルごとに
Net Transport
、最初のコンピューターにプロキシを個別のダウンロード スレッドとして追加します。 - ダウンロードでは、両方のコンピューターのインターネット接続からの帯域幅が同時に利用されるようになります。
編集済み:
スクリーンショットの右下の「ログ」ペインでわかるように、each
ダウンロードは実行できますconcurrently in multiple threads
(ダウンロード サーバーとの個別の接続)。このツールを使用すると、各スレッドがプロキシを使用するかどうかを指定できます。したがって、一部のスレッドがプロキシ コンピューターの帯域幅を使用するように設定できます。
答え3
あなたがしようとしていることは、「ボンディング接続」と呼ばれます。Mushroom Networks など、複数の WAN ポートを備え、接続の負荷を自動的に分散するルーターを製造している会社がいくつかあります。より安価なオプションは、両方の接続を 1 台のマシンに接続し、そのマシンで独自のプロキシ/負荷分散ソフトウェアをネットワーク用に実行することです。