You may observe a long delay when you copy a file from an MS-DOS client to a Microsoft Windows 2000-based computer using the TCP/IP protocol.
: This behavior does not occur when you copy a file from an MS-DOS client to a computer running Microsoft Windows NT 4.0 or Microsoft Windows 95 or Microsoft Windows 98, or when you copy a file from Windows 2000-based computer to an MS-DOS-based computer.
This behavior occurs because the MS-DOS sender drops packets during the transmission. Windows 2000 uses a default TCP receive window size of 17 KB for Ethernet (8 KB in Windows NT 4.0). MS-DOS sends back-to-back packets in an attempt to fill the receiver's buffer that is flooding its network adapter. The MS-DOS real mode network adapter driver is unable to keep up with the stream of packets sent by the MS-DOS TCP/IP stack, which results in packet losses. The network adapter driver drops packets before they are placed on the wire.
: If you use Registry Editor incorrectly, you may cause serious problems that may
require you to reinstall your operating system. Microsoft cannot guarantee that you can solve
problems that result from using Registry Editor incorrectly. Use Registry Editor at your own
To work around this problem, set the TCP receive window size in Windows 2000 to a value equal or less than 8 KB:
- Start Registry Editor (Regedt32.exe).
- Locate the following registry key:
- On the Edit menu, click Add Value, and then add the following registry value:
Value Name: TcpWindowSize
Data Type: REG_DWORD
- Quit Registry Editor.
Microsoft has confirmed this to be a problem with MS-DOS real mode network adapter drivers.
The Maximum Segment Size (MSS) is calculated from the Maximum
Transmission Unit (MTU) reported by the NDIS driver (network card). For example, Ethernet = 1460; 4 MB Token Ring = 4128; 16 MB Token Ring = 17888.
When the MS-DOS client sends the first segment of data, the client may send an undersized packet using a TCP window value that is less than the MSS. A network trace shows this value in the TCP header. For Ethernet, the Windows value in the TCP header looks similar to the following example:
TCP: Window = 1450 (0x5AA)
If this situation occurs, configure the TCP receive window size on the Windows 2000-based computer to be a multiple of the TCP window the client uses. In this example, the value is a multiple of 1450 instead of 1460, so the TCP receive window size is 7250 (1450 x 5).
You should not reduce the TCP receive window size to fix network problems. Reducing the window size makes symptoms less apparent, but does not resolve the problem.
You can set the TCP receive window size using the TcpWindowSize registry key. For additional information about how to do this, click the article number below
to view the article in the Microsoft Knowledge Base:
TCP/IP and NBT Configuration Parameters for Windows 2000 or Windows NT