Die International Standards Organisation (ISO) hat sich Mitte der 70er Jahre der Probleme angenommen die unter Allgemeines zu Schichtenmodellen beschrieben worden sind. Im Rahmen dieser Arbeiten wurde versucht, alle notwendigen Funktionen offener Systeme zu identifizieren und zueinander in Beziehung zu setzen. Daraus entstand ein siebenschichtiges, hierarchisch gegliedertes Modell.
Dieses Referenzmodell wurde als Open Systems Interconnection (OSI) Referenzmodell bezeichnet und 1984 mit dem Dokument ISO 7498 veröffentlicht. Das OSI-Referenzmodell ist ein Architekturmodell und keine Implementationsanleitung. Es dient deshalb ausschliesslich der Darstellung logischer Interaktionen zwischen Endsystemen zum Zwecke des Datenaustausches. Wegen seiner globalen Bedeutung wurde dieses Modell von der CCITT übernommen und als CCITT-Empfehlung X.200 festgeschrieben (Stöttinger, 1989).
Wie oben bereits erwähnt, besteht das OSI-Modell aus sieben Schichten. Folgende Prinzipien haben zu dieser Siebenschichtigkeit geführt:
Schematische Darstellung des OSI-Referenzmodells:
| Application Layer | Anwendungs-Schicht | |
| Presentation Layer | Darstellungs-Schicht | |
| Session Layer |
Sitzungs-Schicht | |
| Transport Layer | Transport-Schicht | |
| Network Layer | Netzwerk-Schicht | |
| Data-Link Layer | Sicherungs-Schicht | |
| Physical Layer | Bitübertragungs-Schicht | |
| Medium | ||
Nach DIN ISO7498:
Die Bitübertragungsschicht stellt ungesicherte Systemverbindungen zwischen Systemen für die Übertragung von Bits zur Verfügung.
Die Bitübertragungsschicht betrifft die Übertragung von rohen Bits über einen Kommunikationskanal und bildet die Basis des OSI-Modells auf der alle anderen Schichten aufbauen. Sie ist deshalb die einzige Schicht die nur Dienste zur Verfügung stellt, selber aber auf keinen Dienst zugreifen kann. Sie ist also im Gegensatz zu den Schichten 2-7 nur Dienstanbieter. Die Aufgaben, die die Bitübertragungsschicht zu erledigen hat, lassen sich wie folgt zusammenfassen:
Mit der Forderung nach Transparenz der Bitübertragung ist gemeint, dass die übertragenen Daten nichts von der - notwendigen - Flusskontrolle bemerken. Die transparente Datenübertragung wird durch Wegnahme der Signalisierung von den Datenleitungen erreicht. Die Datenleitungen dienen nur der Datenübertragung und nicht der schichtinternen Flusskontrolle.
Neben der Spezifikation dieser prozeduralen, d.h protokollorientierten Schnittstelle, stehen in dieser Schicht die Spezifikation der mechanischen und elektrotechnischen Schnittstelle zum Übertragungsmedium im Vordergrund (Stöttinger, 1989).
Nach DIN ISO7498:
Die Sicherungsschicht verbessert ungesicherte Systemverbindungen zu gesicherten Systemverbindungen.
Die Hauptaufgabe der Sicherungsschicht ist es, eine rohe Übertragungseinrichtung in eine Leitung zu verwandeln, die sich der Vermittlungsschicht frei von unerkannten Übertragungsfehlern darstellt. Diese Aufgabe wird dadurch erfüllt, dass der Sender die Eingangsdaten zu je einigen hundert oder tausend Byte in Datenrahmen (Data Frames) verpackt und die Bestätigungsrahmen (Acknowledgement Frames) geeignet verarbeitet. Da die Bitübertragungsschicht einfach nur einen Strom von Daten sendet ohne sich um deren Struktur zu kümmern, ist es Aufgabe der Sicherungsschicht die Rahmengrenzen einzufügen und zu erkennen. Das Übertragungsprotokoll der Sicherungsschicht muß sicherstellen, dass beschädigte oder verlorene Rahmen erneut übertragen werden. Um Störungen erkennen zu können werden geeignete Sicherungsprotokolle wie z.B. Parity Bit oder CRC (Cyclic Redundancy Check) eingesetzt. Zur Implementation von selbstkorrigierendem Code wird z.B. Hamming-Codierung eingesetzt. Ein weiteres Problem das auf dieser Schicht auftaucht, ist das der Datenüberschwemmung. Es entsteht, wenn der Sender schneller sendet als der Empfänger verarbeiten kann. Daraus ergibt sich die Forderung nach einer Flusskontrolle. Diese wird meist mit Hilfe des Schiebefensterprotokolls (Sliding Window Protocol) realisiert. Diese und noch weitere Sicherungsmechanismen werden ausführlich in (Tanenbaum, 1998) und (Tanenbaum, 1996) sowie in (Tanenbaum et al., 1996) dargestellt.
In Broadcast-Netzwerken muss eine Zugangskontrolle zum Medium eingeführt werden. Dies wird ebenfalls in der Sicherungsschicht (als sogenannte MAC-Teilschicht) implementiert.
DIN ISO7498:
Die Vermittlungsschicht verknüpft gesicherte Datenverbindungen (von Endsystem zu Transitsystem und zwischen Transitsystemen) zu einer Endsystemverbindung (von Endsystem zu Endsystem).
Die wichtigste Aufgabe der Vermittlungsschicht (Network Layer) ist die Auswahl der Paketrouten bzw. die Wegeauswahl vom Ursprungs- zum Bestimmungsort. Die Routen können dabei auf statischen Tabellen beruhen, die im Netz fest "verdrahtet" sind und sich nur selten ändern. Sie können auch bei Beginn jeder Sitzung festgelegt werden oder aber dynamisch für jedes Paket individuell festgelegt werden, um so eine optimale Netzwerkauslastung zu gewährleisten. Eine weitere Aufgabe besteht darin, Staus von Paketen in einem Teilnetz zu erkennen und zu beheben. Da die Eigentümer von Netzwerken diese häufig nicht kostenlos zur Verfügung stellen, umfasst die Vermittlungsschicht meist auch eine Abrechnungsfunktion. Für die Rechnungsstellung muss die Software dieser Schicht mindestens die Anzahl der Pakete, Zeichen oder Bits zählen die jeder Kunde sendet.
Auch die Aufgabe mit Paketen Netze zu kreuzen, die eigentlich von ihrer Adressierung und/oder Paketgrösse her nicht kompatibel miteinander sind, muß auf der Vermittlungsschicht gelöst werden, damit heterogene Netze zusammengeschlossen werden können (Tanenbaum, 1998).
DIN ISO7498:
Die Transportschicht erweitert Endsystemverbindungen, die von Endsystem zu Endsystem führen, zu Anwenderverbindungen, die von Anwender zu Anwender führen. Unter einem Anwender ist eine Zuordnung zwischen einer Anwendungsinstanz, einer Darstellungsinstanz und einer Kommunikationssteuerungsinstanz zu verstehen.
Die Transportschicht (Transport Layer) hat die Aufgabe Daten von der Sitzungsschicht zu übernehmen, gegebenenfalls in kleinere Einheiten zu zerlegen, sie danach an die Vermittlungsschicht zu übergeben und dann dafür zu sorgen, daß alle Teile richtig am anderen Ende ankommen. Erfordert die Transportverbindung einen hohen Durchsatz , kann die Transportschicht auch mehrere Netzverbindungen aufbauen und die Daten auf diese Verbindungen verteilen, um den Durchsatz zu steigern. Andererseits kann die Transportschicht auch mehrere Transportverbindungen auf einer einzigen Netzwerkverbindung multiplexen, falls der Aufbau und/oder die Aufrechterhaltung einer Verbindung teuer ist. In jedem Fall verbirgt die Transportschicht diese Details vor der Sitzungsschicht (Tanenbaum, 1998).
Im Transportdienst wird eine Übergabeadresse fixiert. Diese gibt die letzte physikalische Adresse an, an der die zu übermittelnden Daten dem Anwendungsprozeß übergeben werden. Die höheren Ebenen regeln nur noch das 'wie' der Datenübergabe - das 'wo' wird in der Transportschicht festgelegt. Der Transportdienst stellt somit die Verbindung zwischen der Nachrichtenquelle und der Nachrichtensenke zur Verfügung (Stöttinger, 1989).
DIN ISO7498:
Die Sitzungsschicht stellt Ausdrucksmittel zur Verfügung, die zur Eröffnung einer Kommunikationsbeziehung - Sitzung genannt - ihrer geordneten Durchführung und Beendigung nötig sind. Die Ausdrucksmittel dienen im Wesentlichen der Synchronisation, d.h. der Feststellung und ggf. der Herstellung der notwendigen Übereinstimmung zwischen kommunizierenden Instanzen.
Die Sitzungsschicht (Session Layer) ermöglicht es Benutzern, an verschiedenen Maschinen Sitzungen untereinander aufzubauen. Eine Sitzung ermöglicht den gewöhnlichen Datentransport, wie die Transportschicht auch, bietet aber zusätzlich erweiterte Dienste.
Eine der wichtigsten Funktionen ist der geregelte Dialogablauf. Dies wird durch Synchronisation der beiden beteiligten Teilnehmer erreicht, in dem Sychronisationspunkte in den Datenstrom (Checkpoints) gesetzt werden. Bei einem vorübergehenden Zusammenbruch bzw. einer Störung der Verbindung kann dann die Übertragung dann beim letzten Checkpoint wieder aufgenommen werden und muss nicht wieder von vorn begonnen werden (Tanenbaum, 1998).
Eine andere wichtige Funktion dieser Schicht ist die Regelung der exklusiven Nutzung bestimmter Dienste, beispielsweise das Recht über einen Halbduplexkanal zu senden oder die Berechtigung eine Verbindung abbrechen zu können. Dies geschieht mit Hilfe von Berechtigungsmarken (Tokens); nur die Seite die das Token besitzt darf den Dienst benutzen. (Unger, 1995)
DIN ISO7498:
Die Darstellungsschicht stellt Ausdrucksmittel (wie z.B. Zeichenvorrat, Attribute) zur Verfügung, die es den Anwendungsinstanzen ermöglichen, Begriffe eindeutig zu benennen, und legt im Darstellungsprotokoll die Regeln fest, wie die in der gemeinsamen Sprache dargestellte Information auszutauschen ist.
Die Darstellungsschicht (Presentation Layer) führt bestimmte Funktionen aus, die durch die häufige Verwendung eine allgemeine Lösung rechtfertigen, anstatt es jedem Benutzer zu überlassen, die damit verbundenen Aufgaben zu lösen. Damit Anwendungsprozesse in verteilten offenen Systemen kooperieren können, ist neben der Möglichkeit zu reinen Datenaustausch auch eine identische Interpretation der in Form von Bitfolgen ausgetauschten Datenobjekte erforderlich. Eine darstellungsunabhängige Spezifikation der Datenobjekte, ihrer Typen und Typkonstruktoren wird im Rahmen von OSI als deren abstrakte Syntax bezeichnet. Zur Notation werden vor allem spezielle Beschreibungssprachen für abstrakte Syntaxen verwendet, wie z.B die Abstract Syntax Notation One (ASN.1), einer Sprache, die eigens für die Spezifikation abstrakter Syntaxen in OSI-Anwendungen entwickelt wurde. Die Dienste der Darstellungsschicht dienen nun dazu, zwischen den kommunizierenden Instanzen mit Hilfe geeigneter Protokolle eine Einigung über die der aktuellen Kommunikation zugrunde zu legenden abstrakten Syntaxen zu erzielen. Diese wird der 'aktive Darstellungskontext' genannt. Daneben werden von der Darstellungsschicht die Dienste der Sitzungsschicht unverändert durchgereicht, wobei beim Rücksetzen auf Checkpoints zusätzlich auf den zum Synchronisationszeitpunkt aktiven Darstellungskontext zurückgesetzt wird (Unger, 1995) .
DIN ISO7498:
In der Anwendungsschicht, als der höchsten Schicht des Referenzmodells, manifestiert sich die Funktion der Informationsverarbeitung in einer Kommunikation. Kommunizierende Anwendungsinstanzen bilden verteilte Anwendungen.
Die Verarbeitungsschicht enthält einen Vielzahl häufig benötigter Protokolle. Die Protokolle stellen folgende allgemein verwendbare Dienstelemente (CASE, common application service elements) zur Verfügung:
| ACSE (association control service elements) | Dienstelemente zur Anwendungsassoziation die es ermöglichen, Beginn, Ende und Abbruch einer Verbindung auf einheitliche Weise zu identifizieren |
| CCR (commitment, concurrency and recovery) | Dienstelemente für atomare Verarbeitung, den gleichzeitigen Zugriff und die Wiederherstellung. Damit kann der Beginn, Ende und Abbruch einer atomaren Aktion angezeigt und ein Rücksetzen auf einen Checkpoint initiiert werden. (2-phase-commit) |
| RTSE (reliable transfer service elements) | Dienstelemente für zuverlässige Übertragung sorgen für die zuverlässige Übertragung von Protokollinformationen zwischen Instanzen der Anwendungschicht. |
| ROSE (remote operation service elements) | Dienstelemente für entfernte Operationsausführung stehen zur verteilten Ausführung von Prozeduren und Funktionen bereit. |
Daneben gibt es die speziellen Anwendungsdienstelemente (SASE, special application service elements) die den Zugang zu oft benutzten aber dennoch speziellen Dienstleistungen in verteilten Anwendungen wie z.B. Datenübertragung, email, remote login etc. beschreiben (Unger, 1995)