Netzwerkkommunikation oder: wie Knoten reden

Protokolle

Damit sich all die im Netzwerk vorhandenen Rechner, Peripheriegeräte und Programme auch verstehen, müssen sie in gewisser Weise die selbe Sprache sprechen. Es muss also genau festgelegt werden, wie die Kommunikation funktionieren soll. Dazu dienen Protokolle. Diese definieren eine standardisierte Kommunikation und werden in so genannten RFCs(Request for Comments) beschrieben.
Da die Kommunikation in einem so riesigen Netzwerk wie dem Internet sehr komplex ist, ist es nahezu unmöglich, ein einziges Protokoll für alles zu definieren. Deshalb gibt es einen ganzen Protokollstapel. Die einzelnen Protokolle sind dazu einer von 4 Schichten zugeordnet[3]. In jeder Schicht werden entsprechende Datenpakete(eigentlich PDUs(Protocol Data Units) genannt) zusammengebaut und an eine andere Schicht weitergereicht, die das Paket ggf. zusätzlich einpackt. Die unterste Schicht sendet dann das Paket. Andere Netze wie z.B. das Telefonnetz stützen sich auf Verbindungen, anstatt auf Pakete.
Solche Pakete können unterschiedlich aufgebaut sein. Teilweise bestehen sie aus lesbarem ASCII-Text, was es dem Programmierer leicht macht, die Kommunikation nachzuvollziehen und zur Not von Hand zu testen.

Die Schichen im Einzelnen:

Application-Layer(Anwendungsschicht)
Protokolle in dieser Schicht definieren die eigentliche Kommunikation von Anwendungsprogrammen untereinander. Beispielsweise sind die Protokolle SMPT und POP für das Versenden und Empfangen von E-Mails zuständig. Die PDU nennt sich hier schlicht Message – Nachricht.

Transport-Layer(Transportschicht)
Die Transport-Protokolle TCP und UDP sind dafür zuständig, dass die gesendeten Daten beim richtigen Programm(genauer: Prozess; noch genauer: Socket) ankommen. Transport-Layer-Pakete nennt man Segmente.

Network-Layer(Netzwerkschicht, Vermittlungsschicht)
Das Internet Protocol(IP) der so genannten Netzwerk- oder Vermittlungsschicht ist dafür zuständig, dass die gesendeten Daten beim richtigen Rechner ankommen. Die PDU heißt hier Datagramm oder einfach Paket.

Link-Layer(Netzzugangsschicht, Sicherungsschicht)
Protokolle auf dieser Ebene regeln den Transport der Daten über ein gegebenes Medium(Kabel, Funkwellen, etc.). Hier spricht man von einzelnen zu übertragenden Frames

Physical-Layer(Bitübertragungsschicht)
Auf dieser Schicht gibt es keine eigentlichen Protokolle. Hier geht es nicht mehr um Daten, sondern nur noch um Signale, die übertragen werden und wie Bits entsprechend in physikalische Signale kodiert werden können.

Header

Jedes Protokoll benötigt bestimmte Verwaltungsinformationen, damit es weiß, wie es mit den gegebenen Daten umgehen soll. Dazu dienen die so genannten Header-Informationen. Diese schreibt jedes Protokoll vor die ihm übergebenen Daten. Da eine Message den ganzen Protokollstapel durchlaufen muss, sammelt sich so eine ganze Menge Header-Daten an.
Beispiel:
Eine ganz normale E-Mail wird verschickt. Dazu schreibt der User seinen Text in einem Mail-Client, der einen E-Mail-Header ergänzt(z.B. stehen hier Absender und Empfänger). Die Mail wird nun samt Header per SMTP verschickt. Dazu wird die Message an TCP in der darunter liegenden Transportschicht übergeben. TCP bastelt aus der übergebenen Message ein TCP-Segment(inklusive entsprechendem TCP-Header). Dann gehts weiter in die Netzwerkschicht: IP verpackt das ganze in ein IP-Datagramm(samt IP-Header). Schließlich landet unsere Mail im Link-Layer. Dort wird sie in einen Ethernet-Frame(samt Header und Trailer(ein „Header am Ende“ )) gesteckt und übertragen. Auf der anderen Seite passiert nun das Ganze in umgekehrter Reihenfolge: Die Mail wird per POP empfangen. Dazu durchläuft sie die einzelnen Schichten von unten nach oben, wobei sie nach und nach ausgepackt wird(d.h. die Header werden nacheinander entfernt). Der Mail-Client werdet dann schließlich die Mail-Header-Informationen aus und zeigt den eigentlichen Mailtext + Zusatzinfos aus dem Header(Absender, etc.) an…

Analogie

