# CSMA/CA

In telecomunicazioni CSMA/CA (acronimo inglese di Carrier Sense Multiple Access with Collision Avoidance, ovvero Accesso Multiplo tramite Rilevamento della Portante con Evitamento delle Collisioni) è un protocollo di accesso multiplo che utilizza il rilevamento della portante ma in cui i nodi tentano di evitare a priori il verificarsi di collisioni. Una volta iniziata, la trasmissione prosegue fino al termine del pacchetto.
È di particolare importanza nei casi in cui il rilevamento delle collisioni non è realizzabile (o la cui eventuale realizzazione non sarebbe affidabile), come avviene in pratica nel campo delle reti senza fili. Infatti, oltre all'esistenza del problema dei nodi nascosti, il ricevitore radio di un nodo in una rete senza fili non può rilevare in modo affidabile eventuali trasmissioni provenienti da altri nodi mentre il relativo trasmettitore è attivo.
Il protocollo CSMA/CA è comunemente adottato come algoritmo di accesso multiplo, secondo varianti implementative differenti, negli standard IEEE 802.11 e IEEE 802.15.4.

## Il CSMA/CA nello standard IEEE 802.11

Nel momento in cui una stazione vorrebbe tentare una trasmissione, essa ascolta il canale (Listen-before-Transmit). Se il canale risulta libero (idle) la stazione attende per un certo lasso di tempo identificato come DIFS (Distributed Inter Frame Space) trascorso il quale, se il canale continua ad essere libero, la stazione inizia la trasmissione del pacchetto. A trasmissione completata il nodo di trasmissione attende per un tempo detto SIFS (Short Inter Frame Space, di durata inferiore al DIFS) la ricezione di un ACK che conferma dell'avvenuta ricezione da parte della stazione ricevente.
Durante la trasmissione dello SIFS le altre stazioni, trovando il canale occupato, non invieranno trasmissioni, evitando in tal modo collisioni (la durata del SIFS inferiore a quella del DIFS assicura che nessuna stazione inizi a trasmettere prima della ricezione dell'eventuale ACK).
Qualora, invece, la stazione trasmittente rilevi il canale occupato oppure si siano verificate delle prenotazioni da parte di altre stazioni, la stazione attende per una durata casuale (detto tempo di backoff) che il canale si liberi. Questa attesa è implementata per mezzo di un timer che viene decrementato solo durante i periodi di inattività del canale, mentre viene invece congelato (frozen backoff) durante i restanti periodi di trasmissione sul canale da parte di altre stazioni. Quando il timer raggiunge lo zero la stazione effettua un nuovo tentativo di trasmissione: questa tipologia di accesso è detta Accesso Base.

### Intervallo di back-off

In IEEE 802.11 l'intervallo di tempo casuale CW di back-off estratto è limitato dalla seguente disuguaglianza:
$\ 0<CW<2^{N}(CW_{m}+1)-1$
con CW (Collision Window) compresa tra un valore minimo (CW_min) ed un valore massimo (CW_max) ed N numero progressivo di tentativo di trasmissione (retry).
L'obiettivo di Collision Avoidance si ottiene dunque per via statistica (e non deterministica) proprio grazie all'estrazione del numero casuale compreso in questo intervallo di tempo, data la scarsa probabilità che due o più stazioni estraggano lo stesso numero di back-off, che è tanto minore quanto maggiore è l'intervallo possibile di estrazione, il quale aumenta a sua volta all'aumentare del numero N di tentativi di ritrasmissione. Le comunicazioni di servizio sono state effettuate durante le perquisizioni della sorgente

### Accesso RTS/CTS

Spesso il protocollo CSMA/CA è usato congiuntamente alla tecnica RTS/CTS (prenotazione del canale) per affrontare il problema del cosiddetto terminale nascosto, ovvero il fatto che una stazione A che trasmette verso una stazione B può non essere in grado (ad esempio a causa della distanza) di rilevare una stazione C anch'essa impegnata in una comunicazione con B, generando così collisioni in ricezione su B.

## Il CSMA/CA nello standard IEEE 802.15.4

Lo standard IEEE 802.15.4 è stato concepito a supporto di reti wireless a corto raggio (WPAN), basso rate e ridotti consumi energetici. Questi requisiti non possono essere soddisfatti dall'algoritmo CSMA/CA implementato nello standard IEEE 802.11, poiché quest'ultimo non è stato ottimizzato per gli stessi obiettivi. Infatti, nelle reti WiFi, le stazioni interessate ad accedere al canale devono eseguire l'operazione di Carrier Sensing durante l'intervallo di backoff (oltre che nel DIFS) prima di poter trasmettere. Questo comporta un elevato dispendio di energia, visto che le operazioni di sensing causano elevati consumi, paragonabili a quelli che si ottengono in trasmissione. Pertanto, nello standard IEEE 802.15.4, non è prevista alcuna operazione di sensing del canale durante l'intervallo backoff, lasciando che, al suo scadere, i nodi interessati a trasmettere eseguano il carrier sensing per un breve intervallo di tempo pari a due time-slot (procedura di Clear Channel Assessment, CCA).