Wolfgang Lösch

Contact© Wolfgang Lösch

Lokale Netze (LAN) — Ethernet-Zugriffsverfahren

Stand: 2007 (weitere Aktualisierung eingestellt)

Wer wird im Wettlauf um Marktpositionen der Zukunft gewinnen? Ethernet: der Dinosaurier.

Petra Borowka, Der Netzwerk Insider, Januar 2002

Unter der Bezeichnung Ethernet wurde Anfang der 70er Jahre von der Firma Xerox und dann ab 1980 gemeinschaftlich von den Firmen DEC, Intel und Xerox (DIX-Gruppe) ein CSMA/CD-Verfahren implementiert, das eine Weiterentwicklung des an der Universität von Hawaii entwickelten Aloha-Konzeptes war. Dieses Ethernet-Verfahren diente dann als Grundlage für die CSMA/CD-Spezifikation IEEE 802.3, die schließlich im Jahre 1985 als Internationale Norm ISO 8802-3 übernommen wurde. Die offizielle Bezeichnung für den IEEE-Standard 802.3 lautet Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications.

Eigentlich ist Ethernet also die Bezeichnung für ein Produkt der Firmen Xerox, DEC und Intel, das mit der IEEE-Spezifikation 802.3 über Jahre hinweg sogar inkompatibel war. Inzwischen hat IEEE den 802.3-Standard jedoch so erweitert, dass sowohl das ursprüngliche IEEE-CSMA/CD-Verfahren, als auch das DIX-Ethernet-Verfahren gemeinsam abgedeckt werden. Allerdings ist bis heute nur das ursprünglich im 802.3-Standard beschriebene Verfahren OSI-konform, während sich das DIX-Ethernet-Verfahren, das zur Zeit in der Version II vorliegt, den OSI-Regeln widersetzt.

Im folgenden wird der Begriff Ethernet stets als allgemeiner Oberbegriff für beide Ethernet-Verfahren verwendet. Wenn eine Unterscheidung erforderlich ist, wird besonders darauf hingewiesen.

Aufbau von Ethernet-Rahmen

Die MAC-Schicht arbeitet mit Datenblöcken, die als MAC-Rahmen (MAC Frames) bezeichnet werden. Die maximale Rahmenlänge bei Ethernet beträgt 1518 Byte (ohne Startfelder), die minimale Rahmenlänge beträgt 64 Byte = 512 bit (ebenfalls ohne Startfelder). Einzige Ausnahme: Bei Gigabit-Ethernet im Halbduplex-Betrieb wird die minimale Rahmenlänge durch sogenannte Extension-Bits vergrößert. Die minimale Rahmenlänge wird im folgenden mit Lmin bezeichnet.

Der Aufbau eines Ethernet-Rahmens wird in der folgenden Abbildung gezeigt.

Aufbau eines Ethernet-Rahmens
Preamble
10101010...10101010
7 Byte
Starting Frame Delimiter
10101011
1 Byte
Destination MAC Address 6 Byte
Source MAC Address 6 Byte
Length / Type 2 Byte
MAC Client Data } 46 – 1500 Byte
Padding Bits
Frame Check Sequence 4 Byte
Preamble (Präambel):
Bitsynchronisation (Folge von 10-Bitmustern).
Starting Frame Delimiter (Rahmenstartfeld):
Markierung des Rahmenanfangs (Bitfolge 10101011), Synchronisation auf die Oktett-/Byte-Grenzen.
Destination MAC Address (MAC-Zieladresse):
MAC-Adresse des empfangenden Datenendgerätes.
Source MAC Address (MAC-Quelladresse):
MAC-Adresse des sendenden Datenendgerätes (es sind nur Individual-Adressen möglich).
Length (Länge):
Länge des Datenfeldes in Byte (ohne eventuelle Füllbits). Es gilt: Länge ≤ 1500 (05 DC hex).
Type (Typ):
Identifikation eines in der Netzwerkschicht angesiedelten Protokolls, dessen Daten im Ethernet-Rahmen transportiert werden, mittels einer Typ-Nummer. Es gilt: Typ-Nummer ≥ 1536 (06 00 hex).
MAC Client Data (MAC-Client Daten):
Daten, die der MAC-Schicht von einer höher liegenden Kommunikationsschicht übergeben werden.
Padding Bits (Füllbits):
Füllbits, um den Rahmen (ohne Startfelder) auf mindestens 64 Byte = 512 bit Länge aufzufüllen.
Frame Check Sequence (Rahmenprüfsumme):
32-bit-Rahmenprüfcode durch Cyclic Redundancy Check (CRC).

