Rechnernetze
Home Nach oben

Architekturmodelle von Rechnernetzen

Komplexe Systeme, wie Rechnernetze sie zweifellos darstellen, werden heute von vielen Personen entworfen und realisiert. Um die Zusammenarbeit bei diesem Prozess zu unterstützen, ist eine geeignete Strukturierung des gesamten Problems in Teilprobleme erforderlich. Die Umsetzung eines Rechnernetzkonzepts erfordert darüber hinaus moderne softwaretechnische Methoden, wie die Modularisierung in einzelne, übersichtliche Aufgabenbereiche; in der Informatik wird eine solche Softwarestruktur auch als Softwarearchitektur bezeichnet. Für Kommunikationssysteme wurde 1978 von der internationalen Standardisierungsorganisation (ISO) eine Softwarearchitektur entworfen (OSI=Open System Interface), die heute breite Beachtung findet und als Entwurfsrichtlinie für die meisten Kommunikationssysteme verwendet wird.

Nach diesem ISO/OSI-Basisreferenzmodell wird ein Kommunikationssystem in Schichten (layer) aufgeteilt, wobei jeder Schicht eine Menge von Funktionen zugeordnet wird, und einer 'höheren' Schicht sämtliche Funktionen aller 'unteren' Schichten zur Verfügung gestellt wird; jede Schicht implementiert selbst weitere Funktionen, die sie den jeweils höheren Schichten zusätzlich zur Verfügung stellt. Somit erscheint auf der obersten Schicht, auf welche die Anwendungsprozesse zugreifen können, eine große Anzahl von Funktionen, die von den "Anwendern" beliebig verwendet werden könnten.

RN-ARCHITEKTUR-1.WMF (12362 Byte)

OSI–Basisreferenzmodell: Schichtenarchitektur

Tatsächlich ist diese Vielfalt an Funktionen nicht erwünscht, da der Anwender (meist ein Prozess auf dem lokalen Rechner) möglichst nur einen Dienst zur Verfügung haben möchte, der sein spezielles Kommunikationsproblem löst. Details der Realisierung dieses Dienstes würden seine Arbeit nur behindern. Aus diesem Grunde fasst die oberste Schicht, die Anwendungsschicht (application layer) genannt wird, sämtliche Funktionen der unteren Schichten zusammen, und bietet dem Teilnehmer einige wenige Dienste an, die er über einfache Dienstprimitive (service primitive) benutzen kann (das Primitiv, vom lat. primitivum).

Beispiel

Der Anwender möchte eine Datei übertragen. Er hat die folgenden Dienstprimitive zu benutzen:

  1. Veranlasse den Aufbau einer Verbindung zum gewünschten Ziel.
  2. Falls der Verbindungsaufbau erfolgreich:
    Spezifiziere zu übertragende Datei und führe Übertragung durch.
  3. Falls Übertragung erfolgreich war oder unmöglich ist:
    Baue Verbindung wieder ab.

Zur ersten Grobstrukturierung der OSI-Architektur wird das System in zwei Teile untergliedert, die Übertragungs- und Anwendungsprotokolle genannt werden.

Anwendungsprotokolle Application Protocols
Übertragungsprotokolle Presentation Protocols

Die Anwendungsprotokolle werden in die Schichten

Anwendungsschicht Application Layer
Darstellungsschicht Presentation Layer
Kommunikationssteuerungsschicht Session Layer

eingeteilt.

Mit der Darstellungsschicht (presentation layer) soll erreicht werden, dass die zu übertragende Information (d.h. die Bedeutung einer Nachricht) innerhalb des Rechnernetzes eindeutig ist. Gegenwärtige Rechensystem stellen Zahlen und Zeichen unterschiedlich dar, so dass ein bloße Übertragung der Datenbits auf verschiedenen Rechensystemen unterschiedlich interpretiert wird.

Beispiel

