Real Time Streaming Protocol

Real Time Streaming Protocol (RTSP) ist ein Protokoll der Verarbeitungsschicht, das dazu dient die Datenfluss von Echzeitdatenströmen (z.B. Audio- oder Videodatenströme) zu steuern. Die Datenströme selbst werden dabei mit den Protokollen UDP, TCP oder RTP übertragen.

RTSP ist ähnlich HTTP ein auf der Übermittlung von Textnachrichten basierendes Protokoll. Beide Protokollteilnehmer können an ihren Gegenpart Requests übermitteln, die mit Reponses beantwortet werden, wenn eine permanente Verbindung zwischen Client und Server aufgebaut wird.

RTSP Server müssen die Übertragung von Nachrichten über TCP unterstützen, eine Übertragung über UDP ist optional. Der Standardport ist 554.


Ein Request besteht aus

• der Request Zeile, die die Methode (Describe, Announce, Get Parameter, Options, Pause, Play, Record, Redirect, Setup, Set Parameter oder Teardown), den URI und die Protokollversion enthält,
• mehreren General Header Zeilen (Cache-Control, Connection, Date, Via),
• mehreren Request Header Zeilen (Accept, Accept-Encoding, Accept-Language, Authorization, From, If-Modified-Since, Range, Referer, User-Agent) und
• mehreren Entity Header Zeilen (Allow, Content-Base, Content-Encoding, Content-Language, Content-Length, Content-Location, Content-Type, Expires, Last-Modified)

gefolgt von einer Leerzeile und den optionalen Nutzdaten.


Eine Response besteht aus

• der Status Zeile, die die Protokollversion, den Statuscode und einen Statustext enthält,
• mehreren General Header Zeilen,
• mehreren Response Header Zeilen (Location, Proxy-Authenticate, Public, Retry-After, Server, Vary, WWW-Authenticate) und
• mehreren Entity Header Zeilen

gefolgt von einer Leerzeile und den optionalen Nutzdaten.


Die Methoden haben folgende Bedeutungen:

• Describe: Der Client sendet einen Describe Request an den Server und erhält mit der Response eine Beschreibung zum referenzierten Medienobjekt.
• Announce: Ein Announce Request übermittelt neue oder geänderte Beschreibungen für Medienobjekte.
• Setup: Der Client sendet einen Setup Request mit den Transportparametern an den Server. Anhand der Transportparameter kann die Verbindung für den Echzeitdatenstrom hergestellt werden. Die Response vom Server enthält die Session Id.
• Play: Der Client sendet den Play Request mit der Session Id, um die Übertragung des referenzierten Echtzeitdatenstroms zu starten.
• Pause: Der Client sendet den Pause Request mit der Session Id, um die Übertragung des referenzierten Echtzeitdatenstroms zu unterbrechen.
• Teardown: Der Client sendet den Teardown Request mit der Session Id, um die Übertragung des referenzierten Echtzeitdatenstroms zu beenden.
• Record: Der Client weist den Server an, den referenzierten Echtzeitdatenstrom aufzuzeichnen.


Normalerweise wird der Echtzeitdatenstrom nicht über die gleiche, zugrunde liegende Datenverbindung übertragen, wie die RTSP Steuerungsinformationen. Wenn der Echtzeitdatenstrom (z.B. in Form von RTP Paketen) über die gleiche Verbindung übertragen werden soll, dann wird einem Datenpaket der folgende Header vorangestellt:

• ein Dollar-Zeichen,
• die Kanal Id (1 Byte) und
• die Länge (2 Bytes).

Auf den Header folgt genau ein Paket (z.B. RTP Paket) des Echtzeitdatenstroms. Im Falle der Nutzung von RTP dient die Kanal Id der Unterscheidung zwischen RTP und RTCP Paketen.


Quelle

http://www.ietf.org/rfc/rfc2326.txt