Il Sublayer MAC

Lezione 7 - Il sublayer MAC del livello data link.

Dopo aver introdotto il livello data link è doverso parlare dei suoi due sottolivelli: i sublayer MAC e LLC.

Non dilunghiamoci in ulteriori chiacchiere e proseguiamo.

Sublayer MAC

Il sottolivello MAC (Medium Access Control) è partciolarmente utile per le LAN wireless che, per loro natura, sono canali broadcast. Lo scopo del sublayer MAC, infatti, è decidere chi è il prossimo a parlare.

Allocazione dei canali

Nelle comunicazioni wireless uno dei maggiori problemi è decidere come allocare un singolo canale broardcast se ci sono più utenti. Il metodo più semplice è farlo in modo statico, assegnando ad ogni host un canale riservato.

Questo, però, porta a degli sprechi, perché gli host non sono sempre in fase di trasmissione o ricezione. Insomma, così “rubano” la banda ai dispositivi che ne avrebbero davvero bisogno.

Per superare questo limite si usa l'allocazione dinamica. Questa tecnica, come suggerisce il nome, dà il canale agli host che ne hanno bisogno. Risulta più complicata sia da progettare che da gestire rispetto all’allocazione statica.

Protocolli

Nel corso degli anni sono stati progettati diversi protocolli per gestire l’accesso multiplo alle reti condivise.

Aloha

Il primo, storicamente, è il protocollo Aloha. Si chiama così perché venne inventato all’Università delle Hawaii: essendo dislocata sulle diverse isole dell’arcipelago le diverse sedi dovettero trovare un modo per comunicare.

Il protocollo Aloha, perciò, è stato ideato per permettere la comunicazione senza cavi tra i vari distaccamenti.

Vediamo, quindi, come funziona l’algoritmo alla sua base:

  1. Se la stazione ha qualcosa da trasmettere allora lo trasmette immediatamente.
  2. Mentre trasmette, ascolta il canale. Ascoltare il canale significa rilevare la potenza di trasmissione.
  3. Se c’è collisione, ossia se la potenza rilevata è maggiore della potenza emessa, la stazione estrae un tempo casuale e, dopo aver terminato la trasmissione, aspetta. Poi, torna a trasmettere.

La trasmissione non si poteva interrompere in caso di collisione. Ciò è dovuto al fatto che mancava il supporto hardware da parte dei calcolatori per poter permettere un simile comportamento.

A causa delle sue stesse caratteristiche, Aloha ha un'efficienza particolarmente bassa: nel caso ottimo è del 19%. All’aumentare del numero di trasmissione, inoltre, il numero di trasmissioni che si concludono con successo si abbassa, tendendo a 0.

Slotted Aloha

Per migliorare l’efficienza di Aloha è stato introdotto il protocollo slotted Aloha. In questa variante il tempo è suddiviso in slot (intervalli) di durata T (tempo di trasmissione della trama più grande).

Una stazione può trasmettere soltanto all’inizio di uno slot. Si rivela quindi necessario sincronizzare le stazioni, affinché sappiano con una buona precisione quando inizia lo slot. La sincronizzazione è compito di una stazione che genera i segnali di BEACON.

In caso di collisione, l’host estrae casualmente il numero di slot che attenderà prima di tentare la ritrasmissione. Grazie a queste migliorie, l’efficienza venne raddoppiata: passò dal 19% al 38%, sempre nel caso ottimale.

CSMA

La “svolta”, tuttavia, è arrivata con gli algoritmi della famiglia CSMA (Carrier Sense Multiple Access). La versione più semplice è denominata, semplicemente, CSMA. La vediamo di seguito:

  1. Se una stazione ha qualcosa da trasmettere, ascolta il canale
  2. Se il canale è libero trasmette la trama. Altrimenti, aspetta che il canale si liberi e poi trasmette.
  3. Se c’è collisione estrae un tempo casuale, attende e torna al punto 1.

Anche se i tempi estratti da due stazioni in seguito ad una collisione sono molto simili la probabilità di incorrere in una nuova collisione è relativamente bassa. L’importante è che una stazione non inizi a trasmettere mentre un’altra ha appena iniziato.

Il segnale, che è composto da onde elettromagnetiche, impiega un certo tempo, detto tempo di propagazione, per raggiungere un’altra stazione. Questo vincolo fisico è ciò che può portare ad una collisione: una stazione potrebbe sentire il canale libero perché il segnale di un altro host deve ancora raggiungerla.

Varianti di CSMA

La versione di CSMA appena illustrata si chiama persistent. Ne esistono delle altre.

CSMA non-persistent

