CSMA/CD: Erklärung des Verfahrens

In einem lokalen Ethernet-Netzwerk treffen für gewöhnlich alle Netzteilnehmer an einem gemeinsamen Übertragungsmedium zusammen – einem Kabel. Dieses Zusammentreffen muss geregelt geschehen, damit es nicht zu Chaos bei der Datenübertragung kommt, was wiederum zum Verlust oder zur Beschädigung von Daten führen kann. In diesem Zusammenhang bietet CSMA/CD ein Verfahren, das die ordnungsgemäße Datenübertragung organisiert.

In einem WLAN ist diese Technik nicht zweckmäßig. Deshalb hat man dort eine Anpassung des Verfahrens in Form von CSMA/CA entwickelt. Auch bei den meisten kabelgebundenen Netzen ist CSMA/CD nicht mehr von Bedeutung, da neue Kabeltechnik andere Möglichkeiten bietet. Dennoch ist es nicht verkehrt, wenn man auch dieses ältere Verfahren versteht.

Was ist CSMA/CD? Eine Definition

CSMA/CD steht für Carrier Sense Multiple Access / Collision Detection. Die Collision Detection ist eine Erweiterung des CSMA-Protokolls. Dieses schafft ein Verfahren, das regelt, wie Kommunikation in einem Netzwerk mit geteiltem Übertragungsmedium ablaufen muss. Die Erweiterung regelt darüber hinaus, wie zu verfahren ist, wenn es zu Kollisionen kommt, also zwei oder mehr Teilnehmer gleichzeitig versuchen, Datenpakete über das Übertragungsmedium (Bus) zu versenden und diese sich gegenseitig stören.

Definition CSMA/CD

Um zu verstehen, wie CSMA/CD funktioniert, ist es sinnvoll, die einzelnen Bestandteile des Begriffs aufzuschlüsseln:

  • Carrier Sense (CS): Die Trägerzustandserkennung regelt, dass alle Netzwerkteilnehmer überprüfen, ob das Medium derzeit frei ist. Erst dann leitet das Protokoll eine Übertragung der Daten ein.
  • Multiple Access (MA): Mehrere Teilnehmer (Computer mit Anschluss an das Netzwerk) teilen sich ein Übertragungsmedium.

  • Collision Detection (CD): Die Kollisionserkennung ist eine Erweiterung des ursprünglichen Protokolls und regelt, wie im Falle einer Kollision von Datenpaketen vorgegangen werden soll.

Ablauf des CSMA/CD-Verfahrens

CSMA/CD ist in mehrere Schritte unterteilt. Der Ablauf orientiert sich dabei an einem normalen Gespräch in einer Gruppe: Für eine vernünftige Kommunikation ist es erforderlich, dass nicht alle Gesprächsteilnehmer durcheinander sprechen, sondern nacheinander, sodass jeder Teilnehmer die Diskussionsbeiträge der anderen voll und ganz verstehen kann. Ganz unbewusst verhalten wir uns bei einem solchen Gespräch nach einem Protokoll: Während jemand anderes spricht, hören wir selbst nur zu.

Nachdem der andere Teilnehmer seinen Beitrag fürs Erste beendet hat, warten wir eine kurze Zeit und fangen erst dann an zu reden, wenn der gleiche Teilnehmer oder ein anderer am Gespräch Beteiligter nicht zu einem neuen Beitrag ansetzt. Sollten wir zufällig gleichzeitig mit jemand anderem anfangen zu sprechen, beenden wir unseren Versuch, warten erneut und starten dann einen neuen.

Einen ganz ähnlichen Ablauf hat auch das CSMA/CD-Verfahren. Zunächst überwacht die Station das Übertragungsmedium. Solange dieses belegt ist, wird die Überwachung fortgeführt. Erst wenn das Medium frei ist, und zwar für eine bestimmte Zeit (im Interframe Spacing), sendet die Station ein Datenpaket. Währenddessen überwacht der Sender aber weiterhin das Überwachungsmedium, um Datenkollisionen zu entdecken. Sollte bis zum Übertragungsende kein anderer Teilnehmer versuchen, seine Daten über das Medium zu schicken, und somit auch keine Kollision entstehen, ist die Übertragung erfolgreich.

