4.2 Funktionsebenen von Netzwerken
Wie bereits in der Einleitung mehrfach angedeutet wurde, besteht ein gewisses Problem beim Verständnis von Netzwerken darin, dass einige sehr verschiedene Aspekte zu ihrem Funktionieren beitragen. Schon ganz zu Beginn haben Sie eine grobe Unterteilung in die drei Ebenen Verkabelung oder allgemeine Netzwerkhardware, Kommunikationsstrukturen oder Netzwerkprotokolle und schließlich Anwendungen eines Netzwerks kennengelernt.
Eine so ungenaue Einteilung lässt die grundsätzliche Schwierigkeit erkennen, reicht aber nicht ganz aus, um Netzwerke in all ihren Bestandteilen zu begreifen, und schon gar nicht, um verschiedene Arten von Netzwerken miteinander zu vergleichen. Auch die Tatsache, dass ein und dieselbe Komponente auf einer bestimmten Ebene wahlweise mit mehreren unterschiedlichen Elementen einer anderen Funktionsebene zusammenarbeiten kann, wird so noch nicht transparent genug.
4.2.1 Das OSI-Referenzmodell
Um die Ebenen, die ein Netzwerk ausmachen, ganz genau auseinanderhalten zu können, bedient man sich sogenannter Schichtenmodelle (Layer Models). Das bekannteste und verbreitetste von ihnen ist das OSI-Referenzmodell der internationalen Standardisierungsorganisation ISO. OSI steht für »Open Systems Interconnect«, also etwa »Verbindung zwischen offenen Systemen«. Das Modell wurde 1978 entworfen und besteht aus sieben übereinander angeordneten Schichten, die jeweils einen Aspekt der Netzwerkkommunikation beschreiben. Ganz unten ist die Hardware angesiedelt, ganz oben befindet sich die Anwendung des Netzes. Hier zunächst die Schichten des OSI-Modells im Überblick, die Beschreibung folgt im Anschluss daran:
- Bit-Übertragungsschicht (Physical Layer)
- Sicherungsschicht (Data Link Layer)
- Vermittlungsschicht (Network Layer)
- Transportschicht (Transport Layer)
- Kommunikationssteuerungsschicht (Session Layer)
- Darstellungsschicht (Presentation Layer)
- Anwendungsschicht (Application Layer)
Die Bezeichnung OSI-Referenzmodell deutet bereits darauf hin, dass es sich nicht um einen Standard handelt, der konkrete Netzwerkprotokolle definiert. Das OSI-Modell definiert nur die Funktionen der einzelnen Schichten und ist somit ein Schema zur Definition solcher Standards, beispielsweise für die im weiteren Verlauf des Kapitels vorgestellten IEEE-802.3-Standards. Jeder Standard deckt dabei immer nur Teilaspekte des OSI-Modells ab.
Die Bedeutung der einzelnen Schichten des OSI-Modells
- Die Bit-Übertragungsschicht oder auch physikalische Schicht beschreibt nur, wie die reine Übertragung der Daten elektrisch beziehungsweise allgemein
physikalisch vonstattengeht. OSI-basierte Netzwerkstandards beschreiben in dieser
untersten Schicht die Struktur der Signale. Dazu gehören unter anderem die folgenden
Aspekte:
- zulässiger Amplitudenbereich
- Versand- und Empfangsmethoden für Bit-Folgen
- Operationen zur Umwandlung dieser Bit-Folgen in Daten für die nächsthöhere Schicht (und umgekehrt)
- Verarbeitungsgeschwindigkeit der Bit-Folgen
- Start- und Stoppsignale
- Erkennung beziehungsweise Unterscheidung der Signale bei gemeinsam genutzten Medien
- Übertragungseigenschaften der Medien (Kabel, Lichtwellenleiter, Funk oder Ähnliches)
Die Medien selbst sowie Netzwerkkarten oder Onboard-Netzwerkchips sind kein Bestandteil der Definitionen auf der ersten Schicht. Die Hersteller müssen selbst dafür Sorge tragen, dass ihre Produkte den Spezifikationen genügen.
- Die Sicherungsschicht beschreibt alle Vorkehrungen, die dafür sorgen, dass aus den einzelnen zu übertragenden
Bits, also dem reinen physikalischen Stromfluss, ein verlässlicher Datenfluss wird.
Dazu gehören die beiden Teilaufgaben Media Access Control (MAC) – die Regelung des Datenverkehrs, wenn mehrere Geräte den
gleichen Kanal verwenden – sowie Logical Link Control (LLC), wobei es um die Herstellung und Aufrechterhaltung von
Verbindungen zwischen den Geräten geht.
Viele Protokolle dieser Schicht implementieren eine Fehlerkontrolle, bei Ethernet wird zum Beispiel CRC verwendet. In manchen Fällen wird auch Quality of Service (QoS), eine Art Prioritätsinformation, benutzt. In der Sicherungsschicht werden die Bit-Folgen in Einheiten einer bestimmten Größe unterteilt und mit einem Header aus Metainformationen versehen. Je nach Standard werden auf dieser Ebene unterschiedliche Namen für diese Datenpakete verwendet. Bei Ethernet und Token Ring ist beispielsweise von »Frames« die Rede, bei ATM von »Zellen«. Der Payload (Nutzdateninhalt) eines Frames beziehungsweise einer Zelle beginnt in aller Regel mit dem Header eines hineinverschachtelten Pakets der nächsthöheren Schicht. Es kann aber auch vorkommen, dass Pakete verschiedener Protokolle der zweiten Schicht ineinander verschachtelt werden. Dies ist zum Beispiel bei PPP over Ethernet, PPP over ATM oder ATM over SDH der Fall.
- Die Netzwerkschicht oder Vermittlungsschicht definiert diejenigen Komponenten und Protokolle des Netzwerks, die an der indirekten Verbindung von Computern beteiligt sind. Hier ist sogenanntes Routing erforderlich, das Weiterleiten von Daten in andere logische oder auch physikalisch inkompatible Netzwerke. So gehören zum Beispiel auch alle diejenigen Protokolle zur Netzwerkschicht, die die logischen Computeradressen der höheren Schichten in die physikalischen Adressen umsetzen, bei Ethernet zum Beispiel ARP. Auch auf der Netzwerkschicht werden die Daten in Pakete unterteilt, deren Namen sich je nach konkretem Protokoll unterscheiden. Das mit Abstand verbreitetste Protokoll dieser Ebene, das im weiteren Verlauf des Kapitels noch ausführlich vorgestellte IP-Protokoll, bezeichnet sie als IP-Datagramme.
- Die Protokolle der Transportschicht lassen sich in verbindungsorientierte Protokolle wie TCP und verbindungslose Protokolle wie etwa UDP unterteilen. Auf dieser Schicht werden vielfältige Aufgaben erledigt. Ein wichtiger Aspekt sind Multiplex-Mechanismen, die die Anbindung der Datenpakete an konkrete Prozesse auf den kommunizierenden Rechnern ermöglichen, bei TCP und UDP beispielsweise über Portnummern, bei SPX über Connection-IDs. Verbindungsorientierte Transportprotokolle wie TCP oder SPX sind zudem meist mit einer Fluss- und Fehlerkontrolle ausgestattet, um zu gewährleisten, dass Pakete vollständig am Ziel ankommen und dort in der richtigen Reihenfolge verarbeitet werden. Auch auf der vierten Schicht verwenden verschiedene Protokolle jeweils eigene Bezeichnungen für die Datenpakete; so ist etwa von UDP-Datagrammen, TCP-Sequenzen und SPX-Paketen die Rede.
- Die Kommunikationssteuerungsschicht oder Sitzungsschicht stellt die Kommunikation zwischen kooperierenden Anwendungen oder Prozessen auf verschiedenen Rechnern sicher.
- Die Darstellungs- oder Präsentationsschicht dient der Konvertierung und Übertragung von Datenformaten, Zeichensätzen, grafischen Anweisungen und Dateidiensten.
- Die Anwendungsschicht schließlich definiert die unmittelbare Kommunikation zwischen den Benutzeroberflächen der Anwendungsprogramme, kümmert sich also um die Verwendung derjenigen Dienste über das Netzwerk, die Benutzer unmittelbar zu Gesicht bekommen.[Anm.: Halb scherzhaft wird der Anwender des vernetzten Rechners manchmal als achte Schicht bezeichnet, und Probleme, die durch fehlerhafte Benutzung zustande kommen, nennt man entsprechend Layer-8-Fehler.]
Da das OSI-Modell eine Zusammenstellung von möglichen Fähigkeiten für viele verschiedene Arten von Netzwerken darstellt, kann es natürlich vorkommen, dass die eine oder andere Schicht in einem bestimmten Netzwerk wichtiger ist als eine andere oder dass zum Beispiel ein Protokoll Funktionen zweier Schichten abdeckt oder auch nur eine Teilfunktion einer Schicht erbringt. Um diese Umstände deutlich zu machen, wendet man häufig anders aufgeteilte Schichtenmodelle an mit meist weniger, selten mehr Schichten. Dies gerade dann, wenn es um die konkrete Beschreibung einer bestimmten Art von Netzwerk geht.
4.2.2 Das Schichtenmodell der Internetprotokolle
Im Bereich der TCP/IP-Netzwerkprotokolle, die unter dem Betriebssystem Unix und im Internet den Standard darstellen, wird zum Beispiel häufig ein Modell aus nur vier Schichten verwendet. Dies wird dem Wesen dieser Protokolle auch wesentlich eher gerecht als das OSI-Modell, denn die Internetprotokolle sind bereits einige Jahre älter als OSI. Es handelt sich um das Schichtenmodell des ursprünglichen ARPANETs, das vom US-Verteidigungsministerium finanziert wurde. Deshalb wird es meist als DoD-Modell (»Department of Defense«), manchmal auch als DDN-Modell (»Department of Defense Network«) bezeichnet.
Die vier Schichten bei TCP/IP-Netzwerken nach dem DDN Standard Protocol Handbook sind:
- Netzzugangsschicht (Network Access Layer oder Link Layer)
- Internetschicht (Internet Layer)
- Host-zu-Host-Transportschicht (Host-to-Host Transport Layer oder einfach Transport Layer)
- Anwendungsschicht (Application Layer)
Diese vier Schichten sind den konkreten Gegebenheiten von TCP/IP-Netzwerken angepasst, bei denen es zum Beispiel nur theoretisch möglich ist, von einer separaten Sitzungsschicht zu sprechen.
Das OSI-Referenzmodell kann mit dem DDN-Schichtenmodell deshalb nur grob in Beziehung gesetzt werden. Tabelle 4.1 zeigt, wie ein solcher Vergleich ungefähr aussehen könnte.
Die Bedeutung der Schichten des DDN-Modells
- Die Netzzugangsschicht (Network Access Layer oder Link Layer) beschreibt, wie die physikalische Datenübertragung erfolgt. Die Aufgaben, die auf
dieser Schicht zu erledigen sind, werden durch viele recht unterschiedliche Protokolle
erbracht, einfach deshalb, weil es kaum eine Sorte von Netzwerkhardware gibt, auf
der die Internetprotokolle noch nicht implementiert worden wären. Die eigentlichen
Kernprotokolle, zu denen besonders die Namensgeber der Protokollfamilie gehören –
also das Transmission Control Protocol (TCP) und das Internet Protocol (IP) – kümmern
sich überhaupt nicht um die physikalischen Verhältnisse. Damit dies möglich ist, müssen
auf dieser untersten Schicht die Bit-Übertragung und die Transportsicherung zuverlässig
zur Verfügung gestellt werden.
Auf diese Weise entspricht die Netzzugangsschicht der Internetprotokolle den beiden untersten Schichten von OSI.
- Die Internetschicht (Internet Layer), die im Wesentlichen der Vermittlungsschicht des OSI-Modells ähnelt, kümmert sich um die logische Adressierung der Rechner im Netz, durch die die grundsätzliche Identifizierbarkeit des jeweiligen Rechners sichergestellt wird. Eine weitere wichtige Aufgabe auf dieser Ebene ist das Routing, also die Weiterleitung von Daten über verschiedene physikalisch und/oder logisch getrennte Netze hinweg. Grundlage dieser Tätigkeiten ist das IP-Protokoll (Internet Protocol). Es definiert die IP-Adressen, 32 (in einer neueren Version 128) Bit breite Nummern, die den einzelnen Rechnern zugewiesen werden und die der Unterscheidung der einzelnen Netzwerke und der Rechner in diesen Netzen dienen. Außerdem versieht es jedes Datenpaket mit einem Header, also einer Zusatzinformation, die insbesondere die Quelladresse des sendenden Rechners und die Zieladresse des empfangenden Hosts enthält. Ein Datenpaket dieser Ebene wird als Datagramm bezeichnet.
- Die Host-zu-Host-Transportschicht (Host-to-Host Transport Layer) kümmert sich um den zuverlässigen Datenaustausch zwischen den kommunizierenden Rechnern.
Im Wesentlichen sind hier zwei verschiedene Protokolle verantwortlich (neben anderen,
selten verwendeten). Diese beiden Protokolle werden jedoch niemals gleichzeitig, sondern
immer alternativ verwendet. Das einfachere und weniger robuste UDP (User Datagram Protocol) stellt einen schlichten und wenig datenintensiven Mechanismus
zur Verfügung, der die direkte Nutzung der IP-Datagramme für die Host-zu-Host-Kommunikation
erlaubt. Hierbei wird keine virtuelle Verbindung zwischen den beiden Rechnern hergestellt;
es findet also keine Kontrolle über einen kontinuierlichen Datenstrom statt. Das erheblich
komplexere TCP (Transmission Control Protocol) hat zwar einen deutlich größeren Overhead (Daten-Mehraufwand
durch Verwaltungsinformationen) als UDP, stellt aber dafür einen zuverlässigen Transportdienst
dar: Es wird eine virtuelle Verbindung zwischen den beiden Hosts hergestellt. Sie
besteht darin, dass die Datenpakete durchnummeriert werden und eine Übertragungskontrolle
und eventuelle Neu-Übertragung jedes einzelnen Pakets stattfinden. Ob eine Anwendung
nun UDP oder TCP verwendet, ist ihre eigene Entscheidung. Allgemein benutzen Dienste,
die kontinuierlich größere Datenmengen transportieren müssen, eher TCP, während etwa
Verwaltungs- und Konfigurationsdienste zu UDP tendieren.
Im Vergleich zum OSI-Modell nimmt die Host-zu-Host-Transportschicht insbesondere die Aufgaben der OSI-Transportschicht wahr; je nach konkretem Protokoll können auch Funktionen der Sitzungsschicht ausgemacht werden.
Der Begriff Host (Gastgeber) bezeichnet übrigens jeden Computer, der an ein Netzwerk angeschlossen ist und mit anderen Geräten kommuniziert. Es ist keine Bezeichnung für einen expliziten Dienstleistungsrechner, dieser (oder vielmehr die darauf ausgeführte Software) wird Server genannt. Der Host muss lediglich vom Router abgegrenzt werden, der Pakete nicht für sich selbst entgegennimmt, sondern an andere Netze weiterleitet. Da das Routing jedoch eine Ebene weiter unten stattfindet, ist es ein auf dieser Schicht unsichtbares Detail – die Transportschicht ist nur für Rechner relevant, die Daten für den Eigenbedarf benötigen.[Anm.: Router verständigen sich allerdings auch mithilfe der im weiteren Verlauf dieses Kapitels vorgestellten Routing-Protokolle miteinander; diese Protokolle werden durchaus auf der Host-zu-Host-Transportschicht ausgeführt. Trotzdem ist dieses technische Detail für die eigentlichen Anwendungshosts uninteressant und unsichtbar.]
- Die Anwendungsschicht (Application Layer) schließlich definiert die Kommunikation zwischen den Anwendungsprogrammen auf den einzelnen Rechnern; hier arbeiten Protokolle wie HTTP für Webserver, FTP zur Dateiübertragung oder SMTP für den E-Mail-Versand. Die Schicht entspricht im Wesentlichen der gleichnamigen obersten Schicht des OSI-Referenzmodells, wobei auch einige Komponenten von dessen Darstellungsschicht mit hineinspielen. Beispielsweise bedarf HTML-Code, der von einer Webserver-Anwendung ausgeliefert wird, der Interpretation durch einen Browser; hier entspräche der HTML-Code selbst eher der Darstellungsschicht, die Browseranwendung aber der OSI-Anwendungsschicht. Sitzungsmanagement ist dagegen vom ursprünglichen Design her gar nicht vorgesehen; falls es benötigt wird, muss es durch die Anwendungen selbst bereitgestellt werden. In Kapitel 18, »Webserveranwendungen«, erfahren Sie beispielsweise, wie Sie mithilfe der Programmiersprache PHP Websessions verwalten.
4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells
In diesem Abschnitt wird erläutert, wie die Kommunikation über die Schichten von Schichtenmodellen funktioniert. Dazu werden zwei Beispiele angeboten: Das erste ist ein Alltagsbeispiel, das mit Computernetzwerken nichts zu tun hat, während das zweite ein einfaches Beispiel der Netzwerkkommunikation darstellt.
Ein Alltagsbeispiel
Neben der Datenübertragung im Netzwerk lassen sich auch völlig andere Arten der Kommunikation in Schichten gliedern. Beispielsweise kann die Kommunikation zwischen Gesprächspartnern am Telefon folgendermaßen unterteilt werden:
- Die beiden Telefone sind physikalisch über eine Telefonleitung miteinander verbunden.
- Die Verbindung zwischen den Telefonanschlüssen kommt dadurch zustande, dass einer der beiden Teilnehmer die eindeutige Nummer des anderen wählt und der andere das Gespräch annimmt.
- Über die Telefonleitung werden Informationen in Form von elektromagnetischen Impulsen übertragen, beim klassischen Telefonnetz analog, bei ISDN, Mobilfunk oder VoIP dagegen digital.
- An den beiden Endpunkten der Kommunikation sprechen die Gesprächspartner in ihre jeweilige Sprechmuschel hinein; die akustischen Signale werden in elektromagnetische Impulse umgewandelt (bei den digitalen Varianten kommt noch die Analog-digital-Wandlung hinzu). Umgekehrt hört ein Teilnehmer aus der Hörmuschel wiederum akustische Signale, die aus den übertragenen Impulsen zurückverwandelt wurden.
- Die akustischen Signale, die die Gesprächspartner miteinander austauschen, werden zu Silben, Wörtern und schließlich Sätzen kombiniert.
- Aus den einzelnen Bestandteilen der Sprache ergibt sich schließlich der eigentliche Inhalt der Nachrichten, die miteinander ausgetauscht werden.
Möglicherweise besteht dieses Kommunikationsmodell sogar aus noch mehr Schichten: Angenommen, die beiden Gesprächspartner sind leitende Angestellte oder gar Direktoren eines großen Unternehmens. Dann wird in aller Regel auf beiden Seiten eine Sekretärin die Gesprächsvermittlung vornehmen, möglicherweise ist sogar noch eine Telefonzentrale involviert. Noch komplizierter wird es beispielsweise, wenn Dolmetscher mitwirken.
Dieses einfache Beispiel zeigt deutlich, dass alle Ebenen, die sich oberhalb der untersten, also der physikalischen Ebene befinden, nur Abstraktionen darstellen, durch die den übertragenen Signalen jeweils ein neuer Sinnzusammenhang zugeordnet wird. Die eigentliche Verbindung erfolgt nämlich stets nur auf dieser untersten Ebene! Für jedes Schichtenmodell gilt daher zusammenfassend Folgendes:
Die Daten, die über einen Kommunikationskanal übertragen werden sollen, werden auf der Seite des Senders zunächst Schicht für Schicht nach unten weitergereicht und jeweils mit den spezifischen Zusatzinformationen für diese Schicht versehen. Schließlich werden sie über die unterste Schicht, die eigentliche physikalische Verbindung, übertragen. Auf der Empfängerseite werden sie dann wieder schichtweise nach oben weitergeleitet. Jede Schicht ermittelt die für sie bestimmten Informationen und regelt die Weiterleitung an die nächsthöhere Schicht.
Was in dem Telefonbeispiel geschieht, wird schematisch in Abbildung 4.1 dargestellt: Während die Gesprächspartner den Eindruck haben, in einem direkten Gespräch miteinander zu kommunizieren, geschieht in Wirklichkeit etwas erheblich Komplexeres: Die gesprochene Sprache (die eigentlich aus Silben beziehungsweise einzelnen Lauten besteht, die letztlich einfach nur Schallwellen sind) wird in eine andere Form von Information umgewandelt, über eine elektrische Leitung übertragen und auf der Empfängerseite wieder zusammengesetzt.
Wichtig ist außerdem, dass jede Schicht immer nur die für sie selbst bestimmten Informationen auswertet. Beim Empfang von Daten haben die niedrigeren Schichten überhaupt erst dafür gesorgt, dass die Informationen auf der entsprechenden Schicht angekommen sind, die Spezialinformationen der höheren Schichten sind der aktuellen Schicht dagegen unbekannt. Sie muss lediglich anhand ihrer eigenen Informationen dafür sorgen, dass die Daten an die korrekte Stelle einer höheren Schicht ausgeliefert werden. Auf diese Weise ist jede Schicht virtuell mit der Schicht der gleichen Stufe auf der anderen Seite verbunden; das tatsächliche Zustandekommen dieser Verbindung ist für die jeweilige Schicht dagegen absolut unsichtbar.
Abbildung 4.1 Schichtenmodell eines Telefongesprächs. Die tatsächliche Verbindung besteht nur auf der Ebene der Telefonleitung!
Ein Netzwerkbeispiel
Dieses zweite Beispiel – der Versand einer E-Mail an Galileo Press – zeigt, wie sich die beim Telefonbeispiel erläuterten Sachverhalte wieder auf Netzwerke übertragen lassen. Schematisch geschieht Folgendes:
- In meinem E-Mail-Programm, zum Beispiel Mozilla Thunderbird, verfasse ich den eigentlichen Inhalt der Mail, als Empfänger setze ich info@galileo-press.de ein. Nachdem ich alles fertig geschrieben habe, drücke ich auf den Absendeknopf.
- Da eine E-Mail eine in sich geschlossene Dateneinheit darstellt, die in ihrer ursprünglichen Reihenfolge beim Empfänger ankommen muss, wird der Transport durch das TCP-Protokoll übernommen, dessen eingebaute Datenflusskontrolle dafür sorgt, dass alle Daten vollständig und in der richtigen Reihenfolge übertragen werden.
- Die Datenpakete, die durch das TCP-Protokoll angelegt wurden, werden nun durch das IP-Protokoll mit der korrekten Absender- und Empfängeradresse versehen. Diese Adressen haben nichts mit den nur auf der Anwendungsebene wichtigen E-Mail-Adressen zu tun. Vielmehr geht es darum, dass mein Rechner die Daten an den zuständigen Mailserver beziehungsweise an einen Vermittlungsrechner versendet.
- Die fertig adressierten Datenpakete werden nun dem eigentlichen physikalischen Netzwerk anvertraut und entsprechend übertragen.
Auf der Empfängerseite – das heißt auf dem Serverrechner, der das Postfach info@galileo-press.de verwaltet – kommen die Daten dann folgendermaßen an:
- Über die physikalische Netzwerkverbindung des Serverrechners treffen Datenpakete ein.
- Auf der Ebene des IP-Protokolls werden die Datenpakete nach den zuständigen Transportdiensten sortiert und an diese weitergereicht – die E-Mail wird dem TCP-Dienst übergeben.
- Der TCP-Dienst stellt fest, dass die entsprechenden Datenpakete für den Mailserver (gemeint ist das Programm, nicht der Rechner selbst) bestimmt sind, und reicht sie an diesen weiter.
- Der Mailserver wertet die E-Mail-Adresse des Empfängers aus und speichert die Mail
in dem Postfach info@galileo-press.de. Dort kann sie jederzeit vom berechtigten Empfänger abgeholt werden.
Abbildung 4.2 Übertragung einer E-Mail vom E-Mail-Programm des Absenders auf den Postfachserver des Empfängers. In der Regel sind allerdings mehrere Zwischenstationen beteiligt.
Die Übertragung der E-Mail vom empfangenden Server an das E-Mail-Programm des eigentlichen Empfängers funktioniert im Großen und Ganzen genauso, wenngleich auf der Anwendungsebene ein anderes Protokoll zum Einsatz kommt.
Abbildung 4.2 zeigt noch einmal schematisch, wie die Übertragung funktioniert. Mehr über die grundlegenden E-Mail-Protokolle erfahren Sie in Abschnitt 4.6.5, »Verschiedene Internet-Anwendungsprotokolle«.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.