CSMA/CA
In telecomunicazioni CSMA/CA (acronimo inglese di Carrier Sense Multiple Access with Collision Avoidance, ovvero accesso multiplo tramite rilevamento della portante che evita collisioni) è un protocollo di accesso multiplo usato nelle reti locali senza fili come evoluzione del protocollo CSMA con ulteriori accorgimenti per ridurre le collisioni ed alternativo al più efficiente CSMA/CD, che non può però essere usato nelle reti senza fili a causa della difficoltà di realizzazione di un apparato di ricetrasmissione che possa contemporaneamente trasmettere ed ascoltare sullo stesso canale radio, cioè alla stessa frequenza portante, eventuali altri pacchetti trasmessi da altre stazioni che genererebbero dunque collisioni: il segnale in trasmissione disturberebbe notevolmente il segnale in ricezione per semplice interferenza vuoi anche per la forte attenuazione con cui quest'ultimo arriva al ricevitore. In sostanza il canale wireless è half-duplex con il sistema ricevente che in trasmissione è disabilitato da quello trasmittente e viceversa tramite un duplexer.
Descrizione
Per i motivi suddetti, dato che i sistemi wireless non possono rilevare eventuali collisioni durante la propria trasmissione, le collisioni dovranno essere in qualche modo e il più possibile evitate, da cui appunto il nome Collision Avoidance. Per ottenere ciò nel momento in cui una stazione vuole tentare una trasmissione ascolta semplicemente il canale (Listen-before-Transmit). Se il canale risulta libero (idle) attende per un certo lasso di tempo (DIFS Distribuited Inter Frame Space). Se il canale continua ad essere libero la stazione trasmette il pacchetto e successivamente attende un tempo SIFT (Short Inter Frame Space) di durata inferiore al DIFS per la ricezione di un ACK di conferma dell'avvenuta ricezione del pacchetto da parte della stazione ricevente. In tutto questo periodo di tempo le altre stazioni trovando il canale occupato non potranno trasmettere evitando così di trasmettere e produrre così collisioni (se l'ACK non può essere rilevato da una stazione nascosta, per evitare il rischio di trasmissione e quindi di collisione sull'ACK da parte di questa è possibile implementare un meccanismo di attesa da parte della stazione per un tempo almeno pari alla somma del SIFT e dell'ACK). Se il canale invece è occupato in trasmissione oppure ci sono state altre prenotazioni da parte di altre stazioni, la stazione attiva un timer di durata casuale (detto tempo di backoff) che viene decrementato solo durante i periodi di inattività del canale e "congelato" (freezed backoff) durante i restanti periodi di trasmissione sul canale da parte di tutte le altre stazioni. Quando il timer arriva a zero la stazione fa un altro tentativo di trasmissione. Tale tipologia di accesso è detta Accesso Base.
Intervallo di back-off
L'intervallo di tempo casuale t di back-off estratto è fornito dalla seguente disuguaglianza:
con CW (Collision Window) compresa tra un valore minimo ed un valore massimo e 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.
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 rivelare una stazione C anch'essa impegnata in una comunicazione con B, generando così collisioni in ricezione su B.