Poor Performance When Copying File From MS-DOS Client to Windows 2000-Based Computer

ID: Q244826


The information in this article applies to:
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Server

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

SYMPTOMS

You may observe a long delay when you copy a file from an MS-DOS client to a 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/98, or when you copy a file from Windows 2000-based computer to an MS-DOS-based computer.


CAUSE

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.


RESOLUTION

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

To work around this problem, set the TCP receive window size in Windows 2000 to a value equal or less than 8 KB:

  1. Start Registry Editor (Regedt32.exe).


  2. Locate the following registry key:


  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip\Parameters
  4. On the Edit menu, click Add Value, and then add the following registry value:


  5. Value Name: TcpWindowSize
    Data Type: REG_DWORD
    Value: 8192
  6. Quit Registry Editor.



STATUS

Microsoft has confirmed this to be a problem with MS-DOS real mode network adapter drivers.


MORE INFORMATION

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:
Q120642 TCP/IP and NBT Configuration Parameters for Windows NT

Additional query words: nic

Keywords : kbnetwork nt5prb
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbprb


Last Reviewed: December 29, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.