3 Architektur von Kommunikationssystemen

Ähnliche Dokumente
SCHICHTENMODELLE IM NETZWERK

2. Architektur von Kommunikationssystemen

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl

Das ISO / OSI -7 Schichten Modell

Was ist das OSI-Referenzmodell eigentlich und wofür wird es benötigt?

Das ISO/OSI Referenzmodell Internet (TCP/IP) Referenzmodell. Standard Elemente Schichten im ISO/OSI Referenzmodell.

Vermittlungsschicht ( network layer )

OSI Referenzmodell. Aufbau des Referenzmodells Funktionsweise

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 8.

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie. SoSe 2018

Virtuelle Kommunikation. Anwender. Physikalische Kommunikation. "Veredelung" des Dienstes

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Spezifikation von Kommunikationssystemen

Rechnerkommunikation II

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie SS 2012

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 23.

Die Internet-Protokollwelt Wintersemester 2017/18. Aktuelle Trends. ISO/OSI-Basisreferenzmodell. Einleitendes zum Internet

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Kommunikationsnetze. 3. Geschichtete Kommunikationssysteme. Grundlagen ISO/OSI-Referenzmodell Internet-Referenzmodell Tunneling

2 Kommunikationssysteme. vs2 1

KN Das Internet

Allgemeines Prinzip der Schichtung

OSI-Schichtenmodell. Martin Fechtner

Netzwerkgrundlagen. OSI-Modell. Layer 1 Physikal Layer. Layer 2 Data Link Layer. Layer 3 Network Layer

Client-Server - Grundlagen

Rechnernetze Übung 11

THEMA. Das ISO / OSI - Referenzmodell. 1 Vorlesung - FHDW Prof. Dr. G. Hellberg Juli 2001

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie SS 2014

Jede Technik oder jeder Vorgang, der zur Datenübertragung genutzt wird, lässt sich in 3 Teile gliedern:

Modul 1. OSI-Referenzmodell. Prof. Dr. Martin Leischner Netzwerksysteme und TK. Hochschule Bonn-Rhein-Sieg

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Kapitel 3 Geschichtete Kommunikationssysteme

Damit zwischen den verschiedenen Rechnern überhaupt ein Austausch möglich ist, muss man sich über das was und wie verständigen.

Grundkurs Datenkommunlkation

Mobilkommunikationsnetze - TCP/IP (und andere)-

Schichtenmodelle von Rechnernetzen

Informations- und Kommunikationssysteme

Grundkurs Datenkommunikation

TCP/IP-Protokollfamilie

Inhaltsverzeichnis. 1 Einleitung... 1

Netzwerktechnologie 2 Sommersemester 2004

Informationsfluss. Schicht 5 Protokoll. Schicht 4 Protokoll. Schicht 3 Protokoll. Schicht 2 Protokoll

Das TCP/IP Schichtenmodell

Breitband ISDN Lokale Netze Internet WS 2009/10. Martin Werner, November 09 1

Kapitel 4 Spezifikation von Kommunikationssystemen

Netzwerke und Ihre Protokolle

SIEBEN-SCHICHTEN-MODELL

Technische Grundlagen

Netzwerke, Kapitel 3.1

Peer-to-Peer- Netzwerke

Netzwerkprotokolle. Physikalische Verbindungsebene Datenübertragungsebene

Modul 117. OSI-Referenzmodell

Die ITU-T-Empfehlung X.25

COMPUTER- NETZWERKE. 6. Auflage VON DEN GRUNDLAGEN ZUR FUNKTION UND ANWENDUNG

Computeranwendung in der Chemie Informatik für Chemiker(innen) 4. Netzwerke

5. OSI Referenzmodell der ISO 5.1. Einteilung in Schichten

Netzwerk-Programmierung. Netzwerke.

Computernetze 1. Inhalt

Verteilte Systeme - Java Networking (Sockets) -

Themenschwerpunkt: Rechnernetze und Netzwerkdesign

Kontrollfragen zur Vorlesung Kommunikationsnetze

Übungsaufgaben zur Vorlesung Kommunikationsnetze (MT) Sommersemester 2018

Kontrollfragen zur Vorlesung Kommunikationsnetze für Medientechnologen

Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. Diplomverteidigung

Funktionselemente von Netzwerken

Kontrollfragen zur Vorlesung Kommunikationsnetze für Medientechnologen

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

