Comment se produit exactement une collision Ethernet dans le câble, car les nœuds utilisent des circuits différents pour Tx et Rx?

13

J'essaie de comprendre comment une collision se produit dans Ethernet, en particulier lorsqu'une incompatibilité duplex existe ou lorsque sur un réseau Ethernet hérité, deux nœuds transmettent simultanément.

Tout le monde explique la collision à un niveau supérieur (deux trames entrent en collision lorsque l'une est envoyée et l'autre reçue). Cependant, le graphique ci-dessous montre qu'il existe différents circuits pour Rx et Tx. Comment une collision peut-elle se produire puisqu'il existe des circuits dédiés pour l'envoi et la réception de trames?

Différents circuits sont utilisés pour la transmission et la réception

EDIT : Peut-être que le label "Hub MDI-X" provoque une certaine confusion concernant le point de ma question. Je ne demande pas comment la fonctionnalité d'un hub peut provoquer une collision. Je me concentre sur la communication entre deux nœuds avec des interfaces MDI ou MDI-X (le concentrateur et les commutateurs ont des interfaces MDI-X). Dans l'un de ces deux cas, comment une collision peut-elle se produire entre deux nœuds lorsqu'ils présentent une incompatibilité duplex, alors que dans une incompatibilité duplex, Rx et Tx ont toujours leurs circuits dédiés?

Christos Dalamagkas
la source
Veuillez noter que 10Base2 ou 10Base5 partagent le même support, par exemple le même câble.
Patrick Terlisten
J'ai toujours la même question concernant 100base-tx, au cas où nous aurions une discordance de duplex et que le nodeA est half duplex et nodeB full duplex. Supposons que nodeA possède une interface MDI et nodeB une interface MDI-X. Le nœud B transmet à partir des broches 3 et 4 et le nœud B reçoit uniquement à partir de 3 et 4. Comment une collision peut-elle se produire dans le nœud A car il ne reçoit que de ces broches?
Christos Dalamagkas
6
La collision se produit dans L1, pas L2 - ce sont les bits / porteurs qui entrent en collision. Deux expéditeurs entrent en collision lorsqu'ils tentent d'envoyer (presque) simultanément.
Zac67

Réponses:

11

Pour comprendre cela, vous devez comprendre le contexte historique.

À l'origine, Ethernet utilisait un câble coaxial partagé. Un seul appareil a pu transmettre avec succès à la fois. Si deux appareils transmettaient en même temps, cela était considéré comme une collision.

Puis des répéteurs sont venus, pour étendre la distance et augmenter le nombre de nœuds. Un répéteur détecterait quel port transmet, puis il répéterait ce signal sur les autres ports. Pour que la détection de collision fonctionne, les répéteurs devaient avoir certaines fonctionnalités pour garantir que tous les nœuds détectaient une collision. Les premiers répéteurs n'avaient que deux ports, mais les répéteurs ultérieurs pouvaient avoir plusieurs ports et ils sont devenus connus sous le nom de concentrateurs, en particulier lorsqu'ils étaient utilisés en conjonction avec un câblage à paire torsadée. Les répéteurs étaient des appareils assez stupides, ils régénéraient les signaux électriques mais pas plus.

Puis 10BASE-T est entré, qui, comme vous l'avez remarqué, a des canaux de données dédiés pour chaque direction. Néanmoins, il devait encore s'intégrer dans le modèle existant, il fonctionnait donc par défaut en mode "semi-duplex" où il émulait un câble coaxial. En fait, les signaux ne sont pas entrés en collision sur le fil, mais les émetteurs-récepteurs ont agi comme s'ils le faisaient et les répéteurs prendraient les mêmes mesures que précédemment pour s'assurer que cela était visible sur le réseau.

