Audio Networking – Introduzione alle reti locali 4

parte 4

di Michele Viola

Ethernet

Ethernet è una delle principali architetture di rete per il trasporto locale dei dati. Attualmente le reti Ethernet sono senz’altro le più diffuse.

Dal punto di vista storico, questo tipo di rete locale nasce wireless, alle Hawaii negli anni ’70: non c’era il telefono dappertutto e i ricercatori dell’Università delle Hawaii stanziati nelle isolette dell’arcipelago volevano potersi connettere al computer centrale di Honolulu. Qualcuno ha pensato quindi di utilizzare la trasmissione via radio, in onde corte. Il protocollo prevedeva una risposta da parte del computer centrale per ciascun pacchetto di dati trasmesso: se nessun altro stava cercando di trasmettere la comunicazione andava a buon fine e il computer centrale rispondeva, altrimenti non arrivava risposta e il chiamante riprovava. Il sistema, chiamato ALOHANET, funzionava bene in condizioni di basso traffico ma all’aumentare del traffico era un dramma.

La prima LAN di nome Ethernet, basata anche sul lavoro dei ricercatori delle Hawaii, è stata progettata e costruita alla Xerox nel 1976. Permetteva di collegare tra loro fino a 256 macchine, su cavo coassiale. La massima distanza ammessa per ciascun collegamento era di 2,5 km, con ripetitori ogni 500 m, alla velocità di 2,94 Mbps (Milioni di bit per secondo). Ciò che accomuna Ethernet alla rete delle Hawaii è l’utilizzo per tutte le macchine di un unico canale di comunicazione (un “bus”) condiviso: l’etere alle Hawaii, il trasporto coassiale per la rete della Xerox. La miglioria più notevole introdotta da Xerox era che le interfacce, prima di trasmettere, ascoltavano il bus per assicurarsi che fosse libero (facile su un bus coassiale ma non sempre possibile nell’etere, come vedremo). Dato che i segnali impiegano comunque un tempo non nullo per propagarsi da una macchina all’altra, può comunque capitare che due macchine inizino a trasmettere contemporaneamente (all’interno del tempo di propagazione) e occorre un modo per risolvere tali sovrapposizione. In pratica le macchine ascoltano il bus non solo prima ma anche durante la trasmissione: se ciò che ascoltano non coincide con ciò che trasmettono significa che c’è stata una “collisione” e che il pacchetto andrà ritrasmesso. La ritrasmissione deve avvenire dopo un tempo casuale, perché se il tempo fosse determinato a priori lo sarebbe allo stesso modo per tutte le macchine e le collisioni proseguirebbero.

Xerox, insieme a DEC e ad Intel, ha progettato uno standard nel 1978 per una Ethernet a 10 Mbps, chiamato DIX standard. Nel 1983 DIX standard è diventato IEEE 802.3.

Xerox ha mostrato poco interesse per la cosa (a parte la standardizzazione) e l’inventore ha formato la sua compagnia (3Com) per la commercializzazione del sistema. Ha venduto centinaia di milioni di pezzi.

Lo standard è tuttora in evoluzione.

Il punto cruciale è la gestione delle collisioni, dato che Ethernet nasce per la trasmissione dei dati su bus condiviso. Per come è nata, tale architettura non pare molto adatta per i servizi real-time (come il trasporto audio) proprio a causa del tempo random di ritrasmissione dei pacchetti in seguito ad un’eventuale collisione, ovvero il tempo di trasmissione di ciascun pacchetto non è (almeno in teoria) del tutto certo. Vedremo in seguito come si è poi evoluta la faccenda fino ai giorni nostri.

Pur essendo ancora in giro qualche vecchio apparato funzionante a 10 Mbps, attualmente l’architettura di rete più utilizzata è presumibilmente quella chiamata “Fast Ethernet”, in particolare nella sua variante detta “100Base‑Tx”, che permette di trasmettere fino a 100 Mbps in entrambe le direzioni (full duplex) usando due delle quattro coppie di conduttori contenute in un cavo CAT5, una per ricevere e l’altra per trasmettere. Sul cavo CAT5 e su altri mezzi trasmissivi daremo qualche altro dettaglio più avanti. La lunghezza di ciascun collegamento su CAT5 è di 100 m, limitatamente estendibili per mezzo di appositi “ripetitori”. Per tratte più lunghe è possibile utilizzare connessioni in fibra ottica, che permettono di raggiungere gittate di 2 km per ciascun collegamento.

Sempre più diffusa è inoltre quella che si chiama “Gigabit Ethernet”, capace di trasmettere fino a 100 m di distanza fino a 1 miliardo di bit al secondo su un cavo CAT5, usando tutte e quattro le coppie. I segnali vengono elaborati (equalizzati e non solo) da un DSP per depurarli da cross-talk e riflessioni, e la codifica è studiata, tra l’altro, per emettere poca energia a radiofrequenza. Naturalmente anche Gigabit Ethernet può efficacemente utilizzare connessioni in fibra ottica, per gittate fino a 5 km per tratta nelle sue versioni più evolute.

Da notare, per inciso, che una connessione a 10 Mbps può ancora essere sufficiente in molte situazioni come, ad esempio, la connessione alla rete Internet.

Ci sono altri standard di rete oltre ad Ethernet. Meritano una menzione Token Bus (IEEE 802.4) Token Ring (IEEE 802.5), architetture a bus e ad anello collision-free in cui le macchine si passano continuamente, in sequenza, un pacchetto di dati detto “token”: quando una macchina ha qualcosa da trasmettere, aspetta il token e, se lo trova libero, vi appiccica il messaggio con l’indirizzo del destinatario; quest’ultimo, ricevendo il token, estrae il messaggio e lo ritrasmette libero alla macchina successiva.