L’algoritmo alla base di CSMA non-persistent modifica il punto 2 dell’algoritmo poc’anzi descritto:

  1. Se una stazione ha qualcosa da trasmettere, ascolta il canale
  2. Se il canale è libero trasmette la trama. Altrimenti, estrae un tempo casuale e riparte dal punto 1.
  3. Se c’è collisione estrae un tempo casuale, attende e torna al punto 1.

Questa tecnica introduce uno svantaggio: il ritardo per la trasmissione aumenta.

CSMA p-persistent

Viene quindi in soccorso la variante detta CSMA p-persistent. Vediamone subito l’algoritmo alla base:

  1. Se una stazione ha qualcosa da trasmettere, ascolta il canale
  2. Se il canale è libero trasmette la trama. Altrimenti, aspetta che il canale si liberi; quando è libero, con probabilità p trasmette e con probabilità 1 - p rimanda la trasmissione al prossimo slot.
  3. Se c’è collisione estrae un tempo casuale, attende e torna al punto 1.

CSMA p-persistent introduce il concetto di “slot”, così come Slotted Aloha rispetto alla versione classica di Aloha.

CSMA/CD

Tutte le varianti di CSMA che abbiamo visto modificano il secondo punto dell’algoritmo di base di CSMA. Adesso, invece, vediamo un’ulteriore variazione che, tuttavia, agisce sul terzo step. Proprio per questo motivo può essere combinata con quelle descritte in precedenza.

Questa versione si chiama CSMA/CD, in cui “CD” sta per Collision Detection (identificazione delle collisioni):

  1. Se una stazione ha qualcosa da trasmettere, ascolta il canale
  2. Se il canale è libero trasmette la trama. Altrimenti, aspetta che il canale si liberi e poi trasmette.
  3. Se c’è collisione interrompe subito la trasmissione, estrae un tempo casuale, attende e torna al punto 1.

Di seguito ti propongo un grafico riassuntivo che ti dovrebbe aiutare a visualizzare le differenze nell’efficienza tra i vari algoritmi che ti ho proposto.

Efficienza degli algoritmi di framing

Si tratta di un grafico qualitativo: serve solo per darti un’idea, ma non è particolarmente accurato.

Il terminale nascosto

Finora abbiamo assunto di operare su reti cablate. Tuttavia, come sai, la maggior parte degli utenti (in particolare domestici) ad oggi utilizza reti wireless. Ebbene, in questo caso sorge un ulteriore problema (non ne avevamo già abbastanza…).

Il problema in questione è noto come “problema del terminale nascosto”. I dispositivi tipicamente si connettono agli Access Point (AP), sparsi strategicamente negli edifici e collegati tra loro via cavo.

Nelle reti wireless non tutti i dispositivi si “sentono” a vicenda. Un dispositivo, chiamiamolo A, potrebbe voler trasmettere a B. Allo stesso modo, anche C vorrebbe farlo. Se A non si trova nel raggio d’azione di C (e viceversa), però, potrebbero trasmettere contemporaneamente a B.

Il risultato? I rispettivi pacchetti colliderebbero e B li dovrebbe scartare. Insomma, un bel problema per le prestazioni.

Multiple Access with Collision Avoidance

Per risolvere questo problema è stato inventato il protocollo Multiple Access with Collision Avoidance (MACA). Quando un dispositivo, chiamiamolo ancora A, vuole trasmettere ad un altro passa sempre per l’Access Point.

L’Access Point può quindi gestire la comunicazione. Come? Vengono introdotti due messaggi speciali, detti Request To Send (RTS) e Clear To Send (CTS). Quando A vuole trasmettere qualcosa invia, prima, un RTS. L’AP, se non sente alcuna trasmissione, invia un CTS.

Il CTS viene ricevuto da tutti i dispositivi, ma solo A lo utilizza: gli altri, non avendo richiesto alcun permesso, lo scartano. A può quindi trasmettere senza alcun rischio derivante da “terminali nascosti”.

MAC Address

Come altri layer, anche il livello data link usa degli indirizzi per identificare dei dispositivi. Più precisamente, si usa un MAC Address, che è un indirizzo di 48 bit unico al mondo assegnato alla singola scheda di rete.

In realtà, non è sicuramente univoco: un produttore potrebbe decidere di ri-assegnarlo, magari a distanza di anni e a una scheda dedicata ad un mercato geografico differente. Un indirizzo MAC deve essere unico all’interno dello stesso dominio di broadcast.

Può essere quindi ripetuto in altre reti; ciononostante, a livello “teorico” vengono considerati come univoci.

Il sublayer MAC

Sebbene ci siano moltissimi concetti legati al sottolivello MAC, in questa parte del corso ne ho elencato i principali e più importanti. In futuro vedremo altre caratteristiche.

La prossima volta, invece, proseguiremo con il sublayer LLC. Buon proseguimento!