En comunicaciones, CSMA/CD (del inglés Carrier Sense Multiple Access with Collision Detection) o, en español, acceso múltiple con escucha de portadora y detección de colisiones, es un algoritmo de acceso al medio compartido. Su uso está especialmente extendido en redes Ethernet donde es empleado para mejorar sus prestaciones. En CSMA/CD, los dispositivos de red escuchan el medio antes de transmitir, es decir, es necesario determinar si el canal y sus recursos se encuentran disponibles para realizar una transmisión. Además, mejora el rendimiento de CSMA finalizando el envío cuando se ha detectado una colisión.
Una red en donde los equipos pueden transmitir de forma simultánea varios paquetes es propensa a sufrir colisiones que generan, en el mejor de los casos, retardos en la entrega de estos paquetes y, en otros, la pérdida de información. Para evitar estas situaciones se desarrollaron las técnicas de control de acceso al medio.
Las bajas prestaciones de los primeros mecanismos empleados: Aloha y Aloha ranurado, provocaron la aparición de nuevas técnicas encaminadas a la gestión más eficiente de los recursos de una red, dando lugar al algoritmo CSMA y posteriormente a su evolución CSMA/CD (CSMA con detección de colisiones).
El siguiente procedimiento se usa para iniciar una transmisión. El procedimiento se completa cuando la trama se transmite con éxito o se detecta una colisión durante la transmisión.
El siguiente procedimiento se usa para resolver una colisión detectada. El procedimiento se completa cuando se inicia la retransmisión o se cancela la retransmisión debido a numerosas colisiones.
Los métodos para la detección de colisiones dependen de los medios. En un bus eléctrico compartido, como 10BASE5 o 10BASE2, las colisiones se pueden detectar comparando los datos transmitidos con los datos recibidos o reconociendo una amplitud de señal superior a la normal en el bus. En todos los demás medios, una portadora detectada en el canal de recepción mientras se transmite desencadena un evento de colisión. Los repetidores o concentradores detectan colisiones por sí mismos y propagan señales de atasco.
El procedimiento de recuperación de colisión se puede comparar con lo que sucede en una cena, donde todos los invitados hablan entre sí a través de un medio común (el aire). Antes de hablar, cada invitado educadamente espera que termine el orador actual. Si dos invitados comienzan a hablar al mismo tiempo, ambos se detienen y esperan periodos de tiempo cortos y aleatorios (en Ethernet, este tiempo se mide en microsegundos). La esperanza es que al elegir un período de tiempo aleatorio, ambos invitados no elijan el mismo momento para tratar de hablar nuevamente, evitando así otra colisión.
La trama empleada en CSMA/CD está formada por ocho campos:
El algoritmo CSMA/CD puede estar basado en cualquiera de los siguientes procedimientos:
Habitualmente suele ser utilizado el algoritmo 1-persistente, pues es empleado en el estándar IEEE_802.3.
En CSMA/CD, cada estación que desea transmitir debe realizar una escucha del medio –detección de portadora– para comprobar si este se encuentra libre, es decir, para comprobar que ninguna otra estación está en ese instante transmitiendo un mensaje. Si el medio se encuentra libre entonces tiene lugar dicha transmisión. Aun así, puede ocurrir que varias estaciones tengan mensajes para enviar y que comiencen a transmitir una trama en el mismo instante. Cuando esto se sucede, se dice que ha ocurrido una colisión en la red. La estación que ha detectado la colisión procederá a enviar un mensaje de jam de 32 bits al resto de estaciones para notificar dicho evento. Una vez que todas las estaciones han sido notificadas, automáticamente se paran todas las transmisiones y se ejecuta un algoritmo de backoff (o de postergación) que consiste en esperar un tiempo aleatorio (backoff) antes de volver a intentar la transmisión. Durante los 10 primeros intentos el valor medio del tiempo de espera se duplica mientras que durante los 6 siguientes intentos adicionales, se mantiene. Tras 16 intentos fallidos, el algoritmo notificará un error a las capas superiores.
En las redes inalámbricas proceder a la escucha del medio y por lo tanto detectar las colisiones producidas, puede resultar complicado. Esto se manifiesta en dos problemáticas:
Estos problemas fueron resueltos con la implementación del algoritmo CSMA/CA (MultiAccess Collision Avoidance)
CSMA/CD puede encontrarse en alguno de los siguientes estados:
El período de contienda se encuentra formado por ranuras de longitud 2τ y será el tiempo que una estación tardará en darse cuenta de que su trama colisionó: si una estación A comienza a transmitir en el instante t0, la señal tardará un tiempo τ (tiempo de transmisión de la trama) en llegar a la estación más alejada de ella (llamémosla B). Ahora bien, B podrá comenzar a transmitir hasta un instante antes de que la señal de A llegue; si lo hace inmediatamente luego se dará cuenta de que hubo una colisión y abortará su transmisión. Sin embargo, el "ruido" causado por la colisión no llegará hasta la estación A hasta un tiempo igual al doble de propagación de la señal entre A y B, es decir, 2τ. Esto implica que una estación no pueda estar segura de que obtuvo el canal sino hasta haber transmitido durante 2τ sin tener una colisión.
Teniendo en cuento lo anterior, algunos de los parámetros de CSMA/CD quedan definidos como:
CSMA/CD fue usado en las -ahora obsoletas- variantes de Ethernet 10BASE5 y 10BASE2. Actualmente las modernas redes Ethernet construidas con switches y conexiones full-duplex lo mantienen como modo de retrocompatibilidad.
Escribe un comentario o lo que quieras sobre CSMA/CD (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)