Wireless

Lo standard per la trasmissione dei dati in LAN senza fili, relativamente recente dopo un periodo in cui ogni costruttore implementava il suo modo incompatibile con gli altri, si chiama IEEE 802.11 (WiFi per gli amici). Tale standard prevede due modalità: con stazione base e senza stazione base. La stazione base è comunemente detta “access point”.

Al momento dell’inizio del processo di standardizzazione (metà degli anni ‘90) Ethernet dominava il mercato per cui si è scelto di rendere WiFi compatibile con Ethernet al di sopra dello strato 2. Nei due strati più bassi, ovvero a livello fisico e di collegamento, ci sono necessariamente diverse differenze. In particolare, il fatto di ascoltare il canale prima di iniziare a trasmettere non funziona più così bene come con il cavo.

I problemi nel riconoscimento delle collisioni sono sostanzialmente di due tipi, evidenziati nella figura 13.

Nel caso (a) C sta trasmettendo ma, a causa della portata limitata del collegamento radio, A non capisce che la trasmissione non andrà a buon fine, neppure ascoltando il canale durante la trasmissione. Nel caso (b) la macchina B vorrebbe trasmettere un messaggio a C ma, ascoltando il canale, potrebbe pensare che la trasmissione non andrebbe a buon fine pur essendo il canale libero nei pressi di C.

Un altro problema è la gestione delle riflessioni, a causa delle quali un messaggio potrebbe essere ricevuto più volte.

Ci sono altri problemi, ma non mi voglio dilungare. Naturalmente tutti questi problemi sono considerati – e più o meno brillantemente risolti – dallo standard IEEE 802.11; quello che è facile intuire è che, come al solito, la trasmissione via cavo è generalmente più efficace (ovvero più veloce nonché più robusta rispetto alle interferenze esterne) della trasmissione wireless, almeno a parità di costi e di livello tecnologico.

La prima versione dello standard 802.11, del 1997, descriveva reti wireless LAN a 1 Mbps e a 2 Mbps. Nel 1999 è stato pubblicato 802.11a, poi 802.11b a 11 Mbps. Recentemente lo standard è stato aggiornato a 802.11g, funzionante a 54 Mbps. Sono già disponibili prodotti a 108 Mbps ma, nel momento in cui sto scrivendo, non c’è ancora uno standard e occupa praticamente tutta la banda disponibile (spesso non ci sta più neppure un telefono cordless).

Hub e Switch

L’hub, che si può chiamare anche concentratore, è un dispositivo a cui si possono connettere vari componenti di una rete. È l’equivalente di una presa multipla, o di un distributore di segnale, ovvero il suo compito è quello di inoltrare su tutte le porte i dati che si presentano ad una di queste, senza però verificare quale sia il dispositivo destinatario di tali informazioni. È tipicamente un dispositivo di livello uno (fisico), praticamente un repeater multiporta.

Gli switch sono dispositivi più intelligenti, nel senso che quando ricevono un pacchetto su una porta lo inoltrano solo sulla porta a cui è connesso il destinatario, riducendo il traffico superfluo e le collisioni. Nel caso oggigiorno più comune, ad ogni porta dello switch è connesso un solo dispositivo e le porte sono tutte full-duplex, per cui le collisioni sono ridotte a zero. Gli switch sono in grado di leggere gli indirizzi di livello due dell’interfaccia mittente e dell’interfaccia destinatario dai pacchetti, e conservano al loro interno una tabella in cui sono riportate le porte a cui è collegato ciascun dispositivo, individuato appunto dall’indirizzo di livello due. La tabella interna è di solito composta “al volo”, all’atto del collegamento: quando un’interfaccia viene connessa ad uno switch di rete, la brevissima comunicazione iniziale tra le due macchine (handshake) prevede proprio lo scambio automatico dell’indirizzo di livello due.

Questo indirizzo di livello due è detto MAC address e serve per gestire l’accesso delle macchine al mezzo trasmissivo (MAC è un acronimo per Medium Access Control). Idealmente ciascuna interfaccia dovrebbe avere un suo proprio indirizzo MAC, stabilito dal costruttore e diverso da quello di tutte le altre interfacce di rete nel mondo. Per questo l’indirizzo MAC è formato da 12 byte, cioè da 12 x 8 = 96 bit, così da permettere oltre 79 x 1027 combinazioni (cioè 79 seguito da 27 zeri, che è un numero molto elevato). In realtà l’indirizzo MAC può essere modificato tramite procedure software e può succedere di trovare interfacce con lo stesso indirizzo MAC, un problema causa di malfunzionamenti a volte subdoli.

Gli switch annullano quindi il problema delle collisioni ma devono analizzare i pacchetti e confrontare l’indirizzo del destinatario con la tabella interna per instradarli sulla porta giusta, per cui sorge il problema della capacità e velocità di elaborazione, evidente soprattutto nelle macchine di basso costo sottoposte a carichi di lavoro elevati. Può succedere che uno switch, se attraversato da notevoli volumi di traffico, abbia delle difficoltà ad instradare tutti i pacchetti che gli arrivano e che addirittura si blocchi e debba essere re-inizializzato (di solito con un riavvio).

Riferimenti

Andrew S. Tanenbaum: Computer Networks, fourth edition – Prentice‑Hall, Inc.