OpenVPN sndbuf и rcvbuf

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

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

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

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

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

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

Спасибо

Ало

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

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

SO_SNDBUF и SO_RCVBUF являются эквивалентом установки:

  • / Труды / системы / нетто / ядро ​​/ rmem_max
  • / Труды / системы / нетто / ядро ​​/ wmem_max
  • /proc/sys/net/net.ipv4/tcp_rmem
  • / Труды / системы / нетто / нетто /ipv4/tcp_wmem

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

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

О том, что на TCP влияет размер буферов r / wmem_default, я нашел два ответа, говорящих об обратном:

  • Вам не нужно настраивать rmem_default или wmem_default (по крайней мере, не для настройки TCP). Это размеры буфера по умолчанию для сокетов, отличных от TCP (например, домен unix и сокеты UDP).

  • wmem_default и wmem_max эти настройки являются фиксированными размерами окон по умолчанию для отправки и получения всего сетевого трафика (UDP и TCP).

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

0 ответов

Другие вопросы по тегам