Datenlänge vs. Typ-Nummer

Wenn in dem mit Length/Type bezeichneten Feld eine Zahl kleiner oder gleich 1500 steht, dann bedeutet dies, dass diese Zahl als Datenlänge interpretiert wird. Außerdem muss dann zwingend in dem Feld MAC Client Data ein LLC-Rahmen transportiert werden. Daten eines anderen Protokolls dürfen hier nicht auftauchen.

Wenn in dem mit Length/Type bezeichneten Feld dagegen eine Zahl größer oder gleich 1536 steht, dann bedeutet dies, dass diese Zahl als Typ-Nummer interpretiert wird. Es handelt sich hierbei um dasjenige Protokoll, dessen Daten im Feld MAC Client Data transportiert werden.

Zahlenwerte größer als 1500 und kleiner als 1536 sind im Feld Length/Type verboten. Die folgende Abbildung zeigt einige bekannte Ethernet-Protokolltypen.

Einige Ethernet-Protokolltypen
Typ-Nummer Protokoll
hex dez
08 00 2048 Internet Protocol (IP)
08 06 2054 Address Resolution Protocol (ARP)
81 37 33079 Novell Internetwork Packet Exchange (IPX)

Halbduplex-Betrieb

Beim Medienzugriff muss man unterscheiden zwischen Halbduplex-Betrieb und Vollduplex-Betrieb. Während Halbduplex-Ethernet das ursprüngliche, klassische, auf dem CSMA/CD-Algorithmus basierende Ethernet darstellt, ist Vollduplex-Ethernet eine Weiterentwicklung, die kein CSMA/CD mehr verwendet.

CSMA/CD-Algorithmus

Ethernet im Halbduplex-Betrieb basiert auf dem Zugriffsverfahren Persistent-CSMA/CD . Der Ablauf ist in der folgenden Abbildung skizziert.

Ethernet-Algorithmus
Ethernet-Algorithmus
  1. Das sendebereite Datenendgerät hört das Medium ab, was als Listen before Talking (LBT) bezeichnet wird.
  2. Findet es das Medium frei, wartet es noch eine kurze, als Interframe Gap bezeichnete Zeitspanne ab und beginnt dann mit der Übertragung.
  3. Ist das Medium besetzt, wird es weiter abgehört.
  4. Auch während das Datenendgerät sendet wird das Medium weiter abgehört, was als Listen while Talking (LWT) bezeichnet wird.
  5. Wird eine Kollision entdeckt, wird die Übertragung sofort abgebrochen und ein spezielles Kollisionssignal (Jam Signal) ausgesendet, damit alle am Medium angeschlossenen Datenendgeräte registrieren, dass eine Kollision aufgetreten ist.
  6. Nach Aussenden des Kollisionssignals wartet das Datenendgerät eine zufällig ermittelte Zeit, die sogenannte Verzichtsdauer (Backoff Time), und startet einen neuen Übertragungsversuch.

Bei dem Kollisionssignal (Jam Signal) handelt es sich um ein konstantes 10-MHz-Signal, das aus 4 bis 6 hintereinanderfolgenden 10101010-Bitmustern besteht.

Kollisionsdomänen

