Article ID: 315237 - Last Review: May 5, 2004 - Revision: 2.4 High rate of collisions on 100-megabit networksThis article was previously published under Q315237
For a Microsoft Windows 2000 version of this article, see 169789
(http://support.microsoft.com/kb/169789/
)
.
On This PageSYMPTOMS
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.
RESOLUTIONImportant This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: 322756
(http://support.microsoft.com/kb/322756/
)
How to back up and restore the registry in Windows 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:
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: 322756
(http://support.microsoft.com/kb/322756/
)
How to back up and restore the registry in Windows 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:
STATUSMicrosoft 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 XPWhen 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 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. | Article Translations
|
Back to the top
