2.3 Das OSI-Referenzmodell und das TCP/IP-Schichtenmodell
Im folgenden wird das in Abb.1 dargestellte OSI-Referenzmodell
genauer betrachtet, um einen Eindruck zu gewinnen, wo das Routing abläuft.
Das Modell basiert auf einem Vorschlag, der von der ISO entwickelt wurde und den ersten Schritt auf dem Weg zur inter-nationalen Standardisierung der verschiedenen Protokolle (Day und Zimmerman, 1983) darstellt. Das Modell trägt deshalb den Namen ISO-OSI-Referenzmodell, weil es sich damit beschäftigt, offene Systeme miteinander zu verbinden, d.h. Systeme, die für die Kommunikation mit anderen Systemen offen sind. Es wird kurz als OSI-Modell bezeichnet.
Das OSI-Modell besteht aus sieben
Schichten, wobei folgende Prinzipien zu der Siebenschichtigkeit
geführt haben:
1. Eine neue Schicht sollte an der Stelle entstehen, an der ein neuer Abstraktionsgrad benötigt wird.
2. Jede Schicht sollte eine genau definierte Funktion erfüllen.
3. Bei der Funktionswahl sollte die Definition international genormter Protokolle berücksichtigt werden.
In den folgenden Abschnitten werden nun die einzelnen Schichten des OSI-Modells, mit der untersten Schicht beginnend, beschrieben.
Das Modell selbst stellt keine Netzarchitektur dar, da es die auf Dienste und Protokolle der einzelnen Schichten nicht definiert.
Es sagt lediglich etwas darüber aus, was die einzelnen Schichten bewirken sollen. Die ISO hat neben dem OSI-Modell auch Normen für alle Schichten ausgearbeitet, die jedoch nicht Teil des Referenzmodells sind. Diese Definitionen wurden als getrennter öffentlicher Standard veröffentlicht.
Abbildung 1 - OSI-Modell [Tan96,
S.45]
Die Bitübertragungsschicht
Die Bitübertragungsschicht
(Physical Layer) betrifft die Übertragung von
rohen Bits über einen Kommunikationskanal. Ein Bit, das eine
Seite mit der Wertigkeit l schickt, muß an der anderen Seite
auch als Bit mit der Wertigkeit 1 empfangen werden. Es kommt hierbei
auf die mechanischen, elektrischen und prozeduralen Schnittstellen
und das physische Übertragungsmedium an, das sich unterhalb
der Bitübertragungsschicht befindet.
Die Sicherungsschicht (Verbindungsschicht)
Die Hauptaufgabe der Sicherungsschicht
(Data Link Layer) ist es, eine "rohe"
Übertragungseinrichtung in eine Leitung zu verwandeln,
die sich als frei von unerkannten Übertragungs-fehlern darstellt.
Um dem Strom von Bits, den
die Bitübertragungsschicht annimmt und absendet, in eine
sinnvolle Form zu bringen, ist es Aufgabe der Sicherungsschicht,
Rahmengrenzen einzufügen und zu erkennen.
Ein weiteres Problem, das
auf der Sicherungsschicht (und auf den meisten höheren Schichten)
auftritt, ist die Datenüber-schwemmung. Diese entsteht,
wenn der Sender schneller arbeitet als der Empfänger.
Um dieses Problem zu lösen,
muß eine Art Verkehrsregelung vorhanden sein, die dem Sender
mitteilt, wieviel Pufferbereich beim Empfänger noch verfügbar
ist. Häufig werden sowohl diese Flußregelung als auch
eine Fehlerbehandlung integriert.
Broadcast-Netze
haben auf der Sicherungsschicht ein zusätz-liches Problem:
Der Zugriff auf den gemeinsamen Kanal muß in irgendeiner
Form gesteuert werden. Gelöst wird dieses Problem durch eine
spezielle Zwischenschicht der Sicherungsschicht, die MAC-Teilschicht.
Die Vermittlungsschicht (Netzwerkschicht)
Die Vermittlungsschicht
(Network Layer) hat die Steuerung des Teilnetzbetriebs
zur Aufgabe. Eine der wichtigsten Design-aufgaben ist hier die
Auswahl der Paketrouten bzw. das Routing vom Ursprungs-
zum Bestimmungsort.
Die Leitwegtabellen, mit deren
Hilfe der Weg der Datenpakete durch das Netzwerk bestimmt wird,
können auf vielfältige Weise aufgebaut werden:
Bei Broadcast-Netzen
ist das Routing-Problem sehr einfach, da jedes Datenpaket automatisch
zu jeder Maschine gelangt, was zur Folge hat, daß die Vermittlungsschicht
hier dünn oder gar nicht vorhanden ist.
Die Transportschicht
Die Transportschicht (Transport
Layer) sorgt dafür, daß die Daten, die von der
Sitzungsschicht übernommen werden, gege-benenfalls in kleinere
Einheiten zerlegt, danach an die Vermittlungsschicht übergeben
werden und daß alle Teile richtig bei der Zielmaschine ankommen.
Dies alles muß so effizient
wie möglich sein und so implementiert werden, daß
die höheren Schichten bei unver-meidbaren Änderungen
der Hardware-Technik nicht verändert werden müssen.
Die in der Praxis am häufigsten
eingesetzte Art von Transport-verbindungen ist ein fehlerfreier
Punkt-zu-Punkt-Kanal, der die Reihenfolge der Datenpakete nicht
verändert.
Die Transportschicht ist,
wie alle höheren Schichten auch, eine echte Ende-zu-Ende-Schicht
(siehe Abb. 1).
Viele Hostrechner arbeiten
im Mehrprogrammbetrieb, wodurch viele Verbindungen zum und vom
Host entstehen. Deshalb muß bestimmt werden, welche Nachricht
zu welcher Verbindung gehört. Der Transport-Header (H4 in
Abb. 2) ist eine dafür geeignete Stelle.
Außerdem wird ein Mechanismus
zur Steuerung des Informations-flusses benötigt, damit einer
schneller Sender einen langsamen Empfänger nicht überholen
kann. Ein solcher Mechanismus heißt Flußsteuerung
und spielt auf der Transportschicht eine wichtige Rolle (auf
anderen Schichten aber auch).
Abbildung 2 - Informationsfluß,
der eine virtuelle Kommuni- kation auf Schicht 5 unterstützt.
[Tan96, S.36]
Die Sitzungsschicht (Verbindungsschicht)
Die Sitzungsschicht (Session
Layer) ermöglicht es Benutzern verschiedener Maschinen,
Sitzungen untereinander aufzubauen. Eine Sitzung ermöglicht
Datentransporte, bietet aber zusätzlich erweiterte Dienste,
die für bestimmte Anwendungen von Bedeutung sind. Ein Benutzer
kann sich z.B. in einer Sitzung an einem entfernten System anmelden
oder Dateien zwischen zwei Maschinen übertragen.
Die Darstellungsschicht
Die Darstellungsschicht
(Presentation Layer) führt Funktionen aus,
die durch ihre häufige Verwendung eine allgemeine Lösung
rechtfertigen, anstatt jedem Benutzer die Lösung der damit
verbundenen Aufgaben zu übertragen.
Der wichtigste Unterschied
zu den bisher betrachteten Schichten ist, daß die Darstellungsschicht
nicht nur Wert auf das zuverlässige Übertragen von
Bits von einem Ort zum anderen legt, sondern sich auch auf die
Syntax und die Semantik der übertragenen Informationen kümmert.
Hierunter fällt z.B.
die Kodierung von Daten auf standard-isierte und vereinbarte Weise.
Verschiedene Computer haben
verschiedene Darstellungscodes für Zeichenketten (z.B. ASCII
oder Unicode), Ganzzahlen (z.B. das Komplement von Eins oder Zwei)
usw., so daß die auszu-tauschenden Datenstrukturen abstrakt
definiert und ihnen eine Standardkodierung mitgebenen werden muß.
Diese Aufgabe über-nimmt die Darstellungsschicht, indem sie
die interne Darstellungsform des Computers in die Standarddarstellung
des Netzes konvertiert.
Die Verarbeitungsschicht
(Anwendungsschicht)
Die Verarbeitungsschicht
(Application Layer) enthält eine Vielzahl
häufig benötigter Protokolle, wie z.B.:
Datenübertragung im
OSI-Modell
Abb. 3 zeigt ein Beispiel,
wie Daten unter Verwendung des OSI-Modells übertragen werden
können.
Vom Senderprozeß werden
die Daten nicht direkt an den Empfängerprozeß gesandt,
sondern durchlaufen erst die verschiedenen Schichten des OSI-Modells.
Die unterschiedlichen Schichten
geben die Daten an die jeweils darunterliegende Schicht weiter,
wobei dort ein Header an den Anfang jedes Datenpakets gestellt
wird.
Erreicht ein Datenpaket nun
die Bitübertragungsschicht der Sendermaschine, dann wird
es über das physikalische Medium an die Bitübertragungschicht
der Empfängermaschine geschickt.
Dort wird der Prozeß
umgekehrt durchgeführt, d.h. in jeder Schicht wird ein Header
entfernt und die Datenpakete an die nächsthöhere Schicht
übergeben, bis die Daten schließlich beim Empfängerprozeß
ankommen.
Zu beachten ist, daß
die einzelnen Schichten horizontal programmiert sind, obwohl
sie vertikal arbeiten. Dies läßt sich an dem Beispiel
eines Diplomaten erklären, der zu den Diplomaten anderer
Länder spricht, obwohl er eigentlich nur mit seinem Dolmetscher
spricht:
Betrachtet man zwei Schichten,
wobei die eine die Diplomaten und die andere die Dolmetscher sind,
so ist die Schicht der Diplomaten eine Ende-zu-Ende-Schicht (horizontal),
wobei der eigentliche Datenfluß vertikal, also zu, zwischen
und von der Schicht der Dolmetscher läuft.
Abbildung 3 - Beispiel der
Verwendung des OSI-Modells. Einige Header können Null sein
[Tan96, S.51] [Anfang]
[Inhaltsverzeichnis] [Weiter]