Ethernet

From macwrench

Ethernet[edit]

Ethernet stellt eine verbindungslose Kommunikation dar, da zwischen zwei Kommunikationspartnern keine dedizierte Verbindung aufgebaut wird sondern die Pakete (mindestens 1500 Byte groß) mit Adressinformationen versehen über einen Bus geschickt werden (wurde von Xerox entwickelt).

Ethernet verwendet dabei das CSMA/CD (Carrier Sense Multiple Access/Collision Detection) Verfahren, um bestimmte Zugriffsverfahren auf diesen Bus zu vereinbaren. Es bedeutet, dass nur einer gleichzeitig auf den Bus zugreifen kann. Wenn dies mehrere Teilnehmer gleichzeitig versuchen (Collision), warten diese eine unterschiedliche Zeit lang aufeinander und versuchen es dann erneut (Collision Detection). Dieser Zeitraum wird nach jeder Collision länger. Eine Collision Rate von 10% ist dabei grenzwertig und bedeutet eine Vollauslastung des Netzwerks.

Vorteile:

  • Statisches Zugriffsverfahren
  • Einfache Handhabung (Verkabelung, Technik – 50Ω Koax-Kabel)
  • bei 50Ω Koax-Kabel: maximal 150m Leitungslänge
  • bei 75Ω Koax-Kabel: maximal 500m Leitungslänge

Nachteile:

  • keine Kollisionsvorbeugung, nur Kollisionserkennung (CSMACD)
  • dadurch relativ undeterministisches Verhalten
  • nur sehr kurze Strecken können ohne Repeater / Verstärker überbrückt werden

Verschiedene Formen des Ethernet[edit]

  • Thin (Wire) Ethernet - 10Base2 (Bus, Koaxialkabel)
  • Thick Ethernet - 10Base5 (Bus, Koaxialkabel)
  • 10BaseT (Stern, TP/LWL)
  • Fast-Ethernet - 100Base* (Stern, TP)
  • Gigabit-Ethernet - 1000Base* (Stern, TP/LWL)
  • 10 Gigabit-Ethernet - 1000Base* (Stern, TP/LWL)

Mehr dazu im Ethernet-Artikel der Wikipedia

100BaseVG[edit]

Der Standard 100BaseVG (IEEE 802.12, VG steht für "Voice Grade") wurde (in erster Linie von Hewlett-Packard) als zukünftiger Nachfolger des Ethernet entwickelt, um über Kategorie 3 Kabel sowohl Token Ring als auch Ethernet Teilnehmer zu verbinden.

Diese Netzwerkkarten können nicht direkt an einen handelsüblichen 100BaseT Hub oder Switch angeschlossen werden, da hier keine Kollisionserkennung mittels CSMA/CD zum Einsatz kommt sondern ein Zugriffsverfahren namens "demand priority polling" - in erster Linie, um ein deterministischeres Verfahren für den Netzwerkzugriff zu verwenden und damit andauernde Kollisionen zu verhindern. Ein solcher Adapter ist beispielsweise der J2585A von Hewlett Packard, der 2 RJ45-Buchsen besitzt: eine für 10BaseT und eine für 100BaseVG.

Ethernet-Paketheader[edit]

Ein Ethernet-Paket besteht aus 7 möglichen Feldern und sieht in etwa so aus:

Schematischer Aufbau eines Ethernet-Paketheaders (802.3 mit 802.1q Tag)

Die einzelnen Felder beinhalten dabei die folgenden Informationen:

