Grundlagen



Vorteile eines Schichtenmodels

Schichtenmodelle spielen in der Kommunikationstechnik, aber auch in anderen Gebieten der Informatik eine bedeutende Rolle.

Schichtenmodell

Der Einsatz eines solchen Modells ist aus folgenden Gründen sinnvoll:

  • Teile und Herrsche (Divide et Impera / Divide and Conquer)
    Nach dieser Strategie wird ein komplexes Problem in einzelne Teilprobleme zerlegt, die jedes für sich betrachtet, einfacher handhabbar und lösbar sind. Oft ist es dadurch überhaupt erst möglich, das Gesamtproblem zu lösen.
  • Unabhängigkeit
    Die einzelnen Schichten kooperieren, indem jede Schicht stets nur die Schnittstellenspezifikation ihres direkten Vorgängers nutzt. Bei fest vorgegebener Schnittstellenspezifikation spielt der innere Aufbau einer Schicht für die anderen Schichten keine Rolle, so dass die Implementationen auf einer Schicht ohne weiteren Aufwand direkt gegen verbesserte Implementationen ausgetauscht werden können, die sich lediglich nur an der jeweiligen Schnittstellenspezifikationen orientieren müssen. Die Implementationen der einzelnen Schichten werden damit unabhängig von denen der anderen Schicht und ein modularer (baukastenartiger) Aufbau des Gesamtsystems wird ermöglicht.

    Schnittstellen der Schichten
  • Abschirmung
    Jede einzelne Schicht kommuniziert jeweils nur mit den beiden direkt benachbarten Schichten. Damit wird eine Kapselung der einzelnen Schichten erreicht, wodurch die zu bewältigende Komplexität drastisch sinkt.
  • Standardisierung
    Die Aufgliederung des Gesamtproblems in einzelne Schichten erleichtert auch die Entwicklung von Standards. Eine einzelne Schicht und ihre Schnittstellen mit den benachbarten Schichten lassen sich jeweils schneller und leichter standardisieren, als das komplexe Gesamtsystem.


Das ISO/OSI Referenzmodell: Teil 2 – Das Anwendungssystem


Mehr zum Thema von
Prof. Dr. Christoph Meinel

Die vor der ISO/OSI-Initiative existierenden Netzwerkprotokolle waren überwiegend proprietärer Natur und von den einzelnen Netzwerk-Geräteherstellern selbst entwickelt worden. Zu diesen Prä-ISO/OSI-Netzwerk-Protokollstandards zählen z.B. IBM SNA, AppleTalk, Novell Netware und DECnet, die alle untereinander nicht kompatibel sind. Während die Standardisierungsbemühungen um ISO/OSI noch liefen, gewann die dem Internet zugrunde liegende Protokollfamilie TCP/IP in heterogenen Netzwerken, die sich aus Komponenten unterschiedlicher Hersteller zusammensetzten, rasant an Bedeutung und setzte sich auf breiter Basis durch, noch bevor eine abschließende Standardisierung von ISO/OSI gelang.

Im ISO/OSI-Referenzmodell entspricht die unterste Schicht im Protokollstapel der eigentlichen Netzwerk-Hardware (physikalische Ebene). Die darauf aufbauenden Schichten umfassen jeweils Firmware und Software, die auf dieser Netzwerk-Hardware eingesetzt werden. Die oberste Schicht, Schicht sieben, ist schließlich die Anwendungsschicht, die eine Schnittstelle bereitstellt zwischen dem Kommunikationssystem und den verschiedenen Anwendungen, die das Kommunikationssystem für ihre Zwecke nutzen wollen.

