CSMASi dividimos un sistema de comunicación genérico en sus partes más “simples” podemos distinguir cuatro elementos: Un emisor, un receptor, un mensaje y un medio o canal para comunicarlo. Uno de los problemas que surgen desde que se establece la comunicación es el acceso al medio.

Cuando tenemos un canal de comunicación compartido entre varios usuarios o estaciones es necesario contar con un control de acceso. De este modo se evita que varias estaciones empiecen a transmitir a la vez, lo cual provoca interferencias y, probablemente, imposibilitará la comunicación. Carrier Sense Multiple Access (CSMA), es un protocolo ideado para solucionar este problema.

Carrier Sense Multiple Access permite a una estación realizar una escucha para asegurarse de que el medio está libre antes de transmitir información. En el caso de que lo esté, realiza la transmisión, y, en caso contrario, espera. El comportamiento cuando el canal está ocupado determina la “persistencia” del CSMA:

CSMA persistente o 1-persistente: intenta transmitir tan pronto como el canal quede libre
CSMA no persistente o 0-persistente: espera un tiempo aleatorio determinado por una distribución de probabilidad antes de volver a intentarlo.
• CSMA p-persistente: se comporta de forma persistente con una probabilidad p, y de forma no persistente con una probabilidad 1 – p.

Las variantes del protocolo CSMA

En general, cuando existe una gran carga, CSMA ofrece mejor rendimiento en forma no persistente. Hay dos variaciones principales de CSMA que son:

CSMA/CD – Carrier Sense Multiple Access with Collision Detection.
CSMA/CA – Collision Avoidance.

CSMA/CD es una variante que se puede usar en situaciones en las que se puede escuchar a la vez que transmitir. Esto permite detectar una interferencia e interrumpir la transmisión de inmediato, enviando previamente una señal de congestión que notifica la colisión a las demás estaciones que comparten el medio, para que esperen un tiempo antes de enviar. Una vez despejado el medio se reanuda la transmisión, permitiendo una distribución equitativa del canal, sin que ninguna estación monopolice la comunicación. Este protocolo no está tan extendido hoy en día, debido al empleo de dispositivos de nivel de enlace como switches en redes Ethernet, y al uso de otros protocolos en tipos diferentes de red.

La otra principal variante de CSMA es CSMA/CA. En este protocolo, si el medio está libre tras realizar la escucha, se espera un tiempo aleatorio adicional antes de transmitir, lo cual reduce el número de colisiones.

Estos protocolos, sin embargo, presentan sus inconvenientes, ya que no resuelven problemas como el del nodo oculto. En este caso, existen dos estaciones A y B, que no están a su alcance mutuamente, y una estación C situada en la confluencia de ambas, a la que quieren transmitir. En el caso de que B esté transmitiendo a C y A quiera hacer lo mismo, si usa en protocolo CSMA, comprobará el medio y no detectará a B, con lo cual, entenderá que el medio está libre y transmitirá. Esto produce interferencias en la zona de confluencia de ambas estaciones.

Otros protocolos alternativos

MACA (Multiple Access with Collision Avoidance) es un protocolo que que soluciona este problema mediante el envío de tramas adicionales: un “Requestto Send” (RTS) por parte del emisor, y la respuesta del receptor con un “Clear to Send” (CTS). Después se empieza a transmitir. Evoluciones sobre el propio MACA, como el MACAW, solucionan problemas del mismo tipo añadiendo mejoras como el envío de confirmaciones ACK por parte del receptor al recibir las tramas de datos. Actualmente, en el estándar IEEE 802.11, que define lo comúnmente conocido como Wi-Fi, se emplea una combinación de CSMA/CA con MACAW.

Existen más protocolos de acceso al medio como ALOHA y sus variantes, y métodos basados en paso de token o en el sistema maestro/esclavo usado por ejemplo en Bluetooth (IEEE 802.15). Sin embargo, CSMA está adquiriendo especial importancia dado el uso masivo de las redes Wi-Fi entre todos los usuarios.


Sobre el autor

Cristian Garcia
Cristian Garcia
Ingeniero Informático en el departamento de I+D de Teldat. Dentro de dicho departamento trabaja como desarrollador de software.

Comparte este post


Nuestras Soluciones Relevantes



| Etiquetas: