CSMA/CD

Aus Foxwiki

topic kurze Beschreibung

Beschreibung

Installation

Anwendungen

Fehlerbehebung

Syntax

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

TMP

CSMA/CD

Es ist wichtig, zu verstehen, dass mit dem Namen Ethernet gar keine einheitliche Netzwerkhardware bezeichnet wird.

  • Vielmehr handelt es sich um einen Sammelnamen für diverse Netzwerkstandards, die ein bestimmtes Netzzugangsverfahren verwenden.
  • Insofern sind alle Ethernet-Varianten auf der OSI-Schicht 2 identisch, unterscheiden sich aber auf der untersten Schicht.

Als der Vorläufer von Ethernet Ende der 60er-Jahre des vorigen Jahrhunderts an der Universität von Hawaii konzipiert wurde (anfangs unter dem geografisch passenden Namen ALOHANet), handelte es sich zunächst um Datenfunk.

  • Diesem Umstand ist übrigens auch der endgültige Name zu verdanken: ether, zu Deutsch Äther, ist das gedachte Medium, durch das sich Funkwellen fortpflanzen.
  • Erst in den 70er-Jahren wurde dasselbe Netzzugangsverfahren auch für die Datenübertragung per Kabel eingesetzt, und zwar zunächst über Koaxialkabel.

Das gemeinsame Netzzugangsverfahren aller Ethernet-Formen trägt den Namen CSMA/CD: Carrier Sense Multiple Access with Collision Detection.

Schematisch gesehen funktioniert dieses Verfahren wie folgt
  1. Ein Gerät, das Daten senden möchte, lauscht den Netzabschnitt ab, um festzustellen, ob dieser gerade frei ist, das heißt, ob gerade kein anderes Gerät sendet (Carrier Sense).
  2. Wurde in Schritt 1 festgestellt, dass der Netzabschnitt frei ist, beginnt die Station mit dem Senden der Daten.
  • Möglicherweise hat auch eine andere Station festgestellt, dass das Netz frei ist, und beginnt gleichzeitig ebenfalls mit dem Senden (Multiple Access).
  1. Falls auf die beschriebene Art und Weise zwei Stationen gleichzeitig mit dem Senden begonnen haben, findet eine sogenannte Datenkollision statt, die von den beteiligten Stationen entdeckt wird (Collision Detection).
  • Eine Station, die eine Kollision bemerkt, stellt das Senden von Nutzdaten ein und versendet stattdessen eine Warnmeldung (Jam Signal).
  1. Eine Station, die wegen einer Datenkollision das Senden abgebrochen hat, beginnt nach einer zufällig gewählten Zeitspanne von wenigen Millisekunden erneut mit dem Senden.
  • Genau diese Zufälligkeit der Zeitspanne, die nach einem komplizierten Verfahren berechnet wird, ist enorm wichtig, damit die beiden Stationen beim nächsten Versuch nicht wieder genau gleichzeitig mit dem Senden beginnen.

Das große Problem von Ethernet besteht darin, dass das CSMA/CD-Verfahren umso ineffektiver wird, je frequentierter der jeweilige Netzabschnitt ist: Ab einem gewissen Grenzwert überschreitet die Anzahl der Datenkollisionen die Menge der Nutzdaten.

  • Heutzutage umgeht man dieses Problem in der Regel durch die Verwendung sogenannter Switches, die für zwei miteinander kommunizierende Stationen jeweils eine exklusive Punkt-zu-Punkt-Verbindung einrichten.
  • Wo diese Möglichkeit aufgrund veralteter, inkompatibler Hardware nicht zur Verfügung steht, muss ein Netz mit viel Datenverkehr stattdessen segmentiert, das heißt in kleinere Abschnitte unterteilt werden.

Wikipedia

8-Port-Ethernet-Hub mit Anzeige von Kollisionen (2. LED von rechts, gelb)

