объединить два интернет-подключения для загрузки

объединить два интернет-подключения для загрузки

У меня два компьютера в локальной сети. Первый компьютер со скоростью 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

Это решение предполагает, что два компьютера объединены в локальную сеть:

  1. Для начала запуститепроксина одном из компьютеров подойдет любой HTTP-прокси.
  2. ПолучатьЧистый транспортa, Download Managerкоторый поддерживает Multiple Proxies modeи установить то же самое на другом компьютере.

    «Режим нескольких прокси-серверов» позволяет назначать каждому рабочему потоку отдельный прокси-сервер, чтобы обойти определенные ограничения сайта, например, только одно соединение на IP-адрес.

  3. Таким образом, для каждого файла, который вы загружаете на Net Transportкомпьютер, добавьте прокси на первом компьютере как отдельный поток загрузки.
  4. Теперь загрузка будет одновременно использовать пропускную способность интернет-подключения обоих компьютеров.

ОТРЕДАКТИРОВАНО:

Как вы можете видеть в нижней правой панели «Журналы» скриншота, eachзагрузка может быть выполнена concurrently in multiple threads(отдельные соединения с сервером загрузки). Этот инструмент позволяет вам указать, будет ли каждый поток использовать прокси-сервер. Таким образом, вы можете настроить некоторые потоки на использование полосы пропускания на компьютере-прокси.

Чистый транспорт

решение3

Термин для того, что вы пытаетесь сделать, называется "связывание соединений". Есть несколько компаний, например Mushroom Networks, которые создают маршрутизаторы с несколькими портами WAN, которые автоматически балансируют нагрузку соединений. Более дешевым вариантом было бы подключить оба соединения к одной машине и запустить на ней собственное программное обеспечение прокси/балансировки нагрузки для вашей сети.

Связанный контент