Два выхода через прокси, каждый с запасной пропускной способностью, выглядят как простой способ удвоить скорость загрузки. Обычный пул прокси так не работает.

Клиент открывает соединение через один выбранный прокси. Этот прокси открывает следующее соединение. Добавление другого адреса из списка прокси в пул даёт будущим соединениям ещё один выбор; оно не вставляет второй прокси в уже идущий поток байтов.

Обычная балансировка нескольких сетей WAN на основе соединений имеет похожее ограничение. Она может распределять разные соединения по каналам, улучшая суммарную пропускную способность или снижая конкуренцию. Одно соединение остаётся одним соединением, если другой механизм явно не предоставляет несколько путей.

Когда параллельные загрузки — другое дело

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

Это вводит требования: диапазоны должны описывать одно и то же представление, ответы сервера должны соответствовать запрошенным смещениям, а изменения объекта не должны давать смешанный файл. Аутентификация, ограничения сервера и правила для каждого выхода тоже могут делать параллельные диапазонные запросы непригодными. Десять полных загрузок — не десять частей одной загрузки.

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

Многопутевость требует реальной поддержки

Multipath TCP — это явный транспортный механизм, который может передавать соединение через несколько подпотоков, когда его конечные точки и схема сети это поддерживают. Он не включается просто перечислением двух несвязанных прокси HTTP или SOCKS.

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

Похожие статьи