Mandl, Peter, Andreas Bakomenko, und Johannes Weiß. Grundkurs Datenkommunikation: TCP/IP-basierte Kommunikation: Grundlagen, Konzepte und Standards. 1. Aufl. Studium. Wiesbaden: Vieweg + Teubner, 2008. S.2ff
Das ISO/OSI-Referenzmodell
Die gesamte Funktionalität, die hinter der Rechnerkommunikation steckt, ist zu
komplex, um ohne weitere Strukturierung verständlich zu sein. Im Rahmen der
Standardisierungsbemühungen der ISO hat man sich daher gemäß dem Konzept
der virtuellen Maschinen mehrere Schichten ausgedacht, um die Materie etwas
übersichtlicher zu beschreiben.
Das ISO/OSI-Referenzmodell (kurz: OSI-Modell) teilt die gesamte Funktionalität in
sieben Schichten (siehe Abbildung 1-1) ein, wobei jede Schicht der darüberliegen-
den Schicht Dienste für die Kommunikation bereitstellt. Die unterste Schicht be-
schreibt die physikalischen Eigenschaften der Kommunikation und darüber liegen
Schichten, die je nach Netzwerk teilweise in Hardware und teilweise in Software
implementiert sind.
Die Schichten einer Ebene, die in verschiedenen Rechnersystemen (auch offene
Systeme genannt) instanziert werden, kommunizieren horizontal miteinander über
Protokolle. Jede Schicht innerhalb eines offenen Systems stellt der nächst höheren
in vertikaler Richtung Dienste zur Verfügung. Das Konzept der virtuellen Maschi-
ne findet hier insofern Anwendung, als keine Schicht die Implementierungsdetails
der darunterliegenden Schicht kennt und eine Schicht n immer nur die Dienste der
Schicht n-1 verwendet.
...
Die einzelnen Schichten haben im ISO/OSI-Referenzmodell folgende Aufgaben:
- Die Bitübertragungsschicht (Schicht 1) ist die unterste Schicht und stellt eine physikalische Verbindung bereit. Hier werden die elektrischen und mechanischen Parameter festgelegt. U. a. wird in dieser Schicht spezifiziert, welcher elektrischen Größe ein Bit mit Wert 0 oder 1 entspricht. Hier werden nur Bits bzw. Bitgruppen ausgetauscht.
- Die Sicherungsschicht (Schicht 2) sorgt dafür, dass ein Bitstrom einer logischen Nachrichteneinheit zugeordnet ist. Hier wird eine Fehlererkennung und -korrektur für eine Ende-zu-Ende-Beziehung zwischen zwei Endsystemen bzw. Transitsystemen unterstützt.
- Die Netzwerk- oder Vermittlungsschicht (Schicht 3) hat die Aufgabe Verbindungen zwischen zwei Knoten ggf. über mehrere Rechnerknoten hinweg zu ermöglichen. Auch die Suche nach einem günstigen Pfad zwischen zwei Endsystemen wird hier durchgeführt (Wegewahl, Routing).
- Die Transportschicht (Schicht 4) sorgt für eine Ende-zu-Ende-Beziehung zwischen zwei Kommunikationsprozessen und stellt einen Transportdienst für die höheren Anwendungsschichten bereit. Die Schichten eins bis vier bezeichnet man zusammen auch als das Transportsystem.
- Die Sitzungsschicht (Schicht 5) stellt eine Sitzung (Session) zwischen zwei Kommunikationsprozessen her und regelt den Dialogablauf der Kommunikation.
- Die Darstellungsschicht (Schicht 6) ist im Wesentlichen für die Bereitstellung einer einheitlichen Transfersyntax zuständig. Dies ist deshalb wichtig, da nicht alle Rechnersysteme gleichartige Darstellungen für Daten verwenden. Manche nutzen z. B. den EBCDIC - andere den ASCII-Code und wieder andere den Unicode. Auch die Byte-Anordnung bei der Integer-Darstellung (Little Endian und Big Endian Format) kann durchaus variieren. Unterschiedliche lokale Syntaxen werden in dieser Schicht in eine einheitliche, für alle Rechnersysteme verständliche Syntax, die Transfersyntax, übertragen.
- Die Verarbeitungs- oder Anwendungsschicht (Schicht 7) enthält schließlich Protokolle, die eine gewisse Anwendungsfunktionalität wie Filetransfer oder E-Mail bereitstellen. Die eigentliche Anwendung zählt nicht zu dieser Schicht. Hier sind viele verschiedene Protokolle angesiedelt.
- Für jede Schicht gibt es im Modell mehrere Protokollspezifikationen für unterschiedliche Protokolle. In der Schicht 4 gibt es z. B. verschiedene Transportprotokolle mit unterschiedlicher Zuverlässigkeit. Grob kann man auch festhalten: Die Schicht 2 dient der Verbindung zwischen zwei Rechnern (Endsystemen oder Zwischenknoten), sorgt sich also um eine Ende-zu-Ende-Verbindung zwischen zwei Rechnern. Die Schicht 3 unterstützt Verbindungen im Netzwerk (mit Zwischenknoten), also Ende-zu-Ende-Verbindungen zwischen zwei Rechnern (Endsysteme) über ein Netz. Die Schicht 4 kümmert sich um eine Ende-zu-Ende-Kommunikation zwischen zwei Prozessen auf einem oder unterschiedlichen Rechnern.
Das TCP/IP-Referenzmodell
Das von der Internet-Gemeinde entwickelte TCP/IP-Referenzmodell (vgl. Abbildung 1-6) ist heute der Defacto-Standard in der Rechnerkommunikation. Es hat vier Schichten, wobei die Schicht 3 (Internet-Schicht) und die Schicht 4 die tragenden Schichten sind. In der Schicht 3 wird neben einigen Steuerungs- und Adressierungsprotokollen (ARP, ICMP)6 im Wesentlichen das Protokoll IP (Internet Protocol) benutzt. In Schicht 4 gibt es zwei Standardprotokolle. Das mächtigere, verbindungsorientierte TCP (Transmission Control Protocol) und das leichtgewichtige, verbindungslose UDP (User Datagram Protocol). TCP gab dem Referenzmodell seinen Namen.
Im Gegensatz zum OSI-Modell wird im TCP/IP-Modell nicht so streng zwischen
Protokollen und Diensten unterschieden. Die Schichten 5 und 6 sind im Gegensatz
zum OSI-Modell leer. Diese Funktionalität ist der Anwendungsschicht vorbehalten,
d.h. die Verwaltung evtl. erforderlicher Sessions und die Darstellung der Nach-
richten in einem für alle Beteiligten verständlichen Format muss die Anwendung
selbst lösen. Kritiker des OSI-Modells sind der Meinung, dass gerade die Funktio-
nalität dieser beiden Schichten sehr protokollspezifisch ist. Es gibt Protokolle, die
brauchen hier gar keine Funktionalität und andere, die hier sehr viel tun müssen.
Über die unteren Schichten ist man sich prinzipiell einig. Alle Datenkommunikati-
onsspezialisten sehen die Notwendigkeit für ein Transportsystem, wenn auch die
Funktionalität je nach Protokolltyp hier sehr unterschiedlich sein kann. Beispiels-
weise gibt es verbindungsorientierte (wie TCP) und verbindungslose (wie UDP)
Protokolle mit recht unterschiedlichen Anforderungen.
Electronic Mail
Ein weiterer, heute im Internet weit verbreiteter Dienst ist der E-Mail-Dienst zum
Austausch von elektronischen Nachrichten (Electronic Mails). Auch hier handelt es
sich um eine Client-/Serveranwendung. Ein Benutzer verwendet einen E-Mail-
Client, Mail User Agent (MUA) genannt, um E-Mails zu senden und zu empfangen
und das Weiterreichen der E-Mails wird über E-Mail-Gateways abgewickelt. Je-
dem Benutzer, der E-Mails senden und empfangen möchte wird eine elektronische
Mailbox mit einer eindeutigen E-Mail-Adresse (z. B. mandl@cs.fhm.edu) in einem
E-Mail-Gateway zugeordnet. Die Mailboxen werden üblicherweise in den E-Mail-
Gateways von Internet-Providern verwaltet. Die E-Mail-Gateways sind Server-
rechner mit speziellen Softwarebausteinen für die Mail-Abwicklung. Sie haben in
der Regel eine Doppelrolle. Zum einen nehmen sie Nachrichten von den MUAs
entgegen. Diese Aufgabe wird als Mail Submission Agent (MSA) bezeichnet. Zum
anderen leiten sie Nachrichten (E-Mails) für den Transport bis zum adressierten
Empfänger in der Rolle von sog. Mail Transfer Agents (MTA) an andere E-Mail-
Gateways weiter.
Web-Server
Ein Web-Server wartet auf ankommende Verbindungsaufbauwünsche standard-
mäßig auf TCP-Port 80, indem er die Socket-Funktion listen aufruft. Ein klassischer
TCP-Verbindungsaufbauwunsch wird entgegengenommen. Steht die Verbindung,
wird vom Web-Browser ein HTTP-Request erzeugt, der vom Web-Server empfan-
gen und üblicherweise in einem eigenen Thread oder Prozess bearbeitet wird. Das
gewünschte Dokument wird lokalisiert (wir nehmen hier die Adressierung einer
statischen Web-Seite an, wozu im konfigurierten Root-Verzeichnis des Web-Servers
gesucht wird.