Local Area Network (LAN)
Willemers Informatik-Ecke
Das Local Area Network (LAN) stellt eine Realisierung des Link Layer dar. Das Link Layer ist zuständig für den Transport durch das lokale Netzwerk von einem Host zu einem anderen, wobei der Host auch ein Router sein kann.

Pakete höherer Schichten werden als Payload in die Pakete der Link Layer verpackt. Ein typisches Paket des Data Link Layers ist das Ethernetpaket.

Ethernetpaketaufbau

LängeArtVerwendung
64 Bit Präambel Besteht aus alternierenden Einsen und Nullen und wird abgeschlossen durch zwei Einsen. Ihr Zweck ist das Einpegeln zwischen Sender und Empfänger. Da eine etwaige Kollision zu Anfang des Paketes eintreffen wird, wird sie die Präambel treffen, wo sie leicht erkennbar ist
48 Bit Zieladresse Hardware-Adresse (MAC). Das erste Bit ist normalerweise 0. Ist es 1, wendet sich das Paket an eine Gruppe von Zielrechnern (Multicast). Sind alle Bits 1, wendet sich das Paket an alle Hosts im Netz (Broadcast).
48 Bit Absenderadresse MAC-Adresse des Absenders
16 Bit Typ Protokoll der höheren Schicht: 0800 IPv4, 86dd IPv6, 0806 ARP, aber auch Novell, IPX oder Apple Talk
46-1422 Byte(!) Data Die eigentlichen Daten (Payload)
32 Bit CRC (Cyclic Redundancy Code) Eine Prüfsumme zur Feststellung, ob das Paket korrekt übermittelt wurde.

MAC- (Media Access Control) oder Hardware-Adresse

Alle Netzwerk-Interfaces weltweit werden mit einer eindeutigen Adresse versehen. Diese Adresse wird als MAC (Media Access Control) oder Hardware-Adresse bezeichnet. Die Kommunikation in der Data Link-Layer erfolgt auf der Basis dieser MAC. Das Paket enthält eine MAC als Sender- und als Empfänger-Adresse.

Eine MAC-Adresse ist 6 Bytes lang und wird üblicherweise in hexadezimal dargestellt. Zwischen den Bytes wird ein Doppelpunkt oder ein Bindestrich gesetzt (Beispiel: b0:ac:fa:f2:87:fd).

Wenn ein Host alle anderen Hosts eines lokalen Netzwerks erreichen will, sendet er ein Broadcast-Paket. Dessen Ziel-Adresse hat alle Bits high. Es ergibt sich die Adresse ff:ff:ff:ff:ff:ff.

Die MAC-Adressen werden von den Herstellern vergeben. Die ersten sechs Byte werden Ihnen zugeteilt. Die restlichen sechs verteilen sie in Eigenverantwortung. Beipielsweise vergeben folgende Firmen folgende MAC-Adressen.

Viele WLAN-Access-Points erlauben die Zugangsbeschränkung durch eine Liste erlaubter MAC-Adressen. Kann ein Angreifer die Tabelle einsehen, kann er allerdings bei vielen Geräten die MAC-Adresse verändern (MAC-Spoofing).

Die MAC des eigenen Geräts entdeckt man in der Ausgabe des Befehls ifconfig (Windows: ipconfig) unter dem Stichwort ether.

Der Bus und die Kollision

Im lokalen Netzwerk wird meist Ethernet auf der Basis von Twisted-Pair-Kabeln erstellt. Ethernet wurde ursprünglich als Koaxialkabel verlegt. Um einen Computer anzuschließen wurde ein T-Adapter in das Koaxkabel eingefügt. Dieses Konzept ist ein Bus. Alle Daten können von allen Computern gelesen werden. Der Empfänger erkennt seine Daten an einem Adressfeld eines Datenpakets.

