2

Я разрабатываю приложение для загрузки нескольких больших файлов на сервер из домашней сети.

Я могу выбрать любую из следующих стратегий:

  1. Загрузите каждый файл в последовательности.
  2. Загрузите их все параллельно.

который быстрее, отмечая, что узким местом является домашняя сеть.

3 ответа3

4

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

1

Теоретически, ответом будет:

Шесть из одного; полдюжины другого.

Причина в том, что если вы достигаете узкого места в пропускной способности, не имеет значения, загружаете ли вы файлы по одному или несколько одновременно; вы ограничены пропускной способностью.

Что меняет ответ, так это ограничение скорости для соединений на одной стороне. Это видно на некоторых обычных контент-серверах, а также на тех, которые используют протокол Torrenting.

В этом случае, если установленный предел скорости меньше максимальной полосы пропускания на домашней стороне, то имеет смысл передавать несколько файлов, вплоть до суммы, ограничивающей полосу пропускания на домашней стороне.

-1

В вашем случае может потребоваться последовательная загрузка.

Потребительское оборудование не всегда способно выполнять много одновременных подключений и может зависнуть / зависнуть. Если вы ограничите количество одновременных файлов, то параллельная загрузка будет всегда быстрее.

Причина в следующем:

Когда вы делаете перевод с использованием TCP/IP, происходит следующее:

Сначала один пакет отправляется адресату, и соединение ожидает возврата пакета подтверждения, прежде чем отправит следующий пакет.

Затем он отправляет 2 пакета и ожидает подтверждения. Затем отправляет 3, затем 4, затем 5 и т.д. Он продолжает увеличивать количество пакетов, пока возвращенный пакет подтверждения не покажет, что не все пакеты были получены. Когда это происходит, скорость снижается и пробуется снова.

Раньше случалось так, что, когда вышеупомянутое случалось, это начинало с 1 снова и увеличивало скорость. Более новая технология уменьшает вдвое количество пакетов и пытается снова, постепенно увеличивая скорость.

Учитывая, что с дополнительным трафиком пропускная способность для этой передачи может быть уменьшена, весьма вероятно, что полная скорость не поддерживается все время.

Если одновременно передаются 2 или более файлов, доступная пропускная способность используется более эффективно. Если одна передача останавливается, и скорость значительно снижается, то существует момент, когда освобождается полоса пропускания, которая не используется этой передачей. Другие процессы могут поглотить эту пропускную способность, делая передачу еще более медленной. Но если передается 2 или более файлов, более вероятно, что объединенная скорость более или менее будет оставаться неизменной, а это означает, что даже если одна из передач была замедлена, другая передача, вероятно, получит эту оставшуюся полосу пропускания.

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