Die meisten Rechner verwenden heute die Zeichenkodierung nach dem internationalen Alphabet Nr. 5 (ASCII), andere benutzen das EBCDIC-Alphabet von IBM. Trotzdem können solche Rechner miteinander kommunizieren, wenn sie die in der Darstellungsschicht angebotenen Funktionen verwenden und ihre Information mittels ASN.1 beschreiben bzw. mit BER kodieren.

Weitere Unterschiede der Darstellung in verschiedenen Rechnern findet man bei Zahlen (Einer- oder Zweierkomplement; Reihenfolge der Bytes) oder Zeichenketten (gepackt oder ungepackt; recordweise oder zeilenweise, usw.)

Wenn alle Teilnehmer ihre Information auf genau eine Weise kodieren, wird die Information von allen Rechnern nur auf genau eine Weise ins Netz geschickt, bzw. vom Netz an die Rechner abgegeben wird. Dadurch kann jeder Rechner mit jedem anderen Rechner kommunizieren, ohne dass sich der einzelne Anwender mit Fragen der Kodierung beschäftigen muss. Der Darstellungsschicht kommt somit die Aufgabe zu, die Kodierung der Information derart durchzuführen, dass sie im Netz einheitlich vorliegt. Die Darstellungsmethode kann zwischen den Kommunikationspartnern ausgehandelt werden. Zur Zeit gibt es nur einen offiziellen Standard für die Darstellung der Information im Netz: ASN.1 (Abstract Syntax Notation Number One). In ASN.1 wird die abstrakte Transfersyntax der Daten beschrieben, d.h. der Wertebereich und die Bedeutung von Daten; die konkrete Transfersyntax, d.h. die Kodierung der Daten in transportierbare Bytes, wird durch die BER (basic encoding rules) festgelegt. Allerdings wird ASN.1 nur bei wenigen Anwendungen eingesetzt, da heute vorwiegend noch proprietäre (herstellerspezifische) Protokolle verwendet werden.

Die Kommunikationssteuerungsschicht (session layer) hat die Aufgabe, die geregelte Kommunikation zwischen zwei Teilnehmern sicherzustellen, d.h. festzulegen, wann Teilnehmer A oder wann Teilnehmer B senden darf. Außerdem können Kontrollpunkte (Synchronisationspunkte) gesetzt werden, so dass während einer längeren Kommunikation bei einem Fehler des Netzes die Kommunikation wieder geordnet aufgenommen werden kann. Es wird sogar ermöglicht, die Kommunikation an einem beliebigen Punkt für eine beliebige Zeit zu unterbrechen und später wieder fortzusetzen.

Die Funktionalitäten der unteren vier Schichten der OSI-Architektur werden als Übertragungsprotokolle bezeichnet.

Transportschicht Transport Layer
Vermittlungsschicht Network Layer
Datensicherungsschicht Data Link Layer
Bitübertragungsschicht Physical Layer

Die Transportschicht (transport layer) hat die Aufgabe, den höheren Schichten eine einheitliche Schnittstelle zum Netz zur Verfügung zu stellen. Sie baut End-zu-End-Verbindungen auf und ab und kann mehrere virtuelle Verbindungen gleichzeitig unterhalten (multiplexen). Sie stellt somit das Bindeglied zwischen den Anwendungs- und den Übertragungsschichten dar und wird von uns auch entsprechend als Schnittstelle zwischen der Netzwerkumgebung und der Anwendungsumgebung behandelt.

Die Vermittlungsschicht (network layer) bestimmt einen Weg durch ein Netz von Vermittlungsstationen zu einem gewünschten Ziel; während der Datenübertragung zerlegt sie die Datenpakete (packet) in Blöcke (block), welche die Sicherungsschicht übertragen kann; gegebenenfalls führt sie eine Adressumsetzung zur Identifikation von Datenpaketen auf verschiedenen Links durch.