Feld Beschreibung
Präambel: sie dient der Synchronisierung von Netzwerkteilnehmern und besteht aus einer alternierenden Bitfolge aus 1 und 0
SFD: -?-
MAC-Adressen: Die MAC-Adressen (Quelle/Sender und Ziel/Empfänger) stellen eine eindeutige Kennzeichnung für die Teilnehmer eines Ethernet dar und werden durch den Hersteller fest vorgegeben (die ersten 3 Byte beschreiben den Hersteller, z.B.: 00:0d:93 für Apple Computer). Sie sind 6 Byte lang und werden üblicherweise in hexadezimaler Schreibweise dargestellt.
Die Zieladresse kann dabei auch eine Multicast- oder Broadcast-Adresse sein
(mehr dazu im Wikipedia-Artikel])
VLAN-Tag: ...
Typ: hier steht eine ID, die das in der darüberliegenden Schicht verwendete Protokoll kennzeichnet, z.B.:
0x0800 für IPv4
0x86dd für IPv6
0x809b für Appletalk
Daten: Der Umfang der Nutzdaten liegt zwischen 0 und 1500 Byte. Falls die Datenmenge kleiner als 46 Byte ist, muss ein 46 Byte langes PAD-Feld angehängt werden um die Korrektheit des Pakets zu gewährleisten, da ein Ethernet-Frame eine Mindestgröße von 64 Byte haben muss
Pad-Füllfeld: 0 bis 46 Byte lang, wird ggf. angehängt, falls das Datenfeld weniger als 46 Byte Nutzdaten enthält
CRC Prüfsumme: enthält eine 32 Bit CRC-Prüfsumme (Cyclic Redundancy Check) über die gesamte Bitfolge des Pakets (außer dem Prüfsummenfeld selber, logisch). Wenn die Überprüfung fehlschlägt, wird das Paket vom Empfänger verworfen

Ethernet Repeating[edit]

Durch die begrenzten Kabellängen bei Ethernet ist es zur Überbrückung größerer Distanzen notwendig, das Signal zu verstärken. Dies geschieht auf dem Physical Layer des ISO-OSI Schichtenmodells (daher auch als Layer 1 Switching bezeichnet) mit Repeatern oder sog. Hubs. Das Signal wird lediglich physikalisch verstärkt und gegebenenfalls auf mehrere Anschlüsse verteilt (vervielfältigt), daher muss der Repeater dafür kein Protokoll kennen und ist daher technisch gesehen sehr einfach aufgebaut.

Bei der Verstärkung benötigt der Repeater jedoch Zeit zur Synchronisation - dazu werden am Anfang jedes Ethernet-Paketes 2 Bit von der Präambel abgeschnitten, die der Repeater wieder hinten an das Paket anfügt. Die 2 Byte braucht der Repeater jedoch für die Synchronisation und zur Erkennung des Paketendes. Dabei erkennt er das letzte vollständige Byte als Paketende an. Nach mehr als 4 Repeatern ist also am Ende des Paketes mehr als ein komplettes Byte zufällig generierter Daten (also keine Nutzdaten) angehängt worden. Das Paket wird also für ungültig erklärt und verworfen. Zusätzlich ist noch die Laufzeit des Paketes beschränkt, um die Funktion der Collision Detection zu gewährleisten.

Kaskadierung von Hubs[edit]

Schematischer Aufbau eines 4-Port Ethernet Hubs

Aus diesem Grunde ergibt sich eine maximale Anzahl von 4 Repeatern (=Verstärkungsstufen) hintereinander (= in Reihe). In der Praxis ergibt sich also eine empfehlenswerte Anzahl von 3 Verstärkern in Reihe.

Die einfachste Form eines Repeaters ist ein Ethernet-Hub. Hierbei gilt ebenso, daß maximal 4 Hubs in Reihe geschaltet werden dürfen, daher ist auch hier die (physikalische) Größe bzw. Ausdehnung des Netzwerkes noch sehr eingeschränkt (4x150m = 600m bei 50Ω Koax-Kabel).

Damit sind die Möglichkeiten auf dem Layer 1 (Physical Layer) voll ausgereizt. Hierbei ergibt sich auch der Nachteil, daß die Netzwerkgeschwindigkeiten überall gleich sein muss, lediglich die Verkabelungsart auf der Signalebene kann unterschiedlich sein (TP, Koax oder Optisch, auch ein großer Nachteil bzgl. der Lastverteilung).

Eine weitere Vergrößerung der Netzwerkausdehnung ist nur auf höheren Layern des OSI-Schichtenmodells möglich (ab Layer 2 aufwärts), hier geschieht keine physikalische Betrachtung des Signals mehr sondern eine Betrachtung auf Protokollebene, d.h. das eingesetzte Gerät muss die verwendeten Protokolle kennen und verstehen, um arbeiten zu können.

