Назад | Перейти на главную страницу

Как выполнить базовую оптимизацию WAN между двумя серверами Linux, которая разбивает одно соединение на несколько параллельных?

В Linux есть утилиты, позволяющие обойти условия WAN, из-за которых вы не можете использовать всю полосу пропускания. Они делают это, выполняя несколько запросов параллельно (например, lftp и его команда pget).

Есть ли какой-то базовый метод / инструмент оптимизации WAN для Linux (в частности, CentOS), который приведет к тому, что весь трафик между двумя серверами (возможно, будет только один порт) будет распределяться между несколькими одновременными соединениями параллельно (прозрачно для приложений, конечно) , так что программы / утилиты, которые не могут выполнять параллельные соединения, могут по-прежнему обеспечивать максимальную пропускную способность. Я знаю, что некоторые утилиты можно распараллелить с помощью некоторых уловок с xargs, но для тех, которые не поддерживают, это актуально, и, кроме того, приятно, чтобы они были прозрачными, чтобы все было просто.

Я пробовал искать в Google и serverfault, но безуспешно. Любая помощь будет оценена. Спасибо!

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

Из этого следует, что никакое количество туннелей в слое 3 или ниже не даст такого же эффекта. Независимо от того, какой туннель вы создаете, полезной нагрузкой туннеля по-прежнему являются TCP-соединения, и, если есть только одно из них, оно исчерпает свое окно.

Ваш единственный выбор:

  • Увеличьте максимальные размеры окна TCP ядра на обоих концах передачи.

  • Используйте более одного TCP-соединения в вашем приложении.

  • Постройте туннель на уровне 4 или выше. Это может быть, например, прокси-сервер, такой как прокси-сервер HTTP или socks, или простой сервер пересылки TCP-соединений, где вы подключаетесь к localhost, и он перенаправляет соединение в другое место. Программное обеспечение туннеля может нести нагрузку трафика, сбалансированную по нескольким базовым TCP-соединениям (или может делать что-то еще полностью).

    Я не знаю ни одного программного обеспечения, которое бы это делало.