6. RTP-Steuerprotokoll -- RTCP (RTP Control Protocol -- RTCP)
Das RTP-Steuerprotokoll (RTCP) basiert auf der periodischen Übertragung von Steuerpaketen an alle Teilnehmer der Sitzung unter Verwendung desselben Verteilungsmechanismus wie für die Datenpakete. Das zugrunde liegende Protokoll MUSS das Multiplexen der Daten- und Steuerpakete bereitstellen, beispielsweise durch Verwendung separater Portnummern mit UDP.
RTCP erfüllt vier Funktionen:
-
Die Hauptfunktion besteht darin, Feedback zur Qualität der Datenverteilung bereitzustellen. Dies ist ein integraler Bestandteil der Rolle von RTP als Transportprotokoll und steht in Zusammenhang mit den Fluss- und Staukontrollfunktionen anderer Transportprotokolle.
-
RTCP trägt eine persistente Transport-Level-Kennung für eine RTP-Quelle, die als kanonischer Name oder CNAME bezeichnet wird. Da sich die SSRC-Kennung ändern kann, wenn ein Konflikt entdeckt wird oder ein Programm neu gestartet wird, benötigen Empfänger den CNAME, um jeden Teilnehmer zu verfolgen.
-
Die ersten beiden Funktionen erfordern, dass alle Teilnehmer RTCP-Pakete senden, daher muss die Rate kontrolliert werden, damit RTP auf eine große Anzahl von Teilnehmern skalieren kann. Indem jeder Teilnehmer seine Steuerpakete an alle anderen sendet, kann jeder unabhängig die Anzahl der Teilnehmer beobachten. Diese Zahl wird verwendet, um die Rate zu berechnen, mit der die Pakete gesendet werden.
-
Eine vierte, OPTIONALE Funktion besteht darin, minimale Sitzungssteuerungsinformationen zu übermitteln, beispielsweise die Teilnehmeridentifikation, die in der Benutzeroberfläche angezeigt werden soll. Dies ist am ehesten in „lose kontrollierten" Sitzungen nützlich, in denen Teilnehmer ohne Mitgliedschaftskontrolle oder Parameterverhandlung eintreten und verlassen.
Die Funktionen 1-3 SOLLTEN in allen Umgebungen verwendet werden, insbesondere aber in der IP-Multicast-Umgebung. RTP-Anwendungsdesigner SOLLTEN Mechanismen vermeiden, die nur im Unicast-Modus funktionieren und nicht auf größere Zahlen skalieren.
6.1 RTCP-Paketformat (RTCP Packet Format)
Diese Spezifikation definiert mehrere RTCP-Pakettypen, um verschiedene Steuerungsinformationen zu übertragen:
- SR (Sender-Bericht, Sender Report): für Übertragungs- und Empfangsstatistiken von Teilnehmern, die aktive Sender sind
- RR (Empfänger-Bericht, Receiver Report): für Empfangsstatistiken von Teilnehmern, die keine aktiven Sender sind
- SDES (Quellenbeschreibung, Source Description): für Elemente einschließlich CNAME
- BYE: zeigt das Ende der Teilnahme an
- APP: anwendungsspezifische Funktionen
Jedes RTCP-Paket beginnt mit einem festen Teil ähnlich dem von RTP-Datenpaketen, gefolgt von strukturierten Elementen, die je nach Pakettyp von variabler Länge sein können, aber immer an einer 32-Bit-Grenze enden.
6.2 RTCP-Übertragungsintervall (RTCP Transmission Interval)
RTP ist so konzipiert, dass eine Anwendung automatisch über Sitzungsgrößen von wenigen Teilnehmern bis zu Tausenden skalieren kann. Die RTP-Sitzungsbandbreite wird zwischen Daten- und Steuerungsanteilen aufgeteilt, wobei RTCP typischerweise 5% der Sitzungsbandbreite zugewiesen werden.
6.3 RTCP-Paket-Sende- und Empfangsregeln (RTCP Packet Send and Receive Rules)
Die Regeln für das Senden und Empfangen von RTCP-Paketen sind sorgfältig entworfen, um einen ordnungsgemäßen Betrieb für Sitzungen aller Größen zu erreichen.
6.4 Sender- und Empfängerberichte (Sender and Receiver Reports)
RTP-Empfänger bieten Empfangsqualitätsfeedback unter Verwendung von RTCP-Berichtspaketen, die je nachdem, ob der Empfänger auch ein Sender ist oder nicht, eine von zwei Formen annehmen können.
6.5 SDES: Quellenbeschreibungs-RTCP-Paket (SDES: Source Description RTCP Packet)
Das SDES-Paket ist eine dreistufige Struktur, die aus einem Header und null oder mehr Chunks besteht, von denen jeder aus Elementen besteht, die die in diesem Chunk identifizierte Quelle beschreiben.
6.6 BYE: Auf-Wiedersehen-RTCP-Paket (BYE: Goodbye RTCP Packet)
Das BYE-Paket zeigt an, dass eine oder mehrere Quellen nicht mehr aktiv sind.
6.7 APP: Anwendungsdefiniertes RTCP-Paket (APP: Application-Defined RTCP Packet)
Das APP-Paket ist für experimentelle Verwendung vorgesehen, wenn neue Anwendungen und neue Funktionen entwickelt werden.