Ich habe zwei Computer in einem LAN. Der erste Computer hat eine Geschwindigkeit von 128 MBit/s und der zweite Computer hat eine Internetverbindungsgeschwindigkeit von 256 MBit/s. Ich habe versucht, eine 250 MB große Datei herunterzuladen. Der erste Computer braucht dafür etwa 48.000 Sekunden und der zweite Computer etwa 24.000 Sekunden. Gibt es eine Möglichkeit, dass der erste Computer einen Teil der Datei herunterlädt und der zweite Computer den anderen Teil?
Antwort1
Wenn Sie über zwei Computer verfügen, von denen jeder über eine eigene, unabhängige Verbindung zum Internet verfügt (also zwei ISP-Verbindungen) und nicht über eine gemeinsam genutzte Verbindung, dann könnten theoretisch durch die Verwendung von FTP-Servern, die die Fortsetzung unterbrochener Downloads unterstützen, beide Computer gleichzeitig die Hälfte der Datei herunterladen.
Mir ist jedoch keine Software bekannt, die dies kann (obwohl man vielleicht wget oder curl dazu bringen kann, den entsprechenden Offset-Abruf durchzuführen).
Wenn der Engpass der FTP-Server (oder ein gleichwertiger Protokollserver) ist, helfen zwei Verbindungen nicht weiter.
Update: Ich hatte so etwas im Sinn:
Computer 1
dd if=/dev/zero bs=10000 count=5 > name-of-big.file
wget -continue http://www.example.com/name-of-big.file
Computer 2 (gleichzeitig über separate Internetverbindung)
wget http://www.example.com/name-of-big.file
Stoppen Sie dies, wenn die Größe des auf Computer 1 übersprungenen Blocks erreicht ist. Ich dachte, Sie könnten wget stoppen, indem Sie die Ausgabe an eine dd-Anweisung weiterleiten, die die Pipe unterbricht, aber das funktioniert nicht.
wget -O - $URL | dd bs=10000 count=5
Wget stoppt zwar, wenn dd die Pipe unterbricht, aber die resultierende Datei hat nicht die richtige Größe. Lassen Sie es also einfach laufen, stoppen Sie es manuell und schneiden Sie den benötigten Teil ab (z. B. mit dd).
Abschließend können Sie den von Null verschiedenen Teil der Datei auf Computer 1 zerlegen (z. B. mithilfe von dd), auf Computer 2 kopieren und die Teile zusammenfügen.
Das erscheint mir chaotisch, ich würde lieber einen verteilten HTTP-Client finden oder schreiben :-)
Antwort2
Diese Lösung setzt voraus, dass die beiden Computer in einem LAN vernetzt sind:
- Führen Sie zunächst einProxyAuf einem der Computer würde jeder HTTP-Proxy ausreichen.
- ErhaltenNetztransporta
Download Manager
, das dies unterstütztMultiple Proxies mode
, und installieren Sie dasselbe auf dem anderen Computer.Der „Modus mit mehreren Proxys“ ermöglicht es Ihnen, jedem Arbeitsthread einen anderen Proxy zuzuweisen, um bestimmte Site-Einschränkungen zu umgehen, z. B. nur eine Verbindung pro IP.
- Fügen Sie daher für jede Datei, die Sie auf den
Net Transport
Computer herunterladen, den Proxy auf dem ersten Computer als separaten Download-Thread hinzu. - Der Download nutzt nun gleichzeitig die Bandbreite der Internetverbindungen beider Computer.
BEARBEITET:
Wie Sie im unteren rechten Bereich „Protokolle“ des Screenshots sehen können, each
kann der Download durchgeführt werden concurrently in multiple threads
(separate Verbindungen mit dem Download-Server). Mit diesem Tool können Sie angeben, ob jeder Thread einen Proxy verwendet oder nicht. So können Sie einige der Threads so einstellen, dass sie die Bandbreite auf dem Proxy-Computer verwenden.
Antwort3
Der Begriff für das, was Sie versuchen, lautet „Bonding Connections“. Es gibt einige Unternehmen, wie z. B. Mushroom Networks, die Router mit mehreren WAN-Ports erstellen, die die Verbindungen automatisch ausgleichen. Eine günstigere Option wäre, beide Verbindungen an einen Computer anzuschließen und darauf Ihre eigene Proxy-/Lastausgleichssoftware für Ihr Netzwerk auszuführen.