客户先关闭插座,当没有从服务器多数据,TCP连接关闭是好的,如:TCP连接挂在CLOSE_WAIT状态
FIN -->
<-- ACK
<-- FIN, ACK
ACK -->
当服务器忙于发送数据:
FIN -->
<-- ACK,PSH
RST -->
服务器连接进入CLOSE_WAIT状态并挂在那里很长时间。
这里有什么问题吗?客户端相关或服务器相关?这发生在本地套接字的Redhat5上。
这个article谈论为什么发送“RST”,但我不知道为什么服务器连接停留在CLOSE_WAIT上,并且不发送FIN。
[编辑]我忽略了最重要的信息,这发生在QEMU的SLIRP网络仿真。这似乎是一个处理密切联系的问题。
更好的网址:http://lists.gnu.org/archive/html/qemu-devel/2008-06/msg00372.html – qerub 2012-02-09 17:24:08