Hintergrund Kapitel Abbildungen Literatur Dialog

D    Schichtenmodell

Einstieg Der Aufbau eines Kommunikationsnetzes zwischen Millionen von Teilnehmern ist eine sehr komplexe und problematische Aufgabe. Sie kann nur bewältigt werden durch konsequente Modularisierung und Standardisierung der beteiligten Vorgänge.
Summary Establishing a communication network among millions of participants is a very complex and error prone task. It can only be managed by modularizing and standardizing the involved processes.

D.1   Hintergrund

In den 70er Jahren des vergangenen Jahrhunderts wurden die Anforderungen an Systeme der Datenübertragung bezüglich Datenvolumen, Geschwindigkeit und Fehlerfreiheit immer größer, die Systeme damit immer komplexer und ihre Realisierung immer problematischer.
Die meisten Anbieter hatten ähnliche Probleme und lösten sie mit unterschiedlichen, meist inkompatiblen Methoden. Viele Institutionen und Firmen fingen deshalb an, sich Gedanken zu machen über Standardisierung und Modularisierung der Systeme, womit man folgendes erreichen wollte:
  • Wiederverwendung einzelner Systemkomponenten oder Module, während andere weiterentwickelt wurden
  • Parallelentwicklung und Test von Modulen in unabhängigen Teams
  • Kompatibilität von Systemkomponenten unterschiedlicher Hersteller
Ziel war das große einheitliche System, das jedoch bisher nicht erreicht wurde und vielleicht auch nie erreicht werden wird.
Neben herstellerspezifischen Lösungen entstand nach über 20-jähriger Entwicklungs- und Gremienarbeit der am besten durchdachte, gut dokumentierte, allerdings auch ziemlich theoretisch ausgerichtete Ansatz der ISO: das OSI-Referenzmodell ("The Basic Reference Model for Open Systems Interconnection"; OSI-RM). Als Rahmenmodell lässt es noch viele Freiheiten für die Implementierung praktisch einsetzbarer Systeme.
Inzwischen hatte jedoch die Modularisierung in den real existierenden Systemen Fortschritte gemacht. Die Hersteller standen deshalb dem OSI-RM kritisch gegenüber. Die Vorteile durch die Standardisierung waren zu klein, die Nachteile durch geringeren Datendurchsatz zu groß, um eine Umstellung vorhandener Systeme zu begründen.
Ansatzpunkte und Prinzipien des OSI-RM wurden jedoch schon während und nach seiner Entstehung in viele Systeme übernommen. Deshalb soll es im folgenden in seinen Grundzügen beschrieben werden.

D.2   Architektur

OSI-RM definiert sieben Schichten ("Layer"), die jeweils einzelne, voneinander weitgehend unabhängige Aufgaben bearbeiten sollen. Man hat für die Einteilung das Bild des Stapels ("Stack") mit einer Oben-Unten-Relation gewählt, das sich für Beschreibungszwecke relativ gut eignet. Zum Verständnis dienlicher wäre jedoch eine Einteilung in Schalen mit einer Innen-Außen-Relation gewesen, wie sie etwa bei Zwiebelschalen oder russischen Holzpuppen zu finden ist.

Zur Anzahl sieben das Zitat eines Insiders:

"Why seven? Well, why not? Seven has long had magical significance. The tradition of the seven wonders of the world, the seven labours of Hercules, the seven days of creation .... make seven layers for OSI almost mandatory. ... The power of the human psyche is such that the magic of seven could well have been the major determinant in the early work."
Die Schichten werden von unten nach oben von 1 bis 7 durchnummeriert und mit Namen versehen (s. Abb. D-1). Je tiefer eine Schicht angesiedelt ist, desto näher ist sie am Übertragungsmedium (das übrigens durch OSI-RM nicht abgedeckt wird), je höher, desto näher ist sie am Anwender. Die unteren vier Schichten werden deshalb auch als transportorientiert ("Transport Set"), die oberen drei Schichten als anwendungsorientiert ("Application Set") bezeichnet. Spuren der transportorientierten Schichten finden sich inzwischen häufiger in realen Systemen als anwendungsorientierte.
Endgeräte enthalten die Funktionalität aller sieben Schichten, während Übertragungsgeräte nur die unteren Schichten verwenden:

Repeater Bitübertragung
Bridge Bitübertragung, Sicherung
Router Bitübertragung, Sicherung, Vermittlung

Nach Fertigstellung der Spezifikation stellte sich heraus, dass die Modularisierung für manche Zwecke nicht fein genug war. Da man von der "Magischen Sieben", die inzwischen schon fast ein Markenzeichen darstellte, nicht mehr abgehen wollte, führte man sogenannte Arbeitseinheiten oder Instanzen ("Entities") ein, die implementationsspezifisch realisiert werden und beliebig erweiterbar sind.
Als Nachbarschichten bezeichnet man vertikal benachbarte Schichten eines Stapels, die über Schnittstellen ("Interfaces") miteinander verkehren (z.B. Transportschicht und Vermittlungsschicht). Die untere Schicht stellt als Dienstanbieter ("Service Provider") Dienste zur Verfügung, die von der oberen Schicht als Dienstnutzer ("Service User") benutzt werden. Schnittstellen sind als reale Verbindungen im OSI-RM definiert.
Als Partnerschichten ("Peer Layers") werden Schichten gleicher Stufe im Stapel verschiedener Kommunikationspartner bezeichnet. Ihre Instanzen sind Partnerinstanzen ("Peer Entities") und tauschen Botschaften über virtuelle Verbindungen aus. Dazu benutzen sie Protokolle ("Peer Protocols"), die im OSI-RM spezifiziert sind. Diese Protokolle lassen sich transparent beschreiben, d.h. sie sind unabhängig vom Verhalten der darunterliegenden Schichten.

Die einzelnen Schichten haben beispielsweise folgende Aufgaben:

Anwendung Dateitransfer, zuverlässiger Nachrichtenaustausch, entfernter Prozeduraufruf, E-Mail-Client, Internet-Browser
Darstellung Syntax für den Datentransfer, Verschlüsselung, Komprimierung
Sitzung Ablaufsteuerung und -koordinierung, Synchronisation im weiteren Sinn
Transport Datentransfer zwischen Endgeräten, transparent bzgl. Vermittlungstechnik
Netzwerk verknüpft Teilstrecken zu Verbindung zwischen Endgeräten, Wegewahl bei Vermittlung
Sicherung gesicherter Datentransfer mit Fehlererkennung und -behandlung, Ablaufsteuerung
Bit-Übertragung ungesicherte Verbindung zwischen Geräten, Übertragung unstrukturierter Bitfolgen über das physikalische Medium, Normung der physikalischen Schnittstelle: Stecker, Pegel, Zeiten

D.3   Kommunikation

Ein Dienst ("Service") der Schicht n erledigt eine bestimmte Aufgabe für die Schicht n+1. Zum Beispiel kann eine Instanz der Netzwerkschicht N den Dienst L.CONNECT der Sicherungsschicht aufrufen, um eine virtuelle Verbindung mit einer Partnerinstanz aufzubauen (s. Abb. D-2).
Der Aufruf eines Dienstes wird immer in vier Schritten behandelt, die jeweils eine Botschaft über eine Schnittstelle übermitteln. Diese Botschaften heißen Dienstkommandos oder Dienstprimitive ("Service Primitives") und sind für alle Schnittstellen gleich.

Es gibt folgende Dienstkommandotypen:

.request Station1 / Schicht n+1 Instanz fordert Dienst an von Schicht n
.indication Station2 / Schicht n meldet Botschaft an Instanz in Schicht n+1
.response Station2 / Schicht n+1 Instanz übergibt Antwort an Schicht n
.confirm Station1 / Schicht n meldet Antwort an Instanz in Schicht n+1

