У меня есть два компьютера в локальной сети. Первый компьютер со скоростью 128 Мбит / с и второй компьютер со скоростью подключения к Интернету - 256 Мбит / с. Я попытался загрузить файл размером 250 МБ. Если первый компьютер загружается около 48 000 секунд, а второй компьютер, если вы думаете, это занимает около 24 000 секунд. Есть ли способ, чтобы первый компьютер загружал часть файла, а второй - другую часть?
3 ответа
Это решение предполагает, что два компьютера объединены в сеть по локальной сети:
- Для начала запустите прокси на одном из компьютеров, подойдет любой HTTP-прокси.
- Получите Net Transport
Download Manager
который поддерживаетMultiple Proxies mode
и установите его на другом компьютере."Режим нескольких прокси" позволяет назначать каждому рабочему потоку свой прокси-сервер, чтобы нарушить определенные ограничения сайта, например, только одно соединение на IP.
- Таким образом, для каждого файла, который вы загружаете на компьютер
Net Transport
, добавьте прокси на первом компьютере в качестве отдельного потока загрузки. - Загрузка теперь будет использовать пропускную способность одновременно с подключением к Интернету обоих компьютеров.
Редакция:
Как вы можете видеть в правой нижней части окна «Журналы» скриншота, each
загрузка может выполняться concurrently in multiple threads
(отдельные соединения с сервером загрузки). Этот инструмент позволяет указать, будет ли каждый поток использовать прокси. Таким образом, вы можете настроить некоторые потоки на использование пропускной способности прокси-компьютера.
Если у вас есть два компьютера, каждый из которых имеет собственное независимое подключение к Интернету (то есть два подключения к Интернет-провайдеру), а не одно общее подключение, то, теоретически, используя что-то вроде FTP-серверов, поддерживающих возобновление прерванных загрузок, каждый компьютер может одновременно загрузить половину файл.
Однако я не знаю ни одного программного обеспечения, которое делает это (хотя, возможно, можно сделать wget или curl для выполнения соответствующей выборки смещения)
Если узким местом является ftp-сервер (или сервер эквивалентного протокола), то наличие двух соединений не поможет.
Обновление: вид, который я имел в виду, был
Компьютер 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. Я действительно думал, что вы можете заставить wget остановиться, отправив вывод в оператор dd, который разрывает канал, но оказывается, что это не работает
wget -O - $URL | dd bs=10000 count=5
Wget останавливается, когда dd разрывает канал, но полученный файл имеет неправильный размер. Поэтому, возможно, просто дайте ему поработать, остановите его вручную и отрежьте нужную часть (например, с помощью dd)
Наконец, вы можете нарезать ненулевую часть файла на компьютере 1 (например, с помощью dd), скопировать на компьютер 2 и объединить все вместе.
Мне это кажется грязным, я бы предпочел найти или написать распределенный HTTP-клиент :-)
Термин для того, что вы пытаетесь сделать, называется "Связывание соединений". Существует несколько компаний, таких как Mushroom Networks, которые создают маршрутизаторы с несколькими портами WAN, которые автоматически выравнивают нагрузку на соединения. Более дешевый вариант - подключить оба соединения к одной машине и запустить на ней собственное программное обеспечение для прокси / балансировки нагрузки для вашей сети.