TCP/IP Connection Attempts Take Longer to Time Out (200770)



The information in this article applies to:

  • Microsoft Windows NT Server 4.0 Terminal Server Edition
  • Microsoft Windows NT Server 4.0
  • Microsoft Windows NT Workstation 4.0

This article was previously published under Q200770

SYMPTOMS

Applications that try to establish a session to a remote host using NetBIOS over TCP/IP may experience a time-out longer than expected when the remote host is unavailable.

The "longer than expected" time-out occurs when the TCP connection attempt process, which starts with the original SYN segment, is repeated.

For example, if the TcpMaxConnectRetransmissions registry parameter is set to 1, you would see the following incorrect behavior when the remote or target host is down:
  1. The client computer sends the first SYN segment.
  2. Three seconds later, the SYN segment is retransmitted
  3. Six seconds later, a different initial SYN segment, with a different sequence number, is sent.
  4. Three seconds later, the second initial SYN segment is retransmitted.
  5. Six seconds later, TCP reports a time-out error to the application.
The total time-out is approximately 18 seconds.

CAUSE

This behavior occurs because NetBIOS over TCP/IP (NetBT) is requesting the connection a second time.

RESOLUTION

A new NetBT.sys file included in Windows NT 4.0 Service Pack 4 fixes this problem.

To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

152734 How to Obtain the Latest Windows NT 4.0 Service Pack


STATUS

Microsoft has confirmed that this is a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.

MORE INFORMATION

With the latest service pack, you will see the following behavior while trying to connect to another computer:

TCP, acting as the transport for the application, sends a SYN segment to the destination host specifying the initial sequence number in an attempt to initialize the connection. If the destination host is unavailable, TCP will retransmit this original SYN packet the number of times specified in the TcpMaxConnectRetransmissions registry parameter (the default is three times). The retransmission time-out is doubled with each successive retransmission in a given connection attempt. The initial time-out value is three seconds.

After retransmitting the number of times specified in the registry key mentioned above, the transport will notify the application of a time-out error.

For example, if the TcpMaxConnectRetransmissions registry parameter is set to 1, you should see the following correct behavior when the destination host is down:
  1. Client sends the first SYN segment
  2. Three seconds later, the SYN packet is retransmitted
  3. Six seconds later, TCP reports a timeout error to the application.
This time, the total time-out is approximately nine seconds, which is the correct behavior with the default configuration settings. For additional information, see the following article or articles in the Microsoft Knowledge Base:

172983 Explanation of the Three-Way Handshake via TCP/IP

120642 TCP/IP and NBT Configuration Parameters for Windows 2000 or Windows NT


Modification Type:MajorLast Reviewed:6/24/2004
Keywords:kbbug kbfix kbnetwork KB200770