Fakt

Kollisionen resultieren in einer Gleichspannungsverschiebung auf dem Kabel. So ist es für die Stationen auch möglich, die Kollisionen zu erkennen.

Wird aber hingegen eine Kollision entdeckt, bricht der Teilnehmer die Übertragung sofort ab und sendet stattdessen ein Störsignal (JAM-Signal), damit auch alle anderen Stationen die Kollision erkennen. Nun wartet der Teilnehmer eine zufällige Zeitdauer (Backoff) und versucht die Übertragung erneut. Der Backoff muss zufällig sein, damit nicht direkt die nächste Kollision entsteht. Da beide Stationen einen zufälligen Wert wählen, ist die Wahrscheinlichkeit, dass beide erneut zur gleichen Zeit einen Transportversuch starten, gering.

Die Übertragungsversuche werden dabei gezählt. Sollten auch die folgenden Versuche scheitern und das Maximum der Versuche (16) erreicht sein, meldet die Station den Fehler an die nächsthöhere Netzwerkschicht und bricht dann die Übertragung endgültig ab. Da es höchst unwahrscheinlich ist, dass ein Netzteilnehmer das Maximum bei einem normalen Vorgang erreicht, kann man in einem solchen Fall von einem Fehler im System ausgehen.

Fakt

Der Ethernet-Stauauflösungsmechanismus Binary Exponential Backoff wird eingesetzt, um dauerhafte Kollisionen zu entschärfen. Bevor dieser nach einer Kollision einen neuen Versuch startet, muss ein Teilnehmer eine Zeit lang warten. Bei dieser Zeitdauer handelt es sich immer um ein zufälliges Vielfaches der sogenannten Slotzeit. Die Slotzeit ist abhängig von der Übertragungsrate und liegt bei wenigen Mikrosekunden. Der Bereich der möglichen Vielfachen verdoppelt sich mit jedem gescheiterten Versuch, sodass die Wahrscheinlichkeit einer gleichzeitigen Übertragung exponentiell geringer wird.

Kollisionen

Um zu erkennen, ob eine Kollision eintritt, überprüft die Station gleichzeitig, ob das gesendete Signal mit dem auf dem Übertragungsmedium identisch ist. Wenn dies nicht der Fall sein sollte, überträgt eine andere Station zeitgleich und verfälscht so das Signal auf dem Bus. Solche Kollisionen treten regelmäßig auf und gehören zum normalen Betrieb eines Local Area Networks (LAN). Mit der Größe des Netzwerkes steigt aber auch die Wahrscheinlichkeit, dass es zu Kollisionen kommt. Größe bezieht sich in diesem Fall nicht nur auf die Anzahl der Teilnehmer, sondern auch auf die Länge der Übertragungswege.

Durch lange Leitungen kann es eher passieren, dass ein Teilnehmer bereits ein Signal losgeschickt hat, dieses aber noch nicht von einem anderen Teilnehmer festgestellt werden konnte. Auch dies führt daher zu mehr Kollisionen und macht das Netzwerk insgesamt langsamer.

Was ist eine Kollisionsdomäne?

Als Kollisionsdomäne versteht man den Bereich eines Netzwerks, in dem sich Teilnehmer ein Übertragungsmedium teilen. Zugriff erhalten die Teilnehmer über das CSMA/CD-Verfahren. Dabei darf die Kollisionsdomäne aber eine bestimmte Größe nicht überschreiten: Netze können nicht beliebig vergrößert werden, wenn weiterhin das Kollisionsverfahren wirksam bleiben soll. Der Grund hierfür liegt in der Geschwindigkeit der Übertragung und im Weg, den diese nehmen muss.

Fakt

Netzwerkprotokolle lassen sich nach dem OSI-Referenzmodell in sieben abstrakte Schichten untergliedern. In der obersten Schicht, der Anwendungsschicht (Application Layer), werden Funktionen für Anwendungen bereitgestellt, womit auch Dateneingabe und -ausgabe für Nutzer möglich ist. Darunter folgen beispielsweise noch Schichten für Transport (hier findet man z. B. TCP) und Vermittlung (hier befindet sich das Internet Protocol). In der untersten Schicht (Physical Layer) geht es darum, die Bits der Computer in ein physikalisches Signal, das zum Übertragungsmedium passt, zu übersetzen. Auf dieser Ebene befindet sich auch die Kollisionsdomäne.

