Kollisionen in CSMA / CD-Ethernet

6098
Baran

Ich bin verwirrt über Kollisionen in CSMA / CD-Ethernet. Wann wird ein Jam-Signal gesendet? Warum werden Jam-Signale gesendet? Wenn zwei gleichzeitige Paketübertragungen miteinander interferieren, können die beiden sendenden Knoten wissen, dass die Spannung überdimensioniert ist, sodass sie ihre Übertragungen beenden und dann ein 32-Bit-Jam-Signal übertragen können. Warum aber? Kann jemand alle Ereignisse nacheinander in zeitlicher Abfolge schreiben?

4
Benötigt dies das "Hausaufgaben" -Tag? Spiff vor 13 Jahren 2

1 Antwort auf die Frage

11
Spiff

Beachten Sie zunächst, dass moderne Switched Ethernet LANs nicht mehr CSMA / CD sind. CSMA / CD war eine Technik, die auf Ethernets mit 10 MBit / s und 100 MBit / s angewendet wurde, die Hubs und nicht Switches verwendeten. Und ehrlich gesagt gab es nie viele 100BASE-TX-Hubs; Jeder ging damals um. Die Gigabit-Ethernet-Spezifikation (1000BASE-T) erfordert Switches. Es gibt keinen GigE-Hub.

Auf modernen Switched Ethernets haben Sie kein gemeinsames Medium mehr. Wenn Sie an einen Switch angeschlossen sind, befindet sich die "Kollisionsdomäne" nur zwischen Ihnen und Ihrem Switch-Port. Und wenn Sie sich im Vollduplex-Modus befinden, was bei Switches fast immer der Fall ist, haben Sie überhaupt keine Möglichkeit einer Kollision. Wenn Sie keine Kollision haben, werden Sie nie eine Kollision erkennen, sodass Sie keinen Grund haben, ein Jam-Signal zu senden.

Also, in den Tagen von Hubs (und gemeinsam genutzten Kabeln wie Thinnet / Cheapernet / 10BASE-2 Coax und Thicknet 10BASE-5), hat es so funktioniert:

Stellen Sie sich vor, Sie verfügen über ein großes 10BASE-T-LAN mit vielen Hubs und maximalen Kabellängen, wobei die "Repeater-Regel" von maximal 4 Repeatern (Hubs) zwischen zwei beliebigen Geräten im LAN maximal ist. Aufgrund von Verzögerungen der Signalausbreitung über die Hubs kann es sein, dass die IEEE-Spezifikation maximal 232 Bit-Zeiten benötigt, bis ein von Host A übertragenes Signal den am weitesten entfernten Host im Netzwerk erreicht (Host B).

Stellen Sie sich nun vor, Host A beginnt mit der Übertragung eines Frames, und Host P beginnt am anderen Ende des Netzwerks, 232 Bit-Zeiten entfernt, mit dem Übertragen eines Frames, und zwar nur 231 Bit, nachdem Host A mit dem Senden begonnen hat. Aufgrund von Laufzeitverzögerungen im Netzwerk wusste Host B nicht, dass Host A bereits 231 Bits übertragen wurde, als Host B das erste Bit seiner Präambel sendete. Nun erkennt Host B diese Kollision innerhalb der ersten, beispielsweise 32 Bit der Übertragung von Host B, was etwa 232 bis 264 Bit-Zeiten früher sein könnte, als Host A sie erkennen wird. Wenn Host B es beim ersten Übertragungsbit erkannt hat und gerade nicht weitergeleitet hat, als er diese Kollision erkannt hat, ist er möglicherweise nicht lange genug auf dem Medium geblieben, sodass Host A ihn auch erkennen und erkennen kann, dass eine Kollision aufgetreten ist ( Sie können' t garantieren, dass der Empfänger die Kollision bereits beim ersten Bit der Kollision erkennt). Das würde dann bedeuten, dass Host A nicht wissen würde, wie er das richtige Kollisionsverfahren durchführen soll. Host B sendet also nicht einfach nur die Übertragung, sondern sendet das Jam-Signal so, dass es lange genug auf dem Medium bleibt, um sicherzustellen, dass Host A erkennt, dass eine Kollision aufgetreten ist.

Dies ist auch der Grund dafür, dass Ethernet-Frames eine Mindestlänge von 64 Bytes haben. Dies garantiert, dass Host A so lange auf dem Medium bleibt, dass eine Kollision auf der anderen Seite des Netzwerks erkannt werden kann und das Jam-Signal von Host B den gesamten Rückweg über das Netzwerk erreichen kann, so dass Host A ist immer noch auf dem Medium, wenn das Jam-Signal durchkommt, und kann somit feststellen, dass jemand mit seiner Übertragung kollidiert.

Ist csma / cd für Vollduplexverbindungen nicht erforderlich? Wenn ja, warum? Vereinbart, dass das Senden und Empfangen in zwei getrennten Kabeln erfolgt, so dass keine Kollision auftritt, wenn ein Gerät gleichzeitig sendet und empfängt. Was aber, wenn ein Gerät gleichzeitig Daten aus zwei Quellen empfängt? Dann wird es eine Kollision geben, oder? Ashwin vor 11 Jahren 0
@Ashwin Der Switch müsste einen der beiden Frames zwischenspeichern, die er gleichzeitig empfängt (an zwei separaten Ports, also keine Kollision) und den Sende- vor dem anderen an den Zielhost senden. Spiff vor 11 Jahren 2
Bedeutet das, dass in vollduplex geschalteten Ethernet-Netzwerken ein Ethernet-Frame nicht mehr aus mindestens 64 Byte bestehen muss? Zweitens: Wenn das Gigabit-Ethernet Vollduplex ist, gibt es sogar eine Mindestrahmengröße für Gigabit-Ethernet? vor 9 Jahren 0
@ GeorgeRobinson Das IEEE hat die Anforderung an eine Mindestgröße von 64 Byte nicht aufgehoben, obwohl es bei Switched Ethernet nicht so sehr dem Zweck entspricht, wie dies bei alten Halbduplex-Hub-basierten Netzwerken der Fall war. Spiff vor 9 Jahren 1