CSMA/CD: protocolo de transmisión anticolisiones

En una red Ethernet local todos los participantes de la red suelen compartir un medio de transmisión común: un cable. Este medio compartido debe regularse para evitar el caos durante la transmisión de datos, algo que a su vez podría conducir a la pérdida o deterioro de los mismos. En este contexto, el CSMA/CD ofrece un procedimiento que organiza de forma adecuada la transmisión de datos.

Esta tecnología no sirve en el caso de una WLAN. Por eso, se ha desarrollado una variante del procedimiento llamada CSMA/CA. El CSMA/CD se ha sustituido en la mayoría de las redes por cable, ya que hoy en día existen nuevas tecnologías por cable que ofrecen distintas posibilidades. Sin embargo, es útil entender cómo funciona este antiguo procedimiento.

¿Qué es el CSMA/CD?

CSMA/CD procede del inglés Carrier sense multiple access / Collision detection. La detección de colisiones (CD) es una mejora del protocolo CSMA. Este algoritmo crea un procedimiento que regula la forma en la que debe producirse la comunicación dentro de una red con un medio de transmisión compartido. La mejora introducida regula además cómo proceder en caso de colisiones, es decir, cuando dos o más participantes intentan enviar paquetes de datos simultáneamente a través del medio de transmisión (Bus) y estos interfieren entre sí.

Definición

Para entender el funcionamiento del CSMA/CD resulta muy útil analizar los componentes individuales del término:

Carrier Sense (CS): la detección del estado de portadora controla que todos los participantes de la red comprueben que el medio está realmente libre. Solo entonces el protocolo inicia una transmisión de datos.

Multiple Access (MA): el acceso múltiple hace referencia a varios participantes (ordenadores conectados a la red) que comparten un medio de transmisión.

Detección de colisiones (CD): la detección de colisiones es una mejora del protocolo original y regula cómo proceder en caso de colisión de paquetes de datos.

Cómo funciona CSMA/CD

El protocolo CSMA/CD se subdivide en varios pasos. La operación se suele comparar con el comportamiento de un grupo de personas que conversan de manera respetuosa: para que se puedan comunicar adecuadamente, es necesario que no todos los participantes hablen a la vez, sino uno tras otro, de manera que todos puedan comprender plenamente las contribuciones de los demás a la conversación. De forma natural, en una conversación de este tipo nos comportamos conforme a un protocolo: cuando otra persona está hablando, nosotros solamente escuchamos.

Una vez que el interlocutor ha terminado su contribución por el momento, aguardamos un tiempo antes de empezar a hablar para asegurarnos de que este u otro interlocutor no va a iniciar una nueva contribución. Si accidentalmente empezamos a hablar al mismo tiempo que otra persona, dejamos de intentarlo y aguardamos de nuevo antes de volver a empezar otra vez.

El protocolo CSMA/CD se basa también en un procedimiento muy similar. Primero, la estación examina el medio de transmisión. Mientras el medio esté ocupado, la estación sigue examinándolo. Solo cuando el medio se queda libre, la estación envía un paquete de datos durante un cierto tiempo (conocido como “espacio entre tramas”). Mientras tanto, el transmisor continúa examinando el medio para detectar colisiones. Si ninguna otra estación ha intentado enviar sus datos a través del medio compartido antes del final de la transmisión, es decir, cuando no se produce ninguna colisión, la transmisión se realiza correctamente.

Hecho

Las colisiones generan un desplazamiento de tensión continua en el cable. De esta manera, las estaciones también pueden detectar las colisiones.

En cambio, cuando se detecta una colisión, la estación que la detecta interrumpe de inmediato la transmisión y en su lugar envía una señal de interferencia (señal JAM), que informa a todas las estaciones de la red de dicha colisión. La estación espera un tiempo aleatorio (Backoff) y vuelve a intentar la transmisión. El Backoff debe ser aleatorio para que no se produzca de inmediato una segunda colisión. Puesto que las dos estaciones seleccionan un valor aleatorio, la probabilidad de que ambas estaciones inicien un intento de transmisión al mismo tiempo es baja.

Se cuenta el número de intentos de retransmisión. Si los siguientes intentos siguen fallando y se alcanza el número máximo de intentos (16), la estación notifica el error a la capa de red superior e interrumpe la transmisión de forma permanente. Puesto que es muy poco probable que una estación alcance el número máximo de intentos durante un proceso normal, si esto ocurre se interpreta que se ha producido un error en el sistema.

Hecho