Der englische Begriff Carrier Sense Multiple Access/Collision Detection (CSMA/CD) (zu Deutsch: „Mehrfachzugriff mit Trägerprüfung und Kollisionserkennung“) bezeichnet ein asynchrones Medienzugriffsverfahren (Protokoll), das den Zugriff verschiedener Stationen (beispielsweise Computer samt ihren Netzwerkanschlüssen) auf ein gemeinsames Übertragungsmedium regelt. Auf dem gemeinsamen Übertragungsmedium muss gleichzeitiges Senden und „Lauschen“ möglich sein, wie z. B. im Stromnetz (siehe dLAN) oder bei Ethernet über Koaxialkabel. CSMA/CD ist eine Erweiterung von CSMA. Verwendung findet CSMA/CD beispielsweise im Bereich der Computernetze beim PowerLAN; für Ethernet ist er als IEEE 802.3 standardisiert worden. Bei Wireless LANs wird ein deutlich anderer Mechanismus namens Carrier Sense Multiple Access/Collision Avoidance (CSMA/CA) benutzt. Der im Automobilbereich verwendete CAN-Bus verwendet einen Mechanismus namens Carrier Sense Multiple Access/Collision Resolution (CSMA/CR).

Funktion bzw. Ablauf

Funktionsdarstellung in einem Programmablaufplan

Wenn ein Gerät Daten senden möchte, hält es sich an folgenden Ablauf:

1. Horchen: Zuerst muss das Medium überwacht werden, ob es belegt ist.
→ Frei: Wenn das Medium eine bestimmte Zeit lang (IFS) frei ist, weiter mit Schritt 2.
→ Belegt: Weiter mit Schritt 1.
2. Senden: Informationsübertragung, zugleich wird das Medium fortwährend weiter abgehört.
→ Erfolg (keine Kollision bis Übertragungsende): Übertragung ist erfolgreich abgeschlossen und es wird eine Erfolgsmeldung an höhere Netzwerkschichten gemeldet; weiter mit Schritt 5.
→ Kollision: Wird eine Kollision entdeckt, beende die Datenübertragung und sende ein kurzes, definiertes Störsignal (jam) auf die Leitung, um sicherzustellen, dass alle anderen Transceiver die Kollision ebenfalls erkennen, dann weiter mit Schritt 3.
3. Leitung ist belegt: Überprüfung der Anzahl der Übertragungsversuche:
→ Maximum nicht erreicht: Eine zufällige Zeit (Backoff, s. u.) abwarten, dann wieder bei Schritt 1 beginnen.
→ Maximum erreicht: Weiter mit Schritt 4.
4. Fehler: Maximale Anzahl von Übertragungsversuchen wurde überschritten. Ein Fehler wird an die höheren Netzwerkschichten gemeldet, weiter mit Schritt 5.
5. Ende: Übertragungsmodus verlassen

Kollisionen und Kollisionserkennung

Vorlage:Hauptartikel

Bei Netzübertragungsverfahren wie Ethernet findet eine paketorientierte Datenübertragung in Datagrammen (Datenframes) auf einem gemeinsam genutzten Medium (Funk, Kabel), oder abstrakter, innerhalb einer gemeinsamen Kollisionsdomäne statt. Es wird weder ein endloser Datenstrom erzeugt noch werden Zugriffe auf das Medium irgendwo zentral deterministisch gesteuert. Daher ist es möglich, dass mehrere Stationen dasselbe Medium (z. B. Koaxialkabel) zeitgleich verwenden wollen. Hierdurch können Kollisionen entstehen, welche die übertragenen Signale unbrauchbar machen. Um dies zu handhaben, wird das CSMA/CD-Verfahren eingesetzt. Aufgabe des CSMA/CD-Verfahrens ist es, auftretende Kollisionen zu erkennen, zu reagieren und zu verhindern, dass sie sich wiederholen.

Von einer Kollision spricht man, wenn sich zwei (oder mehr) Signale gleichzeitig auf einer gemeinsamen Leitung befinden. Dabei überlagern sich die beiden elektrischen Signale zu einem gemeinsamen Spannungspegel. Die Folge ist, dass der Empfänger das elektrische Signal nicht mehr in die einzelnen logischen Signale (Bits) unterscheiden kann.

Das Verfahren ist, verglichen mit Token-Passing-Verfahren (z. B. Token Ring) oder Master-kontrollierten Netzen (z. B. ISDN), relativ einfach, was auch entscheidend zu seiner Verbreitung beigetragen hat. In moderneren Ethernetsystemen (z. B. Fast Ethernet) werden überwiegend Punkt-zu-Punkt-Verbindungen verwendet, bei denen Sende- und Empfangsmedium getrennt sind und somit keine Kollisionen mehr entstehen können. Hierzu werden gepufferte aktive Verteiler (Switches) eingesetzt.

Physische Kollisionserkennung

