6. Protocole de contrôle RTP -- RTCP (RTP Control Protocol -- RTCP)
Le protocole de contrôle RTP (RTCP) est basé sur la transmission périodique de paquets de contrôle à tous les participants de la session, en utilisant le même mécanisme de distribution que les paquets de données. Le protocole sous-jacent DOIT fournir le multiplexage des paquets de données et de contrôle, par exemple en utilisant des numéros de port séparés avec UDP.
RTCP remplit quatre fonctions :
-
La fonction principale est de fournir un retour d'information sur la qualité de la distribution des données. C'est une partie intégrante du rôle de RTP en tant que protocole de transport et est liée aux fonctions de contrôle de flux et de congestion d'autres protocoles de transport.
-
RTCP transporte un identifiant persistant au niveau transport pour une source RTP appelé nom canonique ou CNAME. Étant donné que l'identifiant SSRC peut changer si un conflit est découvert ou si un programme est redémarré, les récepteurs ont besoin du CNAME pour suivre chaque participant.
-
Les deux premières fonctions nécessitent que tous les participants envoient des paquets RTCP, donc le débit doit être contrôlé pour que RTP puisse évoluer vers un grand nombre de participants. En faisant envoyer par chaque participant ses paquets de contrôle à tous les autres, chacun peut observer indépendamment le nombre de participants. Ce nombre est utilisé pour calculer le débit auquel les paquets sont envoyés.
-
Une quatrième fonction OPTIONNELLE est de transmettre des informations minimales de contrôle de session, par exemple l'identification du participant à afficher dans l'interface utilisateur. Cela est le plus susceptible d'être utile dans les sessions « faiblement contrôlées » où les participants entrent et sortent sans contrôle d'adhésion ou négociation de paramètres.
Les fonctions 1 à 3 DEVRAIENT être utilisées dans tous les environnements, mais particulièrement dans l'environnement multicast IP. Les concepteurs d'applications RTP DEVRAIENT éviter les mécanismes qui ne peuvent fonctionner qu'en mode unicast et ne seront pas à l'échelle de nombres plus importants.
6.1 Format de paquet RTCP (RTCP Packet Format)
Cette spécification définit plusieurs types de paquets RTCP pour transporter diverses informations de contrôle :
- SR (Rapport d'émetteur, Sender Report) : pour les statistiques de transmission et de réception des participants qui sont des émetteurs actifs
- RR (Rapport de récepteur, Receiver Report) : pour les statistiques de réception des participants qui ne sont pas des émetteurs actifs
- SDES (Description de source, Source Description) : pour les éléments incluant CNAME
- BYE : indique la fin de la participation
- APP : fonctions spécifiques à l'application
Chaque paquet RTCP commence par une partie fixe similaire à celle des paquets de données RTP, suivie d'éléments structurés qui peuvent être de longueur variable selon le type de paquet mais se terminent toujours sur une limite de 32 bits.
6.2 Intervalle de transmission RTCP (RTCP Transmission Interval)
RTP est conçu pour permettre à une application de s'adapter automatiquement aux tailles de session allant de quelques participants à des milliers. La bande passante de session RTP est divisée entre les portions données et contrôle, RTCP se voyant généralement allouer 5% de la bande passante de session.
6.3 Règles d'envoi et de réception de paquets RTCP (RTCP Packet Send and Receive Rules)
Les règles pour l'envoi et la réception des paquets RTCP sont soigneusement conçues pour obtenir un fonctionnement correct pour les sessions de toutes tailles.
6.4 Rapports d'émetteur et de récepteur (Sender and Receiver Reports)
Les récepteurs RTP fournissent un retour d'information sur la qualité de réception en utilisant des paquets de rapport RTCP qui peuvent prendre l'une des deux formes selon que le récepteur est également un émetteur ou non.
6.5 SDES : Paquet RTCP de description de source (SDES: Source Description RTCP Packet)
Le paquet SDES est une structure à trois niveaux composée d'un en-tête et de zéro ou plusieurs blocs, chacun étant composé d'éléments décrivant la source identifiée dans ce bloc.
6.6 BYE : Paquet RTCP d'au revoir (BYE: Goodbye RTCP Packet)
Le paquet BYE indique qu'une ou plusieurs sources ne sont plus actives.
6.7 APP : Paquet RTCP défini par l'application (APP: Application-Defined RTCP Packet)
Le paquet APP est destiné à une utilisation expérimentale au fur et à mesure que de nouvelles applications et de nouvelles fonctionnalités sont développées.