Die die drei Schichten des ISO/OSI-Referenzmodells, die im Allgemeinen als Anwendungssystem bezeichnet werden, sind mit den folgenden Aufgaben befasst:

  • Schicht 5: Sitzungsschicht (Session Layer)
    Die Sitzungsschicht wird auch als Kommunikationssteuerungsschicht bezeichnet und steuert den Dialog zwischen zwei über das Netzwerk verbundenen Rechnern.
    Zu den Hauptaufgaben der Sitzungsschicht zählen:

  • Schicht 6: Darstellungsschicht (Presentation Layer)
    Die Darstellungsschicht stellt einen Kontext zwischen zwei Entitäten (Anwendungen) der darüberliegenden Anwendungsschicht her, so dass die beiden Anwendungen unterschiedliche Syntax (z.B. Datenformate und Kodierungen) und Semantik verwenden können. Die Darstellungsschicht sorgt also für eine korrekte Interpretation der übertragenen Daten. Dazu wird die jeweils lokale Kodierung der Daten in eine spezielle, einheitliche Transferkodierung für die Darstellungsschicht umgesetzt und beim Empfänger in die dort lokal gültige Kodierung zurückverwandelt. Zusätzlich zählen Datenkomprimierung und Verschlüsselung zu den Aufgaben dieser Schicht.
  • Schicht 7: Anwendungsschicht (Application Layer)
    Die Anwendungsschicht bietet eine Schnittstelle für Anwendungsprogramme, die das Netzwerk für ihre Zwecke nutzen wollen. Anwendungsprogramme selbst gehören nicht in diese Schicht, sondern nutzen lediglich deren Dienste. Die Anwendungsschicht stellt einfach handhabbare Dienstprimitive zur Verfügung, die sämtliche netzwerkinternen Details vor dem Anwender oder dem Programmierer des Anwendungsprogrammes verbergen und so eine einfache Nutzung des Kommunikationssystems ermöglichen.
    Zu den wichtigsten Funktionen der Anwendungsschicht zählen unter anderem:

Seit der Entwicklung des ISO/OSI-Referenzmodells haben sich die Konzepte für Protokollfamilien an verschiedenen Stellen zwar geändert und viele der neu entwickelten Protokolle passen gar nicht mehr genau in dieses Schema, ein Großteil der Terminologie, insbesondere Bezeichnung und Nummerierung der einzelnen Schichten, hat sich aber bis heute erhalten.



Das ISO/OSI – Referenzmodell: Teil 1 – Das Transportsystem


Mehr zum Thema von
Prof. Dr. Christoph Meinel

Für die Entwicklung von Netzwerkprotokoll-Familien wurde ab 1977 von der International Standards Organisation (ISO) das ISO/OSI Referenzmodell für die Kommunikation in offenen Netzwerken (Open Systems Interconnection) bereitgestellt. Es untergliedert den Gesamtprozess der Netzwerkkommunikation in sieben einzelne Schichten und ist konzipiert als gedankliches Werkzeug zur Entwicklung von Protokollfamilien (siehe Abbildung).