.NET Networking 1. Proseminar Objektorientiertes Programmieren mit.net und C# Matthias Jaros. Institut für Informatik Software & Systems Engineering

Rechnern netze und Organisatio on

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät

3b: Telekommunikation

Analyse und Bewertung der Möglichkeiten einer IP-basierten Übertragung im UMTS Funknetz für Echtzeit- und Nicht-Echtzeit-Dienste.

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Leseprobe. Erich Stein. Taschenbuch Rechnernetze und Internet ISBN: Weitere Informationen oder Bestellungen unter

Einführung. haben, um die Buchstabenkombination LOG zu übermitteln. Von den gleichzeitig telefonierenden Technikern werden die Worte. Hast du das L?

Kommunikationsnetze Prof. Dr. rer. nat. habil. Seitz. Sara Schaarschmidt Eric Hänsel

Internet - Grundzüge der Funktionsweise. Kira Duwe

LAN & Internet. Grundlagen Netzwerke LAN-2. Saarpfalz-Gymnasium. Router. Router LAN-3. Router. Kommunikation in Rechnernetzen

Computernetz-Grundlagen Zusammenfassung

Systeme II 6. Die Vermittlungsschicht

Technische Informatik II FS 2008

Taschenbuch Rechnernetze und Internet

IP Internet Protokoll

Universität Innsbruck, Wirtschaftsinformatik Proseminar zur Vorlesung Einführung in die Wirtschaftsinformatik

FAQ 12/2015. PROFINET IO- Kommunikation.

Grundlagen. Vortrag von. Veranstaltung. Rüdiger Busch. Rechnernetze 1

Vortrag zur Diplomarbeit

Die Transportprotokolle UDP und TCP

Vorlesung SS 2001: Sicherheit in offenen Netzen

Implementierung eines universellen IPv6 Protokollstapels

Versuch 1: LAN (Vorbereitung)

Rechnernetze 1 Vorlesung im SS 07

Inhaltsverzeichnis. Vorspann 15

Einführung in die Netzwerktechnik

Transkript:

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/IP- Referenzmodell, 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 Architektur von Kommunikationssystemen Endsystem Vermittlungssystem Endsystem Instanz (N+1) Instanz (N+1) (N+1)-Protokolle Instanz (N+1) Instanz (N+1) Schicht (N+1) Instanz (N) (N)-Protokoll Instanz (N) Schicht (N) Instanz (N-1) (N-1)-Protokoll Instanz (N-1) Schicht (N-1) Übertragungsmedium Ü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 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 TK- Systemen 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 6 5 4 3 2 1 Darstellung Kommunikationssteuerung Transport Vermittlung Sicherung 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 Internet- Protokolle der Version 4 und 6 als Vermittlungsschichtprotokolle betrachtet. Transportschicht (transport layer): Die Transportschicht regelt den Transport von Daten zwischen den en, d. h. zwischen Sender- und Empfängeranwendung. Sie hat unter anderem die grundlegenden Aufgaben, en 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)). sschicht (application layer): In dieser Schicht befinden sich die spezifischen Protokolle für verschiedenste en, wobei diese die darunter liegenden Schichten für die Erfüllung ihrer Aufgaben benutzen. In der sschicht 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/OSI- Modell besteht das TCP/IP-Modell lediglich aus vier Schichten (vgl. Abbildung 3.3): 7 6 5 4 3 2 1 ISO/OSI-Referenzmodell Darstellung Kommunikationssteuerung Transport Vermittlung Sicherung Bitübertragung Internet-Referenzmodell (HTTP, SMTP, SSH) Transport (TCP/UDP) Internet (IPv4/v6) Datenübertragung (802.x, PPP, SLIP) Abbildung 3.3: Das ISO/OSI-Basisreferenzmodell im Vergleich mit dem TCP/IP-Referenzmodell sschicht (application layer): Die sschicht vereinigt alle anwendungsbezogenen Aufgaben, d. h. die Eigenschaften der Schichten fünf bis sieben des ISO/OSI-Modells. Zu den Protokollen der sschicht 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-en. 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 Internet- Schicht 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 Internet- Modell 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 en ü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)-Schicht (N)-PCI (N)-SDU (N)-IDU (N)-ICI (N)-PCI (N)-PDU (N)-SDU (N 1)-ICI (N 1)-Schicht (N 1)-IDU (N 1)-SDU (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.