Multimedia-Gateway für mobile Clients

Real Time Streaming Protocol (RTSP)

Bei RTSP [RFC2326] handelt es sich um ein Klartextprotokoll der Anwendungsschicht, das eine Kontrolle von zeitsynchronisierten Strömen kontinuierlicher Daten wie Audio und Video bietet. Die Daten selbst werden nicht mit RTSP, sondern typischerweise mit RTP oder einem beliebigen anderen Transportmechanismus übertragen. RTSP bietet aber Möglichkeiten diese Übertragung zu unterbrechen oder zu stoppen. Das Protokoll dient also als eine Art Fernbedienung für Medienserver.

Bei der Definition von RTSP wurden viele Konzepte und Formate von HTTP übernommen, weshalb es häufig als "HTTP-friendly" bezeichnet wird. Trotzdem bestehen wesentliche Unterschiede zwischen diesen beiden Protokollen:

  • RTSP-Server sind im Gegensatz zu HTTP-Servern zustandsbehaftet.
  • Sowohl Server als auch Client können Kommandos senden.
  • Daten werden mit einem separaten Protokoll übertragen.

Zwischen Client und Server wird eine sog. Session aufgebaut, die die Medienübertragung begleitet und steuert. Eine Session ist der gesamte Prozess der Übertragung eines oder mehrerer Medienströme vom Server zum Client, beginnend mit dem Aufbau der Verbindung, Initialisierung eines Transportmechanismus, Übertragung der Daten und anschließender Trennung der Verbindung. Während der Sitzung ist es jedoch nicht notwendig, auch eine Verbindung auf der Transportebene zum Server aufrecht zu erhalten, stattdessen kann z.B. für jede Nachricht eine eigene TCP-Verbindung erzeugt werden. Daher wird jede Session mit einer eindeutigen ID gekennzeichnet, die es dem Server erlaubt, verschiedene Session zu verwalten. Da sich eine Session über den gesamten Prozess der Medienübertragung erstreckt, müssen sowohl Client als auch Server zustandsbehaftet sein, denn nicht zu jedem Zeitpunkt ist jede RTSP-Nachricht erlaubt (es macht z.B. wenig Sinn nach dem Aufbau einer Sitzung diese noch einmal zu initiieren).
Die Beschreibung einer Session wird in RTSP nicht genauer definiert, typischerweise kommt jedoch das Session Description Protocol (SDP) zum Einsatz, das in RFC2327 definiert wurde. Beim SDP handelt es sich ebenfalls um ein Klartextprotokoll, das Definitionen enthält, wie bestimmte Eigenschaften und Parameter einer Session dargestellt werden.

RTSP definiert insgesamt elf verschiedene Nachrichten, die hier jedoch nicht näher erläutert werden. Stattdessen wird der Leser auf das RFC2326 verwiesen. Jede versendete Anforderungsnachricht wird durch eine Bestätigungsnachricht quittiert, die ggf. die angeforderte Informationen enthält. Zur korrekten Zuordnung von Bestätigungen zu vorherigen Anforderung trägt jede Nachricht eine eindeutige Sequenznummer, die während der gesamten Session inkrementiert wird.

Jens Zechlin
19.12.2002