Ein Hub bzw. Repeater repräsentiert genau eine Kollisionsdomäne, womit nur ein Teilnehmer gleichzeitig auf den Bus zugreifen kann.

Netzwerksniffer[edit]

Ein weiterer Nachteil ist, dass der Netzwerkverkehr an einem Hub nur vervielfältigt wird. Somit muss der Teilnehmer diejenigen Pakete herausfiltern, die an für ihn bestimmt sind. Dies erfolgt automatisch über den Netzwerkstack des Betriebssystems, mit einem Netzwerksniffer (wie z.B. tcpdump, ettercap oder MacSniffer) jedoch kann das Interface in den sog. promiscous mode versetzt werdne, in dem das Interface alle Pakete entgegennimmt. Somit kann ein Netzwerkteilnehmer den gesamten über den Hub laufenden Verkehr sehr einfach abhören und gegenenfalls auch verändern.

Ethernet Switching[edit]

Schematische Darstellung einer Ethernet Bridge in einem Bussystem
Schematische Darstellung einer Ethernet Bridge zwischen zwei Netzwerken

Das Ethernet Switching erfolgt auf dem Data Link Layer, wobei zwischen Bridging und Switching unterschieden werden kann. Eine Ethernet-Bridge ist dabei der einfachste Fall eines Switches mit genau 2 Anschlüssen. Ein Switch kann also auch als Erweiterung einer Bridge beschrieben werden.

Warum Switching?[edit]

Ethernet Switches werden hauptsächlich aus den folgenden Gründen eingesetzt:

  • Vergrößerung des Netzwerkes: theoretisch sind beliebig viele Stationen und Switches in einer Reihe möglich und somit beliebige Ausdehnung von Netzwerken
  • Trennung der Kollisionsdomäne (jeder Port eines Switches hat eine eigene Kollisionsdomäne)
  • Geschwindigkeitsanpassung der verschiedenen an den Switch angeschlossenen Teilnetzwerke (ein Switch kann z.B. zwischen 10MBit und 100MBit Teilnetzen bridgen)
  • Vermischen verschiedener Netzwerktechniken bzw. –topologien (z.B. Token Ring und Ethernet). Problem: Die interne Darstellung der MAC-Adresse erfolgt bei diesen beiden Techniken in einer anderen Bitordnung.
  • ARP-Spoofing wird schwieriger, abhängig vom verwendeten Switch / Protokoll. Mit Hilfe von ARP kann der Traffic zwar abgehört und umgeleitet werden, dazu ist aber eine Man-in-the-Middle Attacke nötig mit Propagierung falscher MAC-Adressen. Einfache Netzwerksniffer funktionieren nicht mehr, da sie auf den promiscous Mode angewiesen sind

Funktionsweise eines Ethernet-Switches[edit]

Schematischer Aufbau eines Ethernet Switches

Jeder Anschluss des Switches hat eine eigene Netzwerk- (MAC-) Adresse und eine eigene Kollisionsdomäne. Dies bedeutet, dass - wenn A und B kommunizieren - gleichzeitig auch die Stationen C und D miteinander kommunizieren können. Wenn nun beispielsweise aber die Stationen B und D mit A kommunizieren möchten, ist eine Zwischenspeicherung der Pakete im Switch notwendig.

Beispiel:

10 Clients, 1 Server:
Wenn alle Rechner mit 10MBit arbeiten, ist kein Performancegewinn dadurch zu verzeichnen. Wenn der Server hingegen eine 100MBit Anbindung an das Netzwerk hat, schon.

Für eine korrekte Verbindung und Kommunikation der Rechner muss der Switch eine Verbindungstabelle aufbauen. Direkt nach dem Einschalten ist diese noch leer, d.h. der Switch schickt ankommende Pakete an alle weiter (er verhält sich also wie ein Hub). Durch entsprechende Rückmeldungen der Clients erkennt der Switch die Rechner an den zugehörigen Ports und trägt die Adressen mit Port-Zuweisung in seine Tabelle ein (MAC-Adresse und Port-Nummer, meistens im zentralen Memory-Pool):

A B C D
Port 3 1 2 4
MAC 00:0a:95:69:e2:a2

