Les connexions Tcp accrocher sur CLOSE_WAIT état

Client fermer le socket d'abord, quand il n'y a pas beaucoup de données à partir du serveur, la connexion tcp de l'arrêt est d'accord aime:

FIN -->
   <-- ACK
   <-- FIN, ACK
ACK -->

Lorsque le serveur est occupés de l'envoi des données:

FIN -->
    <-- ACK,PSH
RST -->

Et la connexion avec le serveur vient à CLOSE_WAIT état et l'accrocher là pour un long moment.

Quel est le problème ici? client associé ou liée au serveur? Ce qui se passe sur Redhat5 locales pour les sockets.

Ce l'article parler de pourquoi "PREMIER" est envoyé, mais je ne sais pas pourquoi la connexion au serveur coincé sur CLOSE_WAIT, et n'envoyez pas une FIN.

[EDIT]j'ai ignoré les informations les plus importantes, ce qui se passe sur qemu est slirp réseau d'émulation. Il semble y avoir un problème de slirp bug pour traiter la fermeture de la connexion.

OriginalL'auteur Sam Liao | 2009-12-16