Das ISO/OSI-Referenzmodell trägt den Namen Open Systems Interconnection, weil es zur Verbindung offener Systeme bestimmt war, d.h. Systeme, die für die Kommunikation mit anderen Systemen offen stehen. Als Grundgedanke beim Design des ISO/OSI-Referenzmodells sollte jede einzelne Schicht eine genau definierte Funktion implementieren und eine neue, höhere Schicht stets dann eingefügt werden, wenn ein neuer Abstraktionsgrad zur Erledigung der zu bewältigenden Aufgaben notwendig war. Das ISO/OSI-Modell selbst bietet keine Netzwerkarchitektur, es werden lediglich die Aufgaben der einzelnen Schichten festgelegt und keine Aussage über die zur Realisierung der dort definierten Funktionalität notwendigen Dienste und Protokolle getroffen.
ISO/OSI Referenzmodell
Die die vier Schichten des ISO/OSI-Referenzmodells, die im Allgemeinen als Transportsystem bezeichnet werden, sind mit den folgenden Aufgaben befasst:

  • Schicht 1: Bitübertragungsschicht (Physical Layer)
    Die Bitübertragungsschicht definiert physikalische und technische Eigenschaften des Übertragungsmediums (Übertragungskanals). Speziell werden darin die Beziehungen zwischen der Netzwerk-Hardware und dem physikalischenÜbertragungsmedium geregelt, wie z.B. Layout und Belegung von Steckverbindungen mit ihren optisch oder elektrischen Parametern, Kabelspezifikationen, Verstärkerelemente, Netzwerkadapter, verwendeteÜbertragungsverfahren usw.Zu den wichtigsten Aufgaben der Bitübertragungsschicht zählen:

    • Aufbau und Beendigung einer Verbindung zu einem Übertragungsmedium und
    • Modulation, d.h. Konvertierung binärer Daten (Bitstrom) in (elektrische, optische oder Funk-) Signale, die über einen Kommunikationskanal übertragen werden können.
  • Schicht 2: Sicherungsschicht (Data Link Layer)
    Im Gegensatz zur Bitübertragungsschicht, deren Hauptanliegen in der Regelung der Kommunikation zwischen einer einzelnen Netzwerkkomponente und dem Übertragungsmedium besteht, befasst sich die Sicherungsschicht mit der Interaktion mehrerer (d.h. mindestens zwei) Netzwerkkomponenten. Die Sicherungsschicht gewährleistet, dass entlang einer Punkt-zu-Punkt Verbindung trotz gelegentlicher Fehler, die in der Bitübertragungsschicht auftreten können, eine zuverlässige Übertragung stattfinden kann. Diese Punkt-zu-Punkt Verbindung kann dabei entweder als direkte Verbindung ausgeführt sein oder auch über ein im Broadcastverfahren arbeitendes Diffussionsnetzwerkrealisiert werden, wie z.B. bei Ethernet oder WLAN. In einem Diffusionsnetzwerk können alle angeschlossenen Rechner die übertragenen Daten aller anderen angeschlossenen Rechner empfangen, ohne dass dazu irgendwelche Zwischensysteme nötig wären.Zu den auf der Sicherungsschicht zu bewältigenden Aufgaben zählen
  • die Organisation von Daten in logische Einheiten, die auf der Sicherungsschicht als Rahmen (Frames) bezeichnet werden,
    • die Übertragung von Rahmen zwischen Netzwerkkomponenten,
    • das Bitstopfen, d.h. das Ergänzen nicht vollständig gefüllter Rahmen mit speziellen Fülldaten und
    • die zuverlässige Übertragung von Rahmen durch einfache Fehlererkennungsverfahren, wie z.B. die Prüfsummenberechnung.
  • Schicht 3: Vermittlungsschicht (Network Layer)
    Die Vermittlungsschicht stellt funktionale und prozedurale Mittel zur Verfügung, die den Transfer von Datensequenzen variabler Länge (Datenpakete) von einem Sender zu einem Empfänger über ein oder mehrere Netzwerke hinweg ermöglichen.
    Zu den Aufgaben der Vermittlungsschicht zählen:

    • die Zuweisung von Adressen zu End- und Zwischensystemen,
    • die zielgerichtete Weiterleitung von Datenpaketen von einem Ende des Netzwerks zum anderen (Routing) und damit
    • die Verknüpfung einzelner Netzwerke (Internetworking),
    • die Fragmentierung und Reassemblierung von Datenpaketen, da unterschiedliche Netzwerke von unterschiedlichen Transportparameter bestimmt werden, und
    • die Weiterleitung von Fehler- und Statusmeldungen bzgl. erfolgter Zustellung von Datenpaketen
  • Schicht 4: Transportschicht (Transport Layer)
    Die Transportschicht ermöglicht einen transparenten Datentransfer zwischen Endanwendern und stellt den darüberliegenden Schichten einen zuverlässigen Transportdienst zur Verfügung. Die Transportschicht definiert dabei die Einzelheiten, die für eine zuverlässige und sichere Datenübertragung notwendig sind. Hier wird sichergestellt, dass eine Folge von Datenpaketen fehlerfrei, vollständig und in der richtigen Reihenfolge vom Sender zum Empfänger gelangt. Auf der Transportschicht erfolgt ebenfalls die Abbildung von Netzwerkadressen auf logische Namen. Damit stellt die Transportschicht den beteiligten Endsystemen eine Ende-zu-Ende Verbindung zur Verfügung, die die Einzelheiten der dazwischenliegenden Netzwerkinfrastruktur verbirgt und daher als transparent bezeichnet wird. Die Protokolle auf dieser Schichte zählen zu den komplexesten Protokollen in der Netzwerk-Kommunikation.


