I protocolli del Voice Over IP
La prima telefonata in tecnologia VoIP (Voice Over Internet Protocol) è stata effettuata più di dieci anni fa. Quindi il VoIP non è una nuova tecnologia, anche se in Italia la stiamo vivendo in questo modo.
Col termine VoIP si indica il servizio (e quindi la tecnologia ad esso relativa) che permette di fare telefonate tramite rete IP; il VoIP sta sostituendo a poco a poco la telefonia tradizionale. La differenza sostanziale tra “il vecchio e il nuovo” è che prima, attraverso il telefono, si utilizzava una tecnologia di connessione detta a commutazione di circuito, ovvero quando si instaurava una telefonata tra chiamante e ricevente veniva affidata una linea, un circuito appositamente riservato; mentre, nel caso della telefonia IP abbiamo a che fare con una tecnologia a commutazione di pacchetto, ovvero la voce, che è rappresentata da un segnale analogico, viene prelevata attraverso un apposito telefono, ne viene fatta una operazione di campionamento, quantizzazione e codifica, e il risultato di questa elaborazione viene inviato attraverso la rete sotto forma di pacchetto, proprio come un qualsiasi tipo di dato o file che viene scambiato attraverso una rete, ad esempio attraverso Internet.
Per permettere all’utenza di telefonare utilizzando il servizio VoIP, esistono vari protocolli, ma i tre più importanti ed utilizzati sono sicuramente: H.323, Sip, e Skype.
H.323
Questo protocollo è stato messo a punto nel 1996 da ITU (International Telecommunications Union). H.323 supporta, estendendole, tutte le funzioni richieste da una rete telefonica moderna: audioconferenza, videoconferenza e interfacciamento con la rete telefonica tradizionale. Questo standard non prescrive determinate specifiche riguardo ai protocolli di livello inferiore (nell’ottica della pila protocollare che descrive, in generale, una rete multimediale) che servono per lo scambio dei dati e della voce, perché fa riferimento a quelli già esistenti e consolidati, ma si concentra, invece, sulle modalità di gestione della chiamata in tutti i suoi aspetti.
Lo standard H.323 definisce quattro elementi fondamentali della rete: terminali (host), gateway, MCU (Multipoint Control Unit) e gatepeeker.
I terminali (host) sono telefoni o video-telefoni realizzati in hardware o sotto forma di programma per il PC (in quest’ultimo caso vedi ad esempio Skype, VoIPStunt, etc.).
I gateway si occupano di far comunicare utenti che, attraverso un terminale, utilizzano protocolli per il VoIP differenti, o anche standard telefonici tradizionali.
L’ MCU (Multipoint Control Unit) è un apparecchio dedito all’audio (o video) conferenza.
Il gatepeeker, infine, contiene “l’elenco telefonico della rete” (ossia l’insieme degli indirizzi di contatto degli utenti) e coordina le chiamate al fine di evitare congestioni.
SIP
Il protocollo SIP (Session Initiation Protocol, ovvero Protocollo di Iniziazione delle Sessioni) è sviluppato da IETF (Internet Engineering Task Force), l’ente che gestisce i protocolli internet, ed è essenzialmente un protocollo di trasmissione dati. Ha lo stesso obiettivo di H.323, con una differenza, di natura pratica, notevole: mentre i protocolli sviluppati da ITU sono pubblici, nel senso che è possibile acquistarli – sborsando un bel po’ di denaro – , gli standard IETF sono liberamente disponibili, ad esempio nella rete Internet; questo vuol dire che, attraverso un meccanismo di divulgazione orientati ai documenti (i famosi documenti RFC) gli sviluppatori possono tenersi in costante aggiornamento sui passi compiuti dal mondo informatico che si occupa dell’evoluzione del SIP, avendo così la possibilità di utilizzare, reingegnerizzare, adattare tutte le risorse rese liberamente disponibili. Per questi motivi, la maggior parte dei programmi offerenti il servizio VoIP e la maggior parte degli apparecchi hardware per il VoIP seguono il protocollo SIP.
La definizione completa di questo protocollo è contenuta nel documento n° RFC 2543, documento (come precedentemente accennato) liberamente scaricabile dal sito web di IEFT, aggiornato ed esteso dal documento RFC 3261. Due telefoni (o più in generale due terminali – software o hardware) SIP comunicano tra di loro direttamente, senza bisogno di server intermedi, anche se di solito si usano programmi che mettono a disposizione un “elenco telefonico” centralizzato condiviso (col quale è possibile risalire, e soprattutto verificare, l’indirizzo selezionato per il destinatario); non meno frequente è inoltre l’uso di server proxy, che possono porsi da intermediari alla comunicazione diretta tra i telefoni. Una volta stabilita la connessione la comunicazione tra i due telefoni è comunque diretta, nel senso che il compito iniziale del proxy, ossia quello di instaurare la chiamata (il compito più importante nel protocollo SIP), viene a decadere, e i telefoni coinvolti nella comunicazione di scambiano opportuni messaggi in maniera diretta.
Skype
A differenza di H.323 e SIP, che sono standard pubblici, Skype usa un protocollo di comunicazione brevettato e proprietario, di cui non si conoscono i dettagli implementativi. I vincoli di copyright dunque vietano ai concorrenti di Skype e alla comunità Open Source di lavorare liberamente sul protocollo per estenderlo, fornendo così progressi alla comunità tecnologica.
Skype ha due grandi vantaggi rispetto agli altri protocolli sopra menzionati. Esso usa una comunicazione di tipo peer-to-peer, che è più efficiente di quella basata su un unico server centrale, e contiene una libreria di metodi di connessione che vengono chiamati in causa l’uno dopo l’altro, fino a trovare quello più adatto alla connessione che si intende stabilire.
Per offrire un servizio che si estende a milioni di utenti, Skype usa una architettura di tipo P2P a supernodi; ovvero, all’atto della connessione telefonica, piuttosto che appoggiarsi ad un grande server centrale per verificare a quale indirizzo IP corrisponde il destinatario, i client skype (ovvero i software – che utilizzano il protocollo Skype – attraverso cui l’utente può usufruire dei servizi di telefonia) interagiscono direttamente tra di loro per assicurarsi che “l’elenco telefonico” di rete è aggiornato e per velocizzare l’operazione: si scambiano quindi informazioni, in maniera “locale”, per evitare onerosi delays (ritardi) dovuti all’interazione col server; quindi i client Skype non si limitano ad effettuare telefonate, ma il loro scambio di informazioni (che avviene anche quando non vi sono telefonate in corso, cioè quando i programmi dovrebbero essere in “stand by”) è cruciale per ottimizzare il funzionamento del servizio.
Come in tutti gli applicativi che adottano il modello P2P, il “cuore” del protocollo di Skype è il Global Index; attraverso di esso gli utenti, come detto, possono trovarsi, stabilire una chiamata, effettuare la conversazione e scambiare dati, senza passare per un server centrale. Tutta la struttura è organizzata in nodi e supernodi: il supernodo è un terminale che esegue il client Skype, offrendo assistenza alla rete di Skype gestendo le liste dei contatti e l’instradamento delle chiamate. Un host che esegue Skype diventa automaticamente supernodo quando la sua connessione ad Internet non passa attraverso un filtro NAT o un firewall (elementi della rete che “alterano” i pacchetti in transito) e quando la rete Skype rileva che l’host in questione è acceso e raggiungibile per un certo numero di ore consecutive. La comunicazione attraverso un protocollo Skype avviene a questo punto nel seguente modo: quando due utenti Skype vogliono comunicare, il protocollo verifica innanzitutto se vi è la possibilità di un collegamento diretto tra gli due.
- Se nessuno dei due terminali coinvolti nella comunicazione è protetto da firewall, la comunicazione può avvenire in maniera diretta tra gli host, senza necessità di intermediari.
- Se il chiamato è protetto da un firewall, riceve attraverso il Global Index (coinvolgendo dunque un super-nodo) l’invito a fare una richiesta di connessione verso il chiamante. Se accetta tale invito, la connessione viene messa effettivamente in atto.
- Se infine entrambi i client sono protetti da un firewall restrittivo, nessuno dei due può raggiungere l’altro in modo diretto. In questa situazione il chiamante inoltra la chiamata attraverso un Relay, ovvero un PC collegato a Internet senza firewall restrittivi, dunque accessibile simultaneamente da chiamante e chiamato per fare da intermediario nella comunicazione (un po’ come il proxy nel caso del protocollo SIP). E’ ovvio che questa scelta introduce ritardi e degrada la qualità della comunicazione, quindi Skype la utilizza come ultima risorsa a disposizione, provando prima diversi tentativi per connettere chiamante e chiamato.
Tutte le comunicazioni tra chiamante e chiamato, nel caso del protocollo Skype, sono eseguite con il protocollo UDP, protocollo del livello di Trasporto nella pila protocollare che descrive una rete; il protocollo, a differenza dell’altro principale protocollo della pila TCP/IP dello strato di trasporto (TCP), non garantisce l’arrivo dei pacchetti a destinazione, ma è molto più efficiente e rapido.
I problemi legati al servizio VoIP
Dopo questa panoramica sui protocolli più importanti, esaminiamo i problemi legati al VoIP: essi sono sostanzialmente diversi.
Il primo riguarda la gestione delle chiamate verso numeri non geografici, che offrono servizi di emergenza legati alla località del chiamante (ad esempio il 112 per i carabinieri e il 118 per il pronto soccorso). In questo caso i gestori di telefonia VoIP scelgono tra due alternative: non permettere di chiamare questi numeri, oppure inoltrare le chiamate attraverso un gateway, connesso alla rete telefonica tradizionale, installato presso il loro centro di elaborazione dati.
Un secondo punto critico riguarda l’affidabilità. Infatti sfruttando la rete Internet la telefonia VoIP è indissolubilmente legata alla affidabilità di quest’ultima. Infatti, mentre i normali telefoni sono tele-alimentati dalla centrale telefonica (e dunque in presenza di un black-out continuano a funzionare), i router, viceversa, perdono alimentazione nella eventualità di un black-out. In questo caso si dovrebbero usare quindi costosi router, o particolari telefoni detti PoE (cioè alimentati dalla centrale), o ancora si dovrebbero proteggere gli apparecchi con dei gruppi di continuità.
Un’ulteriore problematica riguarda la qualità delle telefonate VoIP: il problema è legato alla qualità della comunicazione. Potenzialmente, le telefonate fatte sfruttando la rete Internet potrebbero essere anche di qualità più elevata rispetto a quelle tradizionali, vista l’assenza del filtro a 4KHz presente nelle centrali di commutazione, che taglia la banda del segnale, limitandone di conseguenza la qualità. In realtà i microfoni integrati in molti PC portatili e nelle cuffie sono di qualità scadente, e ciò degrada la qualità del segnale, che viene ancor più peggiorato dal trattamento successivo della scheda audio. Queste banali considerazioni ci fanno capire quanto un hardware di qualità sia indispensabile per una buona telefonata tramite protocollo VoIP.
Se la connessione Internet è condizionata da un software peer-to-peer sempre in connessione, ad esempio, un altro problema è che il traffico telefonico si mischia al traffico in corso in quel momento ed il risultato potrebbe essere una banda incostante che degrada la qualità della comunicazione. La soluzione potrebbe essere quella di programmare il servizio QoS (Quality of Service) del firewall o del router per dare al traffico VoIP una priorità superiore rispetto agli altri, ma questo non è sufficiente. Infatti raramente il provider Internet supporta QoS nella sua rete, perciò il traffico Voip che il router QoS tiene logicamente separato si mescola a quello generico a livello di centrale. Poi bisogna programmare QoS nel router e negli switch di rete in modo corretto, e non tutti gli installatori e gli utenti sono capaci di farlo; infine QoS si può applicare a traffico che usa porte e protocolli standard, e non a software come Skype che a livello di rete si comportano come un software P2P.
Articolo a cura di: Francesco Chianese
Notizie tratte da: PC Magazine, numero di Settembre 2006
Gennaio 7, 2007
VOIP: Protocolli, problemi, qualità
Ancora nessun commento. »
Non c’è ancora nessun commento.
RSS feed dei commenti a questo articolo. TrackBack URI