Signale sind beispielsweise als Spannungspegel messbar, wobei eine Überlagerung von Signalen eine Addition der Spannungspegel bedeutet. Eine Kollision von Signalen kann dabei zur Überschreitung eines Schwellwertes der Gleichspannungsanteile führen, oder andere für „gültige Signale“ definierte Signal-Eigenschaften verletzen. Diese Abweichung kann von allen (auch den momentan unbeteiligten) Kommunikationspartnern erkannt und als Kollision identifiziert werden.

Zusammenhang: Netzwerkausdehnung und Kollisionserkennung

Datei:Csma-cd-roundtrip.svg
Zeigt das Senden von Alpha nach Omega

Eine Kollision muss insbesondere vom Sender erkannt werden, damit er eine Sendewiederholung durchführen kann. Abhängig von der Übertragungsrate, der Signalausbreitungsgeschwindigkeit und der maximalen Distanz der Teilnehmer ergibt sich eine minimale Paketlänge (eigentlich Framelänge), damit garantiert werden kann, dass eine Kollision den Sender noch erreicht, bevor er sein Paket komplett gesendet hat (und als „fehlerfrei übertragen“ einstufen würde). Die Sendedauer für einen Frame minimaler Länge muss daher so dimensioniert sein, dass die maximale RoundTripDelayTime (RTDT) nicht unterschritten wird – also die Zeit, die ein Datenpaket[Anmerkung_Coll 1] benötigt, um vom einen Ende des Netzes zum weitestentfernten anderen Ende des Netzes zu gelangen – und wieder zurück. Dadurch wird sichergestellt, dass eine Kollision, die erst kurz vor dem zweiten Sender auftritt (ungünstigster Fall[Anmerkung_Coll 2]), sich noch bis zum ersten Sender ausbreiten kann, bevor dieser das Senden beendet hat. Somit erkennt der Sender die Kollision, weiß dass sein Frame nicht richtig beim Empfänger ankommen konnte und sendet den Frame erneut.

Damit die Kollisionserkennung zuverlässig funktioniert, wurde eine maximal zulässige Netzwerkausdehnung und eine dazu passende minimale Framelänge (64 Byte) für Ethernet festgelegt. Sollen „zu kurze“ Frames übertragen werden, müssen diese dazu nötigenfalls auf eine zulässige minimale Paketlänge verlängert werden. Wären die Pakete zu klein, was die gleiche Wirkung wie ein zu großes Netz (zu hohe RTDT) hätte, könnte es zu vom Sender unerkannten Kollisionen kommen, und der gesamte Netzverkehr könnte beeinträchtigt werden. Solche Störungen sind tückisch, da Übertragungen bei niederer Netzlast oder auch bei bestimmten Paketgrößen normal funktionieren können. In die RTDT gehen auch Repeater und Hubs ein, die messbare Verzögerungszeiten bewirken, jedoch keine „Mediums-Ausdehnung“ haben. Daher ist es praktikabler, von Zeiten als von Mediumslängen zu sprechen.

  1. Für die Festlegung der RoundTripDelayTime muss nicht ein ganzes Datenpaket vom einen bis zum anderen Ende des Mediums und wieder zurück gelangen - es genügt ein Beginn-Abschnitt, der ausreichend lang für eine zuverlässige Kollisionserkennung ist.
  2. Ungünstigster Fall: Sender_1 und Sender_2 befinden sich an den äußersten Enden eines maximal langen Mediums, Sender_2 beginnt zu senden, als ihn das Signal von Sender_1 fast erreicht hat.

Beispiel

In einem Netz mit maximaler Ausdehnung (~maximale RoundTripDelayTime) sind die Stationen Alpha und Omega die beiden am weitesten auseinanderliegenden Stationen. Das Medium ist frei und Alpha beginnt mit der Übertragung. Bis Omega bemerkt, dass Alpha sendet, dauert es genau eine halbe RoundTripDelayTime – die Zeit, welche die Signale von Alpha brauchen, um bis zur Station Omega zu gelangen. Hat nun Omega auch etwas zu übertragen und beginnt unmittelbar vor dem Eintreffen der Signale von Alpha mit dem Senden – als aus Sicht von Omega die Leitung ja noch frei war – kommt es zunächst knapp vor Omega zur Kollision. Omega bemerkt die Störung seiner Aussendung, sendet „JAM“ und bricht das Senden ab. Bis jetzt auch Alpha die Kollision bemerkt, dauert es noch eine weitere halbe RTDT – die Zeit, welche die (ersten) Signale von Omega brauchen, um bis zur Station Alpha zu gelangen. Damit Alpha die Kollision bemerkt (und später eine Sendewiederholung initiieren kann), muss Alpha also noch solange weiter senden, bis ausreichend Signale von Omega eingetroffen sind. Außerdem müssen alle Stationen, die das (Teil-)Paket von Alpha empfangen haben, (rechtzeitig) über die Kollision informiert werden (-> JAM). Die minimale Sendedauer (~ minimale Paketgröße) muss also stets größer sein als die RTDT (~ doppelte maximale Signallaufzeit des Netzes).

