|
Problem |
The connection between the HTTP proxy and
PC client remains in Establish state and will not close. After a timeout
occurs, the state changes to FinWait2. FINWT2 state (FINWAIT2) means we
have sent a FIN and it has been acknowledged. We have not received a FIN
packet from the remote end.
FINWAIT2 state lasts for about 12 minutes, then the connection is cleaned
up; however, you cannot get in FINWAIT2 state until the local application
closes the connection, demonstrating that the proxy socket has timed out.
If the application does not issue a close,
the connection is stuck in ESTABLISHED state.
The sniffer trace shows why the timeout occurred.
The key is the sequence numbers and acknowledgement numbers that are
exchanged back and forth. This means there is a byte of unacknowledged
data on the connection,
and the TCP protocol requires this data to be retransmitted. Since the
packet with the FIN flag has not been retransmitted, the connection is
stuck in established state, and you never get a recv of 0.
The only way a sender knows a packet is received at the destination is
when the destination acknowledges receipt of that packet.
|
|
Cause |
Windows NT® 4.0 has a known problem of not retransmitting
the FIN packet. |
|
Solution |
Apply Microsoft™ patch q254930 to your Windows NT 4.0
system to solve this problem. |
|
|
|
|
|
|
|