Wenn zwei Teilnehmer gleichzeitig senden, kommt es zur Kollision. Dazu wird eine Präambel gesendet. Der Sender hört seine eigene Sendung und merkt, wenn diese durch eine Kollision gestört wird. Er bricht die Sendung ab und versucht es später noch einmal. Zwei konkurrierende Sender können sich theoretisch beliebig oft gegenseitig stören. Darum ist ein Bussystem zeitlich nicht verlässlich.

Seit der Verwendung von Twisted Pair wird ein Hub verwendet. Der Hub enthält einen Bus, der durch den Anschluss eines Twisted-Pair-Kabels zum Computer und zurück geleitet wird. Obwohl die Verkablung sternförmig aussieht, handelt es sich um einen Bus. Auf einem Hub sehen immer noch alle Teilnehmer alle Daten.

Carrier Sense Multiple Access/Collisition Detection

Ein Ethernet-Controller hört zunächst auf den Bus, ob dort gesendet wird. Ist der Bus frei, beginnt er zu senden. Das Ethernetpakt beginnt mit einer festen Präambel aus einer immer gleichen Bitfolge. Der Controller hört seine eigene Sendung auf dem Bus ab und kann erkennen, wenn die Bitfolge verändert wurde. Daran erkennt er, dass ein zweiter Sender zum gleichen Zeitpunkt versuchte zu senden. Der Sendevorgang wird abgebrochen und später wiederholt.

Die Wartezeit wird bei jedem gescheiterten Versuch verdoppelt und um einen leichten per Zufallszahl ermittelten Zeitram verlängert. So wird die Wahrscheinlichkeit einer weiteren Kollision verringert.

Übertragungsfehler erkennen: CRC

Um Übertragunsfehler zu erkennen, sendet man zusätzlich zur Nachricht eine Checksumme. Beispielsweise könnte die einfachste Checksumme sein, dass man die Anzahl der Einsen in der binären Darstellung zählt. Man hängt eine 1 für ungerade und eine 0 für gerade Anzahl an. Wird bei der Übertragung ein einzelnes Bit gekippt, wird erkannt, dass ein Fehler auftrat.

Wurde ein Paket während des Sendens verändert, beispielsweise durch eine schlechte Verbindung, so besitzt ein Ethernet ein Feld CRC (Cyclic Redundany Check), eine Art Prüfsumme, die feststellen kann, ob es einen Übertragungsfehler gegeben hat, ja ihn sogar gegebenenfalls reparieren kann.

Man betrachtet die übertragenen Bitfolgen als Polynome mit den Koeffizienten 0 und 1. Hier ein Beispiel für ein Byte mit dem Wert 165:

Exponent 7 6 5 4 3 2 1 0
Übertragene Bitfolge 1 0 1 0 0 1 0 1
Polynom 1 x7 0 x6 1 x5 0 x4 0 x3 1 x2 0 x1 1 x0
Zusammenfassung Polynom 1 x7 + 1 x5 + 1 x2 + 1 x0

Auch die CRC wird als Polynom dargestellt. Das CRC-Polynom wird so errechnet, dass eine Polynomdivision der übertragenen Daten durch das CRC 0 ergibt. Die Länge des CRCs ermöglicht nicht nur die Aufdeckung heftigerer Störungen, sie kann sogar eine Korrektur ermöglichen. Auf der anderen Seite wird eine längere CRC die Datenmenge erhöhen und die Übermittlung verzögern, weil leistungsschwache Komponenten länger für die Berechnung benötigen.

Für unser Beispiel verwenden wir eine CRC von 3 Bit Länge. Das ergibt einen Polynomgrad von 2. Als Generator-Polynom vereinbaren Sender und Empfänger x 2 + x 1, also 1 1 0.

Der Sender erstellt die CRC:

Daten                     CRC
----------------------  -------
1  0  1  0  0  1  0  0  0  0  0 : 1  1  0 = 1  1  0  0  0  1  1  0
1  1  0
-------
   1  1  0
   1  1  0
   -------
      0  0  0  1  0  0
               1  1  0
               -------
                  1  0  0  
                  1  1  0
                  -------
                     1  0  0 <- Rest. Das ist die CRC
