Habilitación de mantenimiento de actividad TCP en todo el sistema en un sistema Windows

Habilitación de mantenimiento de actividad TCP en todo el sistema en un sistema Windows

¿Puedo cambiar/agregar las KeepAliveTimevariables de registro relacionadas para hacer que una máquina con Windows envíe paquetes TCP keepalive en una conexión inactiva?

Quiero saber si alguien ha logrado que esto funcione. Específicamente, cuando la aplicación inactiva en la conexión TCP no hace nada en particular (setsockopt) para mantener activa la conexión.

Este Microsoft TechNet detalla sobreConfiguración de Keep-Alives en todo el sistemacon elmantener vivo el tiempoy variables de registro relacionadas.

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime

Parece que elConfiguración de todo el sistema Linux para usar keep-alive.
Pero eso requiere que los programas utilicen setsockopt()y soliciten mantener vivo (¿verdad?).

Recuerde que el soporte keepalive, incluso si está configurado en el kernel, no es el comportamiento predeterminado en Linux. Los programas deben solicitar control keepalive para sus sockets utilizando la interfaz setsockopt. Hay relativamente pocos programas que implementen keepalive...

Respuesta1

Su evaluación de que la funcionalidad TCP keepalive en Windows es como Linux es correcta.

Puede manipular los parámetros de registro relacionados con los keepalives de TCP todo lo que desee, pero a menos que la aplicación utilice setsockopt()para solicitar keepalives, no se enviará ninguno de forma predeterminada.

Si realmente desea ver keepalives en acción en Windows y no desea escribir código, marque "Habilitar TCP keepalives (SO_KEEPALIVE)" en las propiedades de "Conexión" en laMasillacliente SSH/TELNET/etc, inicie una conexión, déjelo inactivo y detecte el tráfico. (Es la primera aplicación que se me ocurrió y que sabía que podía configurarse conscientemente para usar SO_KEEPALIVE...)

información relacionada