Linux Netzwerkarchitektur

Werbung
3 Architektur von Kommunikationssystemen
In diesem Kapitel werden grundlegende Modelle zur Strukturierung von Kommunikationssystemen und -architekturen vorgestellt. Das ISO/OSI-Basisreferenzmodell, das in
Abschnitt 3.1.1 vorgestellt wird, konnte sich aufgrund seiner Komplexität, vor allem der
anwendungsorientierten Schichten, nicht im praktischen Einsatz durchsetzen. Trotzdem
besitzt es heute noch fundamentale Bedeutung zur logischen Einteilung der Funktionalität von Telekommunikationssystemen (TK-Systemen). Obwohl es nicht die angestrebte
weit reichende Verbreitung erlangte, findet man die in diesem Modell vorgeschlagene
Strukturierung von TK-Systemen in ähnlicher Form im Bereich der Telematik sehr häufig wieder.
Heutzutage haben sich weitgehend die Techniken und Protokolle des Internets (TCP/IPReferenzmodell, vgl. Kapitel 13) als De-facto-Standard durchgesetzt. Die Architektur
des Internets lässt sich zumindest in die unteren vier Schichten des ISO/OSI-Basisreferenzmodells gut einordnen, die weiteren Schichten sind dann anwendungsspezifisch und
nicht mehr mit dem ISO/OSI-Modell vergleichbar.
Die Architektur und Protokolle des Internets stellen jedoch ebenfalls eine Plattform für
offene Systeme dar, d. h. es werden keine proprietären Lösungen im Netz eingesetzt, die
nur von einem bestimmten Hersteller unterstützt werden. Der Entwicklungsprozess für
neue Protokolle im Internet durch die Internet Engineering Task Force (IETF) ist außerdem für jeden offen und so gestaltet, dass sich die technisch besten und angemessensten
Vorschläge durchsetzen können.
3.1
Schichtenbasierte Kommunikationsmodelle
Telekommunikationssysteme überbrücken die räumliche Distanz zwischen verteilten
Rechnern. Die Realisierung dieser Aufgabe ist aus den verschiedensten Gründen äußerst
komplex, weshalb es nicht ratsam ist, eine monolithische Architektur einzusetzen, die
sehr unflexibel und wartungsintensiv werden könnte [KrRe00]. In der Regel werden
deshalb Kommunikationssysteme als geschichtete Architekturen entwickelt, in denen
jede Schicht eine bestimmte Aufgabe besitzt und diese in Form von Diensten bereitstellt. Das ISO/OSI-Basisreferenzmodell ist das bekannteste Beispiel einer solchen
Schichtenarchitektur.
Zur Lösung ihrer Aufgabe kann eine Schicht N ausschließlich die Dienste der darunterliegenden Schicht (N − 1) benutzen. Sie erweitert dabei deren Eigenschaften und abstrahiert von deren Schwächen. Zu diesem Zweck kommuniziert die Instanz der Schicht N
mit den Instanzen derselben Schicht auf anderen Rechnern. Somit steht in der obersten Schicht die gesamte Funktionalität des Kommunikationssystems zur Verfügung.
Die Schichtung des Kommunikationssystems besitzt gegenüber einem monolithischen
Aufbau zwar den Aufwand einer etwas umfangreicheren Implementierung, weist aber
unschätzbare Vorteile auf, wie etwa das unabhängige Entwickeln der einzelnen Teilkomponenten, den einfachen Austausch einzelner Instanzen, die bessere Wartbarkeit sowie
eine höhere Flexibilität [KrRe00].
62
3
Endsystem
Architektur von Kommunikationssystemen
Vermittlungssystem
Anwendung
Anwendung
Anwendung
Anwendung
Anwendung
Anwendung
Anwendung
Anwendung
Instanz
Instanz
(N+1)
(N+1)
Instanz
Instanz
(N+1)
(N+1)
Endsystem
(N+1)-Protokolle
Instanz
Instanz
(N+1)
(N+1)
(N)-Protokoll
Instanz
Instanz (N)
(N)
Instanz
Instanz (N)
(N)
(N-1)-Protokoll
Instanz
Instanz (N-1)
(N-1)
Übertragungsmedium
Instanz
Instanz
(N+1)
(N+1)
Instanz
Instanz (N-1)
(N-1)
Schicht (N+1)
Schicht (N)
Schicht (N-1)
Übertragungsmedium
Abbildung 3.1: Kommunikation in geschichteten Systemen
Es ergeben sich somit zwei zentrale Begriffe in schichtenorientierten Kommunikationsmodellen, die auch in Abschnitt 3.2 vertiefend behandelt werden:
Die Kommunikation zwischen zwei Instanzen der gleichen Schicht unterschiedlicher
Rechner wird durch vordefinierte Regeln festgelegt. Diese Regeln werden als Protokolle bezeichnet.
Das Funktionsangebot einer Schicht N an ihre übergeordnete Schicht (N + 1) wird
als Dienst bezeichnet. Die Schnittstelle, an der dieser Dienst angeboten wird, heißt
Dienstschnittstelle.
Eine Instanz ist somit die Implementierung eines Kommunikationsprotokolls und des
zur Verfügung gestellten Dienstes innerhalb einer Schicht auf einem Rechner. Die theoretischen Grundlagen von Diensten und Protokollen werden in Abschnitt 3.2 sowie in
[LoKK93] vertiefend behandelt.
3.1.1 Das ISO/OSI-Basisreferenzmodell
Ende der siebziger Jahre zeichnete sich ab, dass das Zusammenschalten mehrerer Rechnernetze aufgrund herstellerspezifischer Eigenschaften solcher Netzwerke schwierig,
wenn nicht sogar unmöglich war und somit die Interoperabilität zwischen den verschiedenen Netzen nicht gewährleistet werden konnte. Es bestand deshalb die Absicht, eine
einheitliche und standardisierte Plattform für rechnerbasierte Kommunikationsnetzwerke zu schaffen.
Die offene, herstellerunabhängige Kommunikation erfordert die Festlegung und Einhaltung von allgemeinen Standards. Das ISO/OSI-Basisreferenzmodell (kurz: ISO/OSI-
3.1
Schichtenbasierte Kommunikationsmodelle
63
Modell) der International Organization for Standardization (ISO) für die Kommunikation Offener Systeme (ISO-Standard 7498 [ITU-94]) beschreibt ein allgemeines abstraktes Modell für die Kommunikation zwischen rechnergestützten Systemen auf der Basis
digitaler Daten. Es dient als Rahmen für die Entwicklung von Kommunikationsstandards,
um offene Kommunikationssysteme zu erreichen. Das Referenzmodell hat den Charakter einer funktionalen Vorgabe für andere Normen und stellt damit keine Spezifikation
für eine Implementierung dar, sondern bezieht sich nur auf die gegenseitige Anwendung
genormter Verfahren für den Datenaustausch.
Das ISO/OSI-Modell besteht aus sieben Schichten (siehe Abbildug 3.2), wobei eine
Schicht der jeweils über ihr angeordneten Schicht bestimmte Dienstleistungen anbietet. Das ISO/OSI-Modell beschreibt keine reale Implementierung eines bestimmten
Systems, sondern definiert lediglich die Aufgaben der einzelnen Schichten. Aus diesem
Grund hat es sich in den letzten Jahrzehnten zum grundlegenden Modell von TKSystemen entwickelt, daher auch der Name Basisreferenzmodell. Die Kenntnis des
ISO/OSI-Modells ist eigentlich immer die Grundlage für den Entwurf und die Strukturierung heutiger Rechnernetze, wobei es kein perfektes Modell ist. Es besitzt auch seine
Stärken und Schwächen, wie sich im Vergleich zum schlankeren TCP/IP-Modell zeigen
wird.
ISO/OSI-Referenzmodell
7
Anwendung
Anwendung
6
Darstellung
Darstellung
5
Kommunikationssteuerung
Kommunikationssteuerung
4
Transport
Transport
3
Vermittlung
Vermittlung
2
Sicherung
Sicherung
1
Bitübertragung
Bitübertragung
Abbildung 3.2: Das ISO/OSI-Basisreferenzmodell
Die sieben Schichten des ISO/OSI-Basisreferenzmodells besitzen die folgenden Aufgaben:
Bitübertragungsschicht (physical layer): Die Bitübertragungsschicht regelt die Übertragung von einzelnen Bits über ein physisches Medium. Dabei werden vor allem
Bitfolgen (ohne Strukturierung) in physische Signale umgewandelt und über ein
physisches Medium (Kupferkabel, Glasfaser, Funk etc.) übertragen. Die Bitübertragungsschicht definiert spezielle Codierverfahren, Steckverbindungen und Medientypen.
Sicherungsschicht (data link layer): Die Aufgabe der Sicherungsschicht ist die gesicherte Übertragung von Daten zwischen zwei direkt über ein Medium verbundenen
Stationen. Vom sendenden System werden hierfür die Daten in Rahmen (frames)
64
3
Architektur von Kommunikationssystemen
aufgeteilt und nacheinander gesendet. Falls dabei Fehler auftreten, ist es die Aufgabe der Sicherungsschicht, den Fehler zu erkennen und die Datenrahmen erneut
zu übertragen. Des Weiteren sollte der Datenfluss zwischen den beiden Systemen
geregelt werden, sodass der Empfänger nicht überlastet wird (Flusssteuerung). Protokollbeispiele für die Sicherungsschicht sind HDLC (High-level Data Link Control),
SLIP (Serial Line IP) und PPP (Point to Point Protocol), wobei die letzten beiden nur
eingeschränkt den eben beschriebenen Funktionsumfang bieten.
In lokalen Netzwerken besitzt die Sicherungsschicht oft auch noch die Aufgabe, den
Zugriff auf ein gemeinsam benutztes Medium (shared medium) zu regeln. In solchen
Fällen wird die Sicherungsschicht in den Medium Access Control-(MAC-) und den
Logical Link Control-(LLC-)Layer unterteilt.
Netzwerkschicht (network layer): Die Netzwerkschicht (oft auch als Vermittlungsschicht bezeichnet) besitzt die Aufgabe, die Konnektivität zwischen allen Systemen
eines Telekommunikationsnetzes herzustellen. Deshalb beschäftigt sich die Netzwerkschicht hauptsächlich mit der Vermittlung und Weiterleitung der Daten, z. B.
mit der Wegewahl, der Anpassung der Dateneinheiten an die zulässige Größe der
jeweiligen Sicherungsschicht (Fragmentieren) oder mit der Gewährleistung von verschiedenen Dienstgüten. Im Rahmen dieses Buches werden vor allem die InternetProtokolle der Version 4 und 6 als Vermittlungsschichtprotokolle betrachtet.
Transportschicht (transport layer): Die Transportschicht regelt den Transport von
Daten zwischen den Anwendungen, d. h. zwischen Sender- und Empfängeranwendung. Sie hat unter anderem die grundlegenden Aufgaben, Anwendungen zu adressieren und den Datenfluss zwischen den Endsystemen zu steuern und die Korrektheit
und Reihenfolge der Daten sicherzustellen.
Kommunikationssteuerungsschicht (session layer): Von der Kommunikationssteuerungsschicht wird der strukturierte Austausch von Nachrichten über Transportverbindungen geregelt. Beispielsweise kann in einer Sitzung gesteuert werden, ob der
Transfer der Daten gleichzeitig in beide Richtungen erfolgen kann oder ob nur jeweils
einer der Partner das Senderecht hat. Im letzteren Fall verwaltet die Kommunikationssteuerungsschicht das Senderecht.
Darstellungsschicht (presentation layer): Die Darstellungsschicht regelt die Darstellung der zu übertragenden Daten in einer von Rechnersystemen unabhängigen Form.
Viele Betriebssysteme verwenden unterschiedliche Darstellungsformen für Zeichenketten (z. B. ASCII, Unicode), Zahlen (Big-Endian, Little-Endian) usw. Damit diese
Daten zwischen den Systemen ausgetauscht werden können, werden sie von der
Darstellungsschicht auf eine standardisierte Weise übertragen (z. B. durch Abstract
Syntax Notation (ASN.1) und Basic Encoding Rules (BER)).
Anwendungsschicht (application layer): In dieser Schicht befinden sich die spezifischen Protokolle für verschiedenste Anwendungen, wobei diese die darunter liegenden Schichten für die Erfüllung ihrer Aufgaben benutzen. In der Anwendungsschicht befinden sich unter anderem Protokolle für die Dienste elektronische Post,
Dateitransfer, entfernter Prozeduraufruf etc.
3.1
Schichtenbasierte Kommunikationsmodelle
65
3.1.2 Das TCP/IP-Referenzmodell
Die Namensgebung des Internet-Referenzmodells richtet sich nach den beiden wichtigsten Internet-Protokollen – dem Transmission Control Protocol (TCP) und dem Internet
Protocol (IP). Da das ISO/OSI-Modell später als das TCP/IP-Modell entwickelt wurde,
entstehen Probleme bei der Einordnung der Protokolle. Im Gegensatz zum ISO/OSIModell besteht das TCP/IP-Modell lediglich aus vier Schichten (vgl. Abbildung 3.3):
ISO/OSI-Referenzmodell
6
Anwendung
Anwendung
Darstellung
Darstellung
5
Kommunikationssteuerung
Kommunikationssteuerung
4
Transport
Transport
3
Vermittlung
Vermittlung
2
Sicherung
Sicherung
1
Bitübertragung
Bitübertragung
7
Internet-Referenzmodell
Anwendung
Anwendung
(HTTP,
(HTTP, SMTP,
SMTP, SSH)
SSH)
Transport
Transport (TCP/UDP)
(TCP/UDP)
Internet
Internet (IPv4/v6)
(IPv4/v6)
Datenübertragung
Datenübertragung
(802.x,
(802.x, PPP,
PPP, SLIP)
SLIP)
Abbildung 3.3: Das ISO/OSI-Basisreferenzmodell im Vergleich mit dem TCP/IP-Referenzmodell
Anwendungsschicht (application layer): Die Anwendungsschicht vereinigt alle
anwendungsbezogenen Aufgaben, d. h. die Eigenschaften der Schichten fünf bis
sieben des ISO/OSI-Modells. Zu den Protokollen der Anwendungsschicht zählen
Telnet (für virtuelle Terminals), FTP (Dateitransfer) und SMTP (zur Übertragung
von E-Mail). Im Laufe der Zeit kamen zu den etablierten Protokollen weitere
Protokolle wie etwa DNS (Domain Name System) und HTTP (Hypertext Transfer
Protocol) hinzu.
Transportschicht (transport layer): Wie im ISO/OSI-Modell ermöglicht die Transportschicht die Kommunikation zwischen den Endsystem-Anwendungen. Im
TCP/IP-Modell wurden hierfür zwei grundlegende Protokolle definiert: das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP). TCP ist
zuverlässig, verbindungsorientiert und kann einen Bytestrom fehlerfrei über das
Internet zu einem anderen Rechner übertragen. UDP arbeitet unzuverlässig und verbindungslos, wird aber in bestimmten Fällen dem komplizierteren TCP vorgezogen –
beispielsweise bei der Übertragung von multimedialen Daten.
Internet-Schicht (internet layer): Die Internet-Schicht im TCP/IP-Modell definiert
das Internet Protocol (IP) inklusive der Hilfsprotokolle Internet Control Message
Protocol (ICMP) und Internet Group Management Protocol (IGMP). Die InternetSchicht hat die grundlegende Aufgabe, IP-Pakete vom Sender zum Empfänger durch
das Netz zu leiten. Dabei spielt die Wegewahl der Pakete eine wichtige Rolle. Das
Internet Control Message Protocol (ICMP) ist fester Bestandteil jeder IP-Implementierung und dient zur Übertragung von Diagnose- und Fehlerinformationen für das
Internet Protocol. Das Internet Group Management Protocol (IGMP) wird für die
Verwaltung von Kommunikationsgruppen eingesetzt.
66
3
Architektur von Kommunikationssystemen
Datenübertragungsschicht (interface layer): Diese Schicht fasst die beiden unteren
Schichten des ISO/OSI-Modells zusammen. Auf ihr befinden sich im InternetModell die Netzwerkadapter und deren Treiber. Diese ermöglichen den Austausch
von Datenpaketen einer bestimmten maximalen Länge im angeschlossenen lokalen
Netzwerk (Ethernet, Token Ring etc.) oder über ein Weitverkehrsnetz (ISDN, ATM).
3.2
Dienste und Protokolle
Dienste und Protokolle wurden bereits in Abschnitt 3.1 angesprochen. Sie sind grundlegende Elemente von geschichteten Kommunikationssystemen. Im Laufe dieses
Abschnitts wird die Bedeutung dieser beiden Begriffe und ihrer Arbeitsweise intensiver
behandelt. Sie dienen als theoretische Grundlage für die weiteren Ausführungen in
diesem Buch, in dem es hauptsächlich um die Umsetzung von Diensten und Protokollen
in einem realen System geht.
Wie an den beiden vorangegangenen Modellen erläutert wurde, bestehen moderne Telekommunikationssysteme aus mehreren Schichten. Jede Schicht besitzt – je nach Referenzmodell – verschiedene Aufgaben, die sie in Form von Diensten der darüber liegenden
Schicht bereitstellt. Beispielsweise bietet die IP-Schicht im TCP/IP-Modell den folgenden Dienst an: Weiterleitung einer Dateneinheit (ohne Garantie) vom lokalen Rechner
zu einem anderen Rechner, der durch eine IP-Adresse spezifiziert wird. Dieser Dienst
wird von der Transportschicht, beispielsweise von TCP, genutzt und so erweitert, dass
ein Bytestrom fehlerfrei und reihenfolgetreu zwischen zwei Anwendungen übertragen
werden kann.
Ein Dienst beschreibt somit den Funktionsumfang, welcher der darüber liegenden
Schicht angeboten wird. Des Weiteren definiert ein Dienst einzelne Dienstelemente, mit
deren Hilfe auf die gesamte Dienstleistung zugegriffen werden kann. Vereinfacht gesagt
werden in der Dienstdefinition der Umfang und die Art der Dienstleistung sowie die
Schnittstelle zum Aufruf des Dienstes festgelegt. Die Definition eines Dienstes bezieht
sich somit nur auf die Interaktion zwischen zwei direkt angrenzenden Schichten und den
betroffenen Schnittstellen. In der Literatur wird dies oft als vertikale Kommunikation
bezeichnet [LoKK93]. Wie ein Dienst tatsächlich von einer Schicht erbracht wird, ist
dagegen nicht Bestandteil einer Dienstdefinition; es geht nur darum, was eine mögliche
Implementierung an der Schnittstelle zum Dienstnutzer anbieten muss.
Um die Dienste einer Schicht zu nutzen müssen die beteiligten Systeme die räumliche Trennung überwinden und sich untereinander koordinieren. Dies geschieht über
Kommunikationsprotokolle, die in den einzelnen Systemen von Instanzen einer Schicht
ausgeführt werden. Ein Protokoll regelt hierbei das Verhalten der verteilten Instanzen
und definiert Regeln für deren Koordination. So werden unter anderem Nachrichten
definiert, die zwischen den Instanzen ausgetauscht werden, um das verteilte Handeln
zwischen den Instanzen zu regeln. Somit erfolgt die Erbringung des Dienstes einer
Schicht N durch verteilte Algorithmen in den jeweiligen Instanzen der Schicht N und
durch den Austausch von Protokollnachrichten zu deren Koordination (vgl. Abbildung
3.1). Die Koordination zwischen den Instanzen durch Protokollnachrichten wird auch
3.2
Dienste und Protokolle
67
als horizontale Kommunikation bezeichnet. Für den Austausch der Protokollnachrichten wird der Dienst der darunter liegenden Schicht (N − 1) in Anspruch genommen.
Die Spezifikation eines Dienstes beschreibt somit das Verhalten einer Schicht gegenüber
ihrer darüber liegenden Schicht (vertikale Kommunikation) und sagt nichts über die
Implementierung eines Dienstes aus. Es werden lediglich das Format und die Dynamik
an den Schnittstellen zu der Schicht definiert, die den Dienst nutzt. Ein Dienst wird durch
Instanzen einer Schicht erbracht, die sich untereinander über Protokolle koordinieren
(horizontale Kommunikation). Die Protokollspezifikation beschreibt die syntaktischen
und dynamischen Aspekte eines Protokolls. Die Protokoll-Syntax beschreibt das Format
der auszutauschenden Protokolldateneinheiten (Protocol Data Units – PDUs) und die
Protokoll-Dynamik beschreibt das Verhalten des Protokolls. Das Ziel dieses Buches ist es
zu veranschaulichen, wie die eben genannten Elemente in einem Kommunikationssytem
entworfen und implementiert werden können. Am Beispiel des Betriebssystems Linux
wird gezeigt, wie die Schnittstellen zwischen verschiedenen Schichten aussehen können
und welche Entwurfsentscheidungen dabei eine Rolle spielen – vor allem unter den
Gesichtspunkten Effizienz und Korrektheit der Protokolle. Des Weiteren wird anhand
verschiedenster Protokolle, d. h. an deren Instanzen gezeigt, welche Techniken bei der
Realisierung und Implementierung von Netzwerkprotokollen eingesetzt werden können.
3.2.1 Zusammenspiel der Schichten, Instanzen und Protokolle
Nach der Einführung in Dienste und Protokolle wird in diesem Abschnitt aufgezeigt,
welche Abläufe horizontal und vertikal bei der Erbringung eines Dienstes durch Protokollinstanzen auftreten. Die Beschreibung dieser Vorgänge bildet die Grundlage für
das Verständnis der Arbeitsweise von Netzwerkprotokollen, vor allem der Prinzipien der
horizontalen und vertikalen Kommunikation. Durch die eingeführten Begriffe können
im Folgenden auch Strukturen und Parameter bei der Interaktion an den Schnittstellen
verschiedener Schichten besser eingeordnet und unterschieden werden.
Innerhalb einer Schicht sind Instanzen die diensterbringenden Komponenten. Zur
Erbringung eines Dienstes kommunizieren die Instanzen einer Schicht untereinander
(horizontal). Die Kommunikation erfolgt durch den Austausch von Protokolldateneinheiten (Protocol Data Units – PDU) der Schicht N. Der Datenaustausch erfolgt
allerdings nicht direkt zwischen den beiden Instanzen, sondern indirekt, über die darunter liegende Schicht. D. h. die Instanz der Schicht N benutzt für den Austausch der
PDU mit ihrer Partnerinstanz den Dienst der Schicht (N − 1). Abbildung 3.4 zeigt das
Zusammenspiel der Schichten und der dabei auftretenden Elemente.
Protokolldateneinheit (protocol data unit – PDU): Dies ist eine Nachricht, die zwischen zwei Instanzen einer Schicht ausgetauscht wird, um deren Verhalten zu koordinieren. Sie ist das Basiselement der horizontalen Kommunikation. Eine PDU besteht
aus den beiden folgenden Elementen:
Die Protokollkontrollinformation (protocol control information – PCI) enthält
die Steuerinformation zur Koordination der beiden Protokollinstanzen und wird
auch als Paketkopf bezeichnet. Die PCI enthält protokollspezifische Daten und
68
3
Architektur von Kommunikationssystemen
wird von der sendenden Instanz, abhängig von deren Zustand, erzeugt. In der
Empfängerinstanz werden die Informationen ausgewertet und von der PDU entfernt.
(N+1)-Schicht
(N)-IDU
(N)-IDU
(N)-Schicht
(N)-PCI
(N)-PCI
(N)-SDU
(N)-SDU
(N)-PDU
(N)-PCI
(N)-SDU
(N)-PCI
(N)-SDU
(N–1)-Schicht
(N)-ICI
(N)-ICI
(N–1)-ICI
(N–1)-ICI
(N–1)-IDU
(N–1)-IDU
(N–1)-SDU
(N–1)-SDU
(N–1)-ICI
(N–1)-ICI
Abbildung 3.4: Dateneinheiten für die vertikale und horizontale Kommunikation
Die Dienstdateneinheit (service data unit – SDU) enthält die Nutzdaten, die im
Auftrag der übergeordneten Schicht übertragen werden sollen. Meist besteht die
SDU der Schicht N aus der Protokollkontrollinformation der Schicht (N + 1)
und einer Dienstdateneinheit der Schicht-(N + 1), d. h. aus der (N + 1)-PDU.
In bestimmten Zuständen eines Protokolls kann es auch vorkommen, dass keine
Dienstdateneinheit in der PDU enthalten ist, z. B. bei Verbindungsaufbau- oder reinen
Bestätigungspaketen. In solchen Fällen werden lediglich Informationen zur Koordination der Protokolle ausgetauscht und keine Nutzdaten.
Schnittstellenkontrollinformationen (interface control information – ICI) werden
von einer Instanz erzeugt und zusammen mit einer Protokolldateneinheit an die
darunter liegende Schicht übergeben (vertikale Kommunikation). Sie enthalten Informationen, die für den Diensterbringer (Schicht (N − 1)) nötig sind, um den Dienst
zu erbringen. Eine ICI enthält beispielsweise die Adresse der Partnerinstanz, an welche die (N)-PDU ausgeliefert werden soll. Da für die Schicht (N − 1) die (N)-PDU
reine Nutzdaten sind, kann sie die Elemente der (N)-PCI innerhalb der (N)-PDU
nicht auswerten und ist somit auf den Inhalt der ICI angewiesen.
Die Schnittstellendateneinheit (interface data unit – IDU) der Schicht (N − 1)
setzt sich aus der PDU und der ICI der Schicht N zusammen. Die IDU wird am
Dienstzugangspunkt der Schicht (N − 1) übergeben und bildet die Grundlage der
horizontalen Kommunikation.
Im Falle einer vertikalen Kommunikation zwischen zwei Schichten ist zu beachten, dass
diese nur an festgelegten Dienstzugangspunkten (service access points – SAP) erfolgt,
die der Unterscheidung verschiedener Dienstnutzer dienen. SAPs werden durch Dienstzugangspunktadressen identifiziert. Dabei gilt die Regel, dass ein Dienstzugangspunkt
3.2
Dienste und Protokolle
69
jeweils genau einen Dienstnutzer adressiert. Das Prinzip des Dienstzugangspunktes wird
in den folgenden Kapiteln noch öfter auftreten, und zwar in verschiedenen Ausprägungen (bspw. IP-Adresse bei IP, Ports bei TCP etc.).
Im weiteren Verlauf des Buches wird gezeigt, wie die dynamischen Aspekte eines Netzwerkprotokolls umgesetzt werden können, d. h. welche Programmierelemente existieren
und bei Linux eingesetzt werden. Ebenso werden Schnittstellen und Datenstrukturen
verschiedener Instanzen vorgestellt und es wird gezeigt, welche Parameter bei den jeweiligen Protokollen als Schnittstellenkontrollinformation eine Rolle spielen. Dabei wird
an einer Reihe von Stellen ersichtlich, dass das zuvor beschriebene theoretische Modell
einer Kommunikationsinstanz und die strikte Trennung einzelner Schichten aufgegeben werden müssen, um eine höhere Leistungsfähigkeit des gesamten Protokollstacks
zu erzielen. Im Vergleich zu Standardwerken der Telekommunikation, wie z. B. [Tane97]
befasst sich dieses Buch also nicht nur mit der Spezifikation von Protokollen und deren
horizontaler Kommunikation, sondern zusätzlich mit der vertikalen Kommunikation
sowie mit den Implementierungsaspekten der jeweiligen Netzwerkprotokolle.
Herunterladen