Damit CSMA/CD funktioniert, müssen Fehlermeldungen in einer bestimmten Zeit alle Teilnehmer der Kollisionsdomäne erreichen: Ein Datenpaket läuft von einem Ende der Domäne zum anderen, wo dann eventuell eine Kollision auftritt. Das entsprechende Signal muss die erste Station erreichen, bevor diese mit der vollständigen Übertragung des Datenpakets fertig ist. Ansonsten erkennt die Station nicht, dass die übertragenden Daten bereits beschädigt sind, hält die Übertragung für erfolgreich und das Datenpaket geht verloren. Solche Vorfälle werden „späte Kollisionen“ genannt und führen zum Verlust von Daten.

Mit diesem Wissen und den Informationen über die verwendete Netzwerktechnologie lässt sich dann die maximale Größe einer Kollisionsdomäne berechnen. Geht man von einem klassischen Halbduplex-Ethernet-Netzwerk aus, hat dies eine Datenübertragungsrate von 10 Mbit/s. Das kleinste Datenpaket, welches dementsprechend die kürzeste Zeit für die vollständige Übertragung in Anspruch nimmt und damit der extremste Fall ist, hat eine Größe von 512 Bit (64 Byte). Daraus ergibt sich eine Slotzeit von 51,2 μs (Mikrosekunden). Die Slotzeit beschreibt die Dauer, die ein Signal bis zum Ende der Kollisionsdomäne und wieder zurück brauchen darf.

Daten in Netzwerken werden aber nicht mit Lichtgeschwindigkeit durch den luftleeren Raum geschickt. Man ist an die physischen Gegebenheiten des Übertragungsmediums gebunden. Mit einem Verkürzungsfaktor (engl. „Nominal Velocity of Propagation“, NVP), gibt man daher an, wie viel Prozent der Lichtgeschwindigkeit in dem Medium erreicht wird. So haben die für lokale Netzwerke typischen Twisted-Pair-Kabel einen NVP-Wert von 0,6 und die etwas älteren Koaxialkabel einen Wert von 0,77. Daten können also 180.000 km/s (60 %) oder ca. 230.000 km/s (77 %) der Lichtgeschwindigkeit erreichen.

Aus allen Daten lässt sich so die maximale Ausdehnung einer Kollisionsdomäne berechnen, um die Wirksamkeit vom CSMA/CD zu garantieren:

  • Geschwindigkeit der Daten * Dauer der Sendung = das Doppelte der maximalen Länge
  • 230.000 km/s * 0,0000512s = 11,776 km

Eine Kollisionsdomäne in einem Netzwerk, das auf Koaxialkabeln aufgebaut ist, darf also höchstens eine Ausbreitung von 5,89 km haben. Bei der Berechnung muss man berücksichtigen, dass der Weg der Signale in beide Richtungen betrachtet werden muss. Auch durch die Zwischenschaltung von Signalverstärkern (Repeatern) kann die maximale Größe einer Kollisionsdomäne nicht erweitert werden, da diese keinen Einfluss auf das CSMA/CD-Verfahren haben.

Wie kann man Kollisionen verhindern?

Generell kann man bei Halbduplex-Systemen Kollisionen nicht gänzlich vermeiden. Sie sind eingeplante Störungen und CSMA/CD sorgt dafür, dass Kollisionen zu keinen Problemen bei der Übertragung führen. Dies gilt allerdings nur für den Datenverlust. Die Übertragungsgeschwindigkeit nimmt durch viele Kollisionen ab. Wie entstehen zu viele Kollisionen? Durch zu viele Teilnehmer in einer Kollisionsdomäne steigt die Zahl der Kollisionen und damit die Anzahl der Verzögerungen. In sehr schlechten Fällen kann es dazu kommen, dass nur noch 30 Prozent der eigentlichen Geschwindigkeit erreicht werden.

