High rate of collisions on 100-megabit networks (315237)



The information in this article applies to:

  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP 64-Bit Edition

This article was previously published under Q315237
For a Microsoft Windows 2000 version of this article, see 169789.


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

SYMPTOMS

If you use the TCP/IP protocol and you have a 100-megabit network adapter, you may notice slow network performance while you copy files. You may also experience this slow performance while you use Windows Explorer in Windows XP.

Note This slow performance occurs on several 100-megabit network adapters and is not specific to Windows.

CAUSE

This problem occurs because of a high rate of early collisions on the network. The interframe gap (the time that a workstation waits before it tries to transmit on the wire) is less than the IEEE 802.3 specification of 9.6 microseconds.

RESOLUTION

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 resolve this problem, contact the manufacturer of your network adapter for information about how to increase the interframe gap.

Intel EtherExpress 100B network adapters have a registry parameter that controls the length of the interframe gap. To modify this parameter if you use an Intel EtherExpress 100B network adapter, follow these steps:
  1. Click Start, click Run, and then type regedit in the Open box.
  2. Locate and click the following key in the registry:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\e100bx\Parameters

    Notex is the number of your network adapter.
  3. Click Edit, click Add Value, and then type the following information:

    Value Name: Adaptive_ifs
    Value Type: REG_DWORD
    Data: 1 (enable adaptive algorithm)

    By default, the adaptive algorithm for detecting collisions and tuning the interframe gap is enabled. To disable the adaptive algorithm, set the value data to 0. A value data between 2 and 200 sets a predefined interframe gap. Set the value at 20, and then increase the value by factors of 20. Measure collisions and note the performance. Set a final value that has a low collision rate and does not affect performance.
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 issue, you can create a TcpWindowSize registry parameter to have the sender wait to receive an acknowledgment from the receiver before more data is sent. If you make this change, the chance of collisions is reduced. To create a TcpWindowSize registry parameter, follow these steps:
  1. Click Start, click Run, and then type regedit in the Open box.
  2. Locate and click the following key in the registry:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  3. Click Add, click Value, and then add the following information:

    Value Name: TcpWindowSize
    Value Type: REG_DWORD
    Data: 2920 (decimal) - Number of bytes

    Set the value to Decimal 2920 for Ethernet, or to two times the maximum TCP data size for other network topologies. You do not have to modify this setting for other networks because networks that are based on topologies such as token ring or Fiber Distributed Data Interface (FDDI) do not have collisions as an Ethernet network does.

    Modifications of this parameter can significantly affect performance. Wide area networks (WANs) or regular 10-megabit networks have some latency between the sender and the receiver. The latency depends on the network topology. Therefore, there are no collisions because of TCP/IP acknowledgment. In such cases, you only reduce throughput when you tune TcpWindowSize.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

A collision occurs when two stations transmit at the same time on the wire. An early collision is any collision that occurs before 512 bits of the frame are on the wire. Early collisions can occur regularly in a correctly operating Ethernet network. There is no hardware malfunction or misbehaving station.

The IEEE 802.3 specification states that a station must wait 9.6 microseconds (the interframe gap) before the station can try to transmit on the wire. Several adapter manufacturers design their adapters with a smaller interframe gap for higher data transfer rates. This smaller interframe gap can lead to a high rate of collisions.
The behavior of the upper layer protocol may also affect the rate of collisions. After a TCP host receives two data frames, the TCP host transmits an acknowledgment to the sender. The potential for collisions is high if a client that has received two packets tries to send an acknowledgment while the sender is trying to send more data to the client.

Analysis of Windows Explorer file copy in Windows XP

When the same file copy is initiated by using a command prompt or by using Windows Explorer in Windows XP, the pattern of data transfer is different. In this case, the redirector issues a 60-kilobyte (KB) "bulk read" or "raw read." The data transfer pattern follows:
   10 CLIENT SERVER  SMB C read & X, FID = 0x1004, Read 0xf000
   11 SERVER CLIENT  SMB R read & X, Read 0xf000
   12 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   13 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   14 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   15 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   16 CLIENT SERVER  TCP .A...., len: 0, seq:404791-404791, ack
   17 CLIENT SERVER  TCP .A...., len: 0, seq:404791-404791, ack
   18 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   19 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   20 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
				
At the TCP level:
   10 CLIENT SERVER  TCP len:   64, seq:  404727-404790,  ack:   6992081
   >Client sends 64 bytes of data (SMB command to read 4KB);

   11 SERVER CLIENT  TCP len: 1460, seq: 6992081-6993540, ack:    404791
   >Server sends the piggyback ACK, and the SMB response with some data;

   12 SERVER CLIENT  TCP len: 1460, seq: 6993541-6995000, ack:    404791
   13 SERVER CLIENT  TCP len: 1460, seq: 6995001-6996460, ack:    404791
   >Server sends rest of the data to the client.

   >**Collision likely at this point because the client tries to send an acknowledgment.

   14 SERVER CLIENT  TCP len: 1460, seq: 6996461-6997920, ack:    404791
   15 SERVER CLIENT  TCP len: 1460, seq: 6997921-6999380, ack:    404791
   >But the server can acquire the wire and send more data.

   16 CLIENT SERVER  TCP len:    0, seq:  404791-404791,  ack:   6996461
   >Client can acquire the wire and send the acknowledgement for data on frames 12 and 13.

   17 CLIENT SERVER  TCP len:    0, seq:  404791-404791,  ack:   6999381
   >Client can acquire the wire and send the acknowledgement for data on frames 14 and 15.

   18 SERVER CLIENT  TCP len: 1460, seq: 6999381-7000840, ack:    404791
   19 SERVER CLIENT  TCP len: 1460, seq: 7000841-7002300, ack:    404791
   >Server continues to send data.

   >**Collision likely at this point because the client tries to send an acknowledgment.

   20 SERVER CLIENT  TCP len: 1460, seq: 7002301-7003760, ack: 404791
   >But the server can acquire the wire and send more data.
				
When you use the TCP/IP protocol, TCP acknowledgment influences the collision. However, the problem is not because of TCP/IP or because of the enhancement that makes Windows Explorer able to do 60-KB bulk reads. The problem can be illustrated by using FTP also. TCP/IP, the redirector, and Windows Explorer have no control over interframe gap. Interframe gap is at the physical layer. The chipset on the adapter controls that layer. If your network experiences a high rate of collisions, contact the vendor of your network adapter.

Modification Type:MajorLast Reviewed:5/5/2004
Keywords:kbRegistry kbnetwork kbprb KB315237 kbAudITPRO