Passa al contenuto principale

6. Protocollo di controllo RTP -- RTCP (RTP Control Protocol -- RTCP)

Il protocollo di controllo RTP (RTCP) si basa sulla trasmissione periodica di pacchetti di controllo a tutti i partecipanti nella sessione, utilizzando lo stesso meccanismo di distribuzione dei pacchetti di dati. Il protocollo sottostante DEVE fornire il multiplexing dei pacchetti di dati e di controllo, ad esempio utilizzando numeri di porta separati con UDP.

RTCP svolge quattro funzioni:

  1. La funzione principale è fornire feedback sulla qualità della distribuzione dei dati. Questa è una parte integrante del ruolo di RTP come protocollo di trasporto ed è correlata alle funzioni di controllo di flusso e congestione di altri protocolli di trasporto.

  2. RTCP trasporta un identificatore persistente a livello di trasporto per una sorgente RTP chiamato nome canonico o CNAME. Poiché l'identificatore SSRC può cambiare se viene scoperto un conflitto o se un programma viene riavviato, i ricevitori richiedono il CNAME per tenere traccia di ciascun partecipante.

  3. Le prime due funzioni richiedono che tutti i partecipanti inviino pacchetti RTCP, quindi la velocità deve essere controllata affinché RTP possa scalare fino a un gran numero di partecipanti. Facendo inviare a ciascun partecipante i propri pacchetti di controllo a tutti gli altri, ciascuno può osservare in modo indipendente il numero di partecipanti. Questo numero viene utilizzato per calcolare la velocità con cui vengono inviati i pacchetti.

  4. Una quarta funzione OPZIONALE è trasmettere informazioni minime di controllo della sessione, ad esempio l'identificazione del partecipante da visualizzare nell'interfaccia utente. Questo è più probabilmente utile nelle sessioni "debolmente controllate" in cui i partecipanti entrano ed escono senza controllo dell'appartenenza o negoziazione dei parametri.

Le funzioni 1-3 DOVREBBERO essere utilizzate in tutti gli ambienti, ma in particolare nell'ambiente multicast IP. I progettisti di applicazioni RTP DOVREBBERO evitare meccanismi che possono funzionare solo in modalità unicast e non scalano a numeri maggiori.

6.1 Formato del pacchetto RTCP (RTCP Packet Format)

Questa specifica definisce diversi tipi di pacchetti RTCP per trasportare una varietà di informazioni di controllo:

  • SR (Rapporto mittente, Sender Report): per statistiche di trasmissione e ricezione da partecipanti che sono mittenti attivi
  • RR (Rapporto ricevente, Receiver Report): per statistiche di ricezione da partecipanti che non sono mittenti attivi
  • SDES (Descrizione sorgente, Source Description): per elementi incluso CNAME
  • BYE: indica la fine della partecipazione
  • APP: funzioni specifiche dell'applicazione

Ogni pacchetto RTCP inizia con una parte fissa simile a quella dei pacchetti di dati RTP, seguita da elementi strutturati che possono essere di lunghezza variabile a seconda del tipo di pacchetto ma terminano sempre su un limite di 32 bit.

6.2 Intervallo di trasmissione RTCP (RTCP Transmission Interval)

RTP è progettato per consentire a un'applicazione di adattarsi automaticamente alle dimensioni di sessione che vanno da pochi partecipanti a migliaia. La larghezza di banda della sessione RTP è divisa tra le porzioni dati e controllo, con RTCP tipicamente allocato al 5% della larghezza di banda della sessione.

6.3 Regole di invio e ricezione dei pacchetti RTCP (RTCP Packet Send and Receive Rules)

Le regole per l'invio e la ricezione dei pacchetti RTCP sono attentamente progettate per ottenere un funzionamento corretto per sessioni di tutte le dimensioni.

6.4 Rapporti mittente e ricevente (Sender and Receiver Reports)

I ricevitori RTP forniscono feedback sulla qualità di ricezione utilizzando pacchetti di rapporto RTCP che possono assumere una delle due forme a seconda che il ricevitore sia anche un mittente o meno.

6.5 SDES: Pacchetto RTCP di descrizione sorgente (SDES: Source Description RTCP Packet)

Il pacchetto SDES è una struttura a tre livelli composta da un'intestazione e zero o più blocchi, ciascuno dei quali è composto da elementi che descrivono la sorgente identificata in quel blocco.

6.6 BYE: Pacchetto RTCP di arrivederci (BYE: Goodbye RTCP Packet)

Il pacchetto BYE indica che una o più sorgenti non sono più attive.

6.7 APP: Pacchetto RTCP definito dall'applicazione (APP: Application-Defined RTCP Packet)

Il pacchetto APP è destinato all'uso sperimentale man mano che vengono sviluppate nuove applicazioni e nuove funzionalità.