Este documento fornece uma visão geral dos diferentes contadores relacionados às colisões Ethernet e explica como resolver problemas com colisões Ethernet relatados por essas mensagens de erro (com base na plataforma):
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-COLL
%LANCE-5-COLL
%PQUICC-5-COLL
%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
Observação: as informações neste documento aplicam-se somente à Ethernet half-duplex. Na Ethernet full-duplex, a detecção de colisão é desativada.
Não existem requisitos específicos para este documento.
Este documento não se restringe a versões de software e hardware específicas.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Uma colisão é o mecanismo usado pela Ethernet para controlar o acesso e alocar a largura de banda compartilhada entre as estações que desejam transmitir ao mesmo tempo em um meio compartilhado. Devido ao compartilhamento de meio, deve existir um mecanismo no qual duas estações possam detectar o que desejam transmitir simultaneamente. Esse mecanismo é para detecção de colisão.
A Ethernet usa CSMA/CD (Acesso múltiplo com detecção da portadora/Detecção de colisão) como método de detecção de colisão. Aqui está um exemplo simplificado de operação de Ethernet:
Estação A deseja enviar um quadro. Primeiro, ela verifica se o meio está disponível (Carrier Sense). Se não estiver, ele espera até que o remetente atual na mídia tenha terminado.
Suponha que a Estação A acredita que o meio está disponível e tenta enviar um quadro. Como o meio é compartilhado (Acesso Múltiplo), outros remetentes também podem tentar enviar ao mesmo tempo. Nesse ponto, a Estação B tenta enviar um quadro ao mesmo tempo que a Estação A.
Logo após, as Estações A e B percebem que existe outro dispositivo tentando enviar uma estrutura (Detecção de Colisão). Cada estação espera por uma quantidade aleatória de tempo antes de enviar novamente. O tempo após a colisão é dividido em intervalos de tempo; A Estação A e a Estação B escolhem um intervalo aleatório para tentar uma retransmissão.
Se a estação A e a estação B tentarem retransmitir no mesmo slot, estenderão o número de slots. Cada estação, então, escolhe um novo slot, diminuindo assim a probabilidade de retransmissão no mesmo slot.
Em resumo, as colisões são uma maneira de distribuir a carga de tráfego ao longo do tempo arbitrando o acesso ao meio compartilhado. As colisões não são ruins; elas são essenciais para corrigir a operação da Ethernet.
Algumas informações úteis:
A quantidade máxima de timeslots é limitada a 1024.
A quantidade máxima de retransmissões para o mesmo quadro no mecanismo de colisão é de 16. Se falhar 16 vezes consecutivas, é contado como uma colisão excessiva.
Aqui está um exemplo de saída do comando 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
O contador deferred conta o número de vezes que a interface tentou enviar um quadro, mas encontrou a portadora ocupada na primeira tentativa (Carrier Sense). Isso não constitui um problema e faz parte da operação normal da Ethernet.
Aqui está outro exemplo de saída do comando 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
Como explicado aqui, as colisões não constituem um problema. O contador de colisões conta o número de quadros para os quais uma ou mais colisões ocorreram quando os quadros foram enviados.
O contador de colisões pode ser desmembrado em colisões únicas e colisões múltiplas, conforme descrito no resultado do comando show controller:
8 single collisions, 2 multiple collisions
Isso significa que oito (de 10) quadros foram transmitidos com êxito após uma colisão; os outros dois quadros exigiram várias colisões para arbitrar o acesso ao meio.
Um aumento na taxa de colisão (número de pacotes de saída dividido pelo número de colisões) não indica um problema: é apenas uma indicação de uma carga oferecida mais alta para a rede. Um exemplo disso pode ser porque outra estação foi adicionada à rede.
Não há limite definido para "quantas colisões estão danificadas" ou uma taxa máxima de colisão.
Concluindo, o contador de colisões não fornece uma estatística muito útil para analisar o desempenho ou os problemas da rede.
Para permitir que a detecção de colisão funcione corretamente, o período em que as colisões são detectadas é restrito (tempos de 512 bits). Com relação a Ethernet, é 51.2us (microssegundos) e com relação a Fast Ethernet, 5.12us. Para estações Ethernet, as colisões podem ser detectadas até 51,2 microssegundos após o início da transmissão ou, em outras palavras, até o 512º bit do quadro.
Quando uma colisão é detectada por uma estação, depois de a estação ter enviado o 512º bit de seu quadro, isto é contado como uma colisão atrasada.
As colisões atrasadas são reportadas pelas seguintes mensagens de erro:
%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
A mensagem de erro exata depende da plataforma. Você pode verificar o número de colisões excessivas na saída de um comando 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
Observação: a estação que relata a colisão atrasada simplesmente indica o problema; geralmente não é a causa do problema. As causas possíveis são cabeamento incorreto ou um número de hubs não compatível na rede. Placas de interface de rede (NICs) defeituosas também podem provocar colisões atrasadas.
Como discutido anteriormente, o número máximo de reentradas no algoritmo de retrocesso é definido como 16. Isso significa que, se uma interface não consegue alocar um slot no qual possa transmitir seu quadro sem outra colisão 16 vezes, ela desiste. O quadro simplesmente não é transmitido e é marcado como uma colisão excessiva.
As colisões excessivas são relatadas por estas mensagens de erro:
%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])
A mensagem de erro exata depende da plataforma.
Observação: o contador Transmit Retry Count (TRC) é um campo de 4 bits que indica o número de novas tentativas de transmissão do pacote associado. A contagem máxima é 15. Portanto, se ocorrer um Erro de Nova Tentativa, a contagem é zerada. Apenas neste caso, o valor de TRC de zero deve ser interpretado como significando dezesseis. O TRC é registrado pelo controlador no último descritor de transmissão de um quadro ou quando um erro finaliza um quadro.
Observação: o contador do reflectômetro de atraso de tempo (TDR) é um contador interno que conta o tempo (em pulsos de 100 nanossegundos (ns) cada) desde o início de uma transmissão até a ocorrência de uma colisão. Como uma transmissão percorre quase 11m por escala, esse valor é útil para determinar a distância aproximada para uma falha de cabo.
Você pode verificar o número de colisões excessivas na saída de um comando show controller ethernet [número de interface].
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
Um excesso de colisões indica um problema. As causas comuns são dispositivos conectados como full-duplex em uma Ethernet compartilhada, NICs defeituosas ou simplesmente excesso de estações na mídia compartilhada. As colisões excessivas podem ser resolvidas codificando-se a velocidade e o duplex.
Nos switches Cisco Catalyst, a mensagem de sistema %SIBYTE-4-SB_EXCESS_COLL é exibida para cada ocorrência de uma colisão excessiva, se o modo interno do serviço estiver ativado. Com o modo interno de serviço desativado, o sistema imprime essa mensagem apenas quando a colisão excessiva atinge um determinado limite fixo. Nesse caso, a aparência dessa mensagem pode indicar um caso de colisão real. Com o modo interno de serviço ativado, o sistema imprime essa mensagem sempre que há uma ocorrência de colisão excessiva. Isso pode ser causado por algum ruído de hardware. A aparência ocasional dessa mensagem com o modo interno de serviço ativado é um comportamento normal. Você pode executar o comando no service internal para desativar esse registro e ver como isso afeta seus registros de erros.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
01-Aug-2006 |
Versão inicial |