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