2016-09-09 3 views
2

Angenommen, ich habe einen Server hat einen Tag Service.TCP TIME_WAIT Status

Dann benutze ich Telnet, um diesen Tagesserver zu verbinden, der Server sendet Zeitdaten und schließt die Verbindung jetzt, da der Server die aktive Schließseite ist, die in den Zustand TIME_WAIT gehen soll.

Warum kann ich sofort nach dem letzten Telnet Telnet für den Tagesdienst verwenden, während der Server noch im TIME_WAIT-Zustand sein sollte?

Antwort

1

Die Zustände gehören zu einer Sitzung. Eine Sitzung ist ein 5-Tupel, das aus Quell-IP/Port, Ziel-IP/Port und Transporttyp (wie TCP oder UDP) besteht. Wenn die Beschränkung nur auf den Eigenschaften der Server-Seite basiert, würde das das Internet ziemlich unbrauchbar machen (denken Sie daran, dass nur eine Suche alle vier Minuten bei Google erlaubt ist).

Wenn Sie also nicht dasselbe 5-Tupel verwenden, können Sie sofort eine neue Sitzung starten. Mit anderen Worten, obwohl Sie sich von der gleichen Quell-IP mit der gleichen Ziel-IP und demselben Port verbinden können, wird Ihr Quell-Port höchstwahrscheinlich anders sein.

Daher wird es eine andere Sitzung, eine, die nicht im Wartezustand sein wird.

Die meisten Clients verwenden beim Erstellen einer Sitzung normalerweise Null als Portnummer. Dies ist ein Hinweis für den Kommunikationsstapel, dem ein beliebiger/zufälliger/verfügbarer Port für die Sitzung zugewiesen werden soll.

+0

Ich bin einfach zurück zu meinem Lehrbuch gegangen und habe diesen Abschnitt noch einmal gelesen, nachdem ich deine Antwort gelesen hatte. Alles wegen meiner Sorglosigkeit xD, es sagt das Socket-Paar kann nicht gerettet werden, nicht der Server-Port. Ich danke dir sehr ! – ryuu

0

Der Server befindet sich nicht im TIME_WAIT-Status. Die vorherige Verbindung zwischen dem Quell-/Ziel-IP: -Port befindet sich im TIME_WAIT-Zustand, was bedeutet, dass Sie das Tupel nicht wiederverwenden können. Der Client verwendet jedoch standardmäßig immer einen neuen ausgehenden Port, also ein neues Tupel. So können Sie sofort verbinden.

Ansonsten würde TCP/IP, das Internet, diese Seite usw. überhaupt nicht funktionieren.

+0

Danke. Ich habe das "Socket-Paar" vermisst, das dort definitiv in meinem Lehrbuch steht ... – ryuu