Der Empfänger erhält die Daten 1 0 1 0 0 1 0 1 und die CRC 0 1 1, hängt beides aneinander und führt nun eine Polynomdivision mit dem Generator-Polynom durch:
1  0  1  0  0  1  0  0  1  0  0 : 1  1  0 = 1  1  0  0  0  1  1  0
1  1  0
-------
   1  1  0
   1  1  0
   -------
      0  0  0  1  0  0
               1  1  0
               -------
                  1  0  1
                  1  1  0
                  -------
                     1  1  0
                     1  1  0
                     -------
                        0  0  0 <- kein Rest

Der Rest ist 0. Also hat die Prüfung geklappt.

Werden mehr Bits in die Checksum aufgenommen, können gröbere Fehler erkannt werden, oder bei kleineren Fehlern sogar die Original-Nachricht rekonstruiert werden.

Netzwerkgeräte auf LAN-Ebene

Repeater

Verstärkt das Signal, um die Signalabschwächung durch Dämpfung auszugleichen. Repeater reichen das Signal nur durch und analysieren es nicht.

Hub

Ein Hub ist quasi eine Mehrfachsteckdose für Twisted Pair-Kabel.

Physikalisch ist es eine Stern-Topologie. Logisch aber ein Bus, da der Bus zum Rechner hin und zurück transportiert wird.

Bridge

Eine Bridge verbindet zwei Netzwerke, greift aber in die Kommunikation nicht ein, kontrolliert also nicht, ob ein Paket in das jeweils andere Netzwerk gehört. Damit vergrößert sich durch eine Bridge auch der Raum, in dem Kollisionen möglich sind.

Allerdings prüft eine Bridge ein Paket auf seine Prüfsumme und filtert defekte Pakete aus. Damit sind Bridges Teil der Sicherungsschicht (Data Link Layer).

Bridges können allerdings insoweit intelligent in den Datenverkehr eingreifen, indem sie lernen, welche MAC zu welchem Teilnetz gehört. In dem Fall können sie vermeiden, Pakete in ein Teilnetz zu übertragen, in dem die Ziel-MAC gar nicht vorkommt.

Durch ungeschickt verbundene Teilnetze kann es zu Zyklen kommen, die zu einem zusätzlichen Netzwerkbelastung führen. Darum gilt in der Data Link Layer (Sicherungsschicht), dass zu jedem Ziel nur genau ein Pfad führen soll. Das Ethernpaket kennt keinen TTL (time to live)-Zähler.

Weiterführende Themen

WLAN

WLAN wird für die Einbindung von Smartphones, Tablets oder auch Laptops in das lokale Netzwerk verwendet. Für die Verbindung zwischen diesen Geräten und em LAN wird ein Access Point benötigt, auch Hotspot genannt. Dieser verbindet typischerweise die WLAN-Teilnehmer mit einem Switch.

IP-Adressen

Zur Kommunikation auf Anwenderebene werden IP-Adressen verwendet. Diese sind in der Lage, auch auf Rechner außerhalb des lokalen Netzwerks zuzugreifen. Die klassische Variante IPv4 ist noch weitgehend im Gebrauch. Als neue Version wird IPv6 allerdings immer wichtiger.

Die IP-Adressen können von Hand zugewiesen werden. In den meisten Fällen wird bei IPv4 ein DHCP-Server die Zuteilung der Adressen übernehmen. Ein DHCP-Server befindet sich üblicherweise in jedem Router, den ein Provider für den Zugang zum Internet zur Verfügung stellt.

MAC und ARP

Die Geräte in einem lokalen Netzwerk kommunizieren auf der Basis ihrer Hardware-Adresse (MAC).

Die MAC-Adressen werden im lokalen Netzwerk als Adresse für Sender und Empfänger verwendet. Die Anwendungen verwenden allerdings in der Regel IP-Adressen. Um IPv4-Adressen auf die zugehörigen MAC-Adressen abzubilden, wird das Address Resolution Protocol (ARP) verwendet.