RealTime Control Protocol
# RealTime Control Protocol

Das RealTime Control Protocol, offiziell RTP Control Protocol (RTCP), dient der Aushandlung und Einhaltung von Parametern der Dienstequalität (enS|Quality of Service, QoS) durch den periodischen Austausch von Steuernachrichten zwischen Sender und Empfänger. Dazu erfolgt eine

* Rückmeldung der bisher erbrachten Dienstqualität, wodurch eine Anpassung der Datenübertragungsrate erfolgen kann;
* Identifikation aller Sitzungsteilnehmer, wodurch semantisch zusammenhängende, aber getrennt gesendete Medienströme synchronisiert werden können;
* Steuerung der für RTCP-Pakete verwendeten Datenübertragungsrate, damit der Austausch von RTCP-Nachrichten nicht die Übertragung behindert, was bei Sitzungen mit vielen Teilnehmern passieren könnte.

Das RealTime Control Protocol wird zusammen mit dem Real-Time Streaming Protocol (RTSP), das für die Steuerung der Übertragung zuständig ist, und dem Real-Time Transport Protocol (RTP) verwendet, das die eigentliche Übertragung übernimmt.

Typischerweise setzt RTCP auf das User Datagram Protocol (UDP) als Transportprotokoll auf. Der fürs RTCP reservierte Port 5005 ist ebenso wenig bindend wie Port 5004 fürs RTP oder das Soll, RTP und RTCP auf solch engsten Portpaaren mit gerader und nächster ungerader Portnummer anzubieten.

## RTCP-Header

| Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 |
| - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| Bit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| V=2 | V=2 | P | RC | RC | RC | RC | RC | PT | PT | PT | PT | PT | PT | PT | PT | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length | Length |

### Version (V), 2 bit

    Versionsstand des RTCP-Protokolls (aktuell V.2)

### Padding (P), 1 bit

    Das Füll-Bit ist gesetzt, wenn ein oder mehrere Füll-Oktets am Ende des Pakets angehängt sind, die nicht zum eigentlichen Dateninhalt (Payload) gehören. Das letzte Füll-Oktet gibt die Anzahl der hinzugefügten Füll-Oktets an. Füll-Oktets werden nur dann benötigt, wenn nachfolgende Protokolle eine vorgegebene Blockgröße benötigen, z. B. Verschlüsselungsalgorithmen.

### Report Counter (RC), 5 bit

    Gibt die Anzahl der in diesem Paket enthaltenen Reports an.

### Packet Type (PT), 8 bit

    Dieses Feld beschreibt das Format des RTCP-Pakets.

| Typ | Abkürzung | ID |
| - | - | - |
| Sender Report | SR | 200 |
| Receive Report | RR | 201 |
| Source Description | SDES | 202 |
| Goodbye (End of participation) | BYE | 203 |
| Application defined | APP | 204 |

### Length, 16 bit

    Dieses Feld beschreibt die Länge des gesamten RTCP-Pakets.