Eine über Kopplungselemente der Schicht 1 (Repeater, Hubs, Sternkoppler) zusammengesetzte Netzstruktur ist im Sinne des CSMA/CD-Verfahrens ein Netz, d.h. zu einem Zeitpunkt kann nur eine Übertragung kollisionsfrei abgewickelt werden. Eine solche Netzstruktur wird daher als Kollisionsdomäne (Collision Domain) bezeichnet.

Laufzeiten und Wartezeiten

Sowohl Lauf- als auch Wartezeiten spielen beim CSMA/CD-Verfahren, d.h. im Halbduplex-Betrieb, eine entscheidende Rolle. Daher werden die wichtigsten Zeitgrößen im folgenden vorgestellt.

Slot Time

Die für das Absenden eines Rahmens minimaler Länge benötigte Zeit wird als Slot Time bezeichnet. Die Slot Time errechnet sich bei einer Übertragungsrate R = 10 Mbit/s wie folgt:

Slot Time = Lmin R = 512 bit 10Mbits = 51.2 µs.

Analog erhält man bei einer Übertragungsrate von 100 Mbit/s den Wert 5.12 µs und bei einer Übertragungsrate von 1 Gbit/s den Wert 0.512 µs.

Interframe Gap

Die zeitliche Lücke zwischen zwei aufeinanderfolgenden Rahmen wird als Interframe Gap, Interframe Spacing oder Interpacket Gap bezeichnet und entspricht einer Länge von 96 bit. Sie errechnet sich bei einer Übertragungsrate R = 10 Mbit/s somit wie folgt:

Interframe Gap = 96 bit 10Mbits = 9.6 µs.

Analog erhält man bei einer Übertragungsrate von 100 Mbit/s den Wert 0.96 µs und bei einer Übertragungsrate von 1 Gbit/s den Wert 0.096 µs.

Round Trip Delay

Durch das Abhören des Mediums vor Beginn einer Übertragung wird zwar die Gefahr von Kollisionen erheblich vermindert, kann jedoch nicht ausgeschlossen werden. Wenn zwei Datenendgeräte nahezu gleichzeitig zu senden beginnen, kommt es zu einer Kollision. Kann man dieses nahezu gleichzeitig präzisieren? Und wie kann die durch eine Kollision eingetretene Situation wieder bereinigt werden?

Mit A und B seien sendewillige Datenendgeräte und mit T die Laufzeit eines Signals zwischen diesen beiden Datenendgeräten bezeichnet. Datenendgerät A beginnt mit der Übertragung eines Rahmens, dessen Anfang nach der Zeit T gerade Datenendgerät B erreicht. Wenn just in diesem Moment Datenendgerät B ebenfalls mit der Übertragung beginnt, entsteht eine Kollision und es vergeht wiederum die Zeit T, bis diese Kollision von Datenendgerät A registriert wird. Datenendgerät A bemerkt die Kollision somit erst nach der Zeit 2T und darf zu diesem Zeitpunkt seine Übertragung noch nicht beendet haben, da sonst kein ursächlicher Zusammenhang zwischen der Übertragung und der Kollision erkennbar wäre. Die Übertragung des von Datenendgerät A gesendeten Rahmens muss also mindestens die Zeit 2T dauern, da Datenendgerät A erst nach dieser Zeit sicher sein kann, dass keine Kollision mehr eintreten wird, falls bis dahin keine stattgefunden hat. Die doppelte Signallaufzeit, d.h. die Zeit 2T, zweier maximal voneinander entfernten Datenendgeräte wird als Round Trip Delay bezeichnet.

Kollision und Round Trip Delay
Kollision und Round Trip Delay

Ein Rechenbeispiel mag dies nochmals veranschaulichen: Bei einer Signalgeschwindigkeit v = 231000 km/s (77% der Vakuumlichtgeschwindigkeit c0 = 300000 km/s) und einer maximalen linearen Netzausdehnung von l = 500 m erhält man die maximale Signallaufzeit

T = lv = 500 m 231 000kms = 2.165 µs