Damit es nicht so weit kommt, lohnt es sich, kleinere Kollisionsdomänen zu bilden. Dafür muss das Netzwerk aufgeteilt werden. Hierfür verwendet man Switches oder Bridges – beide arbeiten auf der Basis von MAC. Media Access Control funktioniert auf der zweiten (also nächsthöheren) OSI-Schicht, der Sicherungsschicht (Data Link). Dabei ist es sinnvoll, die Teilnetze so zu bilden, dass Stationen zusammenliegen, die ohnehin viel miteinander kommunizieren müssen. So verhindert man, dass Engpässe an den Bridges den Geschwindigkeitsgewinn wieder zunichtemachen.

Halbduplex vs. Vollduplex

In der Netzwerktechnik wird zwischen Halbduplex und Vollduplex unterschieden. Beide Modelle hängen mit der verwendeten Technik zusammen. Grundsätzlich bezeichnet Duplex im Kontext von Netzwerken oder anderen Kommunikationstechniken die Möglichkeiten in Bezug auf die Datenübermittlung. So lässt Halbduplex eine Übertragung zu einem Zeitpunkt immer nur in eine Richtung zu. Bei Vollduplex hingegen kann eine Station jederzeit sowohl senden als auch empfangen.

Darüber hinaus kennt die Netzwerktechnik auch noch Simplex und Dual-Simplex. Ersteres lässt eine Übertragung nur in eine Richtung zu, und das zu jedem Zeitpunkt. Ein gutes Beispiel hierfür ist der Rundfunk. Dort ist es nur möglich zu senden, niemals zu empfangen. Dual-Simplex hingegen entspricht eher dem Prinzip von Vollduplex: Zu jedem Zeitpunkt ist sowohl Senden als auch Empfangen möglich. Im Gegensatz zu Vollduplex geschieht dies aber über zwei verschiedene Wege.

Die Unterscheidung zwischen Halbduplex und Vollduplex hat eine deutliche Auswirkung auf das CSMA/CD-Verfahren: Gerade der Umstand, dass bei Halbduplex immer nur eine Übertragung möglich ist, fordert eine Maßnahme, Kollisionen zu vermeiden. Greifbar wird dies, wenn man sich den Übertragungskanal als einspurige Straße vorstellt. Kommt Verkehr gleichzeitig aus beiden Richtungen, führt dies zu einer Kollision. Vollduplex hingegen ist jederzeit zweispurig. Der Verkehr kann aus beiden Richtungen flüssig aneinander vorbei laufen. Deshalb ist in Netzwerken, die Vollduplex einsetzen, keine Carrier Sense Multiple Access / Collision Detection notwendig: Kollisionen können nicht auftreten.

Die Duplex-Art ist an die technischen Bedingungen geknüpft und ganz konkret an die verwendeten Kabelarten. Netzwerke, die mit Koaxialkabeln verbunden sind, können nur im Halbduplex-Modus laufen. Erst mit der Einführung von Twisted-Pair- und Glasfaserkabeln war Fullduplex möglich. Parallel dazu bedeutet dies auch, dass Fast Ethernet (100 Mbit/s) und Gigabit Ethernet (1 Gbit/s) überwiegend als Full-Duplex-Netzwerke realisiert werden und somit CSMA/CD nur noch eine geringe Rolle in der Praxis spielt.

CSMA/CD vs. CSMA/CA

Neben der Erweiterung von Carrier Sense Multiple Access durch Collision Detection kann der Medienzugang auch durch Collision Avoidance zu CSMA/CA erweitert werden. Letzteres ist vor allem im Hinblick auf drahtlose Verbindungen nötig. CSMA/CD funktioniert aus verschiedenen Gründen nicht gut in Funknetzen. Zentral hierbei ist das Hidden-Station-Problem. Dies tritt auf, wenn zwei Stationen sich gegenseitig nicht wahrnehmen, aber gleichzeitig mit einer dritten Station in der Mitte kommunizieren – was unweigerlich zu Kollisionen führt.

CSMA/CA hingegen versucht – wie der Name sagt – Kollisionen zu vermeiden, statt diese nur zu erkennen. Im Falle einer Kollision wird ein entsprechendes Protokoll etabliert. So gesehen handelt es sich bei CSMA/CA um eine Anpassung von CSMA/CD an ein anderes Übertragungsmedium.