OpenVPN sndbuf e rcvbuf

2

Eu gostaria de saber qual é a diferença entre o buffer sndbuf e rcvbuf usado pelo OpenVPN e net.core.w / rmem_default ou net.ipv4.tcp_r / wmem.

O que o OpenVPN faz quando alguns valorizam um fornecido para esses parâmetros na configuração. Eu li que, se você usar 0, ele usa o tamanho do buffer padrão do sistema operacional, mas a partir de qual buffer toma o tamanho? ou é uma camada extra e quando você define 0 como esse layout extra desaparece?

Meu problema é que quando eu configuro sndbuf e rcvbuf para 0 e configuro net.core.w / rmem_default ou net.ipv4.tcp_r / wmem para 64k, estou esperando o mesmo throughput do que com sndbuf e rcvbuf não configurados porque o valor padrão para sndbuf e rcvbuf é 64k

Infelizmente, esse não é o caso, a taxa de transferência é menor quando usamos o buffer do sistema operacional.

Isto é talvez porque eu não configure o buffer do sistema operacional correto ou que o OpenVPN faça algo especial ao usar sndbuf e rcvbuf.

Se alguém puder explicar em detalhes, eu realmente aprecio isso

Obrigado

Alo

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

Após algumas pesquisas, descobri que o OpenVPN usa setsockopt para definir o valor de SO_SNDBUF e SO_RCVBUF usando o valor sndbuf e rcvbuf no arquivo de configuração. Isso afetará apenas o soquete criado pelo OpenVPN e não todos os soquetes TCP / UDP.

SO_SNDBUF e SO_RCVBUF são o equivalente da configuração:

  • / proc / sys / net / core / rmem_max
  • / proc / sys / net / core / wmem_max
  • /proc/sys/net/net.ipv4/tcp_rmem
  • / proc / sys / net / net / ipv4 / tcp_wmem

Para o protocolo usado pelo openvpn (tcp ou udp) (pode ser _default e não _max, ainda não tenho certeza).

O ajuste manual dos tamanhos do buffer de soquete com setsockopt () desativa a sintonia automática do TCP. (pode não ser verdade)

Sobre o TCP ser afetado pelo tamanho dos buffers r / wmem_default, encontrei duas respostas dizendo o contrário:

  • Você não precisa ajustar rmem_default ou wmem_default (pelo menos não para ajuste de TCP). Esses são os tamanhos de buffer padrão para soquetes não-TCP (por exemplo, domínio unix e soquetes UDP).

  • wmem_default e wmem_max essas configurações são o tamanho padrão das janelas de envio e recebimento de todos os Net Traffic (UDP e TCP)

Qualquer pessoa com mais conhecimento é bem-vinda para me corrigir :)

    
por Alo 14.07.2015 / 22:50

0 respostas