Tcp-verbindungen hängen auf CLOSE_WAIT status
Client-schließen Sie die Buchse zuerst, wenn es nicht so viele Daten vom server, tcp-Verbindung abschalten ist gut so:
FIN -->
<-- ACK
<-- FIN, ACK
ACK -->
Wenn der server beschäftigen senden von Daten:
FIN -->
<-- ACK,PSH
RST -->
Und die server-Verbindung kommt zu CLOSE_WAIT Zustand und hängen dort für eine lange Zeit.
Was ist hier das problem? client Verwandte oder server bezogen? Dies geschieht auf Redhat5 für die lokalen Steckdosen.
Diese Artikel darüber zu sprechen, warum "RST" gesendet wird, aber ich weiß nicht, warum die server-Verbindung fest auf CLOSE_WAIT, und nicht senden Sie eine FLOSSE.
[EDIT]ich ignorierte die wichtigsten Informationen, geschieht dies auf qemu slirp-Netzwerk-emulation. Es scheint ein problem von slirp bug für den Umgang mit enger Verbindung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies bedeutet, dass es ungelesene Daten Links in den stream, dass der client noch nicht fertig gelesen.
Können Sie erzwingen, dass Sie es ausschalten, indem Sie die
SO_LINGER
option. Hier ist die relevante Dokumentation für Linux (siehe auch die option selbst, hier), und [hier ist der passende function2] für Win32.Es ist die server-Seite, ist noch offen, so ist es auf der server-Seite, können Sie versuchen, deaktivieren
SO_LINGER
.Kann es bedeuten, dass der server noch nicht geschlossen die Steckdose. Sie können leicht feststellen, diese mit "lsof", um eine Liste der Dateideskriptoren geöffnet durch diesen Prozess werden, bei denen TCP-sockets. Der fix ist der Prozess immer in der Nähe der Steckdose, wenn es fertig ist (auch bei Fehlern etc)
Dies ist ein bekanntes defekt für qemu.