und bei einer Übertragungsrate R = 10 Mbit/s folgt für den Übertragungsweg l = 500 m der Informationsinhalt

L = R T = 10Mbits × 2.165 µs = 21.65 bit

Der Round-Trip-Delay beträgt somit 2T = 2 · 2.165 µs = 4.33 µs. Während dieser Zeit kann man 2L = 2 · 21.65 bit = 43.3 bit übertragen. In diesem Beispiel könnten also bei Rahmenlängen von weniger als 44 bit Kollisionen auftreten, die unentdeckt bleiben würden. Man erkennt hier eine Schwachstelle des CSMA/CD-Verfahrens: Die kleinstmögliche Rahmenlänge ist abhängig sowohl von der Übertragungsrate als auch von der Netzausdehnung.

Backoff Time

Nachdem eine Kollision stattgefunden hat, wäre es unsinnig, wenn alle an dieser Kollision beteiligten Datenendgeräte jeweils sofort einen erneuten Übertragungsversuch starten würden, da es dann mit Sicherheit wieder zu einer Kollision kommen würde. Daher werden den Datenendgeräten unterschiedliche Wartezeiten zugeteilt. Der Algorithmus, nach dem diese Wartezeiten zufällig und unabhängig für jedes Datenendgerät ermittelt werden, heißt Truncated Binary Exponential Backoff. Eine solche Wartezeit wird auch als Verzichtsdauer oder Backoff Time bezeichnet. Wenn n die Anzahl der Versuche eines Datenendgerätes für die Übertragung eines Rahmens ist und wenn i eine ganzzahlige Zufallszahl zwischen 0 und 2min(n,10) - 1 (jeweils einschließlich) ist, dann gilt:

Backoff Time = i × Slot Time

Nach n Kollisionen, d.h. nach Scheitern des n-ten Übertragungsversuches, gibt die auf diese Weise ermittelte Backoff Time die Zeit an, die das betreffende Datenendgerät warten muss, bevor es den (n+1)-ten Übertragungsversuch startet. Nach 16 erfolglosen Übertragungsversuchen, d.h. für n > 16, wird mit einer Fehlermeldung abgebrochen. Der Algorithmus versucht also, sich an eine steigende Kollisionshäufigkeit anzupassen, wobei Neubewerber im Vorteil sind. Dies kann zu erheblichen Altlasten führen, die ihrerseits die Kollisionswahrscheinlichkeit weiter erhöhen. Die folgende Tabelle zeigt sämtliche Werte, die für die Backoff Time möglich sind.

Backoff Time
Kollision nach Versuch Nr. Bereich der Zufallszahlen Bereich der Backoff Time [µs]
1 0 oder 1 0 oder 51.2
2 0 ... 3 0 ... 153.6
3 0 ... 7 0 ... 358.4
4 0 ... 15 0 ... 768.0
5 0 ... 31 0 ... 1587.2
6 0 ... 63 0 ... 3225.6
7 0 ... 127 0 ... 6502.4
8 0 ... 255 0 ... 13056.0
9 0 ... 511 0 ... 26163.2
10 0 ... 1023 0 ... 52377.6
11 0 ... 1023 0 ... 52377.6
12 0 ... 1023 0 ... 52377.6
13 0 ... 1023 0 ... 52377.6
14 0 ... 1023 0 ... 52377.6
15 0 ... 1023 0 ... 52377.6
16 --- Rahmen verwerfen

Ab dem 10. Übertragungsversuch stehen 1024 Zufallszahlen zur Verfügung, nämlich beginnend bei 0 bis 1023. Dies führt dazu, dass in einer Kollisionsdomäne maximal 1024 Datenendgeräte angeschlossen sein dürfen. Dies ist allerdings eine theoretische Obergrenze. Aus Performance-Gründen wird man in der Praxis wohl deutlich unter dieser Grenze bleiben.

Frame Bursting

