6.1 Session Layer
Die Sitzungsschicht ist Schicht 5 des OSI-Referenzmodells. Sie beschreibt Funktionen, mit denen Kommunikationspartner einen geordneten Dialog beginnen, steuern, synchronisieren, nach Unterbrechungen fortsetzen und beenden können. Im heutigen TCP/IP-Stapel erscheint dafür meist keine eigenständige Schicht: Anwendungen, Anwendungsprotokolle, Sicherheitsprotokolle und Laufzeitumgebungen übernehmen die Sitzungsfunktionen gemeinsam.
Was eine Sitzung von einer Transportverbindung unterscheidet
Eine Transportschichtverbindung beschreibt den Datentransport zwischen Endpunkten. TCP verwaltet dafür unter anderem Sequenznummern, Bestätigungen und Flusssteuerung. Eine Anwendungssitzung beschreibt dagegen den fachlichen Zusammenhang einer Kommunikation: welcher Benutzer angemeldet ist, welcher Vorgang bearbeitet wird, welcher Zustand erreicht wurde und ob der Dialog nach einer Unterbrechung fortgesetzt werden kann.
Beide Lebenszyklen müssen nicht identisch sein. Eine Anwendungssitzung kann mehrere nacheinander aufgebaute TCP-Verbindungen überdauern. Umgekehrt kann eine einzelne TCP-Verbindung mehrere unabhängige Anfragen oder logische Vorgänge transportieren. Der Begriff „Session“ muss deshalb immer im Kontext des verwendeten Protokolls oder der Anwendung verstanden werden.
| Ebene | Beispiel für Zustand | Typische Lebensdauer |
|---|---|---|
| Transport | TCP-Sequenznummern, Fenster und Verbindungszustand | bis zum Schließen oder Abbruch der TCP-Verbindung |
| Sicherheit | ausgehandelte Schlüssel und TLS-bezogener Zustand | abhängig von Sicherheitsprotokoll und Wiederaufnahmeverfahren |
| Anwendung | angemeldeter Benutzer, Warenkorb, Transaktion oder Arbeitsstand | kann eine oder mehrere Transportverbindungen umfassen |
Die klassischen Aufgaben der Sitzungsschicht
- Aufbau, geordnete Durchführung und Beendigung einer Sitzung
- Zuordnung und Synchronisation der beteiligten Kommunikationspartner
- Dialogverwaltung einschließlich möglicher Sprecher- oder Senderechte
- Setzen von Synchronisationspunkten innerhalb längerer Abläufe
- Wiederaufnahme eines Vorgangs ab einem bekannten Zustand
- Meldung und Behandlung sitzungsbezogener Fehler
- Koordination mehrerer logischer Dialoge über gemeinsame Transportmöglichkeiten
Dialogsteuerung und Senderecht
Die OSI-Sitzungsschicht kann festlegen, ob beide Partner gleichzeitig senden dürfen oder ob ein kontrollierter Wechsel vorgesehen ist. Bei einer Token- beziehungsweise Senderechtsverwaltung darf nur der Partner mit dem entsprechenden Recht eine bestimmte Aktion ausführen. Dadurch lassen sich konkurrierende Änderungen oder ungeordnete Dialoge vermeiden.
Moderne Anwendungen lösen solche Anforderungen meist in ihrer eigenen Logik. Beispiele sind eine Moderationsrolle in einer Konferenz, das Sperren eines gemeinsam bearbeiteten Datensatzes oder ein Protokollzustand, der nur eine bestimmte nächste Nachricht erlaubt. Das ist nicht mit dem Token in einem Zugriffskontrollverfahren wie Token Ring und auch nicht automatisch mit einem Anmelde-Token gleichzusetzen.
| Dialogform | Bedeutung | Praktische Einordnung |
|---|---|---|
| Simplex | Nutzdaten fließen nur in eine Richtung. | beispielsweise ein einseitiger Datenstrom |
| Halbduplex | beide Seiten können senden, aber nicht gleichzeitig. | Senderecht oder Sprecherwechsel kann erforderlich sein |
| Vollduplex | beide Seiten können gleichzeitig senden. | TCP stellt einen vollduplexen Bytestrom bereit; die Anwendung kann ihn dennoch logisch einschränken |
Synchronisationspunkte und Wiederaufnahme
Bei langen Vorgängen können Synchronisationspunkte einen bestätigten Zwischenstand kennzeichnen. Nach einer Unterbrechung muss dann nicht zwingend der gesamte Vorgang von vorn beginnen. Wichtig ist, dass beide Partner eindeutig bestimmen können, welche Daten vollständig verarbeitet wurden und ab welchem Zustand die Fortsetzung sicher ist.
Ein Checkpoint ist mehr als die zuletzt empfangene Netzwerkposition. Eine Anwendung muss auch berücksichtigen, ob Daten bereits dauerhaft gespeichert, eine Transaktion abgeschlossen oder eine Aktion nur teilweise ausgeführt wurde. Andernfalls kann eine Wiederholung doppelte Buchungen, unvollständige Dateien oder widersprüchliche Zustände erzeugen.
| Beispiel | Möglicher Synchronisationszustand | Risiko ohne saubere Prüfung |
|---|---|---|
| Dateiübertragung | bestätigter Byte-Offset und Identität der Datei | doppelte oder fehlende Datenbereiche |
| Datenimport | zuletzt vollständig verarbeiteter Datensatz | Datensätze werden doppelt importiert |
| Arbeitsablauf | abgeschlossener Prozessschritt mit eindeutiger Vorgangs-ID | Aktion wird mehrfach ausgelöst |
| Medienwiedergabe | bestätigte Zeitposition oder Segmentnummer | Sprung oder Wiederholung nach Wiederaufnahme |
Multiplexing richtig einordnen
Multiplexing bedeutet, mehrere logische Kommunikationsbeziehungen über eine gemeinsame darunterliegende Verbindung oder Ressource abzubilden. Das Ausgangsdokument ordnet diese Anpassung der Sitzungsschicht zu. Das ist im OSI-Kontext nachvollziehbar, in heutigen Protokollstapeln aber keine exklusive Schicht-5-Aufgabe.
TCP unterscheidet Verbindungen über Endpunktinformationen, HTTP/2 und HTTP/3 transportieren mehrere Streams innerhalb einer Verbindung, und Anwendungen können mehrere Benutzer- oder Arbeitskontexte über denselben Dienst verwalten. Welche Ebene multiplext, hängt daher vom konkreten Protokoll ab.
| Beispiel | Was gemeinsam genutzt wird | Was getrennt bleibt |
|---|---|---|
| TCP/IP | IP-Netz und darunterliegende Links | TCP-Verbindungen anhand ihrer Endpunkte |
| HTTP/2 | eine TCP-Verbindung | mehrere HTTP-Streams |
| HTTP/3 | eine QUIC-Verbindung über UDP | mehrere unabhängige QUIC-Streams |
| Anwendungsserver | Dienst und Infrastruktur | Benutzer-, Mandanten- oder Vorgangssitzungen |
RPC: entfernte Funktionen aufrufen
Remote Procedure Call, kurz RPC, lässt eine Anwendung eine Funktion auf einem entfernten System so aufrufen, als wäre sie Teil eines lokalen Programms. Unter der Oberfläche müssen Anfrage, Parameter, Ergebnis und Fehler in Nachrichten übersetzt, übertragen und dem richtigen Aufruf zugeordnet werden. Zeitüberschreitungen, Wiederholungen und doppelte Ausführung müssen ausdrücklich behandelt werden.
RPC ist kein einzelnes universelles OSI-Schicht-5-Protokoll. Es ist ein Kommunikationsmodell mit verschiedenen konkreten Umsetzungen. ONC RPC ist beispielsweise in RFC 5531 beschrieben; weitere heutige Umsetzungen verwenden andere Datenformate und Transportprotokolle. Ein RPC-Aufruf kann Sitzungsfunktionen benötigen, wird in der Internetarchitektur aber gewöhnlich der Anwendungsebene zugerechnet.
| RPC-Schritt | Aufgabe |
|---|---|
| 1. Aufruf bilden | Prozedur, Parameter und eindeutige Aufrufkennung codieren |
| 2. Übertragen | Nachricht über ein geeignetes Transportprotokoll senden |
| 3. Zuordnen | Server ordnet die Anfrage einer Prozedur und einem Ausführungskontext zu |
| 4. Antworten | Ergebnis oder Fehler codieren und zurücksenden |
| 5. Fehlerfall behandeln | Timeout, Wiederholung und mögliche doppelte Ausführung berücksichtigen |
SCP historisch und begrifflich einordnen
In älteren Darstellungen wird SCP als Session Control Protocol der Sitzungsschicht genannt. Diese Bezeichnung ist ohne konkrete Spezifikation jedoch nicht eindeutig und spielt im heutigen TCP/IP-Alltag keine mit TCP, HTTP oder DNS vergleichbare Rolle. Sie eignet sich daher vor allem als Hinweis auf historische oder produktspezifische Sitzungssteuerung.
SCP darf außerdem nicht mit Secure Copy verwechselt werden. Das gleichnamige Dateiübertragungswerkzeug nutzt SSH und gehört aus Sicht des TCP/IP-Modells zur Anwendungsebene. Bei Abkürzungen muss deshalb immer der Kontext oder die vollständige Protokollbezeichnung angegeben werden.
Sitzungsprobleme in der Praxis untersuchen
| Beobachtung | Mögliche Ebene | Prüfung |
|---|---|---|
| Benutzer wird unerwartet abgemeldet | Anwendungssitzung, Cookie oder Token abgelaufen | Ablaufzeiten, Serverprotokolle und Clientzustand prüfen |
| TCP-Verbindung bricht ab, Anmeldung bleibt erhalten | Transport wurde erneuert, Anwendungssitzung besteht weiter | Neuaufbau der Verbindung und Sitzungs-ID nachvollziehen |
| Vorgang wird nach Wiederholung doppelt ausgeführt | fehlende Idempotenz oder unklare RPC-Wiederholung | Vorgangs-ID, Serverprotokoll und Transaktionsgrenzen untersuchen |
| Fortsetzung beginnt an falscher Stelle | Checkpoint oder bestätigter Zustand widersprüchlich | Offset, Versionskennung und dauerhaft gespeicherten Stand vergleichen |
| mehrere Dialoge blockieren sich gegenseitig | fehlerhafte Zustands- oder Ressourcenverwaltung | Locks, Streamzuordnung und Parallelitätsgrenzen analysieren |
Quellen zur fachlichen Prüfung
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