El mecanismo de control de congestión para redes Ethernet Binary Exponential Backoff se utiliza para intentar reducir las colisiones permanentes. Antes de poder intentar una nueva transmisión tras una colisión, la estación tiene que esperar un tiempo. Este período de tiempo es siempre un múltiplo aleatorio del llamado tiempo en slots. El tiempo en slots depende de la velocidad de transmisión y se expresa en microsegundos. El rango de posibles múltiplos se duplica con cada intento fallido, de modo que la probabilidad de una transmisión simultánea se reduce exponencialmente.

Colisiones

Para detectar si se va a producir una colisión, la estación comprueba si la señal transmitida es idéntica a la del medio de transmisión. Si no fuera así, otra estación transmitiría al mismo tiempo, distorsionando así la señal del Bus. Estas colisiones ocurren con frecuencia y forman parte del funcionamiento normal de una red de área local (LAN). A medida que una red aumenta de tamaño, aumenta también la probabilidad de que se produzcan colisiones. En este caso, el tamaño se refiere no solo al número de estaciones, sino también a la longitud de los medios de transmisión.

Debido a las largas colas, aumentan las probabilidades de que una estación haya enviado una señal pero que esta no haya sido detectada por otra estación. Esto, a su vez, se traduce en más colisiones y ralentiza la red en su conjunto.

¿Qué es un dominio de colisión?

Un dominio de colisión es un segmento físico de una red en el que las estaciones comparten un medio de transmisión. Las estaciones obtienen acceso mediante CSMA/CD. Sin embargo, el dominio de colisión no puede superar un cierto tamaño: no es posible ampliar arbitrariamente las redes si se quiere garantizar la eficacia del procedimiento de colisión. El motivo lo encontramos en la velocidad de la transmisión y en el camino que esta debe tomar.

Hecho

Los protocolos de red pueden dividirse en siete capas abstractas de acuerdo con el modelo de referencia OSI. La capa superior, es decir, la capa de aplicación (application layer), suministra servicios de red a las aplicaciones del usuario y en ella se produce la entrada y salida de datos. Por debajo, encontramos capas de transporte (en este nivel se encuentra, por ejemplo, el protocolo de control de transmisión o TCP) y de red (en este nivel se encuentra el protocolo de Internet). En la capa más baja (capa física o physical layer) se traducen los bits del ordenador a una señal física compatible con el medio de transmisión. También en este nivel se encuentra el dominio de colisión.

Para que el protocolo CSMA/CD funcione, los mensajes de error deben llegar a todas las estaciones en el dominio de colisión en un tiempo determinado: las tramas se ejecutan de un extremo del dominio al otro y es dentro de ese segmento físico donde pueden colisionar. La señal correspondiente debe llegar a la primera estación antes de que se realice la transmisión completa del paquete de datos. De lo contrario, la estación no reconoce que los datos transmitidos están dañados, sino que considera que la transmisión se ha producido con éxito y por tanto se perderá el paquete de datos. Estos incidentes se denominan “colisiones tardías” y provocan la pérdida de datos.

Conociendo esto y la tecnología de red que se utiliza es posible calcular el tamaño máximo de un dominio de colisión. En el caso de una red Ethernet semidúplex clásica obtendremos una velocidad de transmisión de datos de 10 Mbit/s. El paquete de datos más pequeño, es decir, el que necesita menos tiempo para una transmisión completa y representa, por lo tanto, el caso más extremo, tiene un tamaño de 512 bits (64 bytes). Con estos datos obtenemos como resultado un tiempo en slots de 51,2 μs (microsegundos). El tiempo en slots describe el tiempo que una señal puede tardar hasta llegar a un extremo del dominio de colisión y volver.

Sin embargo, los datos en las redes no se envían a la velocidad de la luz a través del espacio. Estamos sujetos a las condiciones físicas del medio de transmisión. Utilizando un factor de acortamiento (en inglés Nominal Velocity of Propagation, NVP), se indica qué porcentaje de la velocidad de la luz se alcanza en el medio. Los cables de par trenzado típicos de las redes locales tienen un valor de NVP de 0,6 y los cables coaxiales, que son algo más antiguos, tienen un valor de 0,77. Así pues, los datos podrán alcanzar bien 180 000 km/s (60 %) o aproximadamente 230 000 km/s (77 %) de la velocidad de la luz.

La longitud máxima de un dominio de colisión puede calcularse a partir de todos los datos para garantizar la eficacia del protocolo CSMA/CD:

Velocidad de los datos * Duración de la transmisión = el doble de la longitud máxima

230 000 km/s * 0,0000512s = 11 776 km

Por lo tanto, un dominio de colisión en una red basada en cables coaxiales puede tener una longitud máxima de 5,89 km. En el cálculo hay que tener en cuenta que es necesario considerar el camino que toman las señales en ambas direcciones. La máxima longitud de un dominio de colisión no puede ampliarse colocando amplificadores de señal (repetidores), ya que estos no afectan al procedimiento CSMA/CD.

