Audio networking - Seconda Parte
La seconda parte di una serie di articoli sul trasporto audio in rete. Qui riproponiamo alcuni concetti di base.
di Michele Viola
Figura 1: Strati, protocolli e interfacce. |
Figura 2: Dialogo tra filosofi stranieri. |
Figura 3: Il modello ISO/OSI. |
Figura 4: ISO/OSI e TCP/IP. |
Il tumultuoso sviluppo delle tecnologie finalizzate al trasporto di dati digitali in rete negli ultimi anni, principalmente legato alla notevole spinta proveniente dal mercato consumer, ha portato con sé una semplificazione ed una riduzione dei costi delle corrispondenti tecnologie orientate al mercato professionale.
Ethernet, come accennato nello scorso numero, è passata dai 10/100 Mb/s di dieci anni fa fino agli attuali 10/100 Gb/s, e si prepara per i 400 Gb/s. Già da qualche anno è comune trovare, anche in ambito consumer, dispositivi da 1 Gb/s (1000BASE‑T).
Un canale audio PCM a 24 bit/48 kHz non compresso, considerando una certa ridondanza dovuta all’aggiunta dei bit di servizio (indirizzi di mittente e destinatario, simboli di inizio e fine pacchetto, ecc) impegna circa 1,5 Mbit/s. Uno stream di 24 canali richiederà quindi approssimativamente 36 Mbit/s, ovvero appena il 3,6% della capacità di un comune collegamento Gigabit Ethernet, perlomeno in condizioni ideali. Per uno stream più serio, diciamo 64 canali, occorreranno circa 100 Mbit/s, e qui ci avviciniamo al 10% della capacità del collegamento. Visto così, pur banalizzando un po’, non sembra un compito eccessivamente gravoso, almeno dal punto di vista tecnologico.
In effetti, come abbiamo già accennato la volta scorsa, i problemi relativi al trasporto audio non riguardano tanto la fattibilità quanto, ad esempio, l’interoperabilità tra dispositivi di diversi costruttori. Questo si potrà risolvere solo quando sarà condiviso e sufficientemente diffuso un appropriato insieme di standard.
Tra gli organismi istituzionali più attivi nel campo della standardizzazione delle tecnologie legate all’audio (e video) networking ci sono AES (Audio Engineering Society) e IEEE (Institute of Electrical and Electronics Engineers).
Sia IEEE, sia AES hanno più o meno recentemente rilasciato una serie di standard per agevolare il trasporto in rete di segnali audio-video.
In particolare, Audio Video Bridging (AVB) è il nome di una serie di standard tecnici sviluppati da IEEE, nell’ambito dei protocolli IEEE 802.1 che riguardano in particolare le comunicazioni in rete locale (LAN, Local Area Network) o mediamente estesa (MAN, Metropolitan Area Network). Si tratta di servizi e protocolli che si posizionano sul livello 2 dello stack ISO/OSI.
AES67 è invece uno standard aperto inizialmente pubblicato da AES nel settembre 2013 e successivamente aggiornato. È una suite di protocolli di livello 3, basati su standard esistenti, pensata per permettere l’interoperabilità tra sistemi di trasporto audio su reti IP come, per citare solamente i due più popolari, RAVENNA di ALC NetworX e Dante di Audinate. AES67 offre anche la compatibilità a livello 2 con AVB.
Di cosa stiamo parlando? È forse il caso di richiamare qui alcuni elementi sulla struttura delle reti di trasmissione dati, e in particolare il concetto di architettura di rete.
L’architettura di rete
Strati, protocolli e interfacce
Il progetto di un’architettura di rete è una faccenda piuttosto complessa. Al fine di ridurre tale complessità, si cerca in qualche modo di suddividere il problema in tanti sotto-problemi più semplici, ciascuno dei quali realizza una parte del compito.
Le reti di trasporto dati sono tipicamente organizzate in una serie di “strati”, costruiti uno sopra l’altro (figura 1). Ciascuno strato offre dei servizi agli strati superiori, nascondendo i dettagli su come questi servizi sono effettivamente implementati.
In pratica, lo strato n di una macchina instaura volta per volta una comunicazione con lo strato n di un’altra macchina. Le regole e le convenzioni utilizzate in questa comunicazione sono chiamate, nel loro insieme, protocollo dello strato n.
In realtà, nessun dato è trasferito direttamente dal livello n di una macchina al livello n di un’altra macchina: ciascuno strato passa dati e controllo della comunicazione allo strato immediatamente sottostante, fino a quando viene raggiunto lo strato più basso. Sotto lo strato 1 c’è il mezzo fisico, attraverso il quale avviene effettivamente la comunicazione.
Tale stratificazione, oltre a permettere di organizzare l’approccio progettuale, può (e deve) rendere più semplice sostituire l’implementazione di uno strato con una completamente differente (ad esempio le linee telefoniche possono essere sostituite da collegamenti satellitari), perché tutto ciò che è richiesto dalla nuova implementazione è che offra esattamente lo stesso insieme di servizi allo strato direttamente superiore rispetto all’implementazione precedente.
Un insieme di strati e protocolli è chiamato architettura di rete. Le specifiche di un’architettura devono contenere abbastanza informazioni da permettere ad un ingegnere di scrivere un programma o di costruire un dispositivo hardware per ciascuno strato che si conformi correttamente al protocollo appropriato.
L’architettura pensatore-traduttore-segretaria
Un’analogia, tratta dal testo di Tanenbaum indicato nelle referenze, può contribuire a rendere più chiaro il concetto.
In riferimento alla figura 2, supponiamo due filosofi (processi paritari a livello 3), uno dei quali parla urdu e inglese mentre l’altro parla cinese e francese. Dato che non hanno un linguaggio comune, entrambi incaricano un traduttore (processi paritari al livello 2), ciascuno dei quali a sua volta incarica una segretaria (processi paritari al livello 1). Il filosofo 1 desidera comunicare il suo amore per i conigli al suo pari. Per fare questo, passa un messaggio (in inglese), attraverso l’interfaccia 2/3, al suo traduttore, dicendo: “I like rabbits”. I traduttori hanno concordato un linguaggio comune tra loro, ad esempio l’italiano, cosicché il messaggio diventa: “Mi piacciono i conigli”. La scelta del linguaggio è il protocollo dello strato 2 e coinvolge i processi paritari dello strato 2.
Il traduttore, dopo aver marcato il messaggio come “in lingua italiana”, consegna quindi il messaggio alla segretaria per la trasmissione, ad esempio via fax (il protocollo dello strato 1). Quando il messaggio arriva a destinazione, viene consegnato al traduttore che lo traduce in francese e lo passa al filosofo 2 attraverso l’interfaccia 2/3. Da notare il fatto che ciascun protocollo è completamente indipendente dagli altri, almeno finché l’interfaccia rimane la stessa. I traduttori possono cambiare la lingua italiana con, ad esempio, l’olandese, ammesso che entrambi siano d’accordo, senza cambiare nulla nelle interfacce verso lo strato 1 e verso lo strato 3. Allo stesso modo le segretarie possono cambiare dal fax all’e-mail, o al telefono, senza disturbare (o neppure informare) gli altri strati. Ciascun processo può aggiungere informazioni destinate solo al suo pari; queste informazioni non vengono passate agli strati superiori.
Tra i possibili modelli implementativi dell’architettura a strati, quelli in qualche modo rilevanti per le moderne architetture di rete sono due: il modello ISO/OSI e il modello TCP/IP.
Il modello ISO/OSI (figura 3) si basa su una proposta sviluppata dall’ISO (International Standard Organization) nel 1978 come un primo passo verso una standardizzazione a livello internazionale dei protocolli utilizzati nei vari strati. OSI sta per Open Systems Interconnection e si occupa proprio della connessione tra sistemi aperti, ovvero aperti per la comunicazione con altri sistemi.
Uno dei punti centrali del modello OSI è quello di introdurre chiaramente i concetti di servizi, interfacce e protocolli. OSI è nato prima dell’elaborazione dei protocolli, è un modello molto più generale di TCP/IP che, al contrario, è in qualche modo più “pratico” dato che è nato di fatto come descrizione di protocolli pre-esistenti.
Riferendosi alla figura 4, il livello 3, ovvero lo strato “internet” si occupa di inviare pacchetti di dati verso la destinazione. I compiti principali dei relativi protocolli sono la gestione dell’instradamento dei dati (routing) e il controllo delle congestioni (è analogo allo strato di rete del modello OSI). I pacchetti sono chiamati appunto “pacchetti IP” (Internet Protocol), ciascuno indirizzato ad un “indirizzo IP”.
Lo strato al di sopra, lo strato di trasporto, permette la conversazione tra sorgente e destinazione, proprio come il livello di trasporto OSI. A livello di trasporto, nello stack TCP/IP sono definiti due protocolli end-to-end, a cui abbiamo accennato nel numero scorso: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol).
Lo strato più basso dello stack, qui detto “livello di accesso alla rete”, non è descritto in dettaglio nel modello TCP/IP e può variare da macchina a macchina e da rete a rete. Il livello inferiore dello stack TCP/IP corrisponde ai due livelli inferiori del modello ISO/OSI, il livello di collegamento e il livello fisico.
Il livello 1, ovvero il livello fisico, si occupa del trasferimento grezzo dei bit. Questioni tipiche, rilevanti a livello fisico, sono: quanti volt rappresentano un 1 e quanti uno zero, quanti microsecondi deve durare un bit, quanti pin deve avere il connettore e a cosa serve ciascun pin...
Il livello 2, generalmente, divide i dati da trasmettere in frame e li trasmette in sequenza. Dato che lo strato fisico si occupa solo della mera trasmissione di bit senza nessun riferimento ad un’eventuale struttura dei dati, lo strato di linea si deve anche occupare di riconoscere i limiti dei singoli frame; questo si ottiene tipicamente attaccando in testa ed in coda a ciascun frame dei pattern di bit riconoscibili. Un altro compito del livello di linea, che coinvolge spesso anche diversi strati superiori, è quello di gestire un’eventuale differenza nella capacità di scambio di dati tra i due estremi del collegamento, ovvero di evitare di sovraccaricare un ricevitore lento con una trasmissione troppo veloce. Qualche meccanismo di regolazione del traffico deve essere impiegato perché il trasmettitore sia informato sullo spazio di buffer attualmente libero al ricevitore. Spesso questa regolazione del flusso è integrata con la gestione degli errori.
Le reti broadcast hanno un problema ulteriore nel livello di linea: come controllare l’accesso al canale condiviso. Un particolare sottolivello dello strato data link, detto “sottolivello di accesso al mezzo” (medium access sublayer), si occupa di questo problema.
Il livello di accesso alla rete è il dominio, ad esempio, dei popolari standard di trasporto denominati comunemente Ethernet (IEEE 802.3, via cavo) e Wi-Fi (IEEE 802.11, wireless).
A questo punto ci fermiamo, rimandando al prossimo numero il seguito della trattazione, per arrivare ad una veloce rassegna dei principali protocolli di trasporto audio in rete, alla luce di quanto scritto finora.
Riferimenti
Andrew S. Tanenbaum: Computer Networks, fourth edition – PrenticeHall, Inc.
Vuoi saperne di più sulle nostre pubblicazioni nel settore dell'audio professionale? CLICCA QUI.
Vuoi restare sempre aggiornato sulle ultime novità di settore? ISCRIVITI ALLA NOSTRA NEWSLETTER.