Anwendungsschicht
Auf der Anwendungsschicht läuft die Kommunikation zwischen Client und Server ab. Wir können hier gar nicht viel Allgemeines zu sagen, da jede App schließlich andere Daten austauscht! Beispiele für Apps, jeweils Client und Server:
- Webbrowser und Webserver (HTTP-Protokoll)
- Einfacher Client und Echo-Server (zu simpel, um hier von einem Protokoll zu sprechen)
- E-Mail-Programm und Mailserver (SMTP-, IMAP-Protokoll)
- Instagram-App und Instagram-Server (internes Protokoll von Instagram)
Es ist wichtig zu verstehen, dass die Anwendungsschicht auf der Transportschicht aufbaut, also z.B. auf dem TCP-Protokoll. Die Anwendung kann also die technischen Details (3-Way-Handshake, Empfangsbestätigungen, Wiederverschickung bei Paketverlust etc.) ignorieren und sich auf das Wesentliche (= die Anwendungsdaten) konzentrieren.
Die folgenden beiden Sequenzdiagramme beschreiben also dieselbe Kommunikation, jedoch aus Sicht von zwei verschiedenen Schichten. Im rechten Sequenzdiagramm fehlt noch ein Teil der Kommunikation (siehe nachfolgende Aufgabe).
Konstruiere in Filius ein einfaches LAN mit zwei Rechnern. Auf einem der Rechner soll ein einfacher Client installiert werden. Auf dem anderen Rechner soll ein Echo-Server installiert werden.
Starte den Server auf Port 555. Verbinde den Client mit dem Server.
Die Portnr. auf der Seite des Clients mag bei dir anders sein, ebenfalls die SEQ- und ACK-Felder. Das ist kein Problem. SEQ steht für „Sequenznummer“ und ACK steht für „Acknowledgement“ = „Bestätigung einer Sequenznr.“
Verschicke eine HALLO-Nachricht. Beende anschließend die Verbindung client-seitig. Lasse dir nun den Datenaustausch anzeigen.
Identifiziere zunächst den 3-Way-Handshake („Begrüßung“). Es handelt sich um drei Pakete. Prüfe, dass jeweils SEQ-Nr. $X$ mit der ACK-Nr. $X+1$ beantwortet wird.
Identifiziere nun den Versand von HALLO, die Bestätigung, den Versand des HALLO-Echos, und auch die dazugehörige Bestätigung. Zeichne das rechtsstehende Sequenzdiagramm ab und vervollständige es. Prüfe, dass nach Versand der 5 Zeichen HALLO mit SEQ-Nr. $X$ die ACK-Nummer $X+5$ lautet.
Identifiziere abschließend das „Goodbye“. Welche Nachrichten werden verschickt? Zeichne in das Sequenzdiagramm ein.