Fachkonzept - Client-Server-System

Anbieter und Kunde

Client-Server-Systeme kennt man aus dem Alltag. ...

Ein Client-Server-System besteht aus zwei Kommunikationspartnern, einem Server, der bestimmte Dienste zur Verfügung stellt, und einem Client, der angebotene Dienste des Servers in Anspruch nimmt.

Abbildung - fehlt noch

Bei einer Client-Server-Anwendung nimmt der Client Kontakt mit dem Server auf. Damit das auch möglich ist, muss der Server stets auf eine solche Kontaktaufnahme vorbereitet sein.

Aufbau einer Client-Server-Kommunikation

Das Drei-Wege-Handschlag-Verfahren wird auch bei Protokollen wie TCP zum Verbindungsaufbau zwischen einem Client und einem Server benutzt.

Drei-Wege-Hanschlag

In einem ersten Schritt sendet der Client-Prozess ein SYN-Datenpaket (in dem ein spezielles SYN-Bit den Wert 1 hat). In diesem Datenpaket wird dem Server-Prozess auch eine Anfangssequenznummer mitgeteilt.

In einem zweiten Schritt sendet der Server-Prozess dem Client-Prozess ebenfalls ein SYN-Datenpaket und eine Anfangssequenznummer. Zudem bestätigt der Server-Prozess die Anfangssequenznummer x des Client-Prozesses, indem er die nächste erwartete Sequenznummer ACK=x+1 eines vom Client gesendeten Datenpakets zurückschickt.

In einem dritten Schritt antwortet der Client-Prozess mit einer Bestätigung der Anfangssequenznummer y des Server-Prozesses, indem er die nächste erwartete Sequenznummer ACK=y+1 eines Datenpakets vom Server zurückschickt.

Regelung eines zuverlässigen Datentransports

... anpassen ...

Wir betrachten hier ein an TCP angelehntes Protokoll zur Transportkontrolle bei einem unsicheren Transportmedium. Mit Sender und Empfänger werden im Folgenden jeweils Prozesse bezeichnet.

Wenn kein Datenpaket verloren geht, dann lässt sich der Datentransport wie im folgenden Sequenzdiagramm beschreiben.

Sequenzdiagramm

Ein Sender verschickt Datenpakete an einen Empfänger. Die Datenpakete sind mit Sequenznummern durchnummeriert.

Wenn der Empfänger ein Datenpaket erhält, dann schickt er eine Bestätigungsdatenpaket (ACK) mit der als nächstes erwarteten Sequenznummer an den Sender zurück. Der Sender schickt anschließend das nächste Datenpaket an den Empfänger.

Wie agieren Sender und Empfänger, wenn ein Datenpaket verloren geht? Der Empfänger kann in einem solchen Fall natürlich kein Bestätigungsdatenpaket an den Sender zurückschicken. Der Sender merkt das, indem er beim Versenden einen Timer startet und nach einer voreingestellten Wartezeit registriert, dass er immer noch keine Bestätigung für das gesendete Datenpaket erhalten hat. Der Sender schickt daraufhin eine Kopie des verlorengegangenen Datenpakets an den Empfänger.

Sequenzdiagramm

Natürlich kann auch ein Bestätigungsdatenpaket verloren gehen. In diesem Fall erhält der Sender ebenfalls keine Bestätigung und verschickt noch einmal eine Kopie des Datenpakets an den Empfänger. Der Empfänger stellt an der Sequenznummer fest, dass er jetzt ein Duplikat eines Datenpakets erhalten hat. Er ignoriert das Datenpaket und sendet erneut ein Bestätigungsdatenpaket.

Sequenzdiagramm

Es kann auch der Fall eintreten, dass ein Bestätigungsdatenpaket verzögert beim Sender eintrifft. Auch in diesem Fall wird das Datenpaket erneut verschickt. Der Empfänger erkennt das an der Sequenznummer und ignoriert das Datenpaket. Der Sender ignoriert zudem ein erneut erhaltenes Bestätigungsdatenpaket des Empfängers.

Sequenzdiagramm

X

Fehler melden

X

Suche