Da die minimale Rahmenlänge von 512 bit bei Gigabit-Ethernet zu klein ist, um Kollisionen sicher erkennen zu können, wird der Rahmen künstlich um sogenannte Extension-Bits auf maximal bis zu 4096 bit verlängert. Damit nun nicht jeder Rahmen mit solchem Overhead aufgebläht werden muss, wurde ein Verfahren implementiert, das als Frame Bursting bezeichnet wird. Dieses Verfahren erlaubt es einem Datenendgerät, mehrere Rahmen hintereinander abzusenden, bis ein Zeitlimit von 65.536 µs erreicht ist. Dies entspricht einer Bitlänge von 65536 bit = 8192 Byte.

Die künstliche Rahmenverlängerung ist nur für den ersten Rahmen erforderlich, falls dieser zu klein ist, jedoch nicht mehr für die nachfolgenden Rahmen. Die Lücke zwischen den Rahmen (Interframe Gap) wird ebenfalls mit Extension-Bits aufgefüllt, so dass die Rahmen einer Burst-Übertragung in gewisser Weise aneinandergekettet werden. Auf diese Weise wird sichergestellt, dass allenfalls der erste Rahmen einer Burst-Übertragung in eine Kollision geraten kann.

Grundregel

Damit die Kollisionserkennung des CSMA/CD-Verfahrens funktioniert, muss grundsätzlich immer beachtet werden, dass in einer Kollisionsdomäne der Round Trip Delay, d.h. die doppelte Signallaufzeit zweier maximal entfernter Datenendgeräte, kleiner als die Slot Time ist:

Round Trip Delay < Slot Time

Vollduplex-Betrieb

Ein Ethernet-LAN im Vollduplex-Betrieb zu betreiben bedeutet, dass das CSMA/CD-Verfahren nicht mehr zum Einsatz kommt. Stattdessen kommunizieren alle Datenendgeräte über Punkt-zu-Punkt-Verbindungen direkt miteinander. Im Vollduplex-Betrieb gibt es somit keine Kollisionen, keine Kollisionssignale, keine Kollisionsdomänen und keine Übertragungswiederholungen mehr.

Flusskontrolle

Ein Problem, das für den Vollduplex-Betrieb gesondert gelöst werden muss, ist die Flusskontrolle (Flow Control). Beim CSMA/CD-Verfahren, d.h. bei Halbduplex-Betrieb, kann ein überlastetes Datenendgerät die Übertragung seines Partners ganz einfach durch künstliche Kollisionen stoppen. Der Partner muss dann nach einer gewissen Wartezeit (Backoff-Algorithmus) die Übertragung wiederholen. Diese Vorgehensweise wird als Back-Pressure bezeichnet.

Bei Vollduplex-Betrieb steht dieses Mittel nicht zur Verfügung, da es keine Kollisionen mehr gibt. Stattdessen erzeugt das überlastete Datenendgerät einen Pause-Rahmen (Pause Frame) und schickt diesen an seinen Partner, um ihm mitzuteilen, dass es keine weitere Daten mehr annehmen kann. Es handelt sich hierbei ganz einfach um eine Implementierung des bekannten XON/XOFF-Prinzips innerhalb der MAC-Ebene.

MAC Control Sublayer

Da neben der Flusskontrolle in Zukunft noch weitere Kontrollmechanismen zu erwarten sind, wurde eine zusätzliche MAC-Kontroll-Subschicht (MAC Control Sublayer) eingeführt. Diese Schicht erzeugt Ethernet-Rahmen, die folgenden Aufbau haben:

