kopf
brlogo
fensterobenrechts
   
   
fensteruntenblau
   
 
header
 

bt_backward   bt_index   bt_forward

Beschreibung von Kommunikationsprotokollen

 

Auf der Kommunikationsschicht haben wir bereits das TCP/IP Protokoll kennen gelernt als ein System von Regeln, das die Kommunikation von Client-Server-Anwendungen auf der Netzwerkschicht 4 (Transportschicht) regelt. Auch auf den höheren Anwendungsschichten findet die Kommunikation einer Client-Anwendung mit einer Server-Anwendung auf der Basis von fest vorgegebenen Protokollen statt.

 

Protokolle und Dienste

 

Definition Protokoll

Unter einem Protokoll versteht man ganz allgemein eine Sammlung spezieller Verfahren und Regeln für die elektronische Kommunikation zwischen Rechnern. Internet-Protokolle sind üblicherweise in sogenannten "Request For Comments" (RFC) dokumentiert. Diese Dokumentationen sind in der Regel lang und unübersichtlich, sodass sie sich nur in wenigen Fällen, z. B. bei dem Protokoll RFC 868 ("Time-Server Protokoll") für die unterrichtliche Behandlung eignen.

 

Die TCP/IP Protokoll-Architektur

 

protokolle_10

 (Quelle: Heiko Holtkamp, Einführung in TCP/IP, Universität Bielefeld, 2002)

 

Definition Dienst

Dienste beleuchten die Zusammenarbeit der Schichten unter einem anderen Aspekt. Unter einem Dienst versteht man allgemein die Summe der für einen Benutzer zur Verfügung gestellten Funktionalität. Aus der Sicht eines Benutzers einer Ressource - hier die übergeordnete Schicht - bestehen die Dienste der untergeordneten Schicht aus der Schnittstellenbeschreibung ("Benutzerschnittstelle"). Konkret stellt also jede Schicht für die übergeordneten Schichten Operationen zur Verfügung, die es diesem "Benutzer" gestatten, die untergeordnete Schicht zu benutzen. Voraussetzung hierfür ist, dass die logische Struktur dieser Schicht, also die Vorgaben des Protokolls, eingehalten werden. Vereinfacht gesagt:

 

  • die Dienste einer Schicht legen fest, welche Operationen diese zur Verfügung stellt,
  • das Protokoll einer Schicht beschreibt, wie man mit den Diensten umgehen muss.
 

 

Beispiel:  E-Mail Protokolle

 

Beispiele für solche Protokolle sind die Protokolle POP und SMTP zum Empfangen bzw. Versenden von E-Mails. Internet-Anwendungen wie z. B. Microsoft Outlook verwenden die zu diesen Protokollen definierten Schnittstellen. Für den Programmierer einer solchen Anwendung sieht es dann so aus, als ob die Anwendung mit dem Server kommuniziert und z. B. "Post abholt" und an das Server-Programm "Post verschickt".

 

     protokolle_20

        (Quelle: Zeitschrift Log In Nr. 133, Berlin 2005, S.37)

 

Tatsächlich kommuniziert die Anwendung mit diesen Protokollen, indem die Protokolle mit dem TCP Protokoll kommunizieren, das wiederum die Dienste des IP- und des  ICMP Protokolls verwendet. Auf jeder Ebene des Schichtenmodells benutzt die obere Schicht ausschließlich die von der unteren Schicht zur Verfügung gestellten Dienste.

 

      protokolle_30

        (Quelle: Zeitschrift Log In Nr. 133, Berlin 2005, S.37)

 

Beschreibung von Protokollen

 

Besteht die Beschreibung der Schnittstelle eine Schicht aus der Auflistung der verfügbaren Operationen (Funktionen und Prozeduren mit ihren Parameterlisten, Vor- und Nachbedingungen), so besteht die Beschreibung des zugehörigen Protokolls in der Darstellung des zeitlichen Ablaufs der Kommunikation, z. B.

 

  • Aufbau der Verbindung
  • Kommunikation
  • Reaktion auf Fehler und Unterbrechung
  • Beenden der Verbindung

 

