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