In TCP networking, what is a FIN_WAIT state?

来源:互联网 发布:交换机端口up 命令 编辑:程序博客网 时间:2024/06/05 05:02

FIN_WAIT_2 seems to occur when the server has an active connectionwith a client and it wants to shut down the TCP connection (probably inresponse to a normal application layer "exit"). The server sends theclient a packet with a "FIN" bit set. At this point, the server is inFIN_WAIT_1 state. The client gets the FIN packet and goes intoCLOSE_WAIT state, and sends an acknowledgment packet back to theserver. When the server gets that packet, it goes into FIN_WAIT_2state. From the server's perspective, the connection is now closed, andthe server can't send any more data. However, under the TCP protocol,the client needs to shut down also by sending a FIN packet, which theserver TCP implementation should ACK. The server should close about twomilliseconds later.

The following diagram is taken from RFC 793 (defining the TCP protocol):

Some clients have faulty TCP implementations, and leave the server hanging in FIN_WAIT_2 state. In particular, this can cause problems
with Indiana University's Unicorn system.
原创粉丝点击