Zur Darstellung des zeitlichen Verlaufs einer Kommunikation sowie gegenseitiger Abhängigkeiten von Anfragen und Antworten sind Zustandsdiagramme, Sequenzdiagramme sowie SDL-Diagramme geeignete Hilfsmittel.

 

1.  Zustandsdiagramme

 

Ein  Zustand beschreibt die aktuelle Situation, in der sich der Prozess (hier: Client-Prozess) befindet. Beim Aufbau einer Socketverbindung mit einem Serversocket ist das immer das Suchen des Sockets und das Verbinden mit diesem Socket, wenn dieser sich "verbindungsbereit" gemeldet hat. Dieser Mechanismus findet auf der Ebene der Internet-Schicht statt.

  • Die Zustandsübergänge ergeben sich durch geeignete Eingaben (1. Zeile an den Pfeilen): Trifft die dem Pfeil zugeordnete Eingabe ein, wechselt der Prozess in den Folgezustand am Ende des Pfeils und führt ggf. die zugehörige Ausgabe (Aktion) aus (2. Zeile am Pfeil, getrennt durch das Zeichen "/").
  • Eingaben können sein:
  • Methodenaufruf (z. B. Open, Close)
  • Fehler (interner Aufruf, ausgelöst durch Kommunikationsfehler oder -störung)
  • Meldung vom Partnerprozess (z. B. "Socket gefunden")
  • Die Reaktion auf diese Eingaben besteht dann darin,

    • in den dieser Eingabe entsprechenden Folgezustand wechseln,
    • eine Reaktion (z. B. Auslösen eines Ereignisses: OnLookup, OnConnecting, OnConnect, OnError, OnDisconnect) zu veranlassen.

  • Der Startzustand ist mit einem Pfeil gekennzeichnet, ein Endzustand durch eine doppelte Umrandung (siehe unten: Zustand "Getrennt").
 

Beispiel: Grundstruktur jeder Client-Server-Kommunikation in Delphi

 

In Delphi sind diese Zustände und Zustandswechsel sehr stark mit dem Auslösen geeigneter Ereignisse verbunden. Die Anwendung kann dann durch Erstellen einer zugehörigen Ereignis-Methode auf diesen Zustand oder den Zustandsübergang reagieren.

 

Zustandsdiagramm:

protokolle_35

 

2.  Sequenzdiagramme

 

Für Sequenzdiagramme existieren die Synonyme Zeit-Sequenz-Diagramm und Interaktionsdiagramm, und auch die graphische Darstellungen variieren ein wenig. Aber inhaltlich drücken sie immer den zeitlichen Ablauf der Kommunikation zwischen den beteiligen Prozessen aus.

 

Beispiel:   Zeit-Sequenz-Diagramm einer einfachen POP3-Kommunikation

 

protokolle_40
     (Quelle:  LogIn Nr. 133, Berlin 2005, S.37)

 

3.  SDL - Specification and Description Langage

 

Der Nachteil eines Zustandsdiagramms besteht darin, dass nach dem Verbinden eines Clients mit dem Server gleichrangige Prozesse existieren. Für jeden Prozess wird nun ein eigenes Zustandsdiagramm benötigt, bei dem der "Partner" nur indirekt durch die Eingaben, die die Zustandsübergänge bewirken, in Erscheinung tritt. Die Specification and Description Language (SDL) erweitert Zustandsdiagramme um diese Darstellung der Interaktion zwischen solchen gleichrangigen Prozessen, verwendet allerdings eine andere graphische Darstellung. Hier nur die Definition der grundlegenden Bestandteile eines SDL-Diagramms:

 

    protokolle_50

    (Quelle: Log In Nr. 136/37, Berlin 2005, S.97)

 

SDL-Diagramme werden hier nicht weiter betrachtet.

 

  bt_top  

 


(FvSG 30.1.2006)
 
 
Thursday, 23. November 2017 / 00:47:37