이 문서는 이더넷 충돌과 관련된 다양한 카운터의 개요를 제공하며, 플랫폼에 따라 다음 오류 메시지로 보고되는 이더넷 충돌 관련 문제를 해결하는 방법을 설명합니다.
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-콜
%LANCE-5-COLL
%PQUICC-5-콜
%PQUICC_ETHER-5-COLL
%PQUICC_FE-5-COLL
%QUICC_ETHER-5-COLL
%AMDP2_FE-5-LATECOLL
%DEC21140-5-LATECOLL
%ILACC-5-LATECOLL
%LANCE-5-LATECOLL
%PQUICC-5-LATECOLL
%PQUICC_ETHER-5-LATECOLL
%PQUICC_FE-5-LATECOLL
%QUICC_ETHER-5-LATECOLL
%SIBYTE-4-SB_EXCESS_COLL
참고: 이 문서의 정보는 반이중 이더넷에만 적용됩니다. 전이중 이더넷에서는 충돌 탐지가 비활성화됩니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
충돌은 이더넷이 액세스를 제어하고 공유 매체에서 동시에 전송하려는 스테이션 간에 공유 대역폭을 할당하기 위해 사용하는 메커니즘입니다. 매체가 공유되기 때문에 두 개의 스테이션이 동시에 전송하고자 하는 것을 감지할 수 있는 메커니즘이 존재해야 한다. 이 메커니즘은 충돌 탐지입니다.
이더넷은 CSMA/CD(Carrier Sense Multiple Access/Collision Detect)를 충돌 탐지 방법으로 사용합니다. 다음은 간단한 이더넷 작동 예입니다.
A역은 액자를 보내기를 원합니다. 먼저 미디어가 사용 가능한지 확인합니다(캐리어 센스). 그렇지 않은 경우 미디어의 현재 발신자가 완료될 때까지 기다립니다.
스테이션 A가 미디어가 사용 가능하다고 믿고 프레임을 보내려고 한다고 가정해 보자. 미디어가 공유되므로(다중 액세스) 다른 발신자도 동시에 전송을 시도할 수 있습니다. 이때 B국은 A국과 동시에 프레임을 보내려고 합니다.
얼마 지나지 않아 스테이션 A와 스테이션 B는 프레임을 전송하려는 다른 디바이스가 있음을 알게 됩니다(Collision Detect). 각 스테이션은 다시 보내기 전에 임의의 시간 동안 대기합니다. 충돌 이후의 시간은 타임 슬롯으로 구분되며, A국과 B국은 각각 재전송을 시도하기 위한 랜덤 슬롯을 선택한다.
스테이션 A와 스테이션 B가 동일한 슬롯에서 재전송하려고 하면 슬롯 수가 늘어납니다. 그러면 각 스테이션은 새로운 슬롯을 선택함으로써 동일한 슬롯에서 재전송할 확률을 줄일 수 있다.
요약하면, 충돌은 공유 미디어에 대한 액세스를 중재하여 시간에 따라 트래픽 부하를 분산하는 방법입니다. 충돌은 나쁘지 않습니다. 이더넷 작동을 바로잡는 데 필수적입니다.
몇 가지 유용한 사실은 다음과 같습니다.
다음은 show interface 명령의 출력 예입니다.
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
지연된 카운터는 인터페이스가 프레임을 보내려고 시도했으나 첫 번째 시도(Carrier Sense)에서 통신 사업자가 사용 중인 것을 발견한 횟수를 계산합니다. 이는 문제가 되지 않으며 정상적인 이더넷 작동의 일부입니다.
다음은 show interface 명령의 또 다른 출력 예입니다.
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
여기서 설명했듯이, 충돌은 문제가 되지 않는다. Collisions 카운터는 프레임이 전송될 때 하나 이상의 충돌이 발생한 프레임 수를 계산합니다.
show controller 명령의 다음 출력처럼 충돌 카운터를 단일 충돌과 여러 충돌로 나눌 수 있습니다.
8 single collisions, 2 multiple collisions
즉, 한 번의 충돌 후 8개(10개 중) 프레임이 성공적으로 전송되었으며, 나머지 2개 프레임은 미디어에 대한 액세스를 중재하기 위해 여러 충돌이 필요했습니다.
충돌 비율(패킷 출력 수를 충돌 수로 나눈 값)이 증가한다고 해서 문제가 발생하는 것은 아닙니다. 이는 네트워크에 더 높은 로드가 제공됨을 나타내는 것에 불과합니다. 다른 스테이션이 네트워크에 추가되었기 때문일 수 있습니다.
"몇 개의 충돌이 나쁜지" 또는 최대 충돌 비율에 대한 설정 제한이 없습니다.
결론적으로 충돌 카운터는 네트워크 성능이나 문제를 분석하는 데 매우 유용한 통계를 제공하지 않습니다.
충돌 검출이 적절히 작동하도록, 충돌이 검출되는 주기가 제한된다(512 비트-시간). 이더넷의 경우 51.2us(마이크로초), 고속 이더넷의 경우 5.12us입니다. 이더넷 스테이션의 경우 전송 시작 후 최대 51.2마이크로초, 즉 프레임의 512번째 비트까지 충돌을 감지할 수 있습니다.
스테이션이 512번째 프레임의 비트를 보낸 후 충돌이 감지되면 늦은 충돌로 간주합니다.
늦은 충돌은 다음 오류 메시지에 의해 보고됩니다.
%AMDP2_FE-5-LATECOLL: AMDP2/FE 0/0/[dec], Late collision %DEC21140-5-LATECOLL: [chars] transmit error %ILACC-5-LATECOLL: Unit [DEC], late collision error %LANCE-5-LATECOLL: Unit [DEC], late collision error %PQUICC-5-LATECOLL: Unit [DEC], late collision error %PQUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error %PQUICC_FE-5-LATECOLL: PQUICC/FE([DEC]/[DEC]), Late collision %QUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error
정확한 오류 메시지는 플랫폼에 따라 다릅니다. show interface ethernet [interface number] 명령 출력에서 과도한 충돌 수를 확인할 수 있습니다.
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
참고: 늦은 충돌을 보고하는 스테이션은 단순히 문제를 나타냅니다. 일반적으로 문제의 원인은 아닙니다. 일반적으로 케이블 연결이 잘못되었거나 네트워크에 있는 허브의 수가 호환되지 않을 수 있습니다. NIC(Network Interface Card)가 잘못되면 늦은 충돌도 발생할 수 있습니다.
앞에서 설명한 것처럼 백오프 알고리즘의 최대 재시도 횟수는 16회로 설정됩니다. 이는 인터페이스가 또 다른 충돌 없이 프레임을 전송할 수 있는 슬롯을 16번 할당하지 못하면 포기함을 의미합니다. 프레임은 단순히 전송되지 않으며, 과도한 충돌로 표시됩니다.
과도한 충돌은 다음과 같은 오류 메시지에 의해 보고됩니다.
%AMDP2_FE-5-COLL: AMDP2/FE 0/0/[DEC], Excessive collisions, TDR=[DEC], TRC=[DEC] %DEC21140-5-COLL: [chars] excessive collisions %ILACC-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %LANCE-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %PQUICC-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %PQUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %PQUICC_FE-5-COLL: PQUICC/FE([DEC]/[DEC]), Excessive collisions, TDR=[DEC], TRC=[DEC] %QUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %SIBYTE-4-SB_EXCESS_COLL : Excessive collisions on mac [dec] (count: [dec])
정확한 오류 메시지는 플랫폼에 따라 다릅니다.
참고: TRC(Transmit Retry Count) 카운터는 관련 패킷의 전송 재시도 횟수를 나타내는 4비트 필드입니다. 최대 개수는 15개입니다. 그러나 Retry Error(재시도 오류)가 발생하면 카운트가 0으로 롤오버됩니다. 이 경우에만 TRC 값인 0이 16을 의미하는 것으로 해석되어야 한다. TRC는 컨트롤러에서 프레임의 마지막 전송 디스크립터에 기록되거나, 에러가 프레임을 종료할 때 기록된다.
참고: TDR(Time delay reflectometer) 카운터는 전송 시작부터 충돌이 발생할 때까지의 시간(각각 100나노초(ns)씩)을 계산하는 내부 카운터입니다. 전송이 틱 당 약 35피트 이동하므로 이 값은 케이블 결함에 대한 대략적인 거리를 확인하는 데 유용합니다.
show controller ethernet [interface number] 명령 출력에서 과도한 충돌 수를 확인할 수 있습니다.
router#show controller ethernet 0 LANCE unit 0, idb 0xFA6C4, ds 0xFC218, regaddr = 0x2130000, reset_mask 0x2 IB at 0x606E64: mode=0x0000, mcfilter 0000/0000/0100/0000 station address 0010.7b36.1be8 default station address 0010.7b36.1be8 buffer size 1524 RX ring with 16 entries at 0x606EA8 Rxhead = 0x606EC8 (4), Rxp = 0xFC244 (4) 00 pak=0x0FCBF4 Ds=0x60849E status=0x80 max_size=1524 pak_size=66 01 pak=0x10087C Ds=0x6133B6 status=0x80 max_size=1524 pak_size=66 02 pak=0x0FDE94 Ds=0x60BA7E status=0x80 max_size=1524 pak_size=203 03 pak=0x100180 Ds=0x611F82 status=0x80 max_size=1524 pak_size=66 04 pak=0x0FD09C Ds=0x609216 status=0x80 max_size=1524 pak_size=66 05 pak=0x0FE590 Ds=0x60CEB2 status=0x80 max_size=1524 pak_size=66 06 pak=0x100AD0 Ds=0x613A72 status=0x80 max_size=1524 pak_size=66 07 pak=0x0FD9EC Ds=0x60AD06 status=0x80 max_size=1524 pak_size=66 08 pak=0x0FF830 Ds=0x610492 status=0x80 max_size=1524 pak_size=348 09 pak=0x1003D4 Ds=0x61263E status=0x80 max_size=1524 pak_size=343 10 pak=0x0FEA38 Ds=0x60DC2A status=0x80 max_size=1524 pak_size=66 11 pak=0x100D24 Ds=0x61412E status=0x80 max_size=1524 pak_size=64 12 pak=0x0FC74C Ds=0x607726 status=0x80 max_size=1524 pak_size=64 13 pak=0x0FD798 Ds=0x60A64A status=0x80 max_size=1524 pak_size=66 14 pak=0x0FE7E4 Ds=0x60D56E status=0x80 max_size=1524 pak_size=64 15 pak=0x0FD2F0 Ds=0x6098D2 status=0x80 max_size=1524 pak_size=66 TX ring with 4 entries at 0x606F68, tx_count = 0 TX_head = 0x606F80 (3), head_txp = 0xFC294 (3) TX_tail = 0x606F80 (3), tail_txp = 0xFC294 (3) 00 pak=0x000000 Ds=0x63491E status=0x03 status2=0x0000 pak_size=332 01 pak=0x000000 Ds=0x634FDA status=0x03 status2=0x0000 pak_size=327 02 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=60 03 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=60 3 missed datagrams, 0 overruns 0 transmitter underruns, 0 excessive collisions 8 single collisions, 2 multiple collisions 0 dma memory errors, 0 CRC errors 0 alignment errors, 0 runts, 0 giants 0 tdr, 0 spurious initialization done interrupts 0 no enp status, 0 buffer errors, 0 overflow errors 0 TX_buff, 1 throttled, 1 enabled Lance csr0 = 0x73
과도한 충돌은 문제를 나타냅니다. 일반적인 원인은 공유 이더넷에서 전이중으로 연결된 장치, 끊어진 NIC 또는 공유 매체에 너무 많은 스테이션이 연결된 경우입니다. 과도한 충돌은 속도와 듀플렉스를 하드코딩하여 해결할 수 있습니다.
Cisco Catalyst 스위치에서 서비스 내부 모드가 켜져 있는 경우 과도한 충돌이 발생할 때마다 %SIBYTE-4-SB_EXCESS_COLL 시스템 메시지가 표시됩니다. 서비스 내부 모드가 꺼진 상태에서 시스템은 과도한 충돌이 특정 고정 임계값에 도달할 때에만 이 메시지를 출력합니다. 이 경우, 이 메시지의 출현은 실제 충돌 사례를 나타낼 수 있다. 서비스 내부 모드가 켜져 있으면 시스템은 과도한 충돌 인스턴스가 발생할 때마다 이 메시지를 출력합니다. 하드웨어 소음 때문일 수 있습니다. 서비스 내부 모드가 켜져 있는 이 메시지가 가끔 나타나는 것은 정상적인 동작입니다. 이 로깅을 끄고 오류 로그에 어떤 영향을 미치는지 확인하려면 no service internal 명령을 실행할 수 있습니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
01-Aug-2006 |
최초 릴리스 |