현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

100메가비트 네트워크에서 충돌이 자주 발생한다

Windows XP에 대한 지원이 종료되었습니다.

Microsoft는 2014년 4월 8일 Windows XP에 대한 지원을 종료했습니다. 이러한 변경에 따라 해당 소프트웨어 업데이트 및 보안 옵션이 영향을 받습니다. 사용자에게 미치는 영향 및 계속 보호를 받는 방법에 대해 알아보십시오.

이 문서의 Microsoft Windows 2000 버전에 대한 내용은 169789를 참조하십시오.

중요: 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하고 문제 발생 시 이를 복원하는 방법을 이해해야 합니다. 레지스트리 백업, 복원 및 편집 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 Microsoft Windows 레지스트리 설명
현상
100메가비트 네트워크 어댑터에서 TCP/IP 프로토콜을 사용하는 경우 파일을 복사할 때 네트워크 성능이 느려지는 것을 경험할 수 있습니다. 또한 Windows XP에서 Windows 탐색기를 사용할 때도 이러한 성능 저하를 경험할 수 있습니다.

이러한 성능 저하가 여러 100메가비트 네트워크 어댑터에서 발생하는 것으로 알려져 있지만 Windows에만 국한되는 문제는 아닙니다.
원인
이 문제는 네트워크에서의 초기 충돌 비율이 높기 때문에 발생합니다. 워크스테이션이 회선에서 전송을 시도하기 전에 대기하는 시간인 프레임간 간격(IGF)이 IEEE 802.3 사양인 9.6마이크로초보다 작습니다.
해결 방법
경고: 레지스트리 편집기를 잘못 사용하면 심각한 문제가 발생할 수 있으며 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 레지스트리 편집기를 잘못 사용함으로써 발생하는 문제에 대해 해결을 보증하지 않습니다. 레지스트리 편집기의 사용에 따른 모든 책임은 사용자에게 있습니다.

이 문제를 해결하려면 해당 네트워크 어댑터 제조업체에 문의하여 프레임간 간격을 늘리는 방법에 대한 정보를 얻으십시오.

Intel EtherExpress 100B 네트워크 어댑터에는 프레임간 간격의 길이를 조정할 수 있는 레지스트리 매개 변수가 있습니다. Intel EtherExpress 100B 네트워크 어댑터를 사용하는 경우 이 매개 변수를 수정하려면 다음과 같이 하십시오.
  1. 레지스트리 편집기(Regedit.exe)를 시작합니다.
  2. 레지스트리에서 다음 키를 찾습니다. 여기서 x는 네트워크 어댑터의 번호입니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\e100bx\Parameters
  3. 편집을 클릭하고 값 추가를 클릭한 후 다음 정보를 입력합니다.
    값 이름: Adaptive_ifs
    값 종류: REG_DWORD
    데이터: 1(적응 알고리즘 사용)
    충돌 감지 및 프레임간 간격 조정을 위한 적응 알고리즘이 기본적으로 활성화됩니다. 값 데이터를 0으로 설정하면 적응 알고리즘이 비활성화됩니다. 2부터 200까지의 값은 미리 정의된 프레임간 간격을 설정합니다. 20부터 값 설정을 시작하여 20씩 값을 늘리십시오. 충돌을 측정하고 성능을 살펴본 다음 충돌 비율이 낮고 성능에 영향을 미치지 않는 최종 값을 설정하십시오.

해결 방법

이 문제를 해결하려면 TcpWindowSize 레지스트리 매개 변수를 만들어 송신자가 더 많은 데이터를 보내기 전에 수신자로부터 ACK를 받도록 기다리게 할 수 있습니다. 이렇게 하면 충돌이 발생하는 것을 줄일 수 있습니다. 다음과 같이 하십시오.
  1. 레지스트리 편집기(Regedit.exe)를 시작합니다.
  2. 아래의 레지스트리 키를 찾습니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. 추가를 누르고 을 누른 후 다음 정보를 추가합니다.
    값 이름: TcpWindowSize
    값 종류: REG_DWORD
    데이터: 2920(십진수) - 바이트 수
    이더넷의 경우 값을 십진수 2920으로 설정하고, 기타 네트워크 토폴로지의 경우 최대 TCP 데이터 크기의 두 배로 설정하십시오. 하지만 토큰 링이나 FDDI(Fiber Distributed Data Interface)와 같은 토폴로지를 기반으로 하는 네트워크에서는 이더넷 네트워크만큼 충돌이 발생하지 않기 때문에 이러한 네트워크인 경우에는 이 설정을 수정할 필요가 없습니다.

    이 매개 변수를 수정하면 성능이 큰 영향을 받을 수 있습니다. 일반적으로 WAN(wide area network)이나 10메가비트 네트워크의 경우 네트워크 토폴로지에 따라 송신자와 수신자 사이에 일부 지연이 있습니다. 그러므로 TCP/IP ACK(응답)로 인한 충돌 발생 가능성은 없습니다. 이 경우 TcpWindowSize를 조정하면 처리량만 줄어듭니다.
현재 상태
Microsoft는 본 문서의 시작 부분에 나열한 제품에서 이 문제를 확인했습니다.
추가 정보
"충돌"은 두 스테이션이 회선에서 동시에 전송할 때 발생합니다. "초기 충돌"은 512비트의 프레임이 회선에 있기 전에 발생하는 충돌입니다. 초기 충돌은 정상적으로 작동되는 이더넷 네트워크에서 정기적으로 발생할 수 있습니다. 하드웨어 오류나 스테이션 오작동은 없습니다.

IEEE 802.3 사양에서는 스테이션이 회선에서 전송을 시도하기 전에 9.6마이크로초(프레임간 간격)를 기다리도록 규정하고 있습니다. 하지만 일부 어댑터 제조업체에서는 더욱 높은 데이터 전송률을 얻기 위해 더 작은 프레임간 간격으로 어댑터를 설계합니다. 프레임간 간격이 작아지면 충돌이 더욱 많이 발생할 수 있습니다.

이 충돌 발생 가능성은 상위 계층 프로토콜의 작동 방식으로 인해 영향을 받기도 합니다. TCP/IP 사양은 수신되는 모든 데이터 프레임에 대해 ACK(응답)를 보내는 것입니다. 즉, TCP 호스트가 두 데이터 프레임을 수신한 후 ACK를 송신자에게 보냅니다. 두 패킷을 수신한 클라이언트가 ACK를 보내려고 하고, 송신자는 더 많은 데이터를 클라이언트에게 보내려고 할 때 충돌 발생 가능성이 높아집니다.

Windows XP에서 Windows 탐색기 파일 복사에 대한 분석

Windows XP에서 명령 프롬프트와 Windows 탐색기를 사용하여 동일한 파일 복사 작업을 시작할 때의 데이터 전송 패턴은 다릅니다. 이 경우 리디렉터는 60KB(킬로바이트) "bulk read" 또는 "raw read"를 발생합니다. 데이터 전송 패턴은 다음과 같습니다.
   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				
TCP 수준에서는 다음과 같습니다.
   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 ACK.   14 SERVER CLIENT  TCP len: 1460, seq: 6996461-6997920, ack:    404791   15 SERVER CLIENT  TCP len: 1460, seq: 6997921-6999380, ack:    404791   >But server is able to get the wire and send more data.   16 CLIENT SERVER  TCP len:    0, seq:  404791-404791, ack:   6996461   >Client is able to get the wire and send the ACK for data on frames 12 and 13.   17 CLIENT SERVER  TCP len:    0, seq:  404791-404791, ack:   6999381   >Client is able to get the wire and send the ACK 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 ACK.   20 SERVER CLIENT  TCP len: 1460, seq: 7002301-7003760, ack: 404791   >But server is able to get the wire and send more data.				
TCP/IP 프로토콜을 사용할 때 TCP ACK(응답)가 충돌에 영향을 미칩니다. 하지만 이 문제는 TCP/IP 또는 Windows 탐색기에서 60KB bulk read를 가능하게 하는 향상 기능 때문에 발생하는 것은 아닙니다. 이 문제는 FTP를 사용하는 경우에도 나타날 수 있습니다. TCP/IP, 리디렉터 및 Windows 탐색기에는 프레임간 간격에 대한 제어 기능이 전혀 없습니다. 프레임간 간격은 어댑터의 칩셋에 의해 제어되는 실제 계층에 있습니다. 네트워크에서 높은 비율의 충돌이 발생하는 경우 해당 네트워크 어댑터 공급업체에 문의하십시오.

TCP/IP 프로토콜에 대한 자세한 내용은 다음 Microsoft FTP 사이트에서 익명으로 얻을 수 있는 "TCP/IP 구현 세부 내용(TCP/IP Implementation Details)" 제목의 백서를 참조하십시오. 이 백서의 파일 이름은 Tcpipimp2.doc입니다.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
속성

문서 ID: 315237 - 마지막 검토: 05/12/2004 04:28:00 - 수정: 1.1

  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP 64-Bit Edition
  • kbnetwork kbprb KB315237
피드백