Ethernet à paire torsadée peut également prendre en charge un mode "full-duplex". Dans ce mode, tout le matériel lié aux collisions est désactivé et les deux extrémités peuvent transmettre à tout moment. Cependant, ce mode a apporté quelques inconvénients majeurs.

  • Il était incompatible avec les répéteurs-hubs. Sans les mécanismes de détection des collisions, les concentrateurs n'auraient aucun moyen de gérer deux appareils transmettant en même temps.
  • Les deux extrémités d'une liaison doivent être configurées pour le même mode duplex, si ce n'est pas le cas, de mauvaises choses se produiront.

Ces problèmes signifiaient qu'en pratique, les systèmes 10BASE-T fonctionnaient presque toujours en mode semi-duplex.

Pour 100BASE-TX, la situation s'est considérablement améliorée. Les commutateurs Ethernet (ponts multi-ports techniquement rapides) ont baissé de prix au point que les concentrateurs de répéteurs muets pourraient être éliminés. La négociation automatique a permis aux cartes réseau d'établir des connexions duplex intégral sans configuration manuelle sujette aux erreurs. Si vous connectez deux cartes réseau 100BASE-TX avec un câble croisé ou connectez une carte réseau 100BASE-TX à un commutateur et que vous ne prenez pas de mesures pour remplacer manuellement les éléments, ils négocieront presque certainement le mode duplex intégral.

Le 1000BASE-T a théoriquement un mode semi-duplex que certains NIC prétendent prendre en charge et il y avait une spécification pour les répéteurs multiports gigabit, mais je n'ai jamais vu aucune preuve que quelqu'un en ait jamais vendu un. Dans la pratique, une liaison gigabit fonctionnera presque certainement en mode duplex intégral.

Des vitesses plus rapides ont complètement abandonné le mode semi-duplex.

Peter Green
la source
Et puis l'Ethernet sans fil est arrivé, et les collisions avec les médias redeviennent une chose.
OrangeDog
@OrangeDog, si vous voulez dire Wi-Fi (IEEE 802.11), ce n'est pas Ethernet sans fil (IEEE 802.3). Il s'agit d'un protocole complètement différent qui a différentes trames et utilise CSMA / CA au lieu de CSMA / CD. Les deux protocoles sont très différents, tandis que Ethernet sur les différents supports qu'il prend en charge est fondamentalement le même.
Ron Maupin
14

Un concentrateur n'est en réalité qu'un câble alimenté qui répète chaque signal qu'il reçoit sur une interface vers toutes les autres interfaces. Si deux appareils transmettent en même temps à la réception des interfaces du concentrateur, le concentrateur répète les deux signaux en même temps à la transmission de toutes les autres interfaces du concentrateur, et les deux signaux reçus entreront en collision à la transmission des autres interfaces, ainsi vous avez une collision où toutes les autres interfaces ont des signaux inutiles car il s'agit de deux signaux en même temps. Les hôtes qui envoient simultanément et entendent un autre signal se rendront compte que plus d'un envoie en même temps, et ils détermineront qu'il y a une collision.

Pensez-y de cette façon, la réception de chaque interface concentrateur est câblée à la transmission de toutes les autres interfaces. À l'intérieur du concentrateur, la transmission et la réception sont connectées, même si elles sont séparées à l'interface.

Comparez cela avec un commutateur, où chaque lien se termine à l'interface du commutateur, et le commutateur n'a pas les interfaces câblées ensemble. Au lieu de cela, le commutateur dispose d'une logique (généralement intégrée au matériel) pour déterminer où envoyer les trames qu'il reçoit sur une interface et pour éviter les collisions à l'intérieur du commutateur.

Un commutateur est un pont haute densité. Les ponts d'origine étaient comme des PC avec plusieurs interfaces. Vous ne vous attendriez pas à ce qu'un PC avec plusieurs interfaces ait des collisions s'il recevait des trames simultanées sur plusieurs interfaces.


Éditer:

Vos commentaires me portent à croire que vous ne comprenez toujours pas ce que j'ai écrit ci-dessus à propos des hubs.

