3

У меня есть два компьютера в локальной сети. Первый компьютер со скоростью 128 Мбит / с и второй компьютер со скоростью подключения к Интернету - 256 Мбит / с. Я попытался загрузить файл размером 250 МБ. Если первый компьютер загружается около 48 000 секунд, а второй компьютер, если вы думаете, это занимает около 24 000 секунд. Есть ли способ, чтобы первый компьютер загружал часть файла, а второй - другую часть?

3 ответа3

2

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

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

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

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

Редакция:

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

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

2

Если у вас есть два компьютера, каждый из которых имеет собственное независимое подключение к Интернету (то есть два подключения к Интернет-провайдеру), а не одно общее подключение, то, теоретически, используя что-то вроде 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-клиент :-)

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .