|
Die sieben OSI Schichten
------------------------ Grosse Programme zerlegt man i.A. in kleinere Module, zwischen denen man dann exakte Schnittstellen definiert. Das macht die Angelegenheit uebersichtlicher und man kann Module austauschen, ohne dass die anderen geaendert werden muessen. Bei den OSI Protokollen ist man genau diesen Weg gegangen um die sehr umfangreichen Protokolldefinitionen zu gliedern. Eine Verbindung zwischen zwei Programmen durchlaeuft 7 'Schichten', die die Datenpakete aufbauen, die schliesslich auf die Leitung gehen. Die Schichten liegen uebereinander und verstaendigen sich nur mit den direkt darueber und darunter liegenden Schichten. Jede Schicht stellt der ueber ihr gelegenen Schicht einen 'Dienst' zur Verfuegung. Um diesen Dienst erbringen zu koennen, greift sie dabei auf die direkt unter ihr liegende Schicht zu und nutzt deren Dienste. Im Allgemeinen heisst das, dass eine Schicht von oben eine Anweisung oder ein Datenpacket bekommt. Dieses wird evtl. mit zusaetzlichen Informationen (Bytes) versehen und an die naechsttiefere Schicht zur Weiterbearbeitung durchgereicht. Die Kommunikation erfolgt abstrakt durch den Austausch von 'service primitives'. Das koennen in einer realen Implementation Prozeduraufrufe, per message passing verschickte Datenstrukturen oder sonst was sein (OSI beschreibt nicht die Implementierung, sondern nur das abstrakte Zusammenspiel der Schichten). Betrachten wir z.B. das service primitive N-CONNECT.request: Es wird von der Transportschicht (Layer 4) mit einer Hand voll Parameter (Adressen, quality of service, ...) an die Netzwerkschicht (Layer 3) gesendet und fordert die Netzwerkschicht auf, fuer die Transportschicht eine Netzverbindung aufzubauen. Falls die Netzwerkschicht z.B. das X.25 Protokoll unterstuetzt, wird ein entsprechendes Call-Datenpacket (protocol data unit = PDU) zusammengestellt und zur Uebertragung an die Schicht 2 weitergereicht (mit einem DL-DATA.request). Auf dem Zielrechner wird nun von Schicht 3 an Schicht 4 ein N-CONNECT.indication gemeldet -- beim Telefon wuerde man sagen, es klingelt. Nun muss diese Schicht 4 ein N-CONNECT.response loslassen um 'abzuheben', was dann der anrufenden Schicht 4 schliesslich als N-CONNECT.confirm bestaetigt wird. Nun ist z.B. eine Schicht 3 Verbindung aufgebaut. Es gibt im einzelnen folgende sieben Schichten: 1) Physical Layer (PHY) ----------------------- Diese Schicht erlaubt es ueber eine Leitung oder ein anderes Medium Bits zu uebertragen. Sie kuemmert sich um den Auf- und Abbau der Leitungsverbindung (carrier signal aktivieren, ...) und um ein eventuelles Umschalten der Senderichtung, falls ein halfduplex Medium benutzt wird. 2) Datalink Layer (DL) ---------------------- Die Daten, die zwischen zwei Stationen ausgetauscht werden, werden von der Schicht 2 mit einen fehlerkorrigierenden Protokoll uebertragen. Sie stellt als Dienst also die fehlerfreie Uebertragung von Datenpaketen auf einen physikalisch an den Rechner angeschlossenen Zielrechner zur Verfuegung. Meistens wird dazu eine Version des ISO HDLC Protokolls eingesetzt (z.B. LAP-B bei X.25). Bei LANs wird diese Schicht noch in eine Medium Access Control Schicht (MAC) und in eine Logical Link Control Schicht (LLC) eingeteilt. Erstere regelt, wer wann senden darf, die LLC uebernimmt die Fehlerkorrektur. Fuer den Einsatz auf PCs wurde 1990 der HDLC Standard auch auf asynchrone Schnittstellen (start/stop mode) ausgedehnt. 3) Network Layer (N) -------------------- In einem Netz sind in der Regel nicht alle Knoten vollstaendig miteinander vernetzt, sondern die Daten muessen ueber Zwischenknoten (intermediate systems [IS], router, switches) weitergeleitet werden. Zwischensysteme haben nur die untersten 3 Schichten. Ein Datenpacket wird fehlerkorrigiert empfangen, es wird die Adresse analysiert, die die sendende Netzwerkschicht den Daten angehaengt hat und schliesslich an den naechsten Knoten weitergeleitet. Erst die Netzwerkschicht des Zielrechners gibt die Daten nach oben durch. Unter OSI sind derzeit zwei Netzwerkprotokolle definiert: Das X.25 (z.B. in WIN und DATEX-P verwendet) und das CLNP (connectionless network protocol), dass dem Internet IP sehr aehnlich ist und daher oft auch als OSI IP bezeichnet wird. Da die Netzwerkschicht selbst noch einmal gegliedert ist, kann man auch ein Protokoll ueber dem anderen benutzen. 4) Transport Layer (T) ---------------------- Dieses Protokoll sichert die Verbindung zwischen zwei Endsystemen und wird von den intermediate systems nicht gelesen. Bei OSI ist ein Transportprotokoll definiert, das in 5 unterschiedlichen Leistungsstufen benutzt werden kann. Waehrend TP0 voll auf die Sicherheit des Netzdienstes vertraut (was bei DATEX-P ausreicht), fuehrt TP4 eine komplett fehlerkorrigierte Uebertragung durch (wie sie bei CLNP noetig ist). TP1 versucht beim Zusammenbrechen einer Verbindung, diese selbststaendig und ohne die hoeheren Schichten zu informieren, neu aufzubauen (das ist bei instabilen Netzen nuetzlich, bei denen hin und wieder ein disconnect auftritt), TP2 erlaubt das Multiplexen von mehreren Transportverbindungen ueber einen Netzanschluss und TP3 vereinigt TP1 und TP2. TP4 kann schliesslich alles zusammen und ist mit dem Internet TCP vergleichbar. 5) Session Layer (S) -------------------- Es ist oftmals notwendig, in einen Datenstrom Synchronisationsmarken einzufuegen, die dann eventuell erst von der Partnerstation bestaetigt werden muessen, bevor die Uebertragung weiter geht. Wenn etwas schief geht, kann sich ein Programm dann auch auf so eine Marke zurueckberufen und die Uebertragung neu starten. Damit man so etwas nicht in jede einzelne Anwendung einbauen muss, hat man bei OSI dieser Aufgabe eine eigene Schicht gewidmet. Ausserdem koennen sich zwei Programme ueber diese Schicht einigen, ob jeder staendig senden darf (duplex) oder ob abwechselnd immer nur ein Partner dieses Recht haben darf. 6) Presentation Layer (P) ------------------------- Fast jeder Rechner hat sein eigenes Datenformat. Mal kommt bei 32bit Zahlen das niederwertigste, mal das hoechstwertigste Byte zuerst, es gibt etliche Formate fuer Strings, REAL-Zahlen, Uhrzeiten, etc. Die Presentation Layer wandelt die Daten der Anwendungsschicht in ein netzeinheitliches Format um. Man hat eine eigene Sprache (ASN.1) definiert, um das Format der Datenpakete formal zu definieren. Genauso wie man mit Grammatiken (EBNF, etc.) z.B. die Menge aller syntaktisch korrekten C Programme sehr leicht festlegen kann, werden mit ASN.1 Datenstrukturen beschrieben, die als Pakete versendet werden koennen. Dadurch werden die Normdokumente wesentlich uebersichtlicher, als wenn man die Datenstrukturen nur in englischer Sprache definieren wuerde. Es gibt inzwischen auch ASN.1 Compiler, die die formalen Definitionen in C-Funktionen umwandeln, aehnlich wie man sich mit dem bekannten YACC leicht Compilerskelette erzeugen lassen kann. In der Presentation Layer werden die zu sendenden Daten mit den Basic Encoding Rules (BER) in Bytesequencen umgewandelt. Zuvor werden noch mit der Partner-Presentationschicht die verwendete Grammatik und die Encoding Rules ausgemacht. 7) Application Layer -------------------- Hier gibt es eine ganze Reihe von verschiedenen Protokollen, die den darueberliegenden Anwendungsprogrammen (oder evtl. auch nur dem Betriebssystem) anwendungsspezifische Dienste zur Verfuegung stellen. Einige der bereits definierten Anwendungsprotokolle sind: - X.400: (auch MHS = message handling system genannt) Ein Protokoll (eigentlich mehrere), dass es erlaubt, zwischen Rechnern electronic mail auszutauschen. - FTAM: (file transfer, access and management) Es koennen einfach nur Files uebertragen werden (wie bei Kermit) oder es kann auch voll auf das Dateisystem des anderen Rechners zugegriffen werden (create file, copy file, list directory, change directory, auf einzelne Records zugreifen, einfuegen, loeschen, ...) - VT: (virtual terminal) Ein Rechner fungiert als Terminalemulatur, ueber den dann der User mit einem Host arbeiten kann. Das Protokoll unterstuetzt Dienste, mit denen der Hostrechner den Bildschirm des Users steuern kann (Schriftarten, Farben, Eingabemasken, Cursorsteuerung, Schirm loeschen, ...) - DS: (directory service) Eine Art globales ueber das Netz verteiltes Telefonbuch. Man kann z.B. ueber meinen Namen und die Tatsache, das ich an der Uni Erlangen in Deutschland bin (c=de;o=uni-erlangen), meine e-mail Adresse heraussuchen (meine bevorzugte ist markiert), ebenso wenn ich es eingetragen habe, meine Adresse, Telefonnummer, Faxnummer, mein oeffentliches FTAM directory, eine kurze Beschreibung meiner Taetigkeit/Stellung uvam. - CMIP: (common management information protocol) Grosse Netzwerke mit vielen Knoten muessen oft von einem zentralen System Administrator verwaltet werden. Mit CMIP kann er auf die Resourcen der einzelnen Rechner zugreifen und z.B. Passwoerter eintragen, neue Softwareversionen installieren/patchen, Fehlermeldungen empfangen (Platte voll, Leitung weg, Stromausfall, Einbrecheralarm, uvam.) und noch einige tausend andere Sachen tun. Es gibt noch einige andere Protokolle (Spezialprotokolle fuer Bibliotheken, Banken, ...) und viele sind noch geplant (News Service, Multimedia, ...). Ausserhalb des Schichtenmodelles definiert OSI noch eine Management- und eine Security-Architektur, die alle Schichten umfasst. Einfuehrungsliteratur: ---------------------- - Uyless Black, OSI - A Model for Computer Communications Standards, Prentice Hall 1991, ISBN 0-13-637133-7, 528 S., DM 96,-. - ISO 7489, OSI Reference Model, International Standards Organisation, Genf 1984. Dieser Text darf nach Belieben fuer nichtkommerzielle Zwecke kopiert werden, wenn er in voller Laenge und ungeaendert uebernommen wird. Ich uebernehme fuer den Inhalt keine Gewaehr. Markus Kuhn, 16. Mai 1991, X.400 : G=Markus;S=Kuhn;OU1=rrze;OU2=cnve;P=uni-erlangen;A=dbp;C=de RFC822 : mskuhn@faui43.informatik.uni-erlangen.de ------------------------------------------------------------------------------ |
[Contrib]
[Chalisti]
[14]
Die sieben OSI Schichten