Descrizione
L’ITU (International Telecommunication Union) è, dal 1947, un’agenzia delle Nazioni Unite con il compito di standardizzare le telecomunicazioni internazionali; emette i propri standard sotto forma di indicazioni, Raccomandazioni, che le singole nazioni possono adottare o ignorare.
L’ITU è organizzata in settori, il settore T si occupa degli standard per le telecomunicazioni. Le Raccomandazioni sono a loro volta organizzate in serie; la serie ITU-T H è interamente dedicata ai sistemi multimediali e audiovisivi.
La Raccomandazione ITU-T H.323 comprende la definizione delle componenti tecniche necessarie per una comunicazione multimediale (audio, video, dati) che si trovi a lavorare, come sottorete di trasporto, su una rete a pacchetto che potrebbe non garantire una Qualità di Servizio (QoS – Quality of Service). Queste reti a pacchetto possono includere Local Area Network, Enterprise Area Network, Metropolitan Area Network, Intra-Network e Inter-Network (compreso Internet).
Panoramica dell’architettura H.323
Per realizzare una rete basata su H.323, occorre mettere in piedi un’architettura (figura alla pagina seguente) costituita da un certo numero di entità.
Il Terminale H.323 è un dispositivo di rete utilizzato dall’utente per ricevere ed effettuare chiamate; può essere un PC sul quale è in esecuzione un software conforme allo standard H.323, oppure un dispositivo dedicato (IP Phone). H.323 permette agli utenti di individuare i Terminali mediante un Alias Address, un indirizzo simbolico di tipo stringa di caratteri, che il chiamante compone per selezionare il destinatario della chiamata.
La traduzione dell’indirizzo simbolico nell’indirizzo di livello trasporto del Terminale, è a carico di un componente chiamato Gatekeeper. Il componente chiamato, invece, Gateway consente di instaurare comunicazioni multimediali tra reti a commutazione di pacchetto senza QoS e reti a commutazione di circuito che realizzano la QoS.
L’entità Multipoint Control Unit (MCU), infine, permette le comunicazioni multipunto, coordinando la segnalazione di controllo e manipolando i flussi multimediali prodotti dai Terminali.
Un sistema H.323 e le sue entità
I protocolli utilizzati
H.323 è una cosiddetta raccomandazione “ombrello”, cioè essa racchiude e collega insieme una serie di protocolli applicativi, specificati poi nel dettaglio in altre raccomandazioni. Il suo funzionamento è indipendente dal protocollo di livello trasporto e dalla rete a pacchetti sottostanti, anche se lo standard specifica il tipo di servizi che devono necessariamente essere forniti dal livello inferiore e che sono:
- un servizio affidabile end-to-end di trasporto dei datagrammi, ad esempio TCP per quanto concerne le reti IP
- un servizio inaffidabile end-to-end di trasporto dei datagrammi, quale UDP.
L’immagine che segue mostra quali sono i protocolli verranno descritti e se necessitano di un servizio di trasporto affidabile o meno.
Stack di protocolli H.323
ITU-T H.225
H.323 fa riferimento alla raccomandazione ITU-T H.225 per due funzionalità fondamentali: il protocollo di Registration, Admission and Status (RAS) ed il protocollo di Call Signalling.
H.225 RAS (Registration, Admission, Status)
Questo protocollo definisce i messaggi per lo scambio di segnalazione di controllo tra gli endpoints ed il Gatekeeper.
I messaggi RAS sono scambiati su un canale inaffidabile, quindi utilizzano il protocollo UDP. Tale canale è aperto indipendentemente da una chiamata e, quindi, è aperto prima dell’instaurazione di qualunque altro canale.
Mediante il protocollo RAS si realizzano le procedure di scoperta del Gatekeeper, registrazione, controllo di ammissione, modifica della banda assegnata ad una comunicazione, scambio di informazioni di stato, cancellazione di registrazioni.
H.225.0 Call Signalling
È il protocollo che definisce i messaggi scambiati al fine di stabilire l’instaurazione e l’abbattimento di una connessione tra endpoints, sulla quale avverrà lo scambio di dati real-time. Lo scambio dei messaggi avviene su un canale affidabile, quindi TCP per le reti basate su IP.
Questo protocollo si rifà, sostanzialmente, al protocollo Q.931, definito per il controllo di chiamata in reti ISDN. Infatti, i messaggi H.225.0 utilizzati nell’instaurazione e nell’abbattimento di una chiamata, sono identici a quelli usati per una chiamata ISDN.
Nel caso di presenza di un Gatekeeper, possono verificarsi due scenari:
- Gatekeeper–Routed Call Signalling: gli endpoints instaurano il canale di Call Signalling con il Gatekeeper, che, quindi, sarà attraversato da tutti i messaggi H.225.0. Tale procedura permette un forte controllo sulla chiamata da parte del Gatekeeper.
- Direct Call Signalling: il Gatekeeper non sarà attraversato dai messaggi H.225.0, che sono scambiati direttamente tra gli endpoints comunicanti.
Quale delle due procedure adottare è deciso, dal Gatekeeper, durante il dialogo RAS. Nel caso di assenza del Gatekeeper, ovviamente, i messaggi di Call Signalling sono scambiati direttamente tra gli endpoints.
Tipici messaggi di Call Signalling sono: Setup, CallProceeding, Alerting, Connect, ReleaseComplete.
ITU-T H.245
Tipici messaggi di Call Signalling sono: Setup, CallProceeding, Alerting, Connect, ReleaseComplete. Nell’immagine si evidenzia come si susseguono temporalmente questi messaggi.
H.323 fa riferimento alla Raccomandazione ITU-T H.245 per il protocollo di controllo delle comunicazioni; con H.245 si realizzano le procedure per attivare e gestire una comunicazione multimediale tra due o più entità H.323.
Schema di una chiamata H.323
Ogni entità deve instaurare un canale dedicato di tipo affidabile (TCP), detto H.245 Control Channel, per ogni comunicazione alla quale partecipa; tale canale sarà permanentemente aperto durante tutta la connessione.
Si osservi che nel caso una delle entità in questione sia un MCU, che può supportare molte chiamate contemporaneamente, è necessaria l’apertura di più canali H.245 di controllo.
L’instaurazione degli H.245 Control Channel avviene dopo il dialogo H.225 (RAS e Call Signalling).
Si menzionano le principali procedure descritte nella raccomandazione:
- Master–Slave Determination: procedura per risolvere le contese tra endpoints.
- Capabilities Negotiation: mediante tale procedura, le entità comunicanti negoziano le modalità con le quali si svolgerà la comunicazione; si stabiliscono, ad esempio, le codifiche audio e video, il numero di canali logici sui quali saranno trasmessi i media stream… Ciascun endpoint descrive le proprie capabilities come ricevente, abilitando l’altro endpoint a trasmettere nei limiti delle capabilities dichiarate.
- Opening/Closing of Logical Channels: con questa procedura, si instaurano e abbattono i canali logici sui quali viaggeranno i media stream, ovviamente in funzione delle capabilities negoziate. Ad esempio, all’atto dell’apertura di un nuovo canale logico, il trasmettitore indica al ricevitore il tipo di media che trasmetterà su quel canale, consentendo, in ricezione, di predisporre opportunamente le risorse necessarie, quali buffer o codec.
- Flow Control: procedura con cui il ricevitore indica al trasmettitore di ridurre il bit rate dello stream che sta trasmettendo.
- User Input Indication: trasmette all’altro endpoint le informazioni digitate dall’utente, in forma di stringa alfanumerica o di caratteri in codice DTMF (Dual Tone Multi Frequency) impostati mediante tastiera analogica.
L’instaurazione di un H.245 Control Channel richiede l’apertura di una nuova connessione TCP, con il tradizionale three-way-handshake che ne deriva. Nella seconda versione di H.323, per ridurre il ritardo in fase di instaurazione della connessione del tempo necessario al setup di una nuova connessione TCP da dedicare esclusivamente al dialogo H.245, è stato introdotto il meccanismo dell’H.245 Tunneling: i messaggi H.245 sono incapsulati in messaggi H.225.0.
Questa soluzione, inoltre, migliora la scalabilità dei Gateway, dimezzando, di fatto, il numero di connessioni TCP simultaneamente aperte.
Questa tecnica è particolarmente conveniente se abbinata ad un’altra, il cosiddetto Fast Start: il dialogo H.245 non fa più seguito al messaggio H.225.0 Connect, bensì la struttura dei messaggi di apertura dei canali logici è inserita in un campo dei primi messaggi di Call Signalling, quali Setup e Alerting. In questo modo, quindi, i canali logici sono predisposti ancor prima che la connessione sia completamente instaurata.
Le entità
Adesso, si analizziano un po’ più in dettaglio le entità funzionali di un environment H.323, già introdotte precedentemente.
Terminali
I Terminali sono endpoint che originano e terminano i flussi di dati e la segnalazione H.323; essi sono capaci di instaurare una comunicazione bidirezionale real-time con un altro terminale, un Gateway o un MCU.
Struttura di un terminale H.323
Un Terminale H.323 deve supportare obbligatoriamente comunicazioni audio e, facoltativamente, video e dati. Per fare ciò tutti devono supportare i protocolli di controllo per negoziare l’uso del canale (H.245), per l’instaurazione della chiamata (RAS-Call Signalling) e per la trasmissione stessa dei pacchetti (RTP), oltre ovviamente ai codificatori/decodificatori per i flussi audio e video (dove possibili) e i protocolli relativi allo scambio di dati (T.120), così come mostrato nella figura.
Gateway
I Gateway sono caratteristici di qualsiasi comunicazione tra sottoreti diverse. La connessione avviene tramite traduzione dei protocolli applicativi relativi alle due reti e talvolta anche attraverso la traduzione dei protocolli di trasferimento e la conversione di codifica dei flussi audio/video. Un esempio è quello di un Gateway che “vede” sia la rete IP che la PSTN (Public Switched Telephone Network).
Il Gateway termina i protocolli di comunicazione su entrambe le reti: esso viene quindi visto come un terminale H.323 sulla LAN e come un terminale PSTN sulla rete commutata.
Gateway verso la PSTN
L’aggiunta del Gateway all’architettura ha dato ad H.323 la possibilità di interfacciarsi con tutte le altre realtà esistenti, e di conseguenza ha permesso allo standard di diffondersi in maniera capillare.
Gatekeeper
Il Gatekeeper, pur non essendo obbligatoriamente presente in una comunicazione multimediale, svolge, se utilizzato, numerose importanti funzioni e offre tutta una serie di sevizi a cui altrimenti si deve rinunciare.
In particolare, esso può limitare l’accesso al servizio, secondo le disposizioni dell’amministratore dello stesso, e la quantità di capacità trasmissiva allocata per le applicazioni multimediali ad un livello tale da non degradare troppo la qualità offerta agli altri servizi (e-mail, trasferimento dati ecc.).
Lo standard definisce in maniera precisa le funzionalità offerte dal Gatekeeper, delle quali alcune obbligatorie e altre opzionali. Tra quelle obbligatorie bisogna citare:
- Address Translation: trasformazione di un numero telefonico (E.164) o di un indirizzo alias in un indirizzo IP e vice versa. Esiste, internamente al Gatekeeper, una tabella delle registrazioni, continuamente aggiornata attraverso i messaggi del protocollo RAS.
- Admission Control: controllo di ammissione di un endpoint in una Zona H.323. Attraverso i messaggi ARQ (Admission ReQuest), ACF (Admission ConFirm) e ARJ (Admission ReJect), ad un endpoint viene permesso o meno l’accesso alla LAN. L’accesso può essere basato su autorizzazioni alla chiamata, banda richiesta o altri criteri.
- Bandwidth Control: controllo di banda. Il Gatekeeper usa i messaggi BRQ (Bandwidth ReQuest), BCF (Bandwidth ConFirm) e BRJ (Bandwidth ReJect) per la gestione della banda disponibile.
- Zone Management: controllo dei componenti H.323 appartenenti alla Zona H.323; il Gatekeeper offre i propri servizi solo a Terminali, Gateway e MCU ad esso registrati.
Tra le funzionalità opzionali del Gatekeeper possiamo elencare:
- Call Control Signalling: in una conferenza punto-punto il Gatekeeper può processare i segnali di controllo H.225.0 oppure farli scambiare direttamente tra gli endpoints.
- Call Authorization: il Gatekeeper può rifiutare una chiamata per motivi ad esempio di mancata autorizzazione. I criteri per determinare queste autorizzazioni sono al di fuori della raccomandazione.
- Bandwidth Management: il Gatekeeper può rifiutare una chiamata se non c’è abbastanza banda disponibile, ma i criteri per definire la banda disponibile vanno al di fuori della raccomandazione. Tale funzione può operare anche dopo la fase di inizializzazione della chiamata, qualora gli utenti decidessero di cambiare il tipo di media che si stanno scambiando nella chiamata in atto.
- Call Management: il Gatekeeper può tenere, ad esempio, una lista degli utenti Occupati in comunicazioni.
- Routing della segnalazione di chiamata: il Gatekeeper si fa carico dell’inoltro agli endpoint della segnalazione di chiamata. Questo permette, ad esempio, a un service provider di monitorare le chiamate sulla rete a scopi di billing, oppure di inoltrare chiamate ad altri endpoint ove quelli chiamati non siano disponibili, ecc.
- Routing del controllo di chiamata: il canale di controllo H.245, invece di essere stabilito tra i due endpoint, passa attraverso il Gatekeeper (H.245 Routed Mode).
Multipoint Control Unit (MCU)
Uno dei punti di forza della Raccomandazione H.323 è il supporto che fornisce alle applicazioni multimediali multipunto. Il componente fondamentale per questo aspetto è il Multipoint Control Unit.
Se da una parte può essere considerato un Terminale, in quanto può generare e terminare flussi audio e video, dall’altra la differenza è come agisce su questi. Infatti, l’MCU riceve tutti i flussi audio e video dai partecipanti alla conferenza e restituisce a tutti un unico flusso contenente i contributi di ognuno.
Per quanto riguarda l’audio, le varie comunicazioni vengono sovrapposte come nella realtà, mentre, per quel che riguarda il video, viene spedita un’immagine di formato standard, ma comprendente al suo interno riquadri più piccoli con i partecipanti alla videoconferenza.
Al suo interno sono comprese due parti:
- il Multipoint Controller (MC), che gestisce i segnali di controllo (H.245) e stabilisce dei codec audio e video comuni a tutti gli endpoints, come pure una larghezza di banda sostenibile da tutti i partecipanti alla conferenza. Esso non ha a che fare direttamente con i flussi voce/video.
- il Multipoint Processor (MP), che si occupa di processare e mescolare i flussi audio/video.