Schichtenmodell


Mehr zum Thema von
Prof. Dr. Christoph Meinel

Um die Protokoll-Designer in ihrer Arbeit zu unterstützen, wurden Werkzeuge und Modelle entwickelt, die den Gesamtprozess der Netzwerk-Kommunikation feingliedrig aufschlüsseln und hierarchisch aufeinander aufbauend anordnen. So werden klare Schnittstellen zwischen den einzelnen Hierarchiestufen festgelegt, die die weitgehend unabhängige Entwicklung und Verbesserung der auf diesen Stufen jeweils angesiedelten Netzwerkprotokolle ermöglichen und so weit wie möglich vereinfachen. Die bekannteste Modellvariante ist das Schichtenmodell (Layering Model, Protocol Stack). Der gesamte Netzwerk-Kommunikationsprozess wird dabei in einzelne übereinander angeordnete Schichten (Layers) aufgeteilt, wobei jede Schicht ein bestimmtes Teilproblem der Netzwerkkommunikation adressiert und eine neue Abstraktionsebene der Kommunikation hinzugefügt. Die oberste Schicht bietet schließlich das Interface für Anwendungsprogramme, die Nachrichten mit Anwendungen auf anderen Rechnern austauschen wollen. Auf der Basis eines solchen Schichtenmodells konstruiert der Protokoll-Designer eine vollständige Protokollfamilie, den sogenannten Protokollstapel, bei dem die einzelnen Protokolle jeweils genau die auf einer Schicht adressierten Aufgaben lösen. Prinzipiell ist in einem solchen Schichtenmodell die Übertragung einer Nachricht von einem Anwendungsprogramm des einen Rechners zu einem Anwendungsprogramm des anderen Rechners so organisiert, dass die Nachricht auf dem Ursprungsrechner über die verschiedenen Protokollschichten von oben nach unten durchgereicht und teilverarbeitet wird, dann physikalisch über das Übertragungsmedium übertragen und am Bestimmungsrechner dieselben Protokollschichten in umgekehrter Reihenfolge, also von unten nach oben, durchlaufend schließlich an die Anwendung übergeben wird (siehe Abb. 2.1).

Datenübertragung über einen Protokollstapel

Im Schichtenmodell ist jede Schicht für die Lösung eines bestimmten Teils der zahlreichen Aufgaben verantwortlich, die im Rahmen der Netzwerk-Kommunikation anfallen. Um diese Aufgaben korrekt erledigen zu können, werden auf Seiten des sendenden Rechners auf jeder einzelnen Schicht des Protokollstapels Kontroll- und Steuerinformationen kreiert und verwendet, die den zu übertragenden Daten hinzugefügt werden (siehe Abb. 2.2). Beim empfangenden Rechner werden diese Zusatzinformationen von der zur jeweiligen Schicht korrespondierenden Protokoll- Software ausgelesen und weiterverarbeitet, so dass die zu übertragenden Daten am Ende korrekt und in Originalgestalt abgeliefert werden können.

Gemäß dem Schichtenmodell der Netzwerkkommunikation muss die Protokoll- Software einer bestimmten Schicht k auf dem Rechner des Empfängers genau die Nachricht empfangen, die von der Protokoll-Software der Schicht k des sendenden Rechners übertragen wurde. Dies bedeutet, dass jede Veränderung, die die Protokolle einer bestimmten Schicht an den zu übertragenden Daten vornehmen, beim Empfänger wieder vollständig rückgängig gemacht werden muss. Fügt Schicht k den zu übertragenden Daten zusätzliche Steuer- und Kontrollinformationen an, muss Schicht k auf dem Empfängerrechner diese wieder entfernen. Findet in Schicht k eine Verschlüsselung der Daten statt, müssen auf Empfängerseite in der Schicht k die verschlüsselten Daten wieder entschlüsselt werden.

