VoIP Definizioni
Transcript
VoIP Definizioni
VoIP Definizioni. Limiti del servizio best-effort. Rimozione del jitter audio. Recupero dei pacchetti perduti. I protocolli RTP, RTCP, SIP H.323, SIP, H 323 ENUM Parte delle slide sono riadattate da : Reti di calcolatori e Internet: Un approccio top-down, 4a ed. J. Kurose, K. Ross, Pearson, 2008 Prof. Filippo Lanubile Definizioni • Voice over IP (VoiP): trasporto delle comunicazioni vocali in reti che usano il protocollo IP – piuttosto che la Public Switched Telephone Network (PSTN) • Telefonia Internet (anche detta IP Telephony): applicazione del VoIP per l’erogazione di servizi telefonici su Internet • Vantaggi: – riduzione dei costi – nuovi servizi • VoiceMail (segreteria telefonica integrata e-mail) • Click2dial (chiamate partono via Web) Prof. Filippo Lanubile 1 Caratteristiche fondamentali • Sensibile al ritardo: – Ritardo Rit d end-to-end dt d • audio: < 150 msec buono, < 400 msec accettabile • Comprende i ritardi a livello di applicazione (impacchettamento) e il ritardo di rete • Ritardi superiori risultano frustranti, o impediscono addirittura la conversazione – Ritardo jitter • termine con il quale si indica la variabilità dei ritardi subita dai pacchetti dello stesso flusso • Ma M tollerante t ll t alla ll perdita dit – perdite occasionali causano solo marginali interferenze • Inizializzazione della sessione – Come fa il chiamante ad allertare indirizzo IP, numero di porta, algoritmi di codifica? Prof. Filippo Lanubile Telefonia Internet Esempio: • In una normale conversazione si alternano periodi di “parlato” e di “silenzio”: – 64 kbps durante il periodo di “parlato” • L’applicazione genera pacchetti solo nella fase di “parlato” – Genera un flusso compresso di 8.000 bps – Ogni 20 ms li riunisce in blocchi da 160 byte • Ciascun blocco ha un’intestazione un intestazione a livello di applicazione • Il blocco e l’intestazione sono incapsulati in un segmento UDP • Quindi, durante la fase di emissione, ogni 20 ms viene inviato un segmento UDP Prof. Filippo Lanubile 2 Perdita dei pacchetti e ritardo • Perdita a causa della rete: – è possibile quando un buffer è pieno e non può ricevere il datagramma IP che, in questo caso, viene scartato e non arriverà mai a destinazione • Perdita per ritardo: – quando i datagrammi IP arrivano con molto ritardo: • Diversi “tipi” di ritardo: di trasmissione, di elaborazione, di accodamento nei router, di propagazione e di elaborazione nei terminali lungo un collegamento • Ritardo massimo tollerato: 400 ms – Ritardo tollerato: • a seconda di come la voce è codificata e trasmessa, e di come la perdita è mascherata in ricezione, tassi di ritardo compresi fra 1% e 10% possono essere tollerati Prof. Filippo Lanubile Jitter di pacchetto buffered data trasmissione video con tasso costante Ricezione riproduzione del video a tasso costante Ritardo di rete variabile (jitter) Ritardo di riproduzione tempo • Con jitter si indica la variabilità dei ritardi subita dai pacchetti dello stesso flusso – differenza maggiore o inferiore a 20 ms tra due pacchetti Prof. Filippo Lanubile 3 Ritardo di riproduzione fisso • Il ricevente tenta di riprodurre ciascun blocco esattamente q millisecondi dopo che è stato generato. – Se un blocco è contrassegnato da un tempo di generazione t, il ricevente lo riproduce dopo un intervallo t + q. – Se il blocco non è arrivato in tempo utile, lo scarta e lo considera perso. • Qual è la migliore scelta per q? – q elevato: diminuisce la perdita dei pacchetti – q basso: la qualità è migliore (ma se q è addirittura inferiore a 400 ms molti pacchetti mancherebbero il tempo programmato per la riproduzione a causa del jitter) Prof. Filippo Lanubile Ritardo di riproduzione fisso • • • • Il trasmittente genera pacchetti a intervalli regolari, supponiamo ogni 20 ms Il primo pacchetto è ricevuto al tempo r Il primo istante di riproduzione inizia al tempo p packets Il secondo istante di riproduzione inizia al tempo p’ loss packets generated packets received playout p y schedule p' - r playout schedule p-r time Prof. Filippo r Lanubile p p' 4 Ritardo di riproduzione adattativo • Obiettivo: ritardo di riproduzione minimo con il vincolo che la perdita sia al di sotto dei pochi punti percentuali. • Approccio: regolare il ritardo di riproduzione: – Stimare il ritardo della rete e regolare il ritardo di riproduzione con l’inizio di ciascun periodo di attività vocale – Le stime sono calcolate per ogni pacchetto ricevuto, sebbene possano essere utilizzate solo per determinare il punto di riproduzione del primo pacchetto di un periodo di attività Prof. Filippo Lanubile Recupero dei pacchetti perduti Correzione C i d dell’errore ll’ iin avantiti (FEC): primo meccanismo • Invia, dopo ogni n blocchi, un blocco ridondante ottenuto da un’operazione di OR esclusivo degli n blocchi originali • Se qualche pacchetto del gruppo n + 1 va perso, il ricevente lo può ricostruire i integralmente l • Se in un gruppo si perdono due o più pacchetti, il ricevente non può ricostruirli • Il ricevente i t deve d attendere tt d di aver ricevuto l’intero gruppo di pacchetti prima di poter iniziarne la riproduzione • Conseguenze: – all’aumentare di n, minore spreco di banda – all all’aumentare aumentare di n n, maggiore ritardo di riproduzione – all’aumentare di n, aumentano le probabilità che 2 o più blocchi vengano persi Prof. Filippo Lanubile 5 Recupero dei pacchetti perduti FEC: secondo meccanismo • informazioni informa ioni ridondanti di bassa qualità • consiste nell’inviare uno stream audio a bassa risoluzione come informazione ridondante • per esempio, stream nominale con codifica PCM a 64 kbps e una codifica GSM a 13 Kbps • Ogni volta che si perdono pacchetti non consecutivi, il ricevente può mascherare la perdita riproducendo il blocco codificato a bassa velocità Prof. Filippo Lanubile Recupero dei pacchetti perduti Interallacciamento • Può migliorare la qualità con cui si percepisce uno stream audio • Presenta una bassa ridondanza • Non richiede l’aumento di larghezza di banda dello stream • Incrementa la latenza, limitando così il suo utilizzo in applicazioni interattive come la telefonia • Buone prestazioni nello streaming audio memorizzato Prof. Filippo Lanubile 6 Ricapitolando • Uso di UDP per evitare il controllo di congestione di TCP (ritardo) per il traffico timesensitive • Ritardo di riproduzione adattativo al lato client: per rimediare ai vari ritardi • Fornitura di larghezza di banda • Recupero degli errori (su UDP) – FEC, interallacciamento, mascheramento dell’errore – Ritrasmissione (se consentita) Prof. Filippo Lanubile Protocolli per il VoIP Trasporto audio/video • RTP Segnalazione chiamata • H.323 H 323 – Real Time Protocol – IETF RFC 3550, 2003 – ITU-T Study Group 16, version 5, prima versione nel 1995, aggiornato nel 2003 • RTCP – Real Time Control Protocol – IETF RFC 3550, 2003 Number mapping • ENUM • SIP – Session Initiation Protocol – IETF RFC 3261, 2002 – E.164 Number Mapping – IETF RFC 3761, 2004 Prof. Filippo Lanubile 7 RTP (Real Time Protocol) Specifica la struttura di un pacchetto standardizzata per i campi dati audio/video Prof. Filippo Lanubile Librerie RTP • forniscono un’interfaccia a livello di trasporto che estende UDP: – numeri di porta, indirizzi IP – identificazione del tipo di carico – numero di sequenza – marcatura temporale Prof. Filippo Lanubile 8 RTP e QoS • QoS (Quality of Service) – livello di prestazioni adeguato per un corretto funzionamento dell’applicazione • RTP non offre alcun meccanismo che assicuri la consegna in tempo dei dati o fornisca altre garanzie in termini di QoS g • L’incapsulamento RTP è visibile solo al sistema terminale – non dai router intermedi Prof. Filippo Lanubile RTCP (RTP control protocol) • F Funziona i insieme i i a RTP • Ogni partecipante a una sessione RTP trasmette periodicamente pacchetti di controllo RTCP a tutti gli altri partecipanti • Ogni pacchetto RTCP contiene i rapporti dei trasmittenti e/o riceventi – Che comunicano statistiche utili all’applicazione • numero dei pacchetti spediti, spediti di quelli persi e il jitter – Queste informazioni possono essere utilizzate per controllare le performance • Per limitare il traffico, ogni partecipante riduce il suo traffico RTCP quando il numero dei partecipanti aumenta Prof. Filippo Lanubile 9 Pacchetti RTCP • Il ricevente genera un rapporto di ricezione: – La frazione di p pacchetti p persi, l’ultimo numero di sequenza q ricevuto e il jitter negli arrivi • Il trasmittente invia pacchetti di rapporto: – L’identificatore SSRC del flusso RTP, la marcatura temporale, il numero dei pacchetti inviati e il numero dei byte inviati nel flusso • Il trasmittente crea anche pacchetti di descrizione della sorgente: – Indirizzo e-mail, nome del trasmittente e informazioni sull’applicazione che ha generato il flusso e il suo identificatore SSRC – Questi pacchetti forniscono una correlazione fra SSRC e il nome dell’utente/host • I pacchetti RTP e RTCP sono distinguibili dai loro numeri di porta – quello di RTCP è dato dal numero di porta RTP più uno Prof. Filippo Lanubile Sincronizzazione dei flussi • RTCP può ò essere utilizzato tili t per sincronizzare i i i flussi delle sessioni RTP • Consideriamo il caso in cui ciascun trasmittente genera due flussi RTP indipendenti – Le marcature temporali in questi pacchetti sono legate agli orologi di campionamento audio e video • e non all’ora effettiva, cioè al tempo reale – I rapporti ti RTCP d dell ttrasmittente itt t contengono: t • La marcatura temporale del più recente pacchetto RTP. • L’ora effettiva di creazione – I riceventi possono utilizzare questa corrispondenza per sincronizzare la riproduzione di audio e video Prof. Filippo Lanubile 10 SIP (Session Initiation Protocol) • Utili Utilizzato t per iiniziare, i i modificare difi o tterminare i sessioni fra uno o più partecipanti – permette ai partner di scoprire i rispettivi indirizzi e numeri di porta – permette ai partner di concordare le modalità con cui scambiarsi i dati – sessioni multimediali, ma anche chat • Per P glili iindirizzi di i i sii usano glili URI (IETF) (IETF): – sip:[email protected] • sip => trasporto UDP o TCP – sips:[email protected]:5062 • sips: => trasporto TLS Prof. Filippo Lanubile Servizi offerti da SIP • Impostazione della chiamata – Consentire al chiamante di connettersi al ricevente – Consentire ai partecipanti di accordarsi sulle codifiche dei media – Permettere di terminare le chiamate • Determinazione dell’attuale indirizzo IP del ricevente – mappa l’identificatore mnemonico all’attuale indirizzo IP • Gestione della chiamata, fornisce procedure che permettono di: p – – – – aggiungere nuovi flussi di media cambiare la codifica durante la chiamata invitare nuovi partecipanti trasferire o mettere in attesa Prof. Filippo Lanubile 11 Chiamata verso un indirizzo IP noto • • • • Ali invia Alice i i un messaggio i INVITE a Bob che comprende le indicazioni del suo numero di porta, del suo indirizzo IP. Vuole ricevere l’audio codificato nel formato AVP 0 (PCM codificato con legge ). Bob invia un messaggio di risposta che comprende, oltre alla stringa 200 OK, anche le indicazioni del suo indirizzo IP e le preferenze di codifica (GSM). i messaggi SIP possono essere inviati sia con TCP sia con UDP. Qui sono inviati con RTP/UDP Di default, il numero di porta di SIP è 5060 Prof. Filippo Lanubile Impostare una chiamata • Negoziazione del codec: – Supponiamo che Bob non abbia un codec PCM con legge m. – Avrebbe risposto con 606 Not Acceptable, elencando nel messaggio tutti i codec che può utilizzare – Alice sceglie uno dei codec e invia un altro messaggio INVITE • Rifiutare la chiamata – Bob p può semplicemente p non accettare la chiamata inviando un codice di risposta di rifiuto come “occupato”, “fuori servizio”, “servizio a pagamento” o “vietato” • I media possono essere inviati su RTP o su altro protocollo Prof. Filippo Lanubile 12 Esempio di un messaggio SIP INVITE sip:[email protected] SIP/2.0 • Qui non si conosce l’indirizzo IP di Bob: Via: SIP/2 SIP/2.0/UDP 0/UDP 167 167.180.112.24 180 112 24 sarà necessaria l’intermediazione dei From: sip:[email protected] servizi di SIP To: sip:[email protected] • Alice invia e riceve Call-ID: [email protected] messaggi SIP usando il numero di porta di Content-Type: application/sdp default 5060 Content-Length: 885 • Alice specifica l’intestazione e riceve il c=IN IN IP4 167 167.180.112.24 180 112 24 i SIP su UDP messaggio m=audio 38060 RTP/AVP 0 • Assomiglia ai messaggi HTTP • sdp = session description protocol • Call-ID è unico per ogni chiamata. Prof. Filippo Lanubile Traduzione dei nomi e localizzazione degli utenti • Il chiamante ha solo il nome o l’indirizzo e-mail del destinatario • Ha H bi bisogno di conoscere l’i l’indirizzo di i IP d dell’attuale ll’ l host h d l del destinatario: – L’utente si sposta – Protocollo DHCP – L’utente ha differenti dispositivi IP (PC, PDA,…) • I risultati si basano su: – momento della giornata (al lavoro, a casa) – chiamante (non ( si desidera che il capo p ci rintracci a casa)) – status del ricevente (le chiamate vengono dirottate su una segreteria telefonica se il destinatario sta già parlando con qualcuno) • Servizi forniti dai server SIP – Server di registrazione SIP – Server proxy SIP Prof. Filippo Lanubile 13 Server di registrazione SIP • U Un utente t t (Bob) (B b) è associato i t a un server di registrazione i t i SIP al quale l’applicazione, quando viene lanciata, invia un messaggio di registrazione. • Il server di registrazione di Bob memorizza il suo attuale indirizzo IP REGISTER sip:domain.com SIP/2.0 Via: SIP/2.0/UDP 193.64.210.89 From: sip:[email protected] To: sip:[email protected] Expires: 3600 Prof. Filippo Lanubile Proxy SIP • Alice invia un messaggio di invito al suo server proxy – Contiene l’indirizzo sip:[email protected] • Il proxy è responsabile dell’instradamento dei messaggi SIP – il messaggio può dover passare attraverso più proxy • Il chiamato risponde attraverso la stessa serie di proxy • Il proxy recapita ad Alice il messaggio di risposta – contiene l’indirizzo IP di Bob • Meccanismo analogo a quello di un server DNS locale Prof. Filippo Lanubile 14 Esempio • • • • • • • • Procedura seguita da [email protected] per avviare una sessione vocale IP con [email protected] (1) Ji Jim iinvia i un messaggio i INVITE all proxy SIP di umass (2) Questo fa una ricerca e quindi rilascia il Messaggio al server di registrazione (3) dato che Keith non è più presente nel server di upenn, quest’ultimo invia una risposta di ri-direzione verso [email protected] (4) Il proxy umass trasmette un INVITE al server di registrazione SIP di eurecom (5) che conosce l’indirizzo e rilancia l’INVITE al terminale 197.87.54.21, su cui gira il client SIP di Keith (6-8) viene inviata una risposta SIP verso il client SIP (9) I media vengono scambiati direttamente tra i due client. Prof. Filippo Lanubile SIP vs. H.323 • SIP è di origine i i IETF • H.323 H 323 è di origine i i ITU – Internet Engineering Task Force – International Telecommunication Union • SIP adotta il principio KISS: keep it simple stupid – adotta molti concetti del Web, di DNS e dell’email • SIP è un componente monolitico – Lavora con RTP, ma non lo richiede – Può essere combinato con altri protocolli e servizi • H.323 è una famiglia completa di protocolli integrati verticalmente per le conferenze multimediali: – segnalazione, registrazione, controllo di ammissione, trasporto e codec Prof. Filippo Lanubile 15 ENUM (E.164 Number Mapping) • P Problema: bl come evitare it che h utenti t ti di ttelefonia l f i IP siano i costretti ad attraversare la PSTN per poter parlare quando l’unica informazione nota è il numero di telefono • Il sistema telefonico tradizionale usa la numerazione E.164 (gestita da ITU) – Es. +390805443261 • Gli URI (gestiti da IETF) hanno formati del tipo – mailto:[email protected] – sip:[email protected] • Il protocollo ENUM stabilisce come usare il DNS per costruire degli URI a partire da numeri telefonici E.164 – RFC 3761 Prof. Filippo Lanubile Risoluzione ENUM • Gli ENUM resolver sono p presenti nei server VoIP più evoluti e in alcuni apparati VoIP terminali • Esempio – Partire dal numero +390805443261 – Chiedere al DNS i record NAPTR relativi a 1.6.2.3.4.4.5.0.8.0.9.3.e164.arpa IN NAPTR 100 10 “u” “E2U+sip” “!^.*!sip:[email protected]!”. IN NAPTR 100 10 “u” “E2U+mailto” “!^.*!mailto:[email protected]!”. @ IN NAPTR 100 10 “u” “E2U+http” “!^.*!http:// www.di.uniba.it/~lanubile/!”. IN NAPTR 103 10 “u” “E2U+tel” “!^.*!tel:+390805443196!”. – Restituire, se esiste, l’URI per il servizio desiderato (sip, mail, web, tel, …) Prof. Filippo Lanubile 16 Scenario VoIP to VoIP Prof. Filippo Lanubile L’albero nrenum.net • L'ente di registrazione europeo RIPE gestisce l’ENUM Golden Tree e164.arpa – Non ancora pienamente funzionale • Definizione di alberi privati grazie a nrenum.net – L’intendimento è che nrenum.net sia consultato solo se fallisce f la consultazione di e164.arpa – Il GARR controlla l'amministrazione del prefisso +39 • sottoalbero 9.3.nrenum.net Prof. Filippo Lanubile 17