Zum Hauptinhalt springen

Appendix A: RTSP Protocol State Machines (Zustandsautomaten des RTSP-Protokolls)

Appendix A: RTSP Protocol State Machines (Zustandsautomaten des RTSP-Protokolls)

Die RTSP-Client- und -Server-Zustandsautomaten beschreiben das Protokollverhalten von der RTSP-Sitzungsinitialisierung bis zur Beendigung.

Zustand ist pro Objekt definiert. Ein Objekt wird eindeutig durch Stream-URL und RTSP-Sitzungskennung identifiziert. Anfragen/Antworten mit aggregierten URLs für mehrströmige RTSP-Präsentationen wirken auf die Zustände aller Ströme. Enthält /movie die Ströme /movie/audio und /movie/video, betrifft der folgende Befehl beide Zustände.

PLAY rtsp://foo.com/movie RTSP/1.0 CSeq: 559 Session: 12345678

Das Beispiel legt keine Standarddarstellung von Strömen in URLs oder Beziehungen zum Dateisystem fest. Siehe Abschnitt 3.2.

OPTIONS, ANNOUNCE, DESCRIBE, GET_PARAMETER, SET_PARAMETER ändern den Client- oder Serverzustand nicht und fehlen in den Tabellen.

A.1 Client State Machine

Mögliche Clientzustände:

Init: SETUP gesendet, warten auf Antwort.

Ready: SETUP-Antwort erhalten oder PAUSE-Antwort im Zustand Playing.

Playing: PLAY-Antwort erhalten.

Recording: RECORD-Antwort erhalten.

In der Regel wechselt der Client bei Antworten den Zustand. Einige Anfragen (z. B. PAUSE) wirken später. Ohne explizites SETUP (z. B. Multicast) beginnt der Zustand bei Ready; nur Ready und Playing. Ende des angeforderten Bereichs: von Playing/Recording zu Ready.

Spalte „next state“: Zustand nach erfolgreicher Antwort (2xx). Status 3xx → Init; 4xx → unverändert. Nicht gelistete Nachrichten in einem Zustand DÜRFEN nicht gesendet werden (außer den oben genannten zustandsneutralen). REDIRECT vom Server entspricht 3xx-Weiterleitung.

state message sent next state after response Init SETUP Ready TEARDOWN Init Ready PLAY Playing RECORD Recording TEARDOWN Init SETUP Ready Playing PAUSE Ready TEARDOWN Init PLAY Playing SETUP Playing (changed transport) Recording PAUSE Ready TEARDOWN Init RECORD Recording SETUP Recording (changed transport)

A.2 Server State Machine

Serverzustände:

Init: Ausgangszustand, noch kein gültiges SETUP.

Ready: Letztes SETUP erfolgreich, Antwort gesendet, oder nach Wiedergabe letztes PAUSE erfolgreich.

Playing: Letztes PLAY erfolgreich, Daten werden gesendet.

Recording: Aufzeichnung läuft.

In Playing oder Recording im Unicast-Modus KANN der Server bei fehlenden „Wellness“-Informationen (RTCP, RTSP) für ein festes Intervall (Standard eine Minute) zu Init zurückkehren und die Sitzung abbauen. Anderes Timeout möglich im Session-Header (12.37). In Ready KANN bei mehr als einer Minute ohne RTSP-Anfrage Init folgen. PAUSE kann zeitversetzt wirken. Am Ende des vom Client angeforderten Bereichs: von Playing/Recording zu Ready.

REDIRECT wirkt sofort, sofern kein Range-Header den Zeitpunkt angibt.

Ohne explizites SETUP: Start bei Ready, nur Ready und Playing.

„next state“ nach gesendeter 2xx; 3xx → Init; 4xx unverändert.

state message received next state Init SETUP Ready TEARDOWN Init Ready PLAY Playing SETUP Ready TEARDOWN Init RECORD Recording Playing PLAY Playing PAUSE Ready TEARDOWN Init SETUP Playing Recording RECORD Recording PAUSE Ready TEARDOWN Init SETUP Recording