Jede Schicht des Protokollstapels fügt eigene Steuer- und Kontrollinformationen zu den übertragenden Daten hinzu
Die eigentliche Kommunikation erfolgt in den Protokollstapeln also immer in vertikaler Richtung. Beim Versenden von Daten fügt jede Protokollschicht ihre Steuerund Kontrollinformationen zu diesen Daten hinzu. Typischerweise werden diese Informationen dann dem von der darüberliegenden Schicht zur Übertragung übergebenen Datenpaket als Header vorangestellt, man sagt, das Datenpaket wird ” gekapselt“. Aus diesen Zusatzdaten erhält die Protokollsoftware auf der Empfängerseite bzw. in einem Zwischensystem in der korrespondierenden Protokollschicht die notwendigen Steuer- und Kontrollinformationen, die eine korrekte und zuverlässige Weiterverarbeitung der übertragenen Daten gewährleisten. Auf den einzelnen Protokollschichten erscheint das so, als würde die Protokollsoftware auf beiden Seiten, bei Sender und Empfänger, direkt miteinander kommunizieren, während die Daten aber tatsächlich vertikal durch den Protokollstapel weitergeleitet werden. Diese scheinbar direkte Kommunikation auf den einzelnen Schichten wird auch als virtuelle Kommunikation bezeichnet.

Damit definiert jede Protokollschicht zwei verschiedene Schnittstellen. Damit Anwendungen die Dienste eines Protokolls auf dem eigenen Computer nutzen können, wird das sogenannte Dienst-Interface (Service Interface) definiert. Das Dienst- Interface legt sämtliche Operationen fest, die lokale Anwendungen mit dem Protokoll ausführen können. Zusätzlich wird in jeder Protokollschicht auch eine Schnittstelle zum Gegenstück bei der entsprechenden Protokollschicht auf einem anderen Computer definiert, das sogenannte Partner-Interface (Peer Interface).



Protokollfamilien


Mehr zum Thema von
Prof. Dr. Christoph Meinel

Zur Kommunikation müssen sich – übrigens nicht nur im Falle der digitalen Kommunikation in Rechnernetzen – alle kommunizierenden Parteien auf gemeinsame feste Regeln zum Austausch von Nachrichten einigen. Dies betrifft sowohl die zur Kommunikation verwendete Sprache, als auch alle Verhaltensregeln, die eine effiziente Kommunikation erst ermöglichen. Diese Verhaltensregeln werden in der Fachsprache mit dem Begriff Kommunikationsprotokoll oder Protokoll zusammengefasst. Ein Kommunikationsprotokoll legt sowohl das Format der von den Kommunikationspartnern auszutauschenden Nachrichten fest und spezifiziert auch sämtliche Aktionen, die zur Übermittlung dieser Nachrichten notwendig sind. Im Falle der Kommunikation in Rechnernetzen heißt die Software, mit der das Netzwerkprotokoll auf einem Rechner implementiert wird, Protokoll-Software. Während die Entwicklung der ersten Rechnernetze vornehmlich nur die beteiligte Hardware fokusierte und die Protokollsoftware nur als zweitrangig angesehen wurde, hat sich diese Strategie grundlegend verändert. Protokollsoftware ist heute sehr komplex hochgradig strukturiert. Anstelle ein riesiges, komplexes und universelles Netzwerkprotokoll bereitzustellen, das sämtliche anfallenden Aufgaben der Netzwerk- Kommunikaton regelt, wurde das Problem der Netzwerk-Kommunikation nach dem Prinzip ”Teile-und-Herrsche“ (divide et impera, divide and conquer) in eine Vielzahl einzeln handhabbarer Teilprobleme zerlegt, zu deren Lösung jeweils eigene problemspezifische (Teil-)Protokolle bereitgestellt werden.

Die verschiedenen Teilprobleme werden jeweils von speziellen Protokollen abgehandelt, die aber – und dies ist das zweite zu lösende, in seiner Komplexität nicht zu unterschätzende Problem – alle reibungslos ineinandergreifen und zusammenarbeiten müssen. Um dieses Zusammenspiel zu gewährleisten, wird die Entwicklung der Protokoll-Software als eine umfassend zu lösende Gesamtaufgabe angesehen und durch die Bereitstellung einer zusammengehörigen Familie von Protokollen (Protokollstapel, Protocol Suites) gelöst, in der alle Einzelprotokolle effizient miteinander interagieren und im Zusammenspiel das Gesamtproblem der Netzwerk- Kommunikation lösen.

