Il protocollo CSMA/CD

Argomento trattato in molti manuali della materia ma che riassumiamo con qualche pillola in più.

Il Protocollo CSMA/CD

Quando le prime LAN cominciarono a diffondersi negli anni ’70 (ad esempio 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 numero progressivo per i vari standard contemplati(802.3 per il CSMA/CD, 802.4 per il Token Bus, 802.5 per il Token Ring, 802.3u 100BaseT o il 802.11 per il Wireless network etc.). Altri standard non regolamentati dallo IEEE come il Bluetooth o il LoRa non hanno un numero 802.qualcosa perché standardizzati da un gruppo di operatori e produttori hardware interessati commercialmente a quella tecnologia.

Il progetto IEEE 802 introduce l’idea che, indipendentemente dalla tecnologia trasmissiva utilizzata (abbiamo visto in queste pagine cavi in rame, fibra ecc), 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 e agisce da ponte (Bridge), 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 nel paragrafo 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, cioè tutti verso tutti, dovendo far condividere un unico canale trasmissivo a tutti i sistemi. Ciò impone la soluzione di due problemi:

  1. in trasmissione, verificare che il canale sia libero prima di trasmettere e risolvere eventuali conflitti di più sistemi che vogliano utilizzare contemporaneamente il canale;
  2. in ricezione, determinare a quali dispositivi/pc è 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 a 48bit o 6 coppie esadecimali che identificano come un marchio a caldo la scheda di rete).

 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:

  1. carrier sense (rilevazione della portante ovvero): ogni stazione che deve trasmettere ascolta il bus e decide di trasmettere solo se questo è libero (listen before talking);
  2. 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;
  3. 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.

L’algoritmo per mandare una unità informativa, un datagramma alla volta, è semplice ma efficace. Lo riassume la seguente immagine.

Come avviene una collisione

La collisione in una rete LAN non è un evento raro. Nonostante questo, l’algoritmo visto rimane la soluzione migliore per la gestione del canale. Ma come si innescano le collisioni se le varie postazioni ascoltano il canale prima di inviare i loro dati? Facciamo un esempio estremo ma che ci aiuta a capire meglio. Partiamo da un assunto fisico: il segnale trasmesso sul nostro mezzo, un cavo ethernet, è un segnale elettrico, vincolato perciò ai parametri della natura del segnale e del mezzo in cui viene propagato.

I dati in rete, però, non vengono inviati nel vuoto alla velocità della luce, 300.000 km/s. Sono vincolati alle condizioni fisiche del mezzo di trasmissione. Grazie al calcolo della“Nominal Velocity of Propagation” (NVP), si indica la percentuale di velocità della luce che viene raggiunta nel mezzo. I cavi a doppino intrecciato, tipici delle reti LAN, hanno un valore NVP di 0,6. I dati possono, dunque, raggiungere una velocità di 180.000 km/s (circa 60% della velocità della luce). Per quanto ci sembri un numero consistente, così non è quando a ragionare sono dispositivi che ragionano e lavorano nell’ordine del millisecondo. Se le due postazioni sono molto distanti, la probabilità di collisione aumenta ma è un disturbo che si genera anche su reti più corte. Diciamo che la collisione è un disturbo calcolato e le tecniche messe in campo permettono di non perdere dati.

La velocità di trasmissione, però, diminuisce all’aumentare delle collisioni. Un numero eccessivo di postazioni in un dominio di collisione aumenta il numero di collisioni e, quindi, il numero di rallentamenti. Nei casi più gravi è possibile che venga raggiunto anche solo il 30% della velocità effettiva. Ecco perché conviene diminuire l’entità dei domini di collisione utilizzando dispositivi come switch o router.

CSMA/CD vs CSMA/CA

Oltre all’estensione di Carrier Sense Multiple Access con Collision Detection, l’accesso al mezzo può anche essere realizzato anche con CSMA/CA. Questo è particolarmente indicato nelle connessioni senza fili, wireless. Il CSMA/CD non funziona correttamente nelle reti wireless per diversi motivi. Il problema principale è posto dalla stazione nascosta. Questo si verifica quando due stazioni non si percepiscono a vicenda poiché magari molto distanti e agli antipodi rispetto al fulcro centrale dell’access point con cui comunicano, il che porta inevitabilmente a collisioni.

Il CSMA/CA, come suggerisce il nome, cerca di evitare collisioni invece di limitarsi a riconoscerle adattando l’algoritmo visto precedentemente al mezzo di trasmissione. Banalizziamo: per evitare le collisioni occorre semplicemente più tempo! La stazione che trova il canale libero, potrebbe infatti parlare, ma non lo fa e attende una ulteriore frazione di tempo casuale per assicurarsi che non ci sia una seconda onda propagata da una stazione nascosta. Va da se che la rete lan basata su wireless è molto comoda per l’assenza dei fili, ma le prestazioni non possono essere che peggiori rispetto ad una rete cablata con CSMA/CD. Le prestazioni decadono irrimediabilmente quando le postazioni connesse aumentano poiché i tempi di attesa già doppi aumentano vertiginosamente. Ecco perché non conviene mai fai un lan party wireless o di certo non potremo aspettarci prestazioni da urlo nelle nostre video conferenze se mentre siamo collegati col wifi di casa, sono collegati in modo analogo altri familiari.

Ultima modifica 22 Febbraio 2022