Wanneer een client een verbreking initieert vanuit de server, is er een uitwisseling tussen client en server om over de toestand van de verbreking te informeren. Wanneer het proces is afgerond, blijft de client-socketverbinding gedurende een variabele tijd in de TIME_WAIT-toestand. Dit is normaal gedrag; in Windows-besturingssystemen is deze tijd standaard ongeveer 4 minuten.
Je kunt dit gedrag verminderen of elimineren, maar doe dit voorzichtig, met behulp van de volgende alternatieven.
Regedit
Je kunt de TIME_WAIT-waarde verlagen via de Windows Regedit
1. Open Regedit en ga naar de registersubkeys HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters.
2. Maak een nieuwe REG_DWORD-waarde aan met de naam TcpTimedWaitDelay.
3. Stel de waarde in in seconden. Voorbeeld: als je een waarde van 5 instelt, wacht TIME_WAIT maximaal 5 seconden.
4. Sla op en start het systeem opnieuw op.
LINGER
Een andere optie om de TIME_WAIT-toestand te vermijden, is het gebruik van de socketoptie SO_LINGER. Als deze is ingeschakeld, reset de client de verbinding in plaats van deze netjes te sluiten, waardoor de TIME_WAIT-toestand wordt vermeden.
Je kunt deze optie inschakelen via de LingerState-eigenschap. Standaard heeft deze een waarde van -1. Als je een waarde van nul instelt, wordt de verbinding gereset bij het loskoppelen van de socket zonder time-out.
Deze optie is waarschijnlijk het minst aan te raden en gebruik je alleen als laatste optie.