Im Beispiel startet also die Instanz der Netzwerkschicht N der Station1, indem sie der Sicherungsschicht L an deren Dienstzugangspunkt ("Service Access Point"; SAP) eine Botschaft übergibt.
  • L.CONNECT.request(Station2Adresse).

Die ausführende Instanz "CONNECT" der Sicherungsschicht sendet diese Anforderung an ihre Partnerinstanz in Station2 (virtuell über ein bereits aufgebautes Partnerprotokoll, real über Ph.xx.request und Ph.xx.indication). Diese übergibt der adressierten Instanz der Netzwerkschicht die Meldung
  • L.CONNECT.indication(Station1Adresse).

Bei Bereitschaft antwortet die Instanz in der Netzwerkschicht der Sation2 z.B. mit Acknowledge und übergibt diese Antwort an ihre Sicherungsschicht:
  • L.CONNECT.response(Station1Adresse, ACK).

Die Sicherungsschicht der Station2 schickt diese Botschaft zurück an die Sicherungsschicht der Station1, die sie an ihre Netzwerkschicht weitergibt:
  • L.CONNECT.confirm(Station2, ACK).

Die Verbindung ist damit hergestellt und kann zum Datenaustausch verwendet werden, der mit den gleichen Schritten abläuft:
  • L.DATA.request(Adresse2, Daten)

  • LDATA.indication(Adresse1, Daten)

  • L.DATA.response(Adresse1, ACK)

  • L.DATA.confirm(Adresse2, ACK)

Abb. D-3 zeigt anhand eines Sitzungsdiagramms den zeitlichen Ablauf beim Durchgang einer Botschaft durch alle Schichten. Dargestellt sind interne Zustände der beteiligten Instanzen, sowie Zustandsübergänge, die durch Kommandos ausgelöst werden und ihrerseits Kommandos aussenden.
Die kleinsten Einheiten, die zwischen Nachbarschichten über Schnittstellen ausgetauscht werden, heißen Dateneinheiten ("Data Units"; DU). Enthält ein Kommando mehr Daten als in der entsprechenden Dateneinheit Platz finden, müssen diese auf mehrere Dateneinheiten verteilt werden. Dateneinheiten kommen in mehreren Ausprägungen vor: PDU, IDU und SDU (s. Abb. D-4).
Eine Protokolldateneinheit ("Protocol Data Unit"; PDU) der Schicht n+1 enthält also ein Stück Information für die Partnerinstanz. Sie wird in Schicht n+1 ergänzt durch n-ICI-Daten ("Interface Control Information"), die den Austausch über die Schnittstelle steuern. Die Kombination wird als Schnittstellendateneinheit ("Interface Data Unit"; IDU) an die Schicht n übergeben. Dort werden die nicht mehr benötigten ICI-Daten entfernt, der Rest wird umbenannt (und möglicherweise umcodiert): aus (n+1)-PDU wird n-SDU ("Service Data Unit"). Diese wird mit n-PCI-Daten ("Protocol Control Information") versehen und wird dadurch zur n-PDU. Der gleiche Vorgang wiederholt sich in der nächsten Schicht.
Die ursprüngliche Nachricht wird also im Sender von oben nach unten in jeder Schicht erweitert um schichtspezifische Steuerinformation. Diese wird als "protocol header" und eventuell "protocol trailer" mit der übergebenen Information verkettet (s. Abb. D-4 Kettendarstellung). Unter Verwendung eines anderen Bildes spricht man auch von der Verpackung der Nachricht in die Steuerinformation (s. Abb. D-4 Schalendarstellung). Im Empfänger werden diese Steuerinformationen schichtweise verarbeitet und dabei wieder entfernt, bis in der Anwendungsschicht die ursprüngliche Nachricht übrigbleibt.