Diferencia entre net.core.rmem_max y net.ipv4.tcp_rmem

14

¿Cuál es la diferencia entre net.core.rmem_max y el tercer valor de net.ipv4.tcp_rmem? ¿Cuál tiene la mayor prioridad para las conexiones TCP?

Para los siguientes dos ejemplos, ¿cuál es el búfer máximo para las conexiones 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
fuente
Prioridad relacionada con tcp?
Nils
@Nils Sí, para conexiones tcp.
bydsky

Respuestas:

5

Core es el búfer de recepción máximo general, mientras que tcp se relaciona solo con ese protocolo.

En cuanto a la pregunta de prioridad: parece que la configuración tcp tendrá prioridad sobre la configuración máxima común, lo cual es un poco confuso. La configuración max no tiene ningún efecto en la configuración tcp actual (recién probada en CentOS 5).

Una descripción más correcta habría sido: default_max , pero eso era demasiado largo.

Nils
fuente
1
Su explicación tiene sentido, pero esto entra en conflicto con lo que man tcpdice sobre tcp_rmemel 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- vea también stackoverflow.com/questions/31546835/… . Esta man tcpmal?
nh2
@ nh2 Esa no sería la primera vez que una página de manual está equivocada.
Nils
1
¿Cómo lo probaste exactamente?
Comodín
1
@Wildcard Configuré el valor y leí el otro valor después de la Configuración el primero
Nils
3
@Nils, simplemente leer los valores no le dirá si uno anula a otro; en realidad, debe intentar obtener un búfer TCP que exceda el búfer net.core. [Wmem / rmem] _max para probar dicha anulación.
Jordan Pilat