¿Cómo se pueden prevenir las colisiones?

En general, si estamos hablando de sistemas semidúplex, no es posible evitar completamente que se produzcan colisiones. Las colisiones forman parte de un mecanismo previsto y el CSMA/CD garantiza que no causen problemas en la transmisión. No obstante, lo anterior es aplicable exclusivamente a la pérdida de datos. Si se producen muchas colisiones, la velocidad de transmisión disminuye. ¿Por qué se producen demasiadas colisiones? Cuando un dominio de colisión contiene demasiadas estaciones aumenta el número de colisiones y, en consecuencia, el número de retrasos. En los peores casos puede ocurrir que solo se alcance el 30 por ciento de la velocidad real.

Para evitar que esto ocurra, merece la pena crear dominios de colisión más pequeños. Para ello, la red tiene que estar dividida. Para conseguirlo, se utilizan conmutadores (switches) o puentes (bridges). Los dos trabajan en base a MAC. El control de acceso al medio (MAC) funciona en la segunda (y en la siguiente) capa OSI, la capa de enlace de datos (data link). Tiene sentido formar subredes de tal manera que las estaciones estén conectadas ya que, de todos modos, tienen que comunicarse mucho entre sí. Así se evita que se formen embudos en los puentes que anulen la velocidad que se ha ganado.

Semidúplex vs. dúplex completo

En la tecnología de redes se distingue entre semidúplex y dúplex completo. Los dos modelos guardan relación con la tecnología que utilizan. Dentro del contexto de redes u otras técnicas de comunicación, el dúplex describe básicamente un sistema capaz de transmitir datos. Una conexión semidúplex permite que, en un momento dado, los datos fluyan solamente en una dirección. En cambio, el modo dúplex completo permite a una estación tanto enviar como recibir datos.

Encontramos también dentro de la tecnología de red los modos simplex y simplex dual. La comunicación simplex envía información solamente en una dirección. Un buen ejemplo lo encontramos en la radiodifusión. En ese caso solo es posible enviar, nunca recibir. En cambio, el simplex dual se rige por un principio más parecido al del dúplex completo: es posible enviar y recibir en cualquier momento. Pero, a diferencia del dúplex completo, esto se produce de dos maneras diferentes.

La distinción entre semidúplex y dúplex completo tiene un impacto significativo en el proceso de CSMA/CD: sobre todo debido a que el modo semidúplex solo permite una transmisión a la vez, es necesario que exista un mecanismo para evitar colisiones. Esto es fácil de entender si comparamos el canal de transmisión con una carretera de un solo carril. Si el tráfico viene de ambas direcciones al mismo tiempo, el resultado es una colisión. En cambio, el dúplex completo siempre presenta dos canales. El sistema es capaz de mantener una comunicación bidireccional fluida. Al no producirse colisiones en el caso de redes con dúplex completo, el protocolo Carrier sense multiple access / Collision detection no es necesario.

El tipo de dúplex está condicionado por las condiciones técnicas y, concretamente, por el tipo de cable utilizado. Las redes conectadas mediante cables coaxiales solo pueden funcionar en modo semidúplex. El dúplex completo comenzó a utilizarse con la introducción de los cables de par trenzado y la fibra óptica. Al mismo tiempo, lo anterior se traduce en que los estándares Fast Ethernet o Ethernet de alta velocidad (100 Mbit/s) y Gigabit Ethernet (1 Gbit/s) funcionan predominantemente como redes de dúplex completo y, por lo tanto, el protocolo CSMA/CD desempeña en la práctica un papel meramente secundario.

CSMA/CD vs. CSMA/CA

Además de la evolución del CSMA con CD o detección de colisiones (collition detection), el algoritmo de acceso al medio compartido puede también mejorarse bajo la forma de CSMA/CA, es decir, prevención de colisiones (collision avoidance) Esta evolución es especialmente necesaria en el caso de las conexiones inalámbricas. El protocolo CSMA/CD no funciona bien en redes inalámbricas por varias razones. La fundamental reside en el problema del nodo oculto. Este problema se origina cuando dos nodos no se comunican directamente y, al mismo tiempo, existe un nodo en el centro con el que sí que se comunican. Esto, inevitablemente, conduce a que se produzcan colisiones.

El protocolo CSMA/CA intenta (tal y como su nombre indica) evitar las colisiones en lugar de limitarse a detectarlas. En caso de colisión, se aplica el protocolo correspondiente. Así que podemos decir que el protocolo CSMA/CA es una adaptación del protocolo CSMA/CD a otro medio de transmisión.

¿Le ha resultado útil este artículo?
Page top