La manière dont les collisions sont détectées lors de l'utilisation de l'UTP et d'un concentrateur est que les appareils émetteurs entendent un autre signal lors de l'envoi. Si un périphérique utilisant UTP est configuré pour le semi-duplex, il croira qu'il y a une collision lorsqu'il entend un signal lors de l'envoi.

Lorsque vous avez une différence de duplex, le périphérique configuré pour le duplex intégral sera heureux d'envoyer tout en recevant du périphérique configuré pour le semi-duplex. D'un autre côté, le périphérique configuré pour le semi-duplex pense qu'il y a une collision lors de l'envoi et entend ce signal du périphérique configuré pour le duplex intégral. Cela provoquera tous types de problèmes car le périphérique configuré pour le semi-duplex cessera d'envoyer la trame (provoquant un runt) et enverra un signal de brouillage que le périphérique configuré pour le duplex intégral ne s'attend pas. Le périphérique configuré pour le duplex intégral cessera alors d'envoyer sa trame.

Ron Maupin
la source
3
Telle est la vraie réponse. OP ignore tous les cas, sauf seulement deux points d'extrémité avec un câble croisé (ou, dans un cadre moderne, n'importe quel câble) entre eux.
R .. GitHub STOP HELPING ICE
@R .., le dessin de la question montre un concentrateur, j'ai donc répondu pour une connexion de concentrateur.
Ron Maupin
Cette réponse explique comment la collision se produit lorsque vous avez un concentrateur dans la topologie. Bien qu'une collision tardive puisse se produire lorsqu'il y a deux nœuds (disons un commutateur et un PC), l'un est semi-duplex et l'autre est en duplex intégral. Pourquoi une collision se produit-elle dans ce cas, même s'il existe des circuits séparés pour Tx et Rx, comme le montre le graphique de ma question?
Christos Dalamagkas
Semble que le label "Hub MDI-X" a causé une certaine confusion, concernant le point de ma question. J'ai édité en conséquence.
Christos Dalamagkas
3
Parce que celui avec half duplex déclare une collision quand il entend quelque chose lors de l'envoi. Voir la réponse ci-dessus. Si un périphérique configuré pour le semi-duplex entend un autre signal lors de l'envoi, il doit supposer qu'il y a une collision car il pense qu'il est semi-duplex et qu'un seul périphérique à la fois peut envoyer.
Ron Maupin
8

Grande question.

En full duplex, il existe un canal dédié pour le trafic de "gauche à droite" et un canal dédié pour le trafic de "droite à gauche":

Chaîne dédiée

Par conséquent, en duplex intégral, les collisions sont impossibles - même si les deux cartes réseau émettent en même temps.

En semi-duplex , cependant, le trafic dans les deux sens est censé n'utiliser que le câble, une direction à la fois. Ainsi, bien que physiquement, il existe encore des canaux dédiés, logiquement si une carte réseau reçoit quelque chose pendant qu'elle transmet, elle l'enregistre comme une collision. Les bits / signaux ne se "heurtent" pas réellement sur le fil - un compteur de collisions est simplement incrémenté lorsque la carte réseau reçoit et transmet en même temps.

Eddie
la source
4
Les signaux entrent en collision avec le fil, même avec une paire torsadée. Avec trois nœuds d'extrémité, deux signaux simultanés entreraient en collision sur le troisième nœud.
Zac67
4
" Les bits / signaux ne se" heurtent "pas réellement sur le fil " Dans un concentrateur, comme dans le dessin de la question, les bits se heurtent réellement au fil et produisent un signal de poubelle. Les hôtes qui envoient simultanément et entendent un autre signal enverront ensuite un signal de brouillage à toutes les autres interfaces du concentrateur.
Ron Maupin
@RonMaupin Vous avez bien sûr raison - je parlais de ce qui se passerait lorsque le répéteur ne détecterait pas / ne réagirait pas à la collision.
Zac67
1
@ Zac67, je ne commentais pas pour toi, toi et moi avons dit la même chose essentiellement en même temps.
Ron Maupin
@ Zac67 / RonMaupin Le PO a édité la question confirmant qu'il ne pose pas de questions sur le cas des concentrateurs.
Eddie
6

Avec une paire torsadée et un concentrateur répéteur, le concentrateur n'est pas beaucoup plus qu'un amplificateur numérique. Pour cela, il détecte une porteuse à partir d'un signal entrant sur un port et commute tous les autres ports en mode de sortie. Dans ce mode de sortie, toute porteuse entrante supplémentaire est une collision. Cela déclenche un signal de brouillage pour propager la collision et faire en sorte que l'expéditeur arrête de transmettre.

Cette méthode répétitive imite le comportement des variantes Ethernet à supports partagés précédentes (10BASE5 et 10BASE2) où le répéteur n'était utilisé que comme des joints de segments physiques ou des prolongateurs de ligne. Bien sûr, vous avez raison: la paire torsadée est un milieu full duplex au niveau du fil où une collision ne se produit que sur la couche physique supérieure et non sur le fil lui-même.

Un répéteur ne peut pas autoriser plus d'un expéditeur à la fois. De multiples transmissions simultanées se mélangeraient sur les ports de sortie et produiraient un bruit inintelligible. De même, tout nœud en mode semi-duplex suppose un support partagé, incapable de transmission en duplex intégral. Tout porteur détecté pendant la transmission est une collision, ce qui fait reculer l'expéditeur. Que le support soit en duplex intégral (fibre, paire torsadée) ou non (coaxial) n'a pas d'importance.

Avec une asymétrie duplex, une extrémité de liaison est en mode semi-duplex et l'autre en mode duplex intégral. Désormais, lorsque le côté semi-duplex (HDX) émet, toute porteuse de son récepteur provoque la détection d'une collision. Cependant, le côté full-duplex (FDX) peut heureusement être renvoyé pendant qu'il reçoit du côté HDX et il est complètement inconscient des collisions qu'il crée du côté éloigné. Le côté HDX doit interrompre la transmission et envoie un signal de bourrage. Étant donné que le côté FDX ne peut pas détecter la collision présumée, il détecte un cadre partiel et donc endommagé.

Les basses fréquences et les petites trames ont une chance raisonnable de passer à travers cette discordance duplex, donc cela pingpourrait réellement fonctionner. Cependant, dès qu'une transmission sérieuse tente de se mettre en route, la fréquence de trame plus élevée et la taille plus grande feront échouer les transmissions de manière très fiable.

Avec les commutateurs non gérés, une non-correspondance duplex peut être très difficile à détecter, en particulier lorsque même les cartes d'interface réseau hôte ne signalent pas correctement leur mode duplex.

Avec les commutateurs gérés, vous disposez généralement de compteurs d'erreurs de port. L'augmentation des collisions d'un côté (HDX) et l'augmentation des erreurs d'exécution et de FCS de l'autre côté (FDX) sont de très fortes indications d'une discordance de duplex.

Fondamentalement, s'appuyer sur la négociation automatique est une très bonne pratique pour éviter les asymétries duplex. La configuration manuelle de la vitesse et du mode duplex est généralement sujette à créer un décalage, en particulier lors du remplacement de l'équipement quelques années plus tard. Heureusement, tout le système semi-duplex a disparu avec Gigabit Ethernet et plus rapidement.

Zac67
la source
3

Supposons que la machine A commence à envoyer des données à la machine B. Lorsque le paquet commence à être envoyé, la machine C commence à envoyer des données différentes à la machine B. Il n'y a qu'un seul chemin de signal vers la machine B, donc les transmissions de A et C entrent en collision et B ne peut pas recevoir les deux.

Le fait qu'un circuit différent soit utilisé pour les transmissions de la machine B à la machine A et à la machine C n'aide pas. Tout ce qui se passe, c'est que A et C essaient de transmettre à la machine B en même temps et qu'il n'y a qu'un seul chemin de signal vers la machine B.

David Schwartz
la source