This article was previously published under Q244826
This article has been archived. It is offered "as is" and will no longer be updated.
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry
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.
NOTE: 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.
WARNING: 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 risk.
To work around this problem, set the TCP receive window size in Windows 2000 to a value equal or less than 8 KB:
On the Edit menu, click Add Value, and then add the following registry value:
Value Name: TcpWindowSize Data Type: REG_DWORD Value: 8192
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 MaximumTransmission 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:
120642 TCP/IP and NBT Configuration Parameters for Windows 2000 or Windows NT