tcp_keepalive_time
el intervalo entre el último paquete de datos enviado (los ACK simples no se consideran datos) y la primera sonda keepalive; después de que la conexión esté marcada para necesitar keepalive, este contador ya no se usa.
De acuerdo con esto, significa que los paquetes de mantener vivo no se envían cuando se envían datos repetidamente (incluso si el cliente no está disponible).
Suponiendo la situación en la que su cliente se pierde y el servidor no tiene datos para enviar, el servidor después de 60 segundos desde la hora de envío del último paquete de datos (keepalive_time) envía un paquete de mantener vivo, y luego continúa enviando sondas de mantener vivo hasta los no_of_probes se completan, luego se llega a saber que el cliente está perdido.
En su caso, el servidor tiene datos e intenta enviar. Por lo tanto, no se generarán paquetes de mantener vivo hasta que el servidor deje de enviar datos. El servidor aquí envía 10 veces y se da por vencido, concluyendo que el cliente está caído. No es importante mantener vivo el hecho de saber que el cliente está inactivo, sino la no recepción de Ack para los paquetes enviados desde el servidor.
- ¿Por qué no puedo establecer tcp_max_tw_bucket en 0 en un servidor web de producción?
- Si algunas de las funciones de red son similares en una capa de red y una capa de transporte, ¿por qué hay necesidad de dos capas separadas?
- ¿Necesito una IP compartida o una IP dedicada para mi email marketing?
- Cómo conectar dos redes (asignando IP)
- ¿Por qué es el protocolo de control de congestión TCP aunque existe congestión en la capa de red?
Ref: Uso de TCP keepalive en Linux