Netzwerkkommunikation oder: wie Knoten reden

Physical-Layer und Link-Layer

Physical-Layer

Zum Physical-Layer ist nicht nicht besonders viel zu sagen, außer, dass er für den Programmierer, der am anderen Ende des Protokollstapels arbeitet eher weniger interessant ist. Das ist ja auch gerade der Leitgedanke des Schichtsystems. Es ist für den Programmierer erstmal unerheblich, ob er seine Kommunikation über Kupferkabel, Glasfaser, Funkwellen oder wie auch immer abwickelt. Wichtig ist nur, dass es funktioniert. Das heißt jetzt nicht, dass zum Physical-Layer nichts zu sagen wäre – im Gegenteil. Nur soll das nicht Gegenstand dieses Tutorials hier sein…

Link-Layer

Kommen wir nun zum ersten Layer mit echten Protokollen. Dem Link-Layer. Die Protokolle hier sind dafür zuständig, dass die gegebenen Daten über ein bestimmtes Medium „eine Station weiter“ transportiert werden. Im einfachsten Fall ist das von einem Kabelende zum anderen. Das wichtigste hier verwendete Protokoll heißt Ethernet bzw. genauer: Fast Ethernet(für die momentan gebräuchliche 100Mbit-Variante). Das Ethernet-Protokoll ist vollständig in Hardware implementiert(d.h. die Netzwerkkarte spricht Ethernet über ein Ethernet-Kabel mit einer anderen Netzwerkkarte und sorgt für folgendes:
– Übertragung
– Fehlererkennung
– Multiple Access
Andere Protokolle für andere Übertragungsmedien funktionieren auf ähnliche Weise und haben ähnliche Aufgaben.

Multiple Access

Übertragung und Fehlererkennung sollten soweit klar sein. Aber was ist Multiple Access? Nun, das ist eine der Herausforderungen in diesem Layer. Es ist nämlich so, dass an einem Kabel(oder was auch immer als Medium genutzt wird) mehrere mögliche Sender und Empfänger sitzen können. Früher zu den Anfangszeiten von Ethernet war das die Regel[4], aber auch noch heute ist das keine Seltenheit(prominentestes Beispiel: WLAN). Es müssen also 2 Dinge gewährleistet werden: 1. Die gesendeten Daten erreichen den richtigen Empfänger und 2. sie erreichen überhaupt den Empfänger, was voraussetzt, dass immer nur einer sendet und nicht alle gleichzeitig.
Das erste Problem ist noch recht einfach zu lösen: Jeder mögliche Empfänger(d.h. jede Netzwerkkarte, jeder WLAN-Chip, etc.) erhält eine eindeutige Adresse, die so genannte MAC-Adresse(MediaAccessControl-Adresse). Diese ist 48Bit lang und wird im Allgemeinen hexadezimal geschrieben: 12-34-56-78-90-AB. Diese MAC-Adresse ist eindeutig. Es gibt keine zwei Netzwerkkarten mit der selben MAC-Adresse. Im Header jedes Ethernet-Frames ist eine Absender- und eine Empfängeradresse angegeben. Erhält eine Netzwerkkarte ein Frame mit einer anderen, als ihrer MAC-Adresse wird das Frame verworfen. Somit erhält nur der richtige Empfänger die Daten. Damit nun die einzelnen Adressen untereinander bekannt sind, werden entsprechende Listen geführt und per Address Resolution Protocol(ARP) aktuell gehalten.
Zum zweiten Problem: Das ist nicht ganz einfach. Es gibt mehrere Ansätze, die aber alle ihre individuellen Nachteile haben. Ethernet benutzt hier ein Verfahren namens CSMA/CD. Grob gesagt wird einfach gehört, ob gerade jemand sendet, wenn nicht wird mit der Übertragung begonnen. Wenn es dann zu einer Kollision kommt, wird abgebrochen und nach einer Wartepause von zufälliger Länge wieder versucht zu senden. Die genaue Funktionsweise von CSMA/CD soll uns hier aber nicht weiter interessieren…

[4] Damals waren alle Hosts an einem langen Koaxialkabel(dem „Ether“ engl. für Äther) angeschlossen, das als Bus fungierte. Heute gibt es das kaum noch. Die Sterntopologie hat sich mittlerweile fast überall durchgesetzt. Siehe auch: Netzwerktopologie

Kapitel: | Zurück | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Weiter |

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert