Ce document fournit un aperçu des différents compteurs liés aux collisions Ethernet, et explique comment dépanner les problèmes avec les collisions Ethernet enregistrées par ces messages d'erreur (basés sur la plate-forme) :
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-COLL
%LANCE-5-COLL
%PQUICC-5-COLL
%PQUICC_ETHER-5-COLL
%PQUICC_FE-5-COLL
%QUIC_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
%QUIC_ETHER-5-LATECOLL
%SIBYTE-4-SB_EXCESS_COLL
Remarque : les informations de ce document s'appliquent uniquement à l'Ethernet half-duplex. Dans l´Ethernet en full-duplex, la détection de collision est désactivée.
Aucune exigence spécifique n'est associée à ce document.
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Une collision est le mécanisme utilisé par Ethernet pour contrôler l'accès et pour allouer la bande passante partagée entre les stations qui veulent transmettre en même temps sur un support partagé. Puisque le support est partagé, un mécanisme doit exister selon lequel deux stations peuvent détecter qu'elles veulent transmettre en même temps. Ce mécanisme est la détection de collision.
L'Ethernet utilise CSMA/CD (Carrier Sense Multiple Access/Collision Detect) en tant que sa méthode de détection de collision. Voici un exemple simplifié du fonctionnement d'Ethernet :
Station A souhaite envoyer une trame. D'abord, elle contrôle si le support est disponible (détection de porteuse). S'il ne l'est pas, elle attend jusqu'à ce que l'expéditeur actuel sur le support ait terminé.
Supposez que la station A croit que le support est disponible et essaye d'envoyer une trame. Puisque le support est partagé (accès multiple), d'autres expéditeurs pourraient également essayer d´envoyer en même temps. À ce stade, station B essaye d'envoyer une trame en même temps que la station A.
Peu de temps après, station A et station B se rendent compte qu'il y a un autre périphérique essayant d'envoyer une trame (détection de collisions). Chaque station attend un délai aléatoire avant d'envoyer de nouveau. L'heure après la collision est divisée en tranches de temps ; les stations A et B choisissent chacune une tranche de temps aléatoire pour tenter une retransmission.
Si station A et station B essayent de retransmettre dans la même tranche, elles augmentent le nombre de tranches. Chaque station choisit alors une nouvelle tranche, diminuant de ce fait la probabilité de retransmettre dans la même tranche.
En résumé, les collisions sont une manière de distribuer la charge de trafic dans le temps par l'accès arbitraire au support partagé. Les collisions ne sont pas mauvaises ; elles sont essentielles au bon fonctionnement d’Ethernet.
Quelques faits utiles :
La quantité maximale de tranches de temps est limitée à 1024.
La quantité maximale de retransmissions pour la même trame dans le mécanisme de collision est 16. Si elle échoue 16 fois consécutives, elle est comptée comme collision excessive.
Voici un exemple de sortie de la commande 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
Le compteur différé compte le nombre de fois que l´interface a essayé d'envoyer une trame, mais a trouvé le transporteur occupé à la première tentative (détection de porteuse). Ceci ne constitue pas un problème, et fait partie du fonctionnement normal d'Ethernet.
Voici un autre exemple de sortie de la commande 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
Comme expliqué ici, les collisions ne constituent pas un problème. Le compteur de collisions compte le nombre de trames pour lesquelles une ou plusieurs collisions se sont produites quand les trames ont été envoyées.
Le compteur de collisions peut être décomposé en collisions uniques et collisions multiples, comme dans cette sortie de la commande show controller :
8 single collisions, 2 multiple collisions
Cela signifie que huit (sur 10) trames ont été transmises avec succès après une collision ; les deux autres trames ont nécessité plusieurs collisions pour arbitrer l’accès au support.
Un taux de collision croissant (nombre de paquets en sortie divisé par le nombre de collisions) n'indique pas un problème : il s'agit simplement d'une indication d'une charge offerte plus élevée au réseau. Un exemple de ceci pourrait être parce qu'une autre station a été ajoutée au réseau.
Il n'y a aucune limite définie pour « combien de collisions sont mauvaises » ou pour un taux de collision maximal.
En conclusion, le compteur de collisions ne fournit pas une statistique très utile pour analyser les performances du réseau ou les problèmes.
Pour permettre à la détection de collision de fonctionner correctement, la période où les collisions sont détectées est restreinte (512 bit-temps). Pour Ethernet, c'est 51,2 µs (micro-secondes), et pour Fast Ethernet, 5,12 µs. Pour des stations Ethernet, les collisions peuvent être détectées jusqu'à 51,2 microsecondes après que la transmission commence, ou en d'autres termes jusqu'au 512ème bit de la trame.
Quand une collision est détectée par une station après qu'elle ait envoyé le 512ème bit de sa trame, elle est comptée comme une collision tardive.
Les collisions tardives sont rapportées par ces messages d'erreur :
%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
Le message d'erreur précis dépend de la plate-forme. Vous pouvez contrôler le nombre de collisions excessives dans la sortie de la commande show interface ethernet [numéro d'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
Remarque : la station qui signale la collision tardive indique simplement le problème ; ce n'est généralement pas la cause du problème. Les causes possibles sont habituellement un câblage incorrect ou un nombre non-conforme de concentrateurs dans le réseau. Les cartes d´interface réseau (NIC) défectueuses peuvent également causer des collisions tardives.
Comme discuté plus tôt, le nombre maximal d´essais dans l'algorithme d'attente est défini à 16. Ceci signifie que si une interface est incapable 16 fois d´allouer une tranche de temps dans laquelle elle peut transmettre sa trame sans autre collision, elle abandonne. La trame n'est simplement pas transmise, et elle est marquée collision excessive.
Les collisions excessives sont rapportées par ces messages d'erreur :
%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])
Le message d'erreur précis dépend de la plate-forme.
Remarque : le compteur TRC (Transmit Retry Count) est un champ de 4 bits qui indique le nombre de tentatives de transmission du paquet associé. Le compte maximal est 15. Cependant, si une erreur de tentative se produit, le compte est remis à zéro. Dans ce cas seulement, la valeur TRC de zéro devrait être interprétée comme signifiant seize. TRC est écrit par le contrôleur dans le dernier descripteur de transmission d´une trame, ou quand une erreur termine une trame.
Remarque : le compteur de réflectomètre temporel (TDR) est un compteur interne qui compte le temps (en tops d'horloge de 100 nanosecondes (ns) chacun) entre le début d'une transmission et l'occurrence d'une collision. Puisqu'une transmission voyage environ 35 pieds par tic, cette valeur est utile pour déterminer la distance approximative à une défaillance du câble.
Vous pouvez contrôler le nombre de collisions excessives dans la sortie de la commande show controller ethernet [numéro d'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
Les collisions excessives indiquent un problème. Les causes communes sont des périphériques connectés comme full-duplex sur Ethernet partagé, des NIC endommagées, ou simplement trop de stations sur le support partagé. Les collisions excessives peuvent être résolues par hardcoding de la vitesse et du duplex.
Dans les Commutateurs Cisco Catalyst, le message système %SIBYTE-4-SB_EXCESS_COLL est affiché pour chaque occurrence de collision excessive, si le service internal mode est actif. Avec service internal mode inactif, le système imprime seulement ce message toutes les fois que la collision excessive atteint un certain seuil fixé. Dans ce cas, l'aspect de ce message pourrait indiquer un cas réel de collision. Avec le service internal mode actif, le système imprime ce message toutes les fois qu'il y a une instance de collision excessive. Il pourrait être provoqué par un certain bruit matériel. L'apparition occasionnelle de ce message avec service internal mode actif est un comportement normal. Vous pouvez émettre la commande no service internal afin d'arrêter cette journalisation et voir comment ceci affecte vos journaux d´erreurs.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
01-Aug-2006 |
Première publication |