Realizzato da: Giacomo Dionigi Università degli Studi di Bologna Facoltà Ingegneria Informatica TRASMISSIONI STREAMING BASATE SU RTP / RTCP ORIENTATE AL MONITORAGGIO DELLA QUALITA’ Reti di Calcolatori L-S Prof A.Corradi Realizzato da: Giacomo Dionigi 03/12/2018
Scopo del progetto Progettazione e realizzazione di un’infrastruttura di comunicazione finalizzata a interazione e coordinamento tra entità monitoraggio della qualità del servizio tolleranza ai guasti Per un’applicazione distribuita che realizza una trasmissione streaming di dati multimediali Approfondimento del protocollo RTP / RTCP 03/12/2018
Trasmissione streaming invio di un flusso continuo di dati (solitamente multimediali audio-video) Requisiti Real-Time: limitare il ritardo e la varianza sui tempi di risposta per non subire pause nella ricezione dello stream se si perde un pacchetto, meglio saltarlo e andare avanti Informazione del singolo pacchetto (qualche frame) poco rilevante 03/12/2018
Real-Time Protocol (RTP) Real-Time Control Protocol(RTCP) Decisione di impiegare il livello di trasporto UDP Meno overhead Meno garanzie No certezza di consegna No ordinamento Gestione dell’ordinamento a livello applicativo Incapsulamento del pacchetto RTP -alto livello- in un pacchetto UDP RTP Header RTP Payload UDP Header IP Header 03/12/2018
Il protocollo RTP / RTCP I pacchetti RTP trasmettono i dati applicativi C’è un numero di sequenza Ci sono informazioni di descrizione dei dati: metadati Formato dati, identificativo mittente, indicazione temporale… Affianco lavora RTCP, protocollo di controllo Monitoraggio della trasmissione RTP: Numero pacchetti ricevuti, pacchetti persi, jitter Partecipanti alla sessione 03/12/2018
Architettura Sender Monitor Receiver Entità attiva Sorgente stream multimediale Muticast Multi-unicast Monitor Controllore dello stato del sender Identificazione di un fault del sender Ripristino del servizio Receiver Entità passiva Riceve stream multimediale Riproduzione attraverso un player Prende l’iniziativa per avviare una sessione Modello asimmetrico Il receiver sa dove raggiungere il sender 03/12/2018
Requisiti Vincoli real-time Monitoraggio della qualità Minimizzare overhead Monitoraggio della qualità Fault Tollerance Affidabilità e continuità di servizio Trasparenza della replicazione Limitata occupazione di risorse Principio minima intrusione 03/12/2018
Interazione Sender - Receiver Invio della richiesta Aggiunta del receiver nella lista dei destinatari Avvio del flusso dati RTP Inizio del flusso di controllo RTCP Bidirezionale SenderReport ReceiverReport 1) Request 2) RTP/RTCP 03/12/2018
Interazione Sender - Monitor Invio della richiesta Il monitor è aggiunto nella lista dei destinatari assieme ai receivers OMOGENEITA’ Avvio del flusso dati RTP Per accorgersi di un’interruzione imprevista Inizio del flusso di controllo RTCP Per monitorare la qualità Aggiornamento dello stato da parte del sender 1) Request 2) RTP/RTCP 3) Checkpoint 03/12/2018
Infrastruttura Invio della richiesta con un datagramma UDP JMF API RTP RTCP RTP Manager Registration Thread RMI SENDER MONITOR JMF API RTP RTCP SendListenMonitor Thread RECEIVER Player SendListen RTPMgr Invio della richiesta con un datagramma UDP Ritrasmissione della richiesta In caso di nessuna ricezione per un tempo di time-out Attesa dello stream 03/12/2018
Infrastruttura Sender sempre in attesa su una datagram socket JMF API RTP RTCP RTP Manager Registration Thread RMI SENDER MONITOR JMF API RTP RTCP SendListenMonitor Thread RECEIVER Player SendListen RTPMgr Sender sempre in attesa su una datagram socket Una richiesta comporta l’inserimento del mittente nella lista dei destinatari 03/12/2018
Infrastruttura Richiesta da parte del monitor JMF API RTP RTCP RTP Manager Registration Thread RMI SENDER MONITOR JMF API RTP RTCP SendListenMonitor Thread RECEIVER Player SendListen RTPMgr Richiesta da parte del monitor Omogeneità con il comportamento del receiver Indicazione del ruolo di monitor 03/12/2018
Infrastruttura Flusso dati e controllo JMF API RTP RTCP RTP Manager Registration Thread RMI SENDER MONITOR JMF API RTP RTCP SendListenMonitor Thread RECEIVER Player SendListen RTPMgr Flusso dati e controllo Streaming su due porte consecutive (UDP) Gestione attraverso RTPManager Java Media Framework 03/12/2018
Infrastruttura Il sender apre una connessione col monitor JMF API RTP RTCP RTP Manager Registration Thread RMI SENDER MONITOR JMF API RTP RTCP SendListenMonitor Thread RECEIVER Player SendListen RTPMgr Il sender apre una connessione col monitor Aggiornamenti dello stato Utilizzo di Java RMI 03/12/2018
Replicazione Il monitor garantisce la continuità di servizio Controllo e monitoraggio dello stato del sender Collettore di stato: il sender effettua degli aggiornamenti Source; Lista dei receivers; Media-Time. Fault del sender segnalato dall’interruzione dello stream Attivazione di un sender sostitutivo Fase di inizializzazione Replicazione a copie fredde Il sender ha un monitor Propagazione a cascata 03/12/2018
Conclusioni e sviluppi futuri Il lavoro è stato utile per affrontare le problematiche tipiche delle applicazioni distribuite Realizzazione funzionale dell’architettura Progettazione della coordinazione Collaudo eseguito su una macchina locale per verificare la corretta interazione tra i componenti Anche in caso di interruzione del sender Sviluppi futuri: Comportamento adattivo del sender in base ai report Differenziazione della qualità dei flussi in relazione alle disponibilità di banda dei receivers Aumentare il grado di replicazione per ottenere maggiori garanzie 03/12/2018