Diferença entre net.core.rmem_max e net.ipv4.tcp_rmem

14

Qual é a diferença entre net.core.rmem_max e o terceiro valor de net.ipv4.tcp_rmem? Qual tem a maior prioridade para conexões tcp?

Abaixo dois exemplos, qual é o buffer máximo para conexões tcp?

Case 1:
sysctl -w net.core.rmem_max=7388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

Case 2:
sysctl -w net.core.rmem_max=8388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'
bydsky
fonte
Prioridade relacionada ao tcp?
Nils
@ Nils Sim, para conexões TCP.
Bydecky May

Respostas:

5

O núcleo é o buffer máximo máximo geral, enquanto o tcp se refere apenas a esse protocolo.

Quanto à pergunta de prioridade: parece que a configuração tcp terá precedência sobre a configuração max comum, o que é um pouco confuso. A configuração max não afeta a configuração atual do tcp (apenas testada no CentOS 5).

Uma descrição mais correta teria sido: default_max - mas isso era provavelmente muito longo.

Nils
fonte
1
Sua explicação faz sentido, mas isso entra em conflito com o que man tcpdiz sobre tcp_rmemo valor máximo de: the maximum size of the receive buffer used by each TCP socket. This value does not override the global net.core.rmem_max- consulte também stackoverflow.com/questions/31546835/… . Está man tcperrado?
NH2
@ nh2 Essa não seria a primeira vez que uma página de manual está errada.
Nils
1
Como exatamente você testou?
Curinga
1
@Wildcard Defino o valor e li o outro valor após o primeiro Settings (Configurações)
Nils
3
@ Nils, simplesmente ler os valores não indica se um substitui outro - você deve tentar obter um buffer TCP que exceda o buffer net.core. [Wmem / rmem] _max para testar essa substituição.
Jordan Pilat