Die Datensicherungsschicht (data link layer) garantiert den zuverlässigen Transport von Information zwischen zwei benachbarten (d.h. durch die gleiche Leitung (link) verbundenen) Rechnern. Hier wird die Information in Rahmen (frame) eingepackt und mit zusätzlicher Kontrollinformation zu einem benachbarten Rechner geschickt; in der Regel wird durch ein geeignetes Protokoll die sichere, fehlerfreie Übertragung solcher Rahmen garantiert

Die Bitübertragungsschicht (physical layer) ist für die Übertragung einzelner Bits zwischen zwei Rechnern am gleichen Link verantwortlich. Zu diesem Zweck werden im ISO/OSI-Basisreferenzmodell, Spannungswerte, Steckergrößen, Kabeleigenschaften usw. empfohlen (bzw. es wird sich auf den Standard X.21 bezogen, in dem solche Größen festgelegt sind).

Das folgende Bild stellt die unteren vier Schichten des ISO/OSI-Basisreferenzmodells dar. Die unteren drei Schichten werden in der Empfehlung X.25 der CCITT festgelegt. Während die oberen Schnittstellen offenbar systematisch aufgebaute Namen verwenden, sind die Namen der PDUs (Protokolldateneinheiten; protocol data units) an den unteren Schnittstellen ganz anders gewählt, da hier das bereits vor dem ISO/OSI-Basisreferenzmodell eingeführte HDLC-Protokoll verwendet wird.

RN-ARCHITEKTUR-2.wmf (11970 Byte)

X.25–Protokoll, Schichten und PDUs

Beispiel

Zur Veranschaulichung stellen wir uns vor, dass ein Datensatz mit dem Datum "X" übertragen werden soll. Der Anwendungsprozess übergibt diesen Datensatz der Anwendungsschicht. Diese ordnet ihn der richtigen Verbindung zu und kodiert ihn mittels der Funktionen der Darstellungsschicht in BER; man erhält die PDU: "X". Dann bittet die Kommunikationssteuerungsschicht die Gegenseite, senden zu dürfen, was diese durch Übermittlung einer Sendeberechtigungsmarke gestattet. Sodann wird die entsprechende Funktion der Transportschicht aufgerufen, die vor "X" eine netzweit gültige Adresse "A" stellt und diese PDU "A:X" an die Vermittlungsschicht weiterreicht. Diese sucht den passenden benachbarten Rechner mit der Adresse "B" heraus, über welchen dieser Datensatz weiterzureichen ist, und übergibt die PDU: "B:A:X" an die Datensicherungsschicht. Diese ersieht aus "B", auf welche Ausgangsleitung diese PDU zu schicken ist, und übergibt sie der zugehörigen Datensicherungsschicht. Diese sendet das Paket bitweise an den Rechner mit der Adresse "B" unter Zuhilfenahme der Funktionen der Bitübertragungsschicht. Der Rechner B reicht die PDU an einen anderen Rechner in Richtung auf das Ziel weiter. Irgendwann trifft die PDU am Rechner "A" ein; dieser vollführt die umgekehrte Prozedur und liefert das Datum "X" dem jeweiligen Anwendungsprozeß ab.

(Wir haben in diesem vereinfachten Beispiel die Datensicherung und andere Funktionen nicht betrachtet. Diese werden in den entsprechenden Abschnitten genauer behandelt.)

Man sieht an diesem Beispiel, dass sich die Kommunikation mit dieser Architektur relativ gut strukturieren lässt. Allerdings wird dieses Schema in den meisten Anwendungen nicht vollständig eingehalten, da es häufig unnötig kompliziert ist (z.B. in lokalen Netzen), oder weil es andere Protokolle gibt, die bereits früher entwickelt waren, und die sich in der Praxis bereits bewährt haben. Insbesondere wird heute im Internet der sog. TCP/IP-Protokollstapel verwendet, der teilweise eine andere Strukturierung vornimmt. Dennoch eignet sich dieses Modell insbesondere zur Darstellung der Problematik der Kommunikationstechnik, weshalb es häufig in der Literatur verwendet wird.