Différence entre net.core.rmem_max et net.ipv4.tcp_rmem

14

Quelle est la différence entre net.core.rmem_max et la troisième valeur de net.ipv4.tcp_rmem? Lequel a la priorité la plus élevée pour les connexions TCP?

Pour les deux exemples ci-dessous, quel est le tampon maximum pour les connexions 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
la source
Priorité liée au TCP?
Nils
@Nils Oui, pour les connexions TCP.
bydsky

Réponses:

5

Le noyau est le tampon de réception max global, tandis que tcp concerne uniquement ce protocole.

Quant à la question prioritaire: il semble que le paramètre tcp prenne le pas sur le paramètre max commun, ce qui est un peu déroutant. Le réglage max n'a aucun effet sur le réglage tcp actuel (vient d'être testé sur CentOS 5).

Une description plus correcte aurait été: default_max - mais c'était probablement trop long.

Nils
la source
1
Votre explication est logique, mais cela entre en conflit avec ce qui man tcpdit sur tcp_rmemla valeur maximale de: the maximum size of the receive buffer used by each TCP socket. This value does not override the global net.core.rmem_max- voir aussi stackoverflow.com/questions/31546835/… . Est-ce man tcpmal?
nh2
@ nh2 Ce ne serait pas la première fois qu'une page de manuel est erronée.
Nils
1
Comment l'avez-vous testé exactement?
Wildcard
1
@Wildcard J'ai défini la valeur et lu l'autre valeur après la première configuration
Nils
3
@Nils, la simple lecture des valeurs ne vous dira pas si l'une en remplace une autre - vous devez en fait essayer d'obtenir un tampon TCP qui dépasse le net.core. [Wmem / rmem] _max buffer afin de tester un tel remplacement.
Jordan Pilat