Beispielrechnung für die maximale Länge

Um die maximale Ausdehnung zwischen zwei Stationen zu berechnen, bei der eine Kollisionserkennung noch gewährleistet ist, gilt:

, Signalgeschwindigkeit und Sendedauer

Die Signalgeschwindigkeit ergibt sich aus der Lichtgeschwindigkeit , multipliziert mit dem Verkürzungsfaktor VKF. Bei Koaxialkabel beträgt dieser ca. 0,7.

Die Sendedauer berechnet sich aus der Übertragungsdauer für ein Bit, multipliziert mit der Anzahl der Bits. Die Anzahl der Bits beträgt bei einem Ethernetframe 512 (=64 Byte). Dies umfasst nur den eigentlichen Datenrahmen, zu dem noch die 8 Byte der Präambel und des so genannten Start of Frame Delimiter hinzugefügt werden muss, in Summe also 576bit (72 Byte).[1]

Die Übertragungsdauer eines Bits hängt von der Bitübertragungsgeschwindigkeit ab. Bei 10 MBit/s dauert ein Bit 100 ns. Somit dauert der minimale Ethernet-Rahmen 57,6 µs.

Die maximale Länge bei 10BASE5 beträgt 2500 m, bei 10BASE2 nur 185 m. Die Kollisionserkennung ist gewährleistet.

Kollisionserkennung

Damit die Kollision festgestellt und eine Sendewiederholung initiiert werden kann, müssen die Datenframes abhängig von der Leitungslänge eine bestimmte Mindestlänge haben – das Störsignal des zweiten Senders muss den ersten erreichen, bevor dieser sein Datenpaket beendet hat (und als „kollisionsfrei gesendet“ betrachtet).

  • Diese Mindestlänge ergibt sich aus der Signalgeschwindigkeit und der Übertragungsrate.
  • Bei einer Übertragungsrate von 10 Mbit/s und einer maximalen Entfernung von 2,5 km zwischen zwei Stationen ist eine Mindestlänge von 64 Byte (14 Byte Header, 46 Byte Nutzdaten, 4 Byte CRC) vorgeschrieben.
  • Kleinere Datenframes müssen entsprechend aufgefüllt werden.
  • Für eine Übertragungsrate mit 10 Mbit/s (Standard-Ethernet) sind eine maximale Segmentlänge von 100 m sowie vier Repeater erlaubt.
  • Damit können zwei Stationen bis zu einer Distanz von 500 m direkt verbunden werden.
  • Bei höheren Übertragungsraten und maximaler Segmentlänge reduziert sich die Anzahl der Repeater aufgrund der physikalischen Abhängigkeiten.
  • So sind bei Fast-Ethernet (100 Mbit/s) nur zwei Repeater und bei Gigabit-Ethernet (1000 Mbit/s) ein Repeater erlaubt.
  • Bei 1-Gbit/s-Ethernet (1000 Mbit/s) im (allerdings eher hypothetischen) Halbduplex-Betrieb werden kleine Frames im Ethernet-Paket auf 520 Byte verlängert, um noch eine sichere Kollisionserkennung bei sinnvoller physischer Netzwerkgröße zu erlauben.[2]

Auch wenn die Norm IEEE 802.3 den Namen „CSMA/CD“ im Titel hat, spielt die Kollisionsauflösung heute nur mehr in geringem Maße eine Rolle.

  • Die meisten Netzwerke werden heute im Vollduplexmodus betrieben, bei dem Teilnehmer (Router, Switches, Endgeräte etc.) mittels Punkt-zu-Punkt-Verbindung die Sende- und Empfangsrichtung unabhängig voneinander nutzen können und somit keine Kollisionen mehr entstehen.
  • Trotzdem blieb das Frame-Format, insbesondere der Frame-Header und die für die Kollisionserkennung vorgeschriebene minimale Frame-Länge, bis hinauf zu 400-Gbit/s-Ethernet, unverändert.[3]