Broadcast-Messages (Messages an die Broadcast-MAC-Adresse) werden weitergeleitet, das Paket muss aber für jeden Abschnitt dupliziert werden (Performanceverlust!). Der Nachteil gegenüber dem Hub oder direkter Verbindung ist ein Performanceverlust, dies gilt auch für Multicast-Protokolle ( wie z.B. NetBEUI, Appletalk, ... ).

Anm.: (IP-Multicast Adresse: 224.*.*.*, in Layer 2 auf Ethernet / MAC-Multicast abgebildet)

Wenn nur zwei Rechner angschlossen sind, kommunizieren diese über einen Hub schneller als über einen Switch (durch das größere Delay beim Switch durch die Zwischenspeicherung der Daten im Data Pool sowie die Entscheidungszeit, das gesuchte Ziel zu finden). Dies ist insbesondere bei Latenzempfindlichen Anwendungen von Bedeutung.

Round-Trip Zeit eines Paketes[edit]

Die Round-Trip-Zeit eines Paketes zwischen den Stationen A und B über einen Ethernet Switch kann wie folgt errechnet werden:

Round-Trip-Zeit eines Paketes durch einen Ethernet Switch

1500 ist dabei die MTU (Maximum Transfer Unit, maximale unfragmentiert übertragbare Datenmenge) eines Ethernet-Pakets

Packet Switching[edit]

Das Switching in einem paketorientierten Netzwerk wie Ethernet läuft nach dem Modell des Packet Switching ab, bei dem die Größe der übertragenen Pakete unterschiedlich sein kann. Bei Ethernet existiert beispielsweise eine Obergrenze von 1500 Byte, eine feste Größe wie beispielsweise bei Cell-Relay Netzwerken wird dabei jedoch nicht vorgeschrieben. Beim Packet Switching kann zwischen zwei Vorgehensweisen unterschieden werden:

  • Cut-Through: Pakete werden direkt zum Ziel durchgeleitet, ohne Zwischenspeicherung in einem internen Cache-Speicher
  • Store-and-Forward: Verwendung eines internen Zwischenspeichers (Puffers)

Cut-Through[edit]

Die Pakete gehen direkt durch den Switch, ohne im sog. Data Pool (Pufferspeicher im Switch) zwischengespeichert zu werden. Aufgrund der MAC-Adresse (in den ersten 6 Byte des Pakets enthalten) kann der Switch direkt erkennen, wohin das Paket weitergeleitet werden soll.

Dafür muss allerdings der Ausgang des Switches und die Leitung frei sein, es funktioniert auch nicht bei unterschiedlichen Netzwerkgeschwindigkeiten.

Vorteile:

  • Geschwindigkeitsvorteil (kleine RTT)
  • geringe Latenz (Übertragungsverzögerung im Switch)

Nachteile:

  • Keine Geschwindigkeitsanpassung und Bandbreitenumsetzung im Switch möglich (z.B. 10BaseT -> 100BaseT)
  • Geräte müssen immer sofort ansprechbar sein
  • Der Bus muss immer frei sein

Daher wird dieses Verfahren kaum eingesetzt.

Store-and-Forward[edit]

Das meistens eingesetzte Verfahren verwendet ein Data Pool, um die Pakete im Switch zwischenzuspeichern. Dadurch ergibt sich zwar eine höhere Verzögerung bei der Weiterleitung, die Fehleranfälligkeit und Kollisionsgefahr ist hier jedoch wesentlich geringer, das Netzwerk arbeitet zuverlässiger.

Weitere Arten des Switchings[edit]

Es existieren weitere Arten des Switchings, abhängig von Layer-1 Protokoll und Netzwerktopologie. Die wichtigsten dabei sind

  • Cell-Switching: Packet-Switching mit fester Paketgröße (sog. Zellen)
  • Circuit-Switching: Switching von Verbindungsorientierten Protokollen (z.B. ISDN)

Cell-Switching[edit]

Dieses Verfahren wird in Cell-Relay Netzwerken wie beispielsweise ATM oder B-ISDN verwendet. Mehr zu Cell-Relay Netzwerken in den Artikeln

  • B-ISDN (Breitband-ISDN)
  • ATM (Asynchronous Transfer Mode)

Circuit-Switching[edit]

