Ich versuche zu verstehen, wie eine Kollision im Ethernet auftritt, insbesondere wenn eine Duplex-Nichtübereinstimmung vorliegt oder wenn in einem älteren Ethernet-Netzwerk zwei Knoten gleichzeitig senden.
Jeder erklärt die Kollision auf einer höheren Ebene (zwei Frames kollidieren, wenn der eine gesendet und der andere empfangen wird). Die folgende Grafik zeigt jedoch, dass es für Rx und Tx unterschiedliche Schaltkreise gibt. Wie kann eine Kollision auftreten, da es dedizierte Schaltkreise zum Senden und Empfangen von Frames gibt?
EDIT : Vielleicht verursacht das Label "Hub MDI-X" einige Verwirrung in Bezug auf den Punkt meiner Frage. Ich frage nicht, wie die Funktionalität eines Hubs eine Kollision verursachen kann. Mein Fokus liegt auf der Kommunikation zwischen zwei Knoten mit MDI- oder MDI-X-Schnittstellen (Hub und Switches verfügen über MDI-X-Schnittstellen). Wie kann in einem dieser beiden Fälle eine Kollision zwischen zwei Knoten auftreten, wenn diese eine Duplex-Fehlanpassung aufweisen, während in einer Duplex-Fehlanpassung Rx und Tx noch ihre eigenen Schaltkreise haben?
quelle
Antworten:
Um dies zu verstehen, müssen Sie den historischen Kontext verstehen.
Ursprünglich verwendete Ethernet ein gemeinsames Koaxialkabel. Es konnte immer nur ein Gerät erfolgreich senden. Wenn zwei Geräte gleichzeitig übertragen wurden, wurde dies als Kollision gewertet.
Dann kamen Repeater, um die Entfernung zu vergrößern und die Anzahl der Knoten zu erhöhen. Ein Repeater würde erkennen, welcher Port sendet, und dieses Signal an den anderen Ports wiederholen. Damit die Kollisionserkennung funktioniert, mussten Repeater über einige Funktionen verfügen, um sicherzustellen, dass alle Knoten eine Kollision erkannt haben. Die ersten Repeater hatten nur zwei Ports, aber spätere Repeater konnten mehrere Ports haben und diese wurden als Hubs bekannt, insbesondere wenn sie in Verbindung mit Twisted-Pair-Kabeln verwendet wurden. Repeater waren ziemlich blöde Geräte, sie würden die elektrischen Signale aber kaum mehr regenerieren.
Dann kam 10BASE-T, das, wie Sie bemerkt haben, dedizierte Datenkanäle für jede Richtung hat. Trotzdem musste es immer noch in das vorhandene Modell passen, sodass es standardmäßig im "Halbduplex" -Modus arbeitete und ein Koaxialkabel emulierte. Tatsächlich kollidierten die Signale nicht auf der Leitung, aber die Transceiver verhielten sich so, als ob sie dies taten, und die Repeater unternahmen dieselben Schritte wie zuvor, um sicherzustellen, dass dies im gesamten Netzwerk beobachtet wurde.
Twisted Pair Ethernet kann auch einen "Vollduplex" -Modus unterstützen. In diesem Modus ist die gesamte kollisionsbezogene Hardware deaktiviert und beide Enden können jederzeit senden. Dieser Modus brachte jedoch einige große Nachteile mit sich.
Diese Probleme führten dazu, dass 10BASE-T-Systeme in der Praxis fast immer im Halbduplexmodus betrieben wurden.
Bei 100BASE-TX hat sich die Situation dramatisch verbessert. Ethernet-Switches (technisch schnelle Multiport-Bridges) wurden so teuer, dass dumme Repeater-Hubs wegfallen konnten. Durch die automatische Aushandlung konnten Netzwerkkarten Vollduplex-Verbindungen ohne fehleranfällige manuelle Konfiguration herstellen. Wenn Sie zwei 100BASE-TX-NICs mit einem Crossover-Kabel verbinden oder eine 100BASE-TX-NIC an einen Switch anschließen und keine Schritte unternehmen, um Dinge manuell zu überschreiben, wird mit ziemlicher Sicherheit der Vollduplex-Modus ausgehandelt.
1000BASE-T hat theoretisch einen Halbduplex-Modus, der von einigen NICs unterstützt wird, und es gab eine Spezifikation für Gigabit-Multiport-Repeater, aber ich habe nie Hinweise darauf gesehen, dass jemals jemand einen verkauft hat. In der Praxis wird eine Gigabit-Verbindung mit ziemlicher Sicherheit im Vollduplexmodus ausgeführt.
Schnellere Geschwindigkeiten haben den Halbduplex-Modus vollständig aufgegeben.
quelle
Ein Hub ist eigentlich nur ein Stromkabel, das jedes an einer Schnittstelle empfangene Signal mit allen anderen Schnittstellen wiederholt. Wenn zwei Geräte gleichzeitig zum Empfang der Hub-Schnittstellen senden, wiederholt der Hub beide Signale gleichzeitig zum Senden aller anderen Hub-Schnittstellen, und beide empfangenen Signale kollidieren somit beim Senden der anderen Schnittstellen Sie haben eine Kollision, bei der alle anderen Schnittstellen Müllsignale haben, da es sich um zwei Signale gleichzeitig handelt. Die Hosts, die gleichzeitig senden und ein anderes Signal hören, stellen fest, dass mehrere gleichzeitig senden, und stellen fest, dass eine Kollision vorliegt.
Stellen Sie sich das so vor, dass der Empfang jeder Hub-Schnittstelle mit dem Senden jeder anderen Schnittstelle verbunden ist. Innerhalb des Hubs sind Senden und Empfangen verbunden, auch wenn sie an der Schnittstelle getrennt sind.
Vergleichen Sie dies mit einem Switch, bei dem jede Verbindung an der Switch-Schnittstelle abgeschlossen ist und der Switch die Schnittstellen nicht miteinander verdrahtet hat. Stattdessen verfügt der Switch über eine Logik (normalerweise in die Hardware eingebettet), die festlegt, wohin Frames gesendet werden sollen, die er an einer Schnittstelle empfängt, und um Kollisionen im Switch zu vermeiden.
Ein Switch ist eine Brücke mit hoher Dichte. Die ursprünglichen Bridges waren wie PCs mit mehreren Schnittstellen. Sie würden von einem PC mit mehreren Schnittstellen keine Kollisionen erwarten, wenn er auf mehreren Schnittstellen gleichzeitig Frames empfangen würde.
Bearbeiten:
Ihre Kommentare lassen mich glauben, dass Sie immer noch nicht verstehen, was ich oben über Hubs geschrieben habe.
Die Art und Weise, wie Kollisionen bei Verwendung von UTP erkannt werden und ein Hub von den sendenden Geräten während des Sendens ein anderes Signal empfängt. Wenn ein Gerät, das UTP verwendet, für Halbduplex konfiguriert ist, glaubt es, dass eine Kollision vorliegt, wenn es beim Senden ein Signal hört.
Wenn Sie eine Duplex-Nichtübereinstimmung haben, sendet das für Vollduplex konfigurierte Gerät problemlos, während es von dem für Halbduplex konfigurierten Gerät empfängt. Andererseits glaubt das für Halbduplex konfigurierte Gerät, dass beim Senden eine Kollision vorliegt, und hört dieses Signal von dem für Vollduplex konfigurierten Gerät. Dies verursacht alle Arten von Problemen, da das für Halbduplex konfigurierte Gerät den Frame nicht mehr sendet (was zu einem Runt führt) und ein Störsignal sendet, das das für Vollduplex konfigurierte Gerät nicht erwartet. Das für Vollduplex konfigurierte Gerät hört dann auf, seinen Frame zu senden.
quelle
Gute Frage.
Im Vollduplex-Modus gibt es einen dedizierten Kanal für den Verkehr von "links nach rechts" und einen dedizierten Kanal für den Verkehr von "rechts nach links":
Daher sind Kollisionen im Vollduplexmodus nicht möglich - auch wenn beide Netzwerkkarten gleichzeitig senden.
Im Halbduplex-Modus wird für den Datenverkehr in beide Richtungen jeweils nur eine Richtung verwendet. Während es also physisch noch dedizierte Kanäle gibt, protokolliert eine Netzwerkkarte, die während der Übertragung etwas empfängt, dies als Kollision. Die Bits / Signale "kollidieren" nicht auf der Leitung - ein Kollisionszähler wird einfach inkrementiert, wenn die Netzwerkkarte gleichzeitig empfängt und sendet.
quelle
Mit Twisted Pair und einem Repeater-Hub ist der Hub nicht viel mehr als ein digitaler Verstärker. Dazu erkennt er einen Träger anhand eines ankommenden Signals an einem Port und schaltet alle anderen Ports in den Ausgangsmodus. In diesem Ausgabemodus ist jeder zusätzliche eingehende Träger eine Kollision. Dies löst ein Stausignal aus, um die Kollision weiterzuleiten und den Sender aufhören zu lassen, zu senden.
Diese Wiederholungsmethode ahmt das Verhalten der vorherigen Ethernet-Varianten mit gemeinsam genutzten Medien (10BASE5 und 10BASE2) nach, bei denen der Repeater nur als physische Segmentverbindungen oder Line Extender verwendet wurde. Natürlich haben Sie Recht: Twisted Pair ist ein Vollduplex-Medium auf Kabelebene, bei dem eine Kollision nur auf der oberen physischen Ebene und nicht auf dem Kabel selbst auftritt.
Ein Repeater kann nicht mehr als einen Absender gleichzeitig zulassen. Mehrere gleichzeitige Übertragungen würden sich an den Ausgangsanschlüssen mischen und unverständliches Rauschen erzeugen. Ebenso geht jeder Knoten im Halbduplexmodus von einem gemeinsam genutzten Medium aus, das nicht in der Lage ist, Vollduplex zu übertragen. Jeder Träger, der während des Sendens erfasst wird, ist eine Kollision, die dazu führt, dass sich der Absender zurückzieht. Es spielt keine Rolle, ob das Medium vollduplexfähig ist (Glasfaser, Twisted Pair) oder nicht (Koax).
Bei einer Duplexfehlanpassung befindet sich ein Verbindungsende im Halbduplexmodus und das andere im Vollduplexmodus. Wenn nun die Halbduplex-Seite (HDX) sendet, bewirkt jeder Träger auf seinem Empfänger, dass eine Kollision erkannt wird. Die Vollduplex-Seite (FDX-Seite) sendet möglicherweise problemlos, während sie von der HDX-Seite empfängt, und nimmt die Kollisionen, die sie auf der Gegenseite verursacht, nicht wahr. Die HDX-Seite muss die Übertragung abbrechen und ein Stausignal senden. Da die FDX-Seite die angebliche Kollision nicht erkennen kann, erkennt sie einen partiellen und daher beschädigten Frame.
Niedrigfrequente und kleine Frames haben eine vernünftige Chance, diese Duplexfehlanpassung zu überwinden, sodass
ping
sie tatsächlich funktionieren könnten. Sobald jedoch eine ernsthafte Übertragung in Gang gesetzt werden soll, werden die Übertragungen aufgrund der höheren Frame-Frequenz und der größeren Größe sehr zuverlässig ausfallen.Bei nicht verwalteten Switches kann eine Duplex-Nichtübereinstimmung sehr schwer zu erkennen sein, insbesondere wenn nicht einmal die Host-NICs ihren Duplex-Modus ordnungsgemäß melden.
Bei verwalteten Switches verfügen Sie normalerweise über Portfehlerzähler. Zunehmende Kollisionen auf der einen Seite (HDX) und zunehmende Runts und FCS-Fehler auf der anderen Seite (FDX) sind sehr starke Anzeichen für eine Duplex-Fehlanpassung.
Grundsätzlich empfiehlt es sich, sich auf die automatische Aushandlung zu verlassen, um Duplex-Fehlanpassungen zu vermeiden. Die manuelle Konfiguration der Geschwindigkeit und des Duplexmodus kann zu Abweichungen führen, insbesondere wenn Geräte einige Jahre später ausgetauscht werden. Glücklicherweise ging das gesamte Halbduplex-Schema mit Gigabit Ethernet und schneller verloren.
quelle
Angenommen, Maschine A beginnt, Daten an Maschine B zu senden. Wenn das Paket zu senden beginnt, beginnt Maschine C, andere Daten an Maschine B zu senden. Es gibt nur einen Signalpfad zu Maschine B, sodass die Übertragungen von A und C kollidieren und B möglicherweise nicht kollidieren können Erhalte beide.
Die Tatsache, dass für Übertragungen von Maschine B zu Maschine A und zu Maschine C eine andere Schaltung verwendet wird, hilft nicht. Alles, was passiert, ist, dass A und C gleichzeitig versuchen, an Maschine B zu senden, und dass es nur einen Signalpfad zu Maschine B gibt.
quelle