Das Real-Time Transport Protocol (RTP) ist ein Netzwerkprotokoll, das für die Übertragung von Echtzeitdaten, wie beispielsweise Audio und Video, in IP-basierten Netzwerken entwickelt wurde. RTP bietet Mechanismen zur Sequenzierung, Zeitstempelung und Übertragungskontrolle von Datenströmen. Es wird häufig in VoIP (Voice over IP)-, Video- und Multimedia-Anwendungen eingesetzt.
Ablauf
Initialisierung: Der Sender und Empfänger müssen sich zunächst auf Parameter für die Übertragung einigen, einschließlich der Wahl eines RTP-Port-Paares für die Datenübertragung und eines RTCP-Port-Paares für die Steuerungsinformationen. Die Teilnehmer müssen auch den Payload-Typ vereinbaren, um die Art der übertragenen Daten anzugeben.
Datenkodierung: Der Sender kodiert die Echtzeitdaten, beispielsweise Audio oder Video, in das entsprechende Format, das vom vereinbarten Payload-Typ unterstützt wird. Dabei werden möglicherweise auch Komprimierungsverfahren angewendet, um die Datenmenge zu reduzieren.
RTP-Paketisierung: Die kodierten Daten werden in RTP-Pakete verpackt. Jedes RTP-Paket enthält einen RTP-Header, der Informationen wie Sequenznummer, Zeitstempel und Payload-Typ enthält, sowie die eigentlichen Nutzdaten.
Übertragung: Die RTP-Pakete werden über das Netzwerk an den Empfänger gesendet. Hierbei können verschiedene Netzwerkprotokolle wie UDP (User Datagram Protocol) oder TCP (Transmission Control Protocol) verwendet werden. UDP wird häufiger verwendet, da es für Echtzeitübertragungen geeigneter ist, während TCP für zuverlässigere Übertragungen bevorzugt wird.
Empfang und Dekodierung: Der Empfänger empfängt die RTP-Pakete und extrahiert die Nutzdaten aus dem RTP-Header. Anhand der Sequenznummer und des Zeitstempels werden die Daten in der richtigen Reihenfolge und synchronisiert zur Wiedergabe oder Weiterverarbeitung dekodiert.
RTCP-Kommunikation: Parallel zur Datenübertragung findet die Kommunikation über das RTCP-Protokoll statt. RTCP-Pakete werden zwischen Sender und Empfänger ausgetauscht, um Steuerungsinformationen, Statistiken und Feedback zur Qualität der Übertragung zu übermitteln. Dies ermöglicht eine Überwachung und Anpassung der Übertragung an die Netzwerkbedingungen.
Status Codes
RTP definiert auch eine Reihe von Statuscodes, die in den RTCP-Paketen verwendet werden, um den Status der Übertragung anzuzeigen. Einige der häufig verwendeten RTP-Statuscodes sind:
200 OK: Dieser Statuscode wird verwendet, um anzuzeigen, dass die Übertragung erfolgreich war und der RTP-Stream erfolgreich eingerichtet wurde.
404 Not Found: Dieser Statuscode wird verwendet, wenn der gewünschte RTP-Stream nicht gefunden wurde oder nicht verfügbar ist.
500 Server Error: Dieser Statuscode zeigt an, dass ein interner Serverfehler aufgetreten ist und die Übertragung nicht durchgeführt werden kann.
503 Service Unavailable: Dieser Statuscode wird verwendet, wenn der RTP-Stream vorübergehend nicht verfügbar ist, beispielsweise aufgrund von Überlastung oder Wartungsarbeiten.
Sonstiges
RTP kann sowohl für Unicast-Verbindungen als auch für Multicast-Kommunikation im Internet eingesetzt werden.
Links