Dieses Verfahren wird bei verbindungsorientierten Protokollen wie z.B. den ISDN B-Kanälen verwendet (auf dem D-Kanal wird paketorientiert gearbeitet). Weitere Informationen im ISDN-Artikel.

Frame-Relay[edit]

Protokolle[edit]

Kollisionserkennung[edit]

Bei Ethernet existieren sogenannte Kollisionsdomänen, innerhalb derer immer nur genau ein Teilnehmer auf den Bus ("schreibend") zugreifen darf. Kollisionen treten dann auf, wenn mehrere Teilnehmer gleichzeitig auf den Bus zugreifen möchten. Für die Erkennung dieser Kollisionen wird ein CSMA/CD-Verfahren eingesetzt (Carrier Sense Multiple Access with Collision Detection, siehe Wikipedia) im Gegensatz zu CSMA/CA (Collision Avoidance, siehe Wikipedia)

Dabei wird laufen das Medium überwacht (Carrier Sense), auf das mehrer Teilnehmer Zugriff haben um miteinander zu kommunizieren (Multiple Access). Wenn ein Teilnehmer nun eine Datenübertragung starten möchte, sieht er nach ob das Medium frei ist. Falls ja, startet er seine Übertragung. Wenn nun eine Kollision entdeckt wird (mehrere versuchen gleichzeitig, auf das Medium zuzugreifen) wird ein definiertes Störsignal auf die Leitung gesetzt, um die anderen Teilnehmer von der Kollision zu informieren. Andernfalls muss der Teilnehmer warten, bis die Leitung wieder frei wird. Dabei wird eine Backoff Zeit gesetzt, da ansonsten unmittelbar erneut zu einem Konflikt käme. Mit jedem Konflikt wird dieser Wert erhöht, bis schließlich ein Maxmialwert erreicht wurde und der Zugriffsversuch abgebrochen wird.

Pro Kollisionsdomäne kann also genau ein einziger Teilnehmer auf den Bus zugreifen.

Spanning Tree Protocol[edit]

Spanning Tree (802.1d) ist das von Ethernet-Switches auf dem Data Link Layer verwendete Kommunikationsprotokoll und dient in erster Linie der Verhinderung von doppelten Frames (durch mehrere parallele Verbindungen zwischen Sender und Empfänger). Dies erfolgt durch die Generierung eines logischen Netzwerkabbilds in Form eines Baumes, in dem immer nur genau eine einzige, optimale Verbindung zwischen zwei Teilnehmern priorisiert und verwendet wird. Ausgetauscht werden diese Informationen zwischen Switches/Bridges in Form sogenannter BPDUs (Bridge Protocol Data Units) über Ethernet-Multicasts an die Adresse

01-80-C2-00-00-10

Sie werden alle 2 Sekunden an die in der nächstunteren Baumebene befindlichen Geräte gesendet. Damit werden Strecken incl. ihrer Wegekosten (Berücksichtigung von Datenrate und Entfernung) erfasst und die optimale Strecke ermittelt. Fällt eine Verbindung aus, so fehlt auch die entsprechende BPDU und das Netzwerk wird reorganisiert. Unter Umständen kann eine komplette Neuorganisation des Netzwerks jedoch relativ lange dauern, insbesondere bei komplizierten Verschachtelungen und größeren Netzwerkstrukturen.

Zusätzlich dazu besitzen viele Geräde eine einfache Funktion zur Erkennung von Schleifen in der Kommunikation vom Sender zum Empfänger. Dabei sendet das Gerät in regelmäßigen Abständen einen Frame an die Adresse eines Gerätes. Wenn es ein solches Paket mit seiner eigenen MAC-Adresse empfängt, signalisiert das Gerät dies beispielsweise mit einer LED.

Ethernet Multicast[edit]

Ethernet Broadcast[edit]

Adressauflösung[edit]

ARP-Relay und ARP-Proxies kurz ansprechen (ARP als extra Artikel)

Anwendungen[edit]

Class-of-Service[edit]

