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

OpenVPN sndbuf и rcvbuf

Я хотел бы знать, в чем разница между буфером sndbuf и rcvbuf, используемым OpenVPN, и net.core.w / rmem_default или net.ipv4.tcp_r / wmem.

Что делает OpenVPN, если для этого параметра в config. Я читал, что если вы используете 0, он использует размер буфера ОС по умолчанию, но из какого буфера он берет размер? или это дополнительный слой, и когда вы установите его на 0, этот дополнительный макет исчезнет?

Моя проблема в том, что когда я устанавливаю sndbuf и rcvbuf на 0 и устанавливаю net.core.w / rmem_default или net.ipv4.tcp_r / wmem на 64 КБ, я ожидаю такой же пропускной способности, чем при sndbuf и rcvbuf, потому что значение по умолчанию для sndbuf и rcvbuf - 64 КБ

К сожалению, это не так, при использовании буфера ОС пропускная способность ниже.

Возможно, это потому, что я не установил правильный буфер ОС или что OpenVPN делает что-то особенное при использовании sndbuf и rcvbuf.

Если кто-нибудь может подробно объяснить, я был бы очень признателен

Спасибо

Ало

-----------------------------------------

После некоторого исследования я обнаружил, что OpenVPN использует setsockopt для установки значений SO_SNDBUF и SO_RCVBUF, используя значения sndbuf и rcvbuf в файле конфигурации. Это повлияет только на сокет, созданный OpenVPN, а не на все сокеты TCP / UDP.

SO_SNDBUF и SO_RCVBUF эквивалентны настройке:

Для протокола, используемого openvpn (tcp или udp) (может быть _default, а не _max, я все еще не уверен).

Ручная настройка размеров буфера сокета с помощью setsockopt () отключает автонастройку TCP. (может быть, неправда)

Что касается TCP, на который влияет размер буферов r / wmem_default, я нашел два ответа, говорящие об обратном:

Любой, у кого есть больше знаний, может меня поправить :)