CSMA/CD
In telecomunicazioni CSMA/CD (acronimo inglese di Carrier Sense Multiple Access with Collision Detection, ovvero accesso multiplo tramite rilevamento della portante con rilevamento delle collisioni) è un protocollo di accesso multiplo evoluzione del protocollo di livello MAC CSMA e nato per la risoluzione dei conflitti di trasmissione, ovvero collisioni, dovuti al CSMA puro.
Descrizione
Il protocollo implementa la direttiva: "Ascolta prima di trasmettere e mentre trasmetti. Se mentre trasmetti rilevi collisioni, fermati, segnala a tutte le altre stazioni la collisione e riprova più tardi secondo modalità di ritrasmissione stabilite."
L'algoritmo è dunque il seguente:
- L'adattatore sistema il frame da trasmettere in un buffer;
- Se il canale è inattivo (idle) si procede alla trasmissione, se è occupato (busy) si attende prima di ritrasmettere;
- Durante l'intera trasmissione l'adattatore monitora la rete (è questo il vero e proprio Collision Detection): se non riceve segnali da altri adattatori considera il frame spedito. Il segnale che valuta l'eventuale collisione o meno si ricava confrontando il segnale ricevuto con quello trasmesso: se i due differiscono è avvenuta una collisione;
- Se l'adattatore riceve, durante una trasmissione, un segnale da un altro adattatore, arresta la trasmissione e trasmette un segnale di disturbo (jamming signal) di 48 bit che avverte le altre stazioni dell'avvenuta collisione bloccandone la contemporanea trasmissione;
- Dopo aver abortito la trasmissione le stazioni trasmittenti applicano ciascuna un algoritmo di subentro attendendo in maniera esponenziale il tempo per la ritrasmissione (algoritmo di backoff esponenziale binario).
L'attesa esponenziale funziona in questo modo: gli adattatori di ciascuna stazione aspettano un tempo casuale entro un valore massimo d (il protocollo che usa il CSMA/CD, ad esempio Ethernet, fissa tale valore). Se si genera una nuova collisione il valore d viene raddoppiato, così fino a che questo risulti sufficientemente grande da non produrre collisioni. Questa tecnica viene chiamata recessione binaria esponenziale ed avviene perché tutti gli altri adattatori che sono contemporaneamente in attesa potrebbero simultaneamente tentare di ritrasmettere generando nuove collisioni, da cui appunto la necessità di estendere il tempo massimo di subentro.
Applicazioni
È utilizzato con il protocollo Ethernet per diversi motivi:
- Il ricetrasmettitore per un cavo è di tipo Full-Duplex;
- Tutte le trasmissioni hanno la stessa intensità.
Non va bene per WLAN perché:
- Radio Full-Duplex molto costosa;
- La potenza del segnale può mascherare o essere mascherata da altri segnali;
- A causa del raggio d'azione limitato, non tutte le stazioni possono ascoltare il canale.