Manche Dienste erfordern eine gewisse Verbindungs- und Netzqualität, um einen Nutzwert zu haben (z.B. VoIP - Voice-over-IP). Dafür eistiert diese Ethernet Erweiterung (802.1q), bei der es sich um eine Class-of-Service Erweiterung handelt. Im Gegensatz zu Quality-of-Service (das mit Packet Switching kaum realisierbar ist) werden hier den Diensten keine Verbindungsqualitäten zugesichert sondern es erfolgt eine Prioritätsvergabe der Kommunikation für einzelne Dienste.

Die Vergabe dieser Prioritäten erfolgt dabei nicht durch das Endgerät sondern durch den Switch anhand der verwendeten Protokolle, Dienste, etc. Dazu muss er direkt am Eingang das Paket verifizieren (z.B. anhand von Pakettyp, IP/MAC-Adressen und Port-Informationen, ...).

Solche Switches werden auch oft als sog. Layer-n-Switches bezeichnet, da sie - abhängig vom Einsatzgebiet - auch auf höheren Ebenen des ISO-OSI Schichtenmodells arbeiten. In der Regel beherrschen solche Geräte die Protokolle der Ebene 3 (Netzwerkebene), Layer 4 würde eine Auswertung der Daten umfassen. Je nach Gerät ist die Prioritätsverteilung statisch oder dynamisch, ebenso ist auch die Genauigkeit der Abstufungen (auch in Abhängigkeit von der Bandbreite) stark vom verwendeten Gerät abhängig.

Ethernet Class-of-Service-Paket mit gesetztem Q-Tag

Auf Layer 2 beinhaltet das Protokoll 802.1Q auch CoS Priorisierungen und VLANs (siehe unten). Hier geschieht dies durch Erweitern des Ethernet-Paketes um ein Q-Tag. Dabei ist 1111 die höchste Priorität, 0000 die niedrigste. Das Problem dabei ist, dass das Q-Paket 4 Byte länger als ein normales Ethernet-Paket ist.

TO DO: Folgen?

VLAN[edit]

VLANs sind virtuelle LANs zur logischen Organisation der Anschlüsse und Verkabelung von Switches in Netzwerken.

Normalerweise wird für jede Gruppierung ein physikalisches Gerät verwendet. Mit VLANs kann ein Physikalischer Switch in 2 logische Bereiche aufgeteilt werden. Dies geschieht mittels der VLAN-ID. Dadurch entstehen am Switch auch 2 Broadcast-Domains, eine für jedes VLAN und es ist sehr flexibel in der Handhabung.

Es ist auch möglich, VLANs anhand von IP Adressen und Subnetzmasken (mit Hilfe von ARP) zuzuordnen, oder in Form einer Kombination aus beiden Faktoren. Dabei ist die Zuordnung eines physikalischen Anschlusses zu einem VLAN (siehe 802.1Q- Spezifikation) am praktikabelsten. Es können auch verschiedene Service sin Form von VLANs organisiert werden, z.B. ein VLAN ausschließlich für Voice-over-IP Traffic o.ä. Dabei ist es auch denkbar, verschiedene Prioritäten für die Services in VLANs zu vergeben.

Bei manchen Geräten können VLANs physikalisch getrennt verkabelt werden. Des weiteren können VLANs auch erstellt werden, indem Switches mit sog. Trunks verbunden werden. Dabei werden keine normalen Ethernet-Pakete sondern Pakete mit gesetztem Q-Tag (siehe oben) verschickt. Es können auch VLAN-fähige Netzwerkkarten verwendet werden. Somit wird dem Endgerät die Prioritätsvergabe der Pakete überlassen.

Beispiel:

Rechner, der sich in mehreren unterschiedlichen Netzen befinden soll:
  • mehrere Netzwerkkarten
  • eine VLAN-fähige Netzwerkkarte
Auch möglich bei Teilnahme an nicht gerouteten Netzen

Fazit:

VLANs entsprechen prinzipiell der Idee der VPNs (Virtual Private Networks), jedoch auf Layer 2. Dabei sind theoretisch bis zu 4094 verschiedene VLANs möglich:

4096 IDs, zwei davon sind jedoch reserviert:
0 wird nicht vergeben
1 Default-VLAN

In großen Netzen muss die Verteilung gut kommentiert werden, insbesondere bei automatischen Zuordnungen (anhand von IP-Adressen, Protokollen, etc.) !!!

Weiterführende Informationen[edit]