En Linux, ¿"/proc/sys/net/ipv4/tcp_keepalive_time" tiene impacto tanto en el cliente como en el servidor?

En Linux, ¿"/proc/sys/net/ipv4/tcp_keepalive_time" tiene impacto tanto en el cliente como en el servidor?

Tenemos una máquina que se ejecuta en Linux donde exponemos y también consumimos servicios web basados ​​en SOAP que utilizan la configuración de Keep Alive. Ahora, cuando cambiemos el valor del tiempo de espera de mantenimiento de TCP configurando "/proc/sys/net/ipv4/tcp_keepalive_time" en Linux, ¿afectará esto tanto a los clientes TCP como a los servidores que se ejecutan en este sistema de Linux?

Información adicional: utilizamos puntos finales apache camel-cxf implementados en apache karaf (servicemix) para exponer y consumir servicios web basados ​​en SOAP.

Respuesta1

El soporte integrado del kernel de Linux para TCP keepalive afectatodoSockets TCP habilitados para keepalive.

Sin embargo, TCP keepalive no está habilitado de forma predeterminada: las aplicaciones deben solicitar explícitamente el control de keepalive para sus sockets mediante la setsockoptinterfaz.

Puede verificar si keepalive está habilitado en un socket específico usando el netstatcomando con la -o, --timersopción:

Aquí puedes ver que el mismo proceso puede abrir diferentes sockets de red en ambos modos:

# netstat -anpo | grep 8999
tcp        0      0 10.10.171.44:48744         10.10.139.30:8999          ESTABLISHED 18232/java          keepalive (83.39/0/0)

# netstat -anpo | grep 8009
tcp        0      0 10.10.171.44:8009          10.10.171.42:40947         ESTABLISHED 18232/java          off (0.00/0/0)

información relacionada