6
Capitolo 1
Dalla rete telefonica tradizionale al VoIP
Le tradizionali reti PSTN (Public Switched Telephone Network)
appaiono oggi molto carenti in uno scenario in cui la voce è solo una
delle applicazioni richieste ed il traffico dati è destinato a superare
nettamente quello voce.
Questo tipo di rete è stato pensato e progettato per il solo trasporto
della voce, ed adotta la tecnologia a commutazione di circuito: ogni
volta che una comunicazione è iniziata, gli switch interni della rete
commutano per creare un circuito “fisico” diretto fra la parte
chiamante e quella chiamata.
Figura 1 : schema esemplificativo di rete a commutazione di circuito
Quindi per tutta la durata della comunicazione , gli interlocutori
dispongono di un canale dedicato non accessibile ad altri utenti
7
indipendentemente dal fatto che le parti siano in conversazione attiva o
in silenzio. Si ha così, un’allocazione statica delle risorse per tutta la
durata della comunicazione, questo corrisponde ad un notevole spreco
di banda ed ad un considerevole aumento del costo del servizio
telefonico: il gestore del servizio stesso, infatti, non potendo sfruttare
in alcun modo le risorse di rete perse durante le pause di silenzio di
una conversazione, le fatturerà al cliente che le ha sprecate.
Le principali limitazioni delle attuali reti PSTN sono:
ξ l’architettura realizzata per la voce non è sufficientemente flessibile
per la trasmissione dati;
ξ l’impossibilità di far convergere dati, video e voce che rappresenta,
tuttora, la forma di accesso alla rete più diffusa;
ξ non sono in grado di fornire con la dovuta rapidità e facilità le
nuove funzionalità richieste nel settore della telecomunicazione: il
network a commutazione di circuito si basa su un’infrastruttura
centralizzata e proprietaria e di conseguenza rende più difficile
implementare nuove applicazioni e servizi da parte di imprese
innovative.
La risposta a queste limitazioni è il Voice over IP (Voce tramite
protocollo Internet), acronimo VoIP: è la tecnologia che rende
possibile effettuare una conversazione telefonica sfruttando una
connessione ad Internet, o un’altra rete che utilizza il protocollo IP
(Internet Protocol), anziché utilizzare esclusivamente la normale linea
di trasmissione telefonica, permettendo di eliminare le centrali di
commutazione ed economizzare sulla larghezza di banda occupata.
Vengono instradati sulla rete pacchetti di dati contenenti le
informazioni vocali, codificati in forma digitale, e ciò solo nel
momento in cui è necessario, cioè quando uno degli utenti collegati sta
parlando. Le conversazioni VoIP possono usare come mezzo
8
trasmissivo una qualsiasi rete basata sul protocollo IP come una rete
privata locale (LAN) all’interno di un edificio (o di un gruppo di
edifici) o una rete più ampia (WAN), fino alla grande rete pubblica,
Internet.
La telefonia via Internet permette una maggiore efficienza nell’uso
della rete, grazie all’utilizzo della commutazione di pacchetto che, a
differenza della commutazione di circuito, non assegna staticamente le
risorse disponibili durante l’intera durata di una comunicazione ma ne
consente la condivisione con altri sistemi di comunicazione dati, quali
testo e video.
Figura 2 : schema esemplificativo di rete a commutazione
I sistemi IP offrono, inoltre, mezzi più economici per la fornitura di
connessioni telefoniche, permettendo innanzitutto di aggirare il sistema
delle tariffe d’accesso internazionali. Lo standard IP non è proprietario
ed è frutto degli accordi tra sviluppatori hardware e software che ne
hanno sancito la libertà di utilizzo da parte di chiunque. Questa
architettura aperta permette ad imprese innovative di sviluppare nuovo
hardware e software in grado di integrarsi perfettamente con la rete.
La tecnologia VoIP permette applicazioni impossibili ai tradizionali
network telefonici: ad esempio si può portare il proprio telefono VoIP
9
ovunque sia disponibile una connessione Internet e ricevere ed
effettuare chiamate come se si fosse a casa propria, rimanendo
raggiungibili allo stesso numero, inoltre, in parallelo con la
conversazione telefonica si possono scambiare flussi video in tempo
reale (videoconferenza), possono essere inviati e ricevuti messaggi o
files e si può partecipare a conferenze audio tra più persone in modo
intuitivo ed a costi molto bassi.
1.1 La qualità del Servizio (QoS, Quality of Service)
Il problema fondamentale che sta alla base della comunicazione vocale
su una rete come Internet, è che la gestione dei pacchetti da parte del
protocollo IP destinatario, comporta una ricomposizione di questi
nell’ordine originale. Se alcuni subiscono errori di trasmissione o
ritardi vari si capisce come il processo di ricomposizione possa
risultare rallentato. Per applicazioni classiche, come ad esempio la
posta elettronica, tale ritardo non acquista particolare significato, ma
per applicazioni di telefonia, dove l’interazione real-time tra le parti è
fondamentale, questo può provocare un degradamento notevole nella
qualità di conversazione. La qualità nella comunicazione VoIP dipende
in parte dalla velocità della connessione ad Internet che ciascun lato
possiede e in parte dal traffico complessivo della rete. Ci sono due
fondamentali caratteristiche che determinano la qualità di una
connessione telefonica su Internet: la prima caratteristica è il tempo di
latenza (Latency). Tale grandezza misura il ritardo che intercorre dal
momento che certe parole sono pronunciate da un lato, al momento che
queste sono effettivamente sentite dall’altro lato. Spesso gli utenti di
VoIP rapportano tale latenza ai ritardi che le normali telefonate
10
subiscono quando parte del circuito è fatto da collegamenti satellitari.
La latenza è qualcosa a cui gli utenti possono in genere abituarsi e
compensare di conseguenza. L’altra importante caratteristica che
determina la qualità di una connessione telefonica su Internet, è il
grado di rispondenza della voce trasmessa rispetto alla voce naturale di
chi parla. Se certi pacchetti vocali risultano ritardati oltre una certa
soglia, il software di telefonia IP cercherà in genere di interpolare i dati
mancanti tramite i contenuti dei pacchetti adiacenti. Naturalmente, più
il software ricorre a questa tecnica interpolativa, più la qualità del
segnale risulterà compromessa (distorsione del messaggio vocale).
TCP/IP, in sostanza, non garantisce agli utenti la trasmissione di un
certo numero di dati in un preciso periodo di tempo. Le prestazioni
della rete possono fluttuare di momento in momento. A volte i dati
sono trasmessi immediatamente, a volte subiscono ritardi o non sono
inviati affatto. Per molti aspetti, i problemi che i progettisti hanno sono
simili a quelli incontrati nella progettazione di reti cellulari digitali,
dove non ci sono garanzie che i dati arrivino intatti. Quindi i progettisti
devono ipotizzare che i livelli sottostanti siano inaffidabili, e
compensare gli eventuali errori con le sopra citate tecniche di
interpolazione e correzione. Dunque è in genere arduo predire la QoS
che ci si può aspettare da una sessione di telefonia in rete, ma, di
solito, questa è direttamente correlata all’ampiezza di banda che viene
sfruttata per la conversazione più che al traffico di rete. Alcune
organizzazioni dispongono già da ora di connessioni ad Internet con
grande band-width. Tali connessioni sono capaci di garantire la qualità
sufficiente per fare del VoIP il mezzo standard nelle comunicazioni
inter-ufficio a lunga distanza.
11
1.2 Il protocollo SCTP
Il protocollo SCTP (Stream Control Transmission Protocol),
standardizzato dall’IETF, è un nuovo protocollo di livello trasporto,
affidabile e orientato alle connessioni, primariamente progettato per le
più recenti applicazioni Internet.
SCTP svolge le funzioni di livello trasporto, come TCP e UDP,
appoggiandosi su un servizio di rete a pacchetto come IP, esso però,
combina le migliori caratteristiche dei protocolli TCP e UDP: è un
protocollo affidabile, preserva i confini dei messaggi e nel medesimo
tempo rivela i dati smarriti, duplicati o fuori sequenza; infine supporta
il controllo del flusso e della congestione.
I servizi che il protocollo SCTP offre ai processi del livello applicativo
sono:
ξ comunicazione processo – a processo: utilizza tutte le porte nello
spazio di indirizzamento TCP;
ξ servizi multistream: supporta il servizio con più flussi (multistream)
per ciascuna connessione (o associazione);
ξ servizi multihomed: l’host mittente o destinatario può definire più
indirizzi IP nell’associazione. Con questo approccio robusto, anche
se si interrompe un percorso è sempre possibile continuare la
trasmissione utilizzando un’altra interfaccia. Questa caratteristica di
resistenza ai guasti è molto utile nella trasmissione dati in tempo
reale come la telefonia IP. Allo stato attuale le implementazioni di
SCTP però, consentono di utilizzare solo una coppia di indirizzi IP
per la normale comunicazione. La coppia alternativa viene
utilizzata solo nel caso vi siano malfunzionamenti per questo,
attualmente, non è possibile la condivisione del carico fra percorsi
differenti.
12
ξ comunicazione full-duplex: i dati possono fluire
contemporaneamente in entrambe le direzioni.
L’unità dati nel protocollo SCTP è il blocco dati, il cui trasferimento è
controllato numerando i blocchi tramite il numero di sequenza di
trasmissione o TSN.
In SCTP si hanno blocchi di dati, flussi e pacchetti. In un’associazione
si possono trasmettere più pacchetti ciascuno dei quali può contenere
più blocchi che possono appartenere a flussi differenti; per
differenziarli viene utilizzato l’SI (Stream Identifier): ogni blocco di
dati deve avere nel proprio header il relativo SI, in modo che possa
essere correttamente inserito nel flusso di appartenenza. Per
distinguere i vari blocchi di dati appartenenti allo stesso flusso viene
utilizzato il SSN, (Stream Sequenze Number).
La struttura di un pacchetto SCTP è di seguito illustrata:
Figura 3 : pacchetto SCTP
SCTP, analogamente al TCP, è un protocollo orientato alle
connessioni. La connessione SCTP viene chiamata associazione per
enfatizzare le caratteristiche multihoming.
13
Figura 4 : comunicazione client - server
L’apertura di un’associazione in SCTP è basata su un handshacking a
quattro vie, cioè con lo scambio di quattro pacchetti:
1 Il client invia il primo pacchetto che contiene un blocco INIT. Il tag
di verifica (VT) dl pacchetto vale 0, perché ancora non è stato
definito per questa direzione (dal client alerver). Il blocco INIT
contiene il tag di apertura (init tag) che sarà utilizzato per i
pacchetti nella direzione opposta. Il blocco definisce anche il TSN
iniziale in questa direzione e notifica un valore per rwnd: per sapere
quanti dati inviare;
2 Il server invia il secondo pacchetto che contiene un blocco INIT
ACK. Il tag di verifica contiene il valore del campo tag di apertura
del blocco INIT. Questo blocco inizializza il tag da utilizzare nella
direzione opposta, definisce il TSN iniziale per il flusso di dati dal
server al client e dichiara il parametro rwnd per il server: è definito
per consentire al client di inviare un blocco dati con il terzo
pacchetto. Il blocco INIT ACK invia anche un cookie che definisce
lo stato del server nell’istante dell’invio.
3 Il client invia il terzo pacchetto che contiene un blocco COOKIE
ECHO. Si tratta di un blocco molto semplice che ritrasmette
invariato il cookie inviato dal server.