Premessa
Quando le prime LAN cominciarono a diffondersi (ARC, Ethernet, Token Ring, ecc.), l’IEEE decise di costituire una serie di comitati per studiare la standardizzazione sia delle LAN che delle MAN, in piena armonia con il modello di riferimento OSI; a tale proposito definì il progetto noto come IEEE 802 e a ogni comitato assegnò un progressivo (802.3 per il CSMA/CD, 802.4 per il Token Bus, 802.5 per il Token Ring, etc.).
La struttura generale del progetto IEEE 802 è la seguente:
In seguito sono aggiunti altri comitati, come ad esempio il 802.3u (100BaseT) o il 802.11 (Wireless network).
Il progetto IEEE 802 introduce l’idea che, indipendentemente dalla tecnologia trasmissiva utilizzata, le reti debbano avere un’interfaccia unificata verso il livello Network (livello rete). Per ottenere ciò, il livello Data Link è stato scorporato in due sottolivelli:
– LLC (Logical Link Control);
– MAC (Media Access Control).
Il sottolivello LLC è comune a tutte le LAN, mentre il MAC è peculiare di ciascuna LAN, così come il livello fisico al quale è strettamente associato; LLC è descritto nello standard IEEE 802.2, mentre i vari MAC sono descritti negli standard specifici di ogni rete locale, come descritto nell’immagine precedente.
Media Access Control
Esistono vari tipi di MAC, basati su principi diversi, quali la contesa, il token, la prenotazione e il round-robin; esso è indispensabile poiché le reti LAN, in corrispondenza del livello 2 (Data Link), implementano trasmissione broadcast, dovendo far condividere un unico canale trasmissivo a tutti i sistemi. Ciò impone la soluzione di due problemi:
- in trasmissione, verificare che il canale sia libero prima di trasmettere e risolvere eventuali conflitti di più sistemi che vogliano utilizzare contemporaneamente il canale;
- in ricezione, determinare a quali sistemi è effettivamente destinato il messaggio e chi lo ha generato.
La soluzione del primo problema è data dai vari algoritmi di MAC, mentre la soluzione del secondo problema implica la presenza di indirizzi specifici a livello MAC (i cosiddetti MAC Address).
Lo standard IEEE 802.3 (CSMA/CD)
Il protocollo CSMA/CD, identico sia in Ethernet che in 802.3, è stato inizialmente progettato per l’utilizzo del cavo coassiale come mezzo trasmissivo, ma è stato mantenuto inalterato anche in seguito all’introduzione di altri mezzi trasmissivi quali la fibra ottica ed il doppino.
CSMA/CD significa Carrier Sense Multiple Access with Collision Detection e opera in tre diverse fasi:
- carrier sense (rilevazione della trasmissione): ogni stazione che deve trasmettere ascolta il bus e decide di trasmettere solo se questo è libero (listen before talking);
- multiple access: nonostante il carrier sense è possibile che due stazioni, trovando il mezzo trasmissivo libero, decidano contemporaneamente di trasmettere; la probabilità di questo evento è aumentata dal fatto che il tempo di propagazione dei segnali sul cavo non è nullo, e quindi una stazione può credere che il mezzo sia ancora libero anche quando un’altra ha già iniziato la trasmissione;
- collision detection: se si verifica la sovrapposizione di due trasmissioni si ha una “collisione”; per rilevarla, ogni stazione, mentre trasmette un pacchetto, ascolta i segnali sul mezzo trasmissivo, confrontandoli con quelli da lei generati (listen while talking).
Si tenga conto che la collisione non è un errore trasmissivo, ma è banda impiegata per arbitrare il canale. La presenza di un numero limitato di collisioni su una rete locale di questo tipo non è quindi un sintomo di malfunzionamenti, ma è funzionale all’arbitraggio della rete stessa.
A seguito di un’avvenuta collisione si intraprendono le seguenti azioni:
- la stazione trasmittente sospende la trasmissione e trasmette una sequenza di jamming (interferenza trasmissiva) composta da 32 bit per 802.3 ed un numero di bit compreso tra 32 e 48 per Ethernet v.2.0; questa sequenza permette a tutte le stazioni di rilevare l’avvenuta collisione;
- le stazioni in ascolto, riconoscendo il frammento di collisione costituito dalla parte di pacchetto trasmessa più la sequenza di jamming, scartano i bit ricevuti;
- la stazione trasmittente ripete il tentativo di trasmissione dopo un tempo pseudo-casuale per un numero di volte non superiore a 16.
Caratteristiche funzionali
Il metodo di accesso CSMA/CD è responsabile delle seguenti operazioni:
- trasmissione dei pacchetti: durante questa fase il MAC accetta un pacchetto dal livello superiore e fornisce una stringa seriale di bit al livello fisico per la loro trasmissione sul mezzo fisico;
- ricezione dei pacchetti: durante questa fase il MAC riceve una stringa seriale di bit dal livello fisico e fornisce il pacchetto al livello superiore. Nel caso in cui il pacchetto non sia indirizzato alla stazione ricevente (singolo o multicast), né sia un pacchetto broadcast, viene scartato;
- trasmissione in modalità differita di un pacchetto, quando il canale è occupato;
- generazione del campo FCS per i pacchetti trasmessi;
- controllo del campo FCS in ricezione: il MAC verifica che non ci siano errori nel pacchetto ricevuto confrontando il valore contenuto nel campo FCS del pacchetto ricevuto con quello calcolato localmente. In caso di errori scarta il pacchetto senza richiederne la ritrasmissione: il MAC gestisce infatti sempre un protocollo non connesso;
- spaziatura dei pacchetti: il MAC garantisce che tra due pacchetti consecutivi intercorra un lasso di tempo minimo pari al parametro che viene identificato con i nomi di Inter Frame Spacing (IFS) o Inter Packet Gap (IPG). Questo tempo serve a delimitare la fine di un pacchetto e a separarlo da quello successivo;
- rilevazione delle collisioni: il MAC interrompe la trasmissione quando rileva una collisione;
- schedulazione delle ritrasmissioni: il MAC schedula la ritrasmissione a seguito di un’avvenuta collisione dopo il periodo di tempo calcolato tramite l’algoritmo di backoff;
- jamming: il MAC trasmette un messaggio di jamming a seguito della rilevazione di una collisione e dopo aver interrotto la trasmissione del pacchetto;
- verifica della lunghezza minima del pacchetto: il MAC scarta i pacchetti ricevuti che hanno una lunghezza inferiore al valore minimo ammesso (64 byte);
- generazione del preambolo: in trasmissione il MAC prepone un preambolo al pacchetto che deve essere trasmesso;
- rimozione del preambolo: in ricezione il MAC rimuove il preambolo.
Collision domain
Come già ribadito, in una rete CSMA/CD il mezzo trasmissivo è condiviso tra tutte le stazioni che se ne contendono l’utilizzo; se aumenta il numero di stazioni connesse o la quantità di traffico aumenta di conseguenza la probabilità di collisioni, facendo diminuire l’efficienza della rete.
Per ovviare a questo problema è possibile suddividere la rete in sottoreti: in tal caso la contesa del mezzo avverrà solo tra le stazioni appartenenti alla stessa sottorete.
Ogni sottorete rappresenta un singolo collision domain.
Le stazioni separate da repeater fanno parte dello stesso collision domain, mentre fanno parte di collision domain diversi le stazioni separate da apparecchiature di rete che lavorano a livelli OSI superiori al Fisico (bridge, router o gateway) poicé sono in grado di decodificare gli indirizzi MAC e filtrare i pacchetti.