6 votes

Activation des keepalives TCP à l'échelle du système sur un système Windows

Puis-je modifier/ajouté le KeepAliveTime et les variables de registre associées pour qu'une machine Windows envoie des paquets TCP keepalive sur une connexion inactive ?

Je veux savoir si quelqu'un a réussi à faire fonctionner ce système. Plus précisément, lorsque l'application qui tourne au ralenti sur la connexion TCP ne fait rien de particulier (setsockopt) pour maintenir la connexion.

Cet article de Microsoft TechNet donne des détails sur Configuration de Keep-Alives à l'échelle du système avec le KeepAliveTime et les variables de registre associées.

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

Il semble que le Configuration du système Linux pour l'utilisation de keep-alive .
Mais, cela exige que les programmes utilisent le setsockopt() et demander un keep-alive (n'est-ce pas ?).

N'oubliez pas que le support keepalive, même s'il est configuré dans le noyau, n'est pas le comportement par défaut sous Linux. Les programmes doivent demander le contrôle keepalive pour leurs sockets en utilisant l'interface setsockopt. Il y a relativement peu de programmes implémentant le keepalive...

7voto

Evan Anderson Points 140581

Votre évaluation de la fonctionnalité TCP keepalive de Windows comme celle de Linux est correcte.

Vous pouvez manipuler les paramètres de registre liés aux keepalives TCP autant que vous le souhaitez, mais à moins que l'application n'utilise setsockopt() pour demander des keepalives, aucun ne sera envoyé par défaut.

Si vous voulez voir les keepalives en action sous Windows et ne voulez pas écrire de code, cochez la case "Activer les keepalives TCP (SO_KEEPALIVE)" dans les propriétés de la "Connexion" dans la fenêtre de l'interface utilisateur. PuTTY client SSH/TELNET/etc, initier une connexion, la laisser en veille, et renifler le trafic. (C'est la première application à laquelle je pense qui pourrait être consciemment configurée pour utiliser SO_KEEPALIVE...)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X