Unabhängig davon, ob der Keep-Alive-Mechanismus auf beiden Seiten aktiviert oder deaktiviert ist: Eine Verbindung wird niemals von TIME_WAIT zu ESTABLISHED gehen. TIME_WAIT ist der Status eines Socketpaares aus einer kürzlich geschlossenen Verbindung, die vorübergehend nicht verwendet wird.
Eine Verbindung geht in den Zustand TIME_WAIT über, nachdem das lokale Ende erfolgreich einen Verbindungsabbruch initiiert hat ("aktiver SCHLIESSEN") und vom entfernten Ende das Signal erhalten hat, dass auch die Verbindung geschlossen werden soll. Das Betriebssystem hält dann an dem Socket-Paar fest und wartet auf zwei MSLs, bevor es für eine neue Verbindung freigegeben wird. Dadurch wird sichergestellt, dass kein Segment der alten Verbindung mit einer neu erstellten Verbindung interferiert, was dazu führt, dass das Socket-Paar der alten Verbindung wiederverwendet wird.
Funktioniert das wirklich? Warum genügt es, dass nur das Socket-Paar des aktiv schließenden Endes TIME_WAIT eintritt? Weil die Wiederverwendung von Socketpaaren an einem Ende die Wiederverwendung von Socketpaaren am anderen Ende impliziert. Was ist, wenn das aktiv schließende Ende innerhalb von zwei MSLs abstürzt und neu gestartet wird? Dann wird die Ruhezeit eingegeben, während der keine Verbindung hergestellt wird.