Das Backoff-Verfahren bei Ethernet

Diagramm des Ablaufverfahrens

Muss die Übertragung wegen eines Konflikts abgebrochen werden, so käme es unmittelbar zu einem erneuten Konflikt, wenn die beteiligten Sendestationen sofort nach dem Abbruch erneut senden würden. Sie müssen daher eine im Allgemeinen unterschiedlich lange Pause einlegen, sodass nur eine der Stationen als erste ihr Senden wiederholt.

Bei Ethernet wählen die Konfliktparteien hierzu eine zufällige ganze Zahl z aus dem Intervall (das sog. Contention Window), wobei i für die Anzahl der bereits in Folge aufgetretenen Konflikte steht. Der Bereich der möglichen Warte-Zeitabschnitte steigt also exponentiell, daher wird dieses Verfahren Binary Exponential Backoff genannt. Die Sendestation wartet nun den Zeitraum von z * Slot_time (s. o.) ab und sendet danach erneut, falls das Medium frei ist. Die Station mit dem kleinsten z erfährt keinen Konflikt mehr, sofern die anderen Kollisionsbeteiligten nicht denselben z-Wert gezogen haben.

Da die Streuung der möglichen Wartezeiten exponentiell mit der Anzahl der aufgetretenen Folgekollisionen wächst, ist die Wahrscheinlichkeit sehr gering, dass viele Konflikte hintereinander auftreten, da die Konfliktparteien hierzu regelmäßig dieselbe Zufallszahl ziehen müssten. Daher wird nach 16 Konflikten in Folge der Sendeversuch abgebrochen und ein Systemfehler angenommen.

Der Nachteil der Methode ist, dass rechnerisch keinerlei Garantie herrscht, dass ein Paket zu einem bestimmten Zeitpunkt bereits angekommen ist. Der Übertragungserfolg hat lediglich eine gewisse Wahrscheinlichkeit. Das Verfahren ist also nicht echtzeitfähig, wie es etwa bei Token Ring der Fall ist.

Aufgrund der auftretenden Kollisionen ist es nicht möglich, die theoretische Übertragungskapazität eines Mediums voll auszuschöpfen. In der Praxis kann man davon ausgehen, dass sich im günstigsten Fall etwa 70 % der Nominalleistung erzielen lassen, unter ungünstigeren Bedingungen sind es unter 30 %. Je mehr Rechner sich im Netzwerk beteiligen und je höher die Auslastung steigt, desto mehr Kollisionen treten auf, und der reell erzielte Datendurchsatz sinkt deutlich ab.

CSMA/CD und der Duplex-Modus

CSMA/CD ist der Sicherungsschicht des OSI-Modells zuzuordnen. Es wird von der Ethernetschnittstelle (z. B. Netzwerkkarte) durchgeführt, soweit diese im Halbduplex-Modus betrieben wird – das Netzwerk hat hier signaltechnisch eine Bus-Topologie.

Ethernet-Netze können auch in (signal-technischer) Stern-Topologie verschaltet sein, wobei die einzelnen Anschlüsse zu Punkt-zu-Punkt-Verbindungen werden. Hier kann die Schnittstelle in den Vollduplex-Modus umkonfiguriert werden (mitunter automatisch), was CSMA/CD abschaltet, da hier keine Kollisionen mehr auftreten können. Somit kann die Schnittstelle gleichzeitig senden und empfangen.

Auch gibt es gänzlich kollisionsfreie Übertragungsprinzipien wie das Token Passing, es kommt z. B. bei ARCNET oder Token Ring zum Einsatz.

Literatur

  • Gerhard Schnell und Bernhard Wiedemann: Bussysteme in der Automatisierungs- und Prozesstechnik.Vieweg + Teubner Verlag, Wiesbaden 2008, ISBN 978-3-8348-0425-9.

Weblinks

  1. IEEE 802.3 Clause 3.2.10 Extension Field, IEEE 802.3 Clause 4.2.3.4 Carrier extension (half duplex mode only)
  2. Vorlage:Cite web