TIME_WAIT TCP Connections

· Fonctionnalités

Lorsqu'un client initie une déconnexion depuis le serveur, il y a un échange entre le client et le serveur pour informer de l'état de la déconnexion. Lorsque le processus est terminé, la connexion socket du client passe à l'état TIME_WAIT pendant un temps variable. C'est un comportement normal, dans les systèmes d'exploitation Windows, ce temps est par défaut d'environ 4 minutes.

Tu peux réduire ou éliminer ce comportement, à faire avec précaution, via les alternatives suivantes.



Regedit 

Tu peux réduire la valeur TIME_WAIT via Regedit Windows

1. Ouvre Regedit et accède à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters registry subkeys.

2. Create a nouveau REG_DWORD value named TcpTimedWaitDelay

3. Set la valeur in Seconds. Exemple : si tu définir un value de 5, means que TIME_WAIT va waits as max as 5 seconds.

4. Save et restart le system.

LINGER 

Another option to avoid TIME_WAIT state, est utiliser le socket option SO_LINGER, si enabled, au lieu de closing la connexion gracefully, le client resets la connexion donc le TIME_WAIT state est avoided.

Tu peux enable ce option utilisant LingerState property, par défaut a un value de -1. Si tu définir un value de zero, la connexion sera reset lorsque disconnecting depuis socket without Timeout.

This options est probablement le less recommended et seulement use as a last option.