Client-/Server-Interaktionsmodell

Betrachten wir zunächst die Hauptakteure im Internet, also die Anwendungen, die über das Internet miteinander kommunizieren. Deren Kommunikation läuft in der Regel nach folgendem Schema ab: Die Anwendung, die den Kommunikationswunsch hegt (Client), stellt eine Anfrage an eine korrespondierende Anwendung auf einem entfernten Rechner (Server) , in der sie ihren Kommunikationswunsch (Request) formuliert. Der Server antwortet daraufhin mit der gewünschten Information oder stellt den gewünschten Dienst bereit (Reply).

Diese Form der Kommunikationsbeziehung wird als Client/Server Paradigma bezeichnet. Die Protokolle der Anwendungsschicht müssen diese beiden unterschiedlichen Seiten einer Kommunikationsbeziehung gleichermaßen bedienen. Dabei steht der Client für die aktive Komponente, die die Kommunikationsbeziehung initiiert, und der Server für die passive Komponente, die darauf wartet, dass ein Client eine Anforderung stellt (siehe Bild). Der Informationsfluss kann dabei in beide Richtungen, vom Client zum Server oder vom Server zum Client, fließen. Betrachten wir das WWW, so stellt der Web-Browser des Benutzers die Clientseite der Kommunikationsbeziehung dar. Der Web-Browser sendet eine Anfrage nach einer bestimmten Informationsressource an einen Web-Server, der die Serverseite der Kommunikationsbeziehung bildet. Das HTTP Protokoll muss also auf der Seite des Web-Browsers Client-Funktionalität und auf der Seite des Web-Servers Serverfunktionalität zur Verfügung stellen.

Client Server Interaktionsmodell

Damit ein Client bestimmte Server-Dienste ansprechen kann, müssen diese adressierbar sein. Die Protokolle der Transportschicht stellen zu diesem Zweck Schnittstellen zur Verfügung, die sogenannten Ports. Jedem Anwendungsprogramm, das über das Internet kommunizieren kann, ist ein bestimmter Port zugeordnet, der durch eine eindeutige Portnummer identifiziert wird (siehe Abschnitt 8.1.3). Diese Portnummer wird dem Anwendungsprogramm von der Netzwerk-Transportsoftware zugeteilt. Client-Anfragen werden dann von der Netzwerk-Software über die so spezifizierte Portnummer zum jeweiligen Server weitergeleitet. Dazu fügt der Client seiner Anfrage die den angeforderten Server-Dienst spezifizierende Portnummer hinzu, so dass die Netzwerk-Software auf Server-Seite die Anfrage an den betreffenden Server weiterleiten kann.

Je nach den Anforderungen des adressierten Dienstes können Client/Server-Dienste auf einen verbindungsorientierten oder einen verbindungslosen Transportdienst zurückgreifen. Der verbindungsorientierte Transportdienst wird dabei üblicherweise von TCP bedient, während der verbindungslose Transport über UDP abgewickelt wird.

Client/Server-Interaktionen im Internet sind allerdings nicht auf eine reine 1:1-Kommunikationsbeziehung beschränkt, sondern können auch komplexere Kommunikationsbeziehungen abbilden. So kann ein Client gleichzeitig verschiedene Server kontaktieren (1:n-Beziehung), denselben Dienst von unterschiedlichen Rechnern, oder unterschiedliche Dienste (und diese mitunter vom selben Rechner) anfordern oder transitive, hierarchische Kommunikationsbeziehungen ausbilden. Auch der vom Client kontaktierte Server selbst kann als Client eines weiteren Servers aktiv werden, um die gewünschte Anfrage des originalen Clients bedienen zu können.

Prolog

Teil 3 von 3

In der über der Internetschicht angesiedelten Transportschicht werden Protokollfunktionen zur Verfügung gestellt, mit denen es möglich wird, auf der Basis des einfachen verbindungslosen und unzuverlässigen IP einen verbindungsorientierten und zuverlässigen Transportdienst bereitzustellen. Diese Aufgabe übernimmt das TCP Protokoll, das eine gesicherte Ende-zu-Ende Kommunikation zwischen zwei Kommunikationspartnern bzw. -diensten im Internet ermöglicht, und das zusammen mit weiteren Protokollen der Transportschicht in Kapitel 8 vorgestellt wird.

Die zahlreichen unterschiedlichen Netzwerkdienste, die heute zu unserem täglichen Kommunikationsrepertoire gehören, und die auf dem TCP/IP-Referenzmodell basieren, folgen meist dem sogenannten Client/Server Kommunikationsschema: Ein Client fordert von einem Server eine Information bzw. einen Dienst an. Der Server stellt diese Information bzw. diesen Dienst bereit und liefert sie/ihn dem anfragenden Client aus, sofern dieser bezugsberechtigt ist. Entsprechend ihren Aufgaben werden Namens- und Verzeichnisdienste, Elektronische Post, Dateitransferdienste, Netzwerkmanagement und echtzeitfähige Transportdienste unterschieden, die alle diesem Schema folgen und deren Protokolle in der Anwendungsschicht des TCP/IP-Referenzmodells angesiedelt sind. Sie werden in Kapitel 9 detailliert behandelt.