modifiche rispetto a una rete dati e vocale tradizionale. Questo avviene anche perché con un'unica
infrastruttura si possono usare infrastrutture quali DHCP (Dynamic Host Configuration Protocol)
che consente a un dispositivo (un PC o un telefono IP) di ricevere dinamicamente un indirizzo IP
(ossia non c'è necessità di configurare staticamente l'indirizzo IP nel dispositivo).
Dunque, ad esempio, se si ha un apparecchio telefonico IP che usi DHCP, si può spostare il telefono
nel punto desiderato e mantenere comunque lo stesso numero. E' come spostare un computer
portatile da un ufficio a un altro connettendosi sempre allo stesso server di rete.
Molte grosse aziende hanno calcolato costi di svariate centinaia di dollari solo per spostare un
telefono (prezzo della manodopera più il costo di configurazione del centralino). Tali costi sono
assenti in un'infrastruttura IP poiché si deve semplicemente impostare il profilo dell'apparecchio
telefonico IP che successivamente potrà essere posizionato in qualsiasi punto della rete.
Un ulteriore vantaggio di Voice Over IP è la possibilità di avere un unico dipartimento dei servizi
informatici che supporta sia la rete voce che la rete dati (in quanto le due reti si riducono a un'unica
entità). Questo potrebbe inizialmente provocare tensioni fra le due infrastrutture ma come per ogni
altra rivoluzione tecnologica, occorre evolvere per sopravvivere.
Un vantaggio di Voice Over IP spesso sottovalutato dalle aziende e dai fornitori di servizi è il fatto
che non è più necessario l'utilizzo di alcuni strumenti tradizionali, dato che l'infrastruttura è ora
comune. Tra questi strumenti vi sono le porte fisiche per servizi come i messaggi vocali. In una rete
vocale a commutazione di circuito, il servizio di messaggistica vocale viene venduto sulla base del
numero di caselle e del numero di porte fisiche necessarie per supportare un determinato numero di
utenti simultanei. Con Voice Over IP le porte fisiche a commutazione di circuito non sono più
necessarie. Il server dei messaggi vocali deve avere semplicemente una connessione IP (che può
essere Ethernet, ATM e così via..).
Inoltre VoIP consente di porre i sistemi di gestione dei messaggi vocali su piattaforme standard (ad
esempio PC o macchine Unix). Quando una determinata funzionalità viene inserita in una
piattaforma standard, si può prevedere una notevole riduzione nei prezzi, dovuta al prezzo ormai
irrisorio dello spazio fisico a MB rispetto al prezzo delle memorie dei sistemi dedicati alla
messaggistica per i sistemi PSTN. Inoltre il server dei messaggi vocali potrebbe essere lo stesso dei
messaggi di posta elettronica e si potrebbe decidere di prelevare la posta vocale via telefono o
tramite un client di posta elettronica. Per il personale all'estero la possibilità di prelevare messaggi
vocali e rispondere in modo elettronico o di inoltrare i messaggi vocali a un gruppo sarà di grande
utilità e un ulteriore fonte di risparmio per l'azienda che può in questo modo evitare i costi telefonici
internazionali.
2
Una delle limitazione delle vecchie reti PSTN è che non sono in grado di creare e fornire
funzionalità accessorie con la dovuta rapidità richiesta dagli operatori del settore, che per aumentare
la loro competitività cercano di sviluppare di continuo nuovi servizi e applicazioni per la loro
clientela, tutto ciò invece è semplice e immediato con i nuovi sistemi VoIP.
Infine un altro vantaggio delle reti a pacchetti è che in esse non si fa uso della commutazione di
circuito tipica delle reti classiche: questo tipo di commutazione blocca infatti una risorsa (un
circuito telefonico) che viene sottoutilizzata (nei momenti di silenzio di conversazione), mentre al
contrario le reti dati consentono l'utilizzo dell'ampiezza di banda solo nei momenti in cui essa è
richiesta, differenza tutt'altro che trascurabile in una rete in cui il traffico dati ha richieste sempre
maggiori di ampiezza di banda.
1.3 Livelli e protocolli della telefonia VoIP
Il modello su cui si basa la telefonia a commutazione di pacchetto ha tre distinti livelli a standard
aperti: la voce viene trasmessa tramite un'infrastruttura a pacchetti, il livello di controllo della
chiamata è distinto rispetto al livello del mezzo e le interfacce API (Application Programming
Interface) aperte consentono agli sviluppatori indipendenti di creare nuovi servizi.
1.3.1 Livello standard dell'infrastruttura a pacchetti
L'infrastruttura a pacchetti del nuovo modello di telefonia si basa sul protocollo di trasporto dati IP
(Internet Protocol) [1]. Questo protocollo non necessita di informazioni dalle applicazioni software
che lo utilizzano: la sua funzione non è altro che trasportare dati da un capo all'altro della
connessione senza considerare il carico pagante.
Assieme all'IP viene utilizzato il protocollo di trasporto UDP (User Datagram Protocol) [2]
semplice ma meno affidabile, per il trasporto del traffico vocale, mentre il TCP (Transmission
Control Protocol)[3] più complesso e affidabile, è utilizzato per garantire l'affidabilità del
messaggio di instaurazione di una chiamata.
infine è da citare che per eseguire i calcoli temporali, oltre ad un'intestazione UDP/IP viene
utilizzato il protocollo RTP (Real-time Transport Protocol) [4], che sui protocolli UDP/IP opera ed
è l'elemento fondamentale per la trasmissione di traffico in tempo reale su reti IP, in quanto risolve i
problemi tipici della commutazione di pacchetto.
3
La commutazione di pacchetto
Questa modalità di commutazione non prevede l'assegnamento di una connessione fisica dedicata
alla coppia di utenti durante lo scambio di informazioni: questi, per il trasferimento di messaggi, si
affidano completamente alla rete. Tra gli utenti avviene quindi un collegamento logico.
Poiché i canali non sono dedicati ad una particolare connessione fisica possono essere condivisi da
più connessioni logiche, ottimizzando quindi l'uso delle risorse di rete.
In tale modalità i messaggi degli utenti vengono frazionati in unità elementari (pacchetti) di
dimensioni variabili, ma non superiori di un massimo prefissato, cui vengono aggiunte intestazioni
che consentono al ricevitore di ricostruire il messaggio.
I pacchetti vengono spediti dall'utente ad un nodo della rete, e inoltrati di nodo in nodo, fin quando
non raggiungono il destinatario. Quando i pacchetti giungono in un nodo della rete, essi vengono
collocati in un buffer e spediti al nodo successivo non appena possibile (store and forward). Ogni
pacchetto potrebbe in teoria utilizzare un diverso cammino per raggiungere la sua destinazione.
Diventa chiaro come la metodologia di commutazione di pacchetto sia adatta alle trasmissioni non
sensibili al ritardo, in quanto questa tipologia presenta tutta una serie di problematiche legata alla
perdita, al corretto ordinamento e al ritardo dei singoli pacchetti, al jitter, etc.., dovute alla sua
struttura e che vanno risolte per poter realizzare una trasmissione vocale (che invece è molto
sensibile al ritardo).
Il protocollo IP
Il protocollo IP [1] è un protocollo senza connessione di livello 3 del modello OSI: questo vuol dire
che non vi è nessun meccanismo di garanzia dell'affidabilità, di controllo di flusso, di controllo
delle sequenze o acknowledgement, e che vanno aggiunti da protocolli che si posizionano a livelli
superiori (come il TCP, al livello di sessione OSI).
Tecnicamente, il protocollo IP è definito:
• Unreliable: inaffidabile - è un servizio senza garanzie; i pacchetti possono essere persi,
venire duplicati o consegnati fuori ordine senza per questo avvisare né l'utente sorgente né
quello destinazione. Va comunque sottolineato che la perdita di un pacchetto avviene
solamente in casi abbastanza eccezionali, quali la congestione totale di un componente
o,addirittura, la caduta della rete;
4
• Connectionless: privo di connessione - è un servizio non orientato alla connessione; ogni
pacchetto viene trattato indipendentemente da tutti gli altri. Una sequenza di pacchetti
spediti da un computer ad un altro potrebbero seguire cammini diversi per giungere a
destinazione;
• Best-efford: massimo sforzo - il protocollo IP effettua un serio tentativo nell'inoltro dei
pacchetti.
In sostanza IP definisce l'unità base del datagramma e la forma esatta di tutti i dati che passano
attraverso Internet, gestisce le funzioni di routing (specificando il percorso sul quale verranno
spediti i dati) ed include un insieme di regole che caratterizzano come gli host ed i router
processano i pacchetti, la generazione dei messaggi di errore e le condizioni sotto le quali un
pacchetto è scartato.
Un datagramma IP consiste in un header o intestazione ed una parte dati che sommata all'header
non può superare i 65.535 byte.
IP è considerato inoltre un protocollo intermittente, cioè le applicazioni che risiedono su di esso
sperimentano periodi di silenzio seguiti da periodi di grande traffico in cui è necessario allocare la
maggior parte delle risorse,IP senza altre aggiunte risulta quindi inadatto al trasporto della voce. A
questa carenza suppliscono i protocolli di livello superiore, il TCP e l'UDP.
Il protocollo UDP
Nel complesso del protocollo TCP/IP, l'User Datagram Protocol [2] fornisce un servizio di recapito
dei datagrammi connectionless ed inaffidabile, usando l'IP per trasportare messaggi da una
macchina ad un'altra; esso prevede delle porte di protocollo usate per distinguere tra più programmi
in esecuzione (o processi) su una singola macchina.
L'inaffidabilità dell'UDP è quella propria dell'IP, in quanto lo User Datagram Protocol non prevede
nessun protocollo per il controllo dell'errore, a differenza del TCP: non usa acknowledgement per
assicurare al mittente che i messaggi siano arrivati, non dispone le sequenze di datagrammi in
ordine e non fornisce una retroazione per il controllo della frequenza del flusso di informazioni tra
macchine. Perciò i messaggi UDP possono essere persi, duplicati oppure arrivare fuori dall'ordine;
inoltre i datagrammi possono arrivare più velocemente di quanto il ricevente sia in grado di
processarli. L'UDP è utilizzato laddove la perdita di un pacchetto è meno importante del tenere
sotto controllo la latenza, che nel TCP, tra ritrasmissione di un messaggio perduto e attesa di un
acknowledgment, diventa eccessiva.
5
Il protocollo TCP
Il TCP [3] si assume la responsabilità di instaurare un collegamento tra due utenti, di rendere
affidabile il trasferimento di dati e comandi tra essi ed infine di chiudere la connessione. Esso è
capace di trasferire un flusso continuo di dati fra due utenti in entrambe le direzioni (full-duplex),
decidendo quando bloccare o continuare le operazioni a suo piacimento.
Poiché il TCP fa veramente poche assunzioni riguardo l'hardware sottostante, è possibile
implementarlo sia su una singola rete come una Ethernet sia su un complesso variegato quale
l'Internet. Tale protocollo, come ulteriore funzionalità rispetto all'UDP, tiene una traccia di ciò che è
stato trasmesso ed eventualmente ritrasmette quella parte di informazione che è andata perduta
lungo il tragitto.
Come l'UDP, il TCP permette a più programmi applicativi su una stessa macchina di comunicare
contemporaneamente, e demultiplexa (suddivide il flusso composito nei singoli flussi elementari) il
traffico dei pacchetti in ingresso a tali programmi; usa i numeri di porta per identificare la destina-
zione finale all'interno di una macchina. La fondamentale differenza con l'UDP è che il TCP
garantisce un servizio di trasporto affidabile (reliable delivery service), ponendo rimedio alle cause
di inaffidabilità proprie dell'IP (duplicazione e perdita di dati, caduta di rete, ritardi, pacchetti
ricevuti fuori ordine, etc.), anche se ciò comporta una implementazione più complessa.
L'importanza dell'affidabilità del flusso permessa da tale protocollo è il motivo per cui il complesso
del protocollo TCP/IP ha tale nome.
L'affidabilità di questo servizio è caratterizzata da cinque proprietà:
• Stream orientation: quando due programmi applicativi trasferiscono dati (stream of bits), il
flusso nella macchina di destinazione passa al ricevente esattamente come è stato originato
nella macchina sorgente;
• Virtual Circuit Connection: dal punto di vista del programmatore e dell'utente, il servizio
che il TCP fornisce è analogo a fornire una connessione dedicata;
• Buffered Transfer: i routers interessati dal trasferimento sono provvisti di buffers per
rendere più efficiente il trasferimento e minimizzare il traffico di rete;
• Unstructured Stream: il TCP/IP stream service non adotta un flusso di dati strutturato
ovvero non c'è modo di distinguere i records che costituiscono il flusso dati;
6