In questo documento viene fornita una panoramica dei diversi contatori di collisioni Ethernet e viene spiegato come risolvere i problemi segnalati dai seguenti messaggi di errore (visualizzati a seconda della piattaforma in uso):
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-COLL
%LANCE-5-COLL
%PQUICC-5-COLL
%QUICC_ETHER-5-COLL
%QUICC_FE-5-COLL
%QUICK_ETHER-5-COLL
%AMDP2_FE-5-LATECOLL
%DEC21140-5-LATECOLL
%ILACC-5-LATECOLL
%LANCE-5-LATECOLL
%PQUICC-5-LATECOLL
%PQUICC_ETHER-5-LATECOLL
%QUICC_FE-5-LATECOLL
%QUICK_ETHER-5-LATECOLL
%SIBYTE-4-SB_EXCESS_COLL
Nota: le informazioni di questo documento si applicano solo a Ethernet half-duplex. Su Ethernet full-duplex, il rilevamento delle collisioni è disabilitato.
Nessun requisito specifico previsto per questo documento.
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Una collisione è il meccanismo utilizzato da Ethernet per controllare l'accesso e allocare la larghezza di banda condivisa tra le stazioni che vogliono trasmettere contemporaneamente su un supporto condiviso. Poiché il mezzo è condiviso, deve esistere un meccanismo in cui due stazioni possono rilevare che vogliono trasmettere contemporaneamente. Questo meccanismo è il rilevamento delle collisioni.
Ethernet utilizza CSMA/CD (Carrier Sense Multiple Access/Collision Detect) come metodo di rilevamento delle collisioni. Di seguito è riportato un esempio semplificato di funzionamento Ethernet:
La Stazione A desidera inviare una cornice. In primo luogo, verifica se il supporto è disponibile (Sensore vettore). In caso contrario, attende la fine dell'attività del mittente corrente sul supporto.
Si supponga che la Stazione A ritenga che il supporto sia disponibile e tenti di inviare una cornice. Poiché il supporto è condiviso (Accesso multiplo), è possibile che anche altri mittenti tentino di inviare contemporaneamente. A questo punto, la Stazione B tenta di inviare un frame contemporaneamente alla Stazione A.
Poco dopo, la Stazione A e la Stazione B si rendono conto che c'è un altro dispositivo che sta tentando di inviare un fotogramma (Collision Detect). Ogni stazione attende per un periodo di tempo casuale prima di inviare di nuovo. Il tempo dopo la collisione è diviso in intervalli temporali; la Stazione A e la Stazione B scelgono ciascuno uno slot casuale per tentare una ritrasmissione.
Se la stazione A e la stazione B tentano di ritrasmettere nello stesso slot, estendono il numero di slot. Ogni stazione sceglie quindi un nuovo slot, riducendo la probabilità di ritrasmettere nello stesso slot.
In sintesi, le collisioni sono un modo per distribuire il carico di traffico nel tempo mediante l'arbitraggio dell'accesso al supporto condiviso. Le collisioni non sono negative; sono essenziali per correggere il funzionamento di Ethernet.
Alcuni fatti utili:
Il numero massimo di slot temporali è limitato a 1024.
La quantità massima di ritrasmissioni per lo stesso fotogramma nel meccanismo di collisione è 16. Se fallisce 16 volte consecutive, viene contata come una collisione eccessiva.
Di seguito è riportato un esempio di output del 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
Il contatore posticipato conteggia il numero di tentativi dell'interfaccia di inviare un frame, ma ha trovato il vettore occupato al primo tentativo (Sensore vettore). Ciò non costituisce un problema e fa parte del normale funzionamento di Ethernet.
Di seguito è riportato un altro esempio di output del 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
Come spiegato in questa sede, le collisioni non costituiscono un problema. Il contatore delle collisioni conteggia il numero di frame per i quali si sono verificate una o più collisioni al momento dell'invio dei frame.
Il contatore di collisioni può essere suddiviso in singole collisioni e più collisioni, come mostrato in questo output del comando show controller:
8 single collisions, 2 multiple collisions
Ciò significa che otto frame (su 10) sono stati trasmessi correttamente dopo una collisione; gli altri due frame hanno richiesto collisioni multiple per arbitrare l'accesso al supporto.
Una frequenza di collisioni crescente (numero di pacchetti in uscita diviso per il numero di collisioni) non indica un problema: è solo un'indicazione di un carico più elevato offerto alla rete. Un esempio potrebbe essere l'aggiunta di un'altra stazione alla rete.
Non vi è alcun limite per il "numero di collisioni non valide" o per la frequenza massima di collisioni.
In conclusione, il contatore di collisioni non fornisce una statistica molto utile per analizzare le prestazioni o i problemi della rete.
Per consentire il corretto funzionamento del rilevamento delle collisioni, il periodo in cui vengono rilevate è limitato (512 bit-time). Per Ethernet, questo valore è 51,2us (microsecondi), e per Fast Ethernet, 5,12us. Per le stazioni Ethernet, è possibile rilevare le collisioni fino a 51,2 microsecondi dopo l'inizio della trasmissione, o in altre parole fino al 512° bit del frame.
Quando una stazione rileva una collisione dopo aver inviato il 512º bit del suo frame, viene considerata una collisione ritardata.
Le collisioni ritardate vengono segnalate da questi messaggi di errore:
%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
Il messaggio esatto dipende dalla piattaforma in uso. È possibile controllare il numero di collisioni eccessive nell'output di un comando show interface ethernet [numero interfaccia].
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
Nota: la stazione che riporta la collisione ritardata indica semplicemente il problema; in genere non è questa la causa del problema. Le cause possibili sono in genere un cablaggio errato o un numero di hub non conforme nella rete. Anche le schede di interfaccia di rete (NIC) difettose possono causare collisioni ritardate.
Come descritto in precedenza, il numero massimo di tentativi nell'algoritmo di backoff è impostato su 16. Ciò significa che se un'interfaccia non riesce ad allocare uno slot in cui può trasmettere il suo frame senza un'altra collisione 16 volte, si arrende. Il frame non viene trasmesso ed è contrassegnato come una collisione eccessiva.
Le collisioni eccessive sono segnalate da questi messaggi di errore:
%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])
Il messaggio esatto dipende dalla piattaforma in uso.
Nota: il contatore Transmit Retry Count (TRC) è un campo a 4 bit che indica il numero di tentativi di trasmissione del pacchetto associato. Il numero massimo è 15. Tuttavia, se si verifica un errore di ripetizione tentativo, il conteggio viene riportato a zero. Solo in questo caso, il valore TRC pari a zero deve essere interpretato come sedici. La funzione TRC viene scritta dal controller nell'ultimo descrittore di trasmissione di un frame o quando un errore termina un frame.
Nota: il contatore TDR (Time delay reflectometer) è un contatore interno che conta il tempo (in tick di 100 nanosecondi (ns) ciascuno) dall'inizio di una trasmissione al verificarsi di una collisione. Poiché una trasmissione viaggia di circa 35 piedi per tick, questo valore è utile per determinare la distanza approssimativa da un errore del cavo.
È possibile controllare il numero di collisioni eccessive nell'output di un comando show controller ethernet [numero interfaccia].
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
Collisioni eccessive indicano un problema. Le cause più comuni sono i dispositivi connessi in modalità full-duplex su una rete Ethernet condivisa, le schede di interfaccia di rete interrotte o semplicemente il numero eccessivo di stazioni sul supporto condiviso. Le collisioni eccessive possono essere risolte usando la velocità di hardcode e la modalità duplex.
Sugli switch Cisco Catalyst, se la modalità interna del servizio è attiva, viene visualizzato il messaggio di sistema %SIBYTE-4-SB_EXCESS_COLL per ogni collisione eccessiva. Quando la modalità di manutenzione è disattivata, il sistema visualizza questo messaggio solo quando la collisione eccessiva raggiunge una determinata soglia fissa. In questo caso, la visualizzazione del messaggio potrebbe indicare un caso di collisione reale. Con la modalità interna del servizio attivata, il sistema visualizza questo messaggio ogni volta che si verifica un'istanza di collisione eccessiva. Il problema potrebbe essere causato da alcuni disturbi hardware. L'aspetto occasionale di questo messaggio con la modalità interna del servizio attivata è un comportamento normale. È possibile usare il comando no service internal per disattivare questa registrazione e vedere come influisce sui log degli errori.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
01-Aug-2006 |
Versione iniziale |