Zwar besitzen die unterschiedlichen Protokollfamilien viele gemeinsame Konzepte, doch da sie in der Regel unabhängig voneinander entwickelt wurden, sind sie nicht kompatibel. Dennoch ist es möglich, verschiedene Protokollfamilien gleichzeitig und parallel auf den Rechnern eines Netzwerks einzusetzen, und diese alle sogar dieselbe physikalische Netzschnittstelle nutzen zu lassen, ohne dass es dabei zu Störungen kommt.

Der Begriff ” Protokoll“ wird üblicherweise in zwei unterschiedlichen Bedeutungen verwendet. Einerseits bezieht sich der Begriff des Protokolls auf die Definition einer abstrakten Schnittstelle (Interface). Dazu zählen sämtliche Funktionen und Operationen, die über diese Schnittstelle zur Verfügung gestellt werden. Andererseits werden unter dem Protokollbegriff sämtliche zur Kommunikation ausgetauschten Nachrichtenformate und deren Bedeutung zusammengefasst. Die Definition des Protokolls – die Protokollspezifikation – erfolgt meist in einer Kombination aus spezifizierendem Text, Abbildungen, Zustandsübergangsdiagrammen und Algorithmen in Pseudocode. Die Spezifikation muss so präzise sein, dass unterschiedliche Implementationen der Protokolle interoperabel sind, dass also zwei der verschiedenen Implementationen erfolgreich Nachrichten austauschen können.



Kommunikationsprotokolle und Schichtenmodell

Widmen wir uns zunächst kurz den Grundlagen der Rechnerkommunikation. Die Hardware eines Computernetzwerkes setzt sich aus Komponenten zusammen, deren Aufgabe darin besteht, Informationen kodiert in Form von Bits von einem Rechner zu einem anderen zu übertragen. Würde man die Rechnerkommunikation ausschließlich auf dieser Ebene organisieren wollen, wäre das vergleichbar mit der Programmierung eines Rechners in einer rudimentären Maschinensprache, d.h. unter ausschließlicher Verwendung von Nullen und Einsen. Dadurch würde der notwendige Aufwand und die damit einhergehende Komplexität der zu bewältigenden Aufgaben praktisch unbeherrschbar. Ähnlich wie in der Rechnerprogrammierung wurden deshalb zur Steuerung und Nutzung von Rechnernetzen komplexe Softwaresysteme – sogenannte Netzwerkbetriebssysteme – geschaffen, mit deren Hilfe Rechnernetze auf bequemere Art und Weise von einer höheren Abstraktionsebene aus, gesteuert und genutzt werden können.

Diese Netzwerkbetriebssysteme basieren auf der Idee, Kommunikationsaufgaben und -funktionen in unterschiedlicher Abstraktion und Komplexität zu behandeln. Dabei werden Aufgaben und Funktionalität des gleichen Abstraktionslevels gebündelt in sogenannten Schichten betrachtet. Aufeinander aufbauend werden so unterschiedliche Schichten definiert, die mit zunehmenden Abstraktionsgrad unterschiedlich komplexe Kommunikationsaufgaben abhandeln und dem Benutzer oder einer Computeranwendung über geeignete Schnittstellen zur Verfügung stellen. Das entstehende Modell wird als Schichtenmodell der Kommunikation bezeichnet. Die auf den unterschiedlichen Schichten agierenden Kommunikationsprotokolle greifen über die im Schichtenmodell beschriebenen Schnittstellen ineinander und bieten gemeinsam als Familie von Kommunikationsprotokollen (Protokollfamilie, Protocol Suite) ein funktionstüchtiges Netzwerkbetriebssystem.

Der Nutzer, wie auch die meisten Anwendungsprogramme, die über das Netzwerk kommunizieren, um Daten auszutauschen und Dienste anzubieten, kommen lediglich mit diesem Netzwerkbetriebssystem in Kontakt und nur äußerst selten mit der darunter verborgenen Netzwerk-Hardware.