이 문서에서는 이더넷 충돌과 관련된 여러 카운터에 대한 개요를 제공하고 이러한 오류 메시지(플랫폼을 기반으로)에서 보고하는 이더넷 충돌 문제를 해결하는 방법에 대해 설명합니다.
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-COLL
%LANCE-5-COLL
%PQUICC-5-COLL
%PQUICC_ETHER-5-COLL
%PQUICC_FE-5-COLL
%QICC_ETHER-5-COLL
%AMDP2_FE-5-LAFERL
%DEC21140-5-LAFERL
%ILACC-5-LAFERL
%LANCE-5-LAFERL
%PQUICC-5-LAFERL
%PQUICC_ETHER-5-LAFERL
%PQUICC_FE-5-LAFERL
%QICC_ETHER-5-LAFERL
%SIBYTE-4-SB_EXCESS_COLL
참고: 이 문서의 정보는 반이중 이더넷에만 적용됩니다. 전이중 이더넷에서는 충돌 탐지가 비활성화됩니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
충돌은 이더넷이 공유 매체에서 동시에 전송하려는 스테이션 간에 공유 대역폭을 할당하고 액세스를 제어하기 위해 사용하는 메커니즘입니다. 미디어가 공유되므로 두 스테이션이 동시에 전송하려는 것을 탐지할 수 있는 메커니즘이 있어야 합니다. 이 메커니즘은 충돌 탐지입니다.
이더넷은 CSMA/CD(Carrier Sense Multiple Access/Collision Detect)를 충돌 탐지 방법으로 사용합니다. 이더넷 작업의 간단한 예는 다음과 같습니다.
A역은 액자를 보내기를 원합니다. 먼저 미디어를 사용할 수 있는지 확인합니다(Carrier Sense). 그렇지 않으면 미디어의 현재 발신자가 완료될 때까지 기다립니다.
Station A가 미디어를 사용할 수 있다고 믿고 프레임을 보내려고 한다고 가정해 봅니다. 미디어가 공유되므로(다중 액세스) 다른 발신자도 동시에 전송을 시도할 수 있습니다. 이때 B역은 A역으로 프레임을 동시에 보내려고 한다.
얼마 후, 스테이션 A와 스테이션 B는 프레임(충돌 탐지)을 전송하려는 다른 디바이스가 있음을 알게 됩니다. 각 스테이션은 임의의 시간을 기다렸다가 다시 전송합니다. 충돌 이후의 시간은 시간 슬롯으로 구분됩니다. 스테이션 A와 스테이션 B는 각각 재전송을 시도하기 위해 임의의 슬롯을 선택합니다.
스테이션 A와 스테이션 B가 동일한 슬롯에서 재전송을 시도할 경우 슬롯 수를 확장합니다. 그런 다음 각 스테이션이 새 슬롯을 선택하므로 동일한 슬롯에서 재전송할 가능성이 줄어듭니다.
요약하자면, 충돌은 공유 미디어에 대한 액세스를 중재하여 시간에 따라 트래픽 로드를 분산하는 방법입니다. 충돌은 나쁘지 않습니다. 이더넷 작동을 수정하는 데 필수적입니다.
몇 가지 유용한 사실:
최대 시간 슬롯은 1024로 제한됩니다.
충돌 메커니즘 내에서 동일한 프레임에 대한 재전송의 최대 양은 16개입니다. 연속 16번 실패하면 과도한 충돌로 간주됩니다.
다음은 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
여기서 설명한 것처럼, 충돌은 문제를 구성하지 않습니다. 충돌 카운터는 프레임을 전송할 때 하나 이상의 충돌이 발생한 프레임 수를 계산합니다.
충돌 카운터는 show controller 명령의 다음 출력에서와 같이 단일 충돌 및 다중 충돌으로 나눌 수 있습니다.
8 single collisions, 2 multiple collisions
즉, 10개 중 8개의 프레임이 하나의 충돌 후 성공적으로 전송되었습니다. 다른 두 프레임은 미디어에 대한 액세스를 중재하기 위해 여러 개의 충돌이 필요했습니다.
충돌 속도가 증가하는 경우(출력 패킷 수를 충돌 수로 나눈 값) 문제가 발생하지 않습니다. 이는 네트워크에 더 높은 부하를 제공한다는 의미일 뿐입니다. 예를 들어 다른 스테이션이 네트워크에 추가되었기 때문일 수 있습니다.
"얼마나 많은 충돌이 잘못되었는지" 또는 최대 충돌 속도에 대해 설정된 제한이 없습니다.
결론적으로, 충돌 카운터는 네트워크 성능 또는 문제를 분석하는 데 매우 유용한 통계를 제공하지 않습니다.
충돌 탐지가 제대로 작동하도록 하려면 충돌이 탐지되는 기간이 제한됩니다(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으로 설정됩니다. 즉, 인터페이스가 다른 충돌 없이 프레임을 전송할 수 있는 슬롯을 할당하지 못하면 중단됩니다. 프레임은 단순히 전송되지 않으며 과도한 충돌으로 표시됩니다.
다음 오류 메시지에서 과도한 충돌이 보고됩니다.
%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입니다. 그러나 재시도 오류가 발생하면 개수는 0으로 롤오버됩니다. 이 경우 TRC 값이 0인 경우에만 의미 16으로 해석해야 합니다. TRC는 컨트롤러에서 프레임의 마지막 전송 설명자에 기록되거나 오류가 프레임을 종료할 때 작성됩니다.
참고: TDR(time delay reflectometer) 카운터는 전송 시작부터 충돌 발생까지의 시간(각각 100나노초 단위)을 계산하는 내부 카운터입니다. 이 값은 틱 당 약 35피트(약 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 |
최초 릴리스 |