Articolo di proprietà del sito d'informazione AreaNetworking.IT - http://www.areanetworking.it
CSMA, acronimo di Carrier Sense Multiple Access (accesso multiplo tramite rilevamento della portante), è un protocollo usato nelle reti di tipologia bus per condividere la disponibilità di rete ed evitare la trasmissione contemporanea di due host.
In una LAN, due host prima di inizializzare la trasmissione di dati, devono verificare che nel cavo non vi sia la presenza della portante (Carrier Sense) e che quindi non vi siano già trasmissioni in corso. Nel caso il canale sia libero la trasmissione puo' iniziare altrimenti si aspetterà un tempo arbitrario.
CSMA non è comunque in grado di evitare conflitti. Può accadere infatti che i due host trovino la rete libera proprio nello stesso tempo e che quindi inizino entrambi la trasmissione. A causa di questo si verificano delle collisioni, ovvero i dati interferiscono tra di loro quando si incontrano nello stesso punto del cavo causando quindi la scorretta ricezione di loro stessi.
Per questo motivo, al protocollo CSMA, è stato affiancato CD (Collision Detection). In una rete quindi che utilizza questo protocollo (CSMA/CD, IEEE 802.3), ogni host che deve mandare dei dati controlla preventivamente che non ci siano trasferimenti in corso. Dopo di che prova a trasmettere. Se rileva delle collisioni interrompe subito la trasmissione, manda un segnale di disturbo a tutti in modo da segnalare la presenza di una avvenuta collisione e riprova dopo un tempo arbitrario. In caso contrario la trasmissione continua.
Oltre a CSMA/CD, un'altra evoluzione del CSMA è il CSMA/CA, (Collision Avoidance) utilizzato dalle reti wireless (IEEE 802.11b). La particolarità di questo tipo di reti è l'incapacità di garantire che tutti gli host possano raggiungersi a vicenda in ogni momento. E' quindi impossibile rilevare le collisioni e usare di conseguenza il CSMA/CD (Lo standard 802.11b infatti prevede la modalità half-duplex. Significa quindi che la operazioni di ricezione e trasmissione non possono essere eseguite contemporaneamente a differenza del CSMA/CD, IEEE 802.3 full duplex). Il CSMA/CA cerca di evitare le collisioni (Avoidance) o comunque di ridurne le possibilità. Ogni host prima di inizializzare effettivamente la trasmissione, avvisa il destinatario il quale se risponderà affermativamente (con un pacchetto ACK) darà il via alla comunicazione. In caso contrario, il mittente riproverà dopo un tempo arbitrario.