Ethernet-Kontrollrahmen im Vollduplex-Betrieb
Preamble 7 Byte
Starting Frame Delimiter 1 Byte
Destination MAC Address 6 Byte
Source MAC Address 6 Byte
Type
88 08 (hex)
2 Byte
MAC Control Opcode 2 Byte
MAC Control Parameters } 44 Byte
Reserved
Frame Check Sequence 4 Byte
Preamble / Starting Frame Delimiter:
Wie oben beim üblichen Ethernet-Rahmen.
Destination MAC Address:
Spezielle, auf den Zweck der Kontrolloperation abgestimmte MAC-Adresse; zur Zeit ist nur die Multicast-Adresse 01-80-C2-00-00-01 (hex) für den Pause-Rahmen definiert (Rahmen mit dieser Zieladresse werden über Brücken oder Switches nicht weitergeleitet).
Source MAC Address:
Wie oben beim üblichen Ethernet-Rahmen.
Type:
Enthält immer den Wert 88 08 (hex), um den Rahmen als MAC-Kontrollrahmen zu klassifizieren.
MAC Control Opcode:
Definiert die Kontrolloperation, die ausgeführt werden soll; zur Zeit ist nur der Code 00 01 (hex) für den Pause-Rahmen definiert.
MAC Control Parameters:
Parameter für die durch den Opcode definierte Kontrolloperation; beim Pause-Rahmen wird hier die Auszeit in Vielfachen (0 bis 65535) der Slot Time angegeben.
Reserved:
Auf 0 gesetzte Füllbits, um das vorige Feld auf 44 Byte aufzufüllen.
Frame Check Sequence:
Wie oben beim üblichen Ethernet-Rahmen.

Störungen

Kollisionen gehören, zumindest im Halbduplex-Betrieb, zum normalen Betriebsablauf und können daher nicht als Störungen bezeichnet werden. Daneben gibt es beim Ethernet jedoch auch echte Störungen, die es aufzuspüren und zu beseitigen gilt. Die folgende Aufstellung zeigt die am häufigsten auftretenden Störungen:

Verspätete Kollision (Late Collision):
Kollision außerhalb des Kollisionsfensters, d.h. der Round Trip Delay ist größer als die Slot Time. Die Ursache sind nicht eingehaltene Topologie-Regeln oder fehlerhafte Netzwerkadapter.
Kurzer Rahmen (Short Frame, Runt Frame):
Rahmen, der nicht die erforderliche Mindestlänge von 64 Byte, jedoch einen gültigen CRC hat. Die Ursache sind fehlerhafte Netzwerkadapter.
Langer Rahmen (Long Frame, Giant Frame):
Rahmen, der länger als die maximal erlaubten 1518 Byte ist, jedoch einen gültigen CRC hat. Die Ursache sind fehlerhafte Netzwerkadapter.
Geplapper (Jabber):
Rahmen, der länger als die maximal erlaubten 1518 Byte ist und einen fehlerhaften CRC hat. Geplapper wird von fehlerhaften Netzwerkadaptern erzeugt.
Geisterrahmen (Ghost Frame):
Rahmen mit gestörter Präambel oder Störsignal, das wie ein Rahmen aussieht. Die Ursache sind Störeinflüsse, fehlerhafte Repeater, sowie Potentialausgleichsströme.
CRC-Fehler (CRC Error)
Rahmen mit korrekter Länge, aber fehlerhaftem CRC. Die Ursache sind Störeinflüsse während der Übertragung.
Ausrichtungsfehler (Alignment Error)
Rahmen, dessen Länge kein ganzzahliges Vielfaches von 8 bit beträgt. Die Ursache sind Störeinflüsse während der Übertragung oder fehlerhafte Netzwerkadapter.

Ganz generell gilt: Das Ethernet-Verfahren (egal ob im Halb- oder im Vollduplex-Betrieb) bietet zwar gewisse Mechanismen zur Fehlererkennung (Error Detection), jedoch nicht zur Fehlerbehebung (Error Recovery). Rahmen, die als fehlerhaft erkannt wurden, werden daher schlicht und einfach verworfen und nicht an die höheren Schichten weitergeleitet. Auch eine erneute Anforderung des fehlerhaften Rahmens ist nicht vorgesehen. Fehlerbehebung wird den höheren Kommunikationsschichten überlassen. In der Regel stellen erst die Protokolle der Transportschicht entsprechende Mechanismen bereit.