# Carrier sense multiple access with collision avoidance
## Detalles

En comunicaciones, CSMA/CA (del inglés Carrier Sense Multiple Access with Collision Avoidance) o, en español, acceso múltiple por detección de portadora y prevención de colisiones, es un protocolo de control de acceso a redes de bajo nivel que permite que múltiples estaciones utilicen un mismo medio de transmisión. Cada equipo anuncia opcionalmente su intención de transmitir antes de hacerlo para evitar colisiones entre los paquetes de datos (comúnmente en redes inalámbricas, ya que estas no cuentan con un modo práctico para transmitir y recibir simultáneamente). De esta forma, el resto de equipos de la red sabrán cuando hay colisiones y en lugar de transmitir la trama en cuanto el medio está libre, se espera un tiempo aleatorio adicional corto y solamente si, tras ese corto intervalo el medio sigue libre, se procede a la transmisión reduciendo la probabilidad de colisiones en el canal. CSMA/CA es utilizada en canales en los que por su naturaleza no se puede usar CSMA/CD. CSMA/CA se utiliza en 802.11 basada en redes inalámbricas.
Aunque CSMA/CD y CSMA/CA aseguren que un nodo va a obtener un acceso al medio no se asegura que el nodo destino esté en contacto con el nodo origen. Para solucionar este problema se ha añadido un procedimiento de saludo adicional al protocolo de la capa MAC. Este procedimiento se ha denominado protocolo de MAC inalámbrico de fundamento distribuido (DFW MAC) con el fin de que sirva para los diferentes métodos de la capa MAC.
Para enviar una trama, el equipo origen primero envía una trama corta de control de solicitud de transmisión RTS (Request To Send) mediante el método CSMA/CD o CSMA/CA. Este mensaje de control RTS contiene las direcciones de MAC del equipo origen y destino. Si el equipo destino recibe esta trama significa que está preparado para recibir una trama. Este equipo devolverá una trama de contestación: preparado para transmitir CTS (Clear To Send) o receptor ocupado (RxBUSY). Si la respuesta es afirmativa el equipo origen transmite la trama en espera (DATA). Si el equipo destino recibe correctamente el mensaje contesta con la trama de confirmación positiva ACK (ACKnowledged) y si no la recibe correctamente contesta con la trama de confirmación negativa NAK (NAKnowledged) y el equipo origen tratará de volver a enviarlo. Este procedimiento se repite un número predefinido de veces hasta conseguirse una transmisión correcta de la trama DATA.
A continuación se muestra un esquema general de este procedimiento.
Básicamente, este proceso se puede dividir en tres fases en las que el emisor:
* Escucha para ver si la red está libre.
* Transmite el dato.
* Espera un reconocimiento por parte del receptor.
Este método asegura así que el mensaje se recibe correctamente. Sin embargo, debido a las dos transmisiones, la del mensaje original y la del reconocimiento del receptor, pierde un poco de eficiencia. Este sistema incrementa el volumen de tráfico en el cable y reduce las prestaciones de la red, motivo por el que se usa poco. En redes inalámbricas, no se puede escuchar a la vez que se trasmite: no pueden detectarse colisiones.

## Problemas que resuelve CSMA/CA (con respecto a CSMA/CD)

Nodos ocultos: Una estación cree que el canal está libre, pero en realidad está ocupado por otro nodo al que no escucha.
Nodos expuestos: Una estación cree que el canal está ocupado, pero en realidad está libre pues el nodo al que escucha no le interferiría.

## Ejemplo

Supongamos tres nodos "A,B,C" donde el radio de acción de A, le permite ver a B pero no a C, y C puede ver a B, pero no a A.
A---B---C
Si A quiere transmitir, genera una trama especial de solicitud (RTS) hacia B. Recibida dicha trama en B, esta responde con una trama de autorización (CTS) hacia A. La trama de autorización no solo llega a A, sino a todas las estaciones que se encuentran en el radio de acción de B (en este caso llegaría también a C). Así todas las estaciones permanecerán sin transmitir. Una vez llega la trama de confirmación a A, ésta podrá transmitir sin que se produzcan colisiones.
Este esquema RTS-CTS se conoce como sondeo de portadora virtual.