Vergleichbar ist das ganze in etwa mit dem Briefverkehr großer Firmen: Die Sekretärin Frau Müller schreibt einen Brief an ihre Kollegin in einer anderen Firma, Frau Mustermann. Auf dem Briefkopf(Mailheader) stehen Absender, Empfänger, Betreff, etc. und darunter folgt der eigentliche Text. Der Brief wird in einem Umschlag gesteckt und die Hauspost(Transport-Layer-Protokoll) transportiert den Brief zur nahe gelegenen Post(Netzwerk-Protokoll). Die Post ist nun dafür zuständig den Brief zur Empfängerfirma(Zielrechner) zu befördern(dazu braucht sie die auf dem Umschlag angegebene Postadresse(Network-Layer-Header)). Dort übernimmt nun die dortige Hauspost und ermittelt anhand der Zeile „z. Hd. Frau Mustermann“(Transport-Layer-Header) das richtige Büro, wo schon sehnsüchtig auf die Post gewartet wird…

Prinzipien

Im Allgemeinen sind beim Design des Internets(und der damit verwandten Netze(also z.B. LANs, aber nicht das Telefonnetz)) die Prinzipien „complexity at edge“ und „best effort“ verwirklich. Dabei bedeutet complexity at edge, dass die komplexen Teile des Netzes(also der Hauptteil der Logik) an den Endpunkten(also den einzelnen angeschlossenen Geräten) liegt und nicht, wie z.B. beim Telefonnetz im Netz selbst. Das macht das Netz einfacher und nutzt vorhandene Ressourcen aus(ein Computer hat schon einen Prozessor, etc. Diesen kann man dann ja auch nutzen. Telefone hingegen sind – zumindest in der Grundform – erstmal nicht besonders kompliziert).
„Best effort“ bedeutet ganz einfach, dass das Internet möglichst wenige Garantien gibt. Es wird das Möglichste getan, damit eine schnelle, stabile Verbindung aufgebaut wird und die Daten rechtzeitig und unbeschädigt ankommen, aber es wird nicht garantiert. Das Ganze hat den Vorteil, dass es im Allgemeinen die Performance (beträchtlich) steigert und Kosten spart. Im Gegenzug werden in den einzelnen Schichten von einzelnen Protokollen wieder Garantien gegeben. Dadurch, dass man sich die Protokolle „zusammenstellen“ kann, ergibt sich zusätzlich noch eine große Flexibilität dieses Systems.
Diese Garantien können u.a. sein:
– beschädigte Pakete werden (größtenteils) erkannt
– Beschädigungen werden versucht zu reparieren
– ggf. werden verlorene oder beschädigte Pakete neu übertragen
– die Daten kommen in der richtigen Reihenfolge beim Empfängerprogramm an
– es werden nicht mehr Daten gesendet, als der Empfänger verarbeiten kann
– das Netzwerk wird nach Möglichkeit nicht überbelastet
– …

Theoretisch könnten natürlich auch eine sichere Bandbreite, eine garantierter Datenversand, etc. versprochen werden, worauf aber aus Performancegründen ganz verzichtet wird.

Für was der ganze Aufwand?

Das Prinzip sollte nun klar sein, aber warum der ganze Aufwand? Könnte man nicht ein einziges Protokoll auch auskommen? Die Antwort ist ein klares Nein. Denn nur so ist es möglich all die vielen verschiedenen Übertragungsmöglichkeiten, all die vielen verschiedenen Geräte, Betriebssysteme und Programme unter einen Hut zu kriegen. genau, wie die Post nur die Adresse kennen muss und nicht das konkrete Bürozimmer von Frau Mustermann, genau, wie Frau Müller nicht wissen muss ob in der anderen Firma Rohrpost eingesetzt wird oder ob der Briefträger Fahrrad oder Auto nimmt, so muss der Mail-Client auch nicht wissen, wie genau die Mail nun verschickt wird. Es reicht zu wissen, dass es passiert. Ob das nun über Kupferkabel, Funkwellen oder Brieftauben passiert ist erstmal unwichtig. So ist es auch kein Problem einen Teil der Kommunikation umzustellen(z.B. von Ethernet-Kabeln auf WLAN). Genauso muss auch nicht die Post, die Hauspost aller anderen Firmen, alle Sekretärinnen von allen anderen Firmen, alle Briefträger, etc. darüber informiert werden, wenn in den Briefkopf das neue Firmenlogo gesetzt wird…

So. Jetzt, wo wir das soweit geklärt haben, werden wir uns durch den ganzen Protokollstapel von unten nach oben einmal durchwühlen und dabei sehen, welche Protokolle auf den einzelnen Ebenen werkeln und wie diese – im Groben – funktionieren.

[3] Es gibt auch noch das komplexere OSI-Modell, welches 8 Schichten spezifiziert und deutlich allgemeiner gehalten ist; für unsere Zwecke reichen aber die 4 bzw. 5(mit dem Physical Layer, für den es keine eigentlichen Protokolle gibt) Schichten des TCP/IP-Referenzmodells.

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