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?
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?
la source
Réponses:
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.
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.
la source
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.
la source
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":
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.
la source
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
ping
pourrait 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.
la source
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.
la source