En una red Ethernet local todos los pa­r­ti­ci­pa­n­tes de la red suelen compartir un medio de tra­n­s­mi­sión común: un cable. Este medio co­m­pa­r­ti­do debe regularse para evitar el caos durante la tra­n­s­mi­sió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 pro­ce­di­mie­n­to que organiza de forma adecuada la tra­n­s­mi­sión de datos.

Esta te­c­no­lo­gía no sirve en el caso de una WLAN. Por eso, se ha de­sa­rro­lla­do una variante del pro­ce­di­mie­n­to llamada CSMA/CA. El CSMA/CD se ha su­s­ti­tui­do en la mayoría de las redes por cable, ya que hoy en día existen nuevas te­c­no­lo­gías por cable que ofrecen distintas po­si­bi­li­da­des. Sin embargo, es útil entender cómo funciona este antiguo pro­ce­di­mie­n­to.

¿Qué es el CSMA/CD?

CSMA/CD procede del inglés Carrier sense multiple access / Collision detection. La detección de co­li­sio­nes (CD) es una mejora del protocolo CSMA. Este algoritmo crea un pro­ce­di­mie­n­to que regula la forma en la que debe pro­du­ci­r­se la co­mu­ni­ca­ción dentro de una red con un medio de tra­n­s­mi­sión co­m­pa­r­ti­do. La mejora in­tro­du­ci­da regula además cómo proceder en caso de co­li­sio­nes, es decir, cuando dos o más pa­r­ti­ci­pa­n­tes intentan enviar paquetes de datos si­mu­l­tá­nea­me­n­te a través del medio de tra­n­s­mi­sión (Bus) y estos in­te­r­fie­ren entre sí.

De­fi­ni­ción

Para entender el fu­n­cio­na­mie­n­to del CSMA/CD resulta muy útil analizar los co­m­po­ne­n­tes in­di­vi­dua­les del término:

Carrier Sense (CS): la detección del estado de portadora controla que todos los pa­r­ti­ci­pa­n­tes de la red co­m­prue­ben que el medio está realmente libre. Solo entonces el protocolo inicia una tra­n­s­mi­sión de datos.

Multiple Access (MA): el acceso múltiple hace re­fe­re­n­cia a varios pa­r­ti­ci­pa­n­tes (or­de­na­do­res co­ne­c­ta­dos a la red) que comparten un medio de tra­n­s­mi­sión.

Detección de co­li­sio­nes (CD): la detección de co­li­sio­nes 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 co­m­po­r­ta­mie­n­to de un grupo de personas que conversan de manera re­s­pe­tuo­sa: para que se puedan comunicar ade­cua­da­me­n­te, es necesario que no todos los pa­r­ti­ci­pa­n­tes hablen a la vez, sino uno tras otro, de manera que todos puedan co­m­pre­n­der ple­na­me­n­te las co­n­tri­bu­cio­nes de los demás a la co­n­ve­r­sa­ción. De forma natural, en una co­n­ve­r­sa­ción de este tipo nos co­m­po­r­ta­mos conforme a un protocolo: cuando otra persona está hablando, nosotros solamente es­cu­cha­mos.

Una vez que el in­te­r­lo­cu­tor ha terminado su co­n­tri­bu­ción por el momento, agua­r­da­mos un tiempo antes de empezar a hablar para ase­gu­rar­nos de que este u otro in­te­r­lo­cu­tor no va a iniciar una nueva co­n­tri­bu­ción. Si ac­ci­de­n­ta­l­me­n­te empezamos a hablar al mismo tiempo que otra persona, dejamos de in­te­n­tar­lo y agua­r­da­mos de nuevo antes de volver a empezar otra vez.

El protocolo CSMA/CD se basa también en un pro­ce­di­mie­n­to muy similar. Primero, la estación examina el medio de tra­n­s­mi­sión. Mientras el medio esté ocupado, la estación sigue exa­mi­ná­n­do­lo. 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 tra­n­s­mi­sor continúa exa­mi­na­n­do el medio para detectar co­li­sio­nes. Si ninguna otra estación ha intentado enviar sus datos a través del medio co­m­pa­r­ti­do antes del final de la tra­n­s­mi­sión, es decir, cuando no se produce ninguna colisión, la tra­n­s­mi­sión se realiza co­rre­c­ta­me­n­te.

Hecho

Las co­li­sio­nes generan un de­s­pla­za­mie­n­to de tensión continua en el cable. De esta manera, las es­ta­cio­nes también pueden detectar las co­li­sio­nes.

En cambio, cuando se detecta una colisión, la estación que la detecta in­te­rru­m­pe de inmediato la tra­n­s­mi­sión y en su lugar envía una señal de in­te­r­fe­re­n­cia (señal JAM), que informa a todas las es­ta­cio­nes de la red de dicha colisión. La estación espera un tiempo aleatorio (Backoff) y vuelve a intentar la tra­n­s­mi­sión. El Backoff debe ser aleatorio para que no se produzca de inmediato una segunda colisión. Puesto que las dos es­ta­cio­nes se­le­c­cio­nan un valor aleatorio, la pro­ba­bi­li­dad de que ambas es­ta­cio­nes inicien un intento de tra­n­s­mi­sión al mismo tiempo es baja.

Se cuenta el número de intentos de re­tra­n­s­mi­sión. Si los si­guie­n­tes 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 in­te­rru­m­pe la tra­n­s­mi­sión de forma pe­r­ma­ne­n­te. 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 in­te­r­pre­ta que se ha producido un error en el sistema.

Hecho

El mecanismo de control de co­n­ge­s­tión para redes Ethernet Binary Ex­po­ne­n­tial Backoff se utiliza para intentar reducir las co­li­sio­nes pe­r­ma­ne­n­tes. Antes de poder intentar una nueva tra­n­s­mi­sió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 tra­n­s­mi­sión y se expresa en mi­cro­se­gu­n­dos. El rango de posibles múltiplos se duplica con cada intento fallido, de modo que la pro­ba­bi­li­dad de una tra­n­s­mi­sión si­mu­l­tá­nea se reduce ex­po­ne­n­cia­l­me­n­te.

Co­li­sio­nes

Para detectar si se va a producir una colisión, la estación comprueba si la señal tra­n­s­mi­ti­da es idéntica a la del medio de tra­n­s­mi­sión. Si no fuera así, otra estación tra­n­s­mi­ti­ría al mismo tiempo, di­s­to­r­sio­na­n­do así la señal del Bus. Estas co­li­sio­nes ocurren con fre­cue­n­cia y forman parte del fu­n­cio­na­mie­n­to normal de una red de área local (LAN). A medida que una red aumenta de tamaño, aumenta también la pro­ba­bi­li­dad de que se produzcan co­li­sio­nes. En este caso, el tamaño se refiere no solo al número de es­ta­cio­nes, sino también a la longitud de los medios de tra­n­s­mi­sión.

Debido a las largas colas, aumentan las pro­ba­bi­li­da­des 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 co­li­sio­nes 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 es­ta­cio­nes comparten un medio de tra­n­s­mi­sión. Las es­ta­cio­nes obtienen acceso mediante CSMA/CD. Sin embargo, el dominio de colisión no puede superar un cierto tamaño: no es posible ampliar ar­bi­tra­ria­me­n­te las redes si se quiere ga­ra­n­ti­zar la eficacia del pro­ce­di­mie­n­to de colisión. El motivo lo en­co­n­tra­mos en la velocidad de la tra­n­s­mi­sión y en el camino que esta debe tomar.

Hecho

Los pro­to­co­los de red pueden dividirse en siete capas ab­s­tra­c­tas de acuerdo con el modelo de re­fe­re­n­cia OSI. La capa superior, es decir, la capa de apli­ca­ción (ap­pli­ca­tion layer), su­mi­ni­s­tra servicios de red a las apli­ca­cio­nes del usuario y en ella se produce la entrada y salida de datos. Por debajo, en­co­n­tra­mos capas de tra­n­s­po­r­te (en este nivel se encuentra, por ejemplo, el protocolo de control de tra­n­s­mi­sió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 co­m­pa­ti­ble con el medio de tra­n­s­mi­sió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 es­ta­cio­nes en el dominio de colisión en un tiempo de­te­r­mi­na­do: las tramas se ejecutan de un extremo del dominio al otro y es dentro de ese segmento físico donde pueden co­li­sio­nar. La señal co­rre­s­po­n­die­n­te debe llegar a la primera estación antes de que se realice la tra­n­s­mi­sión completa del paquete de datos. De lo contrario, la estación no reconoce que los datos tra­n­s­mi­ti­dos están dañados, sino que considera que la tra­n­s­mi­sión se ha producido con éxito y por tanto se perderá el paquete de datos. Estos in­ci­de­n­tes se denominan “co­li­sio­nes tardías” y provocan la pérdida de datos.

Co­no­cie­n­do esto y la te­c­no­lo­gí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 se­mi­dú­plex clásica ob­te­n­dre­mos una velocidad de tra­n­s­mi­sión de datos de 10 Mbit/s. El paquete de datos más pequeño, es decir, el que necesita menos tiempo para una tra­n­s­mi­sión completa y re­pre­se­n­ta, 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 (mi­cro­se­gu­n­dos). 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 co­n­di­cio­nes físicas del medio de tra­n­s­mi­sión. Uti­li­za­n­do un factor de aco­r­ta­mie­n­to (en inglés Nominal Velocity of Pro­pa­ga­tion, NVP), se indica qué po­r­ce­n­ta­je 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 apro­xi­ma­da­me­n­te 230 000 km/s (77 %) de la velocidad de la luz.

La longitud máxima de un dominio de colisión puede ca­l­cu­lar­se a partir de todos los datos para ga­ra­n­ti­zar la eficacia del protocolo CSMA/CD:

Velocidad de los datos * Duración de la tra­n­s­mi­sió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 co­n­si­de­rar el camino que toman las señales en ambas di­re­c­cio­nes. La máxima longitud de un dominio de colisión no puede ampliarse colocando am­pli­fi­ca­do­res de señal (re­pe­ti­do­res), ya que estos no afectan al pro­ce­di­mie­n­to CSMA/CD.

¿Cómo se pueden prevenir las co­li­sio­nes?

En general, si estamos hablando de sistemas se­mi­dú­plex, no es posible evitar co­m­ple­ta­me­n­te que se produzcan co­li­sio­nes. Las co­li­sio­nes forman parte de un mecanismo previsto y el CSMA/CD garantiza que no causen problemas en la tra­n­s­mi­sión. No obstante, lo anterior es aplicable ex­clu­si­va­me­n­te a la pérdida de datos. Si se producen muchas co­li­sio­nes, la velocidad de tra­n­s­mi­sión disminuye. ¿Por qué se producen de­ma­sia­das co­li­sio­nes? Cuando un dominio de colisión contiene de­ma­sia­das es­ta­cio­nes aumenta el número de co­li­sio­nes y, en co­n­se­cue­n­cia, 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 co­n­se­gui­r­lo, se utilizan co­n­mu­ta­do­res (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 es­ta­cio­nes estén co­ne­c­ta­das ya que, de todos modos, tienen que co­mu­ni­car­se mucho entre sí. Así se evita que se formen embudos en los puentes que anulen la velocidad que se ha ganado.

Se­mi­dú­plex vs. dúplex completo

En la te­c­no­lo­gía de redes se distingue entre se­mi­dú­plex y dúplex completo. Los dos modelos guardan relación con la te­c­no­lo­gía que utilizan. Dentro del contexto de redes u otras técnicas de co­mu­ni­ca­ción, el dúplex describe bá­si­ca­me­n­te un sistema capaz de tra­n­s­mi­tir datos. Una conexión se­mi­dú­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.

En­co­n­tra­mos también dentro de la te­c­no­lo­gía de red los modos simplex y simplex dual. La co­mu­ni­ca­ción simplex envía in­fo­r­ma­ción solamente en una dirección. Un buen ejemplo lo en­co­n­tra­mos en la ra­dio­di­fu­sió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 di­fe­re­n­cia del dúplex completo, esto se produce de dos maneras di­fe­re­n­tes.

La di­s­ti­n­ción entre se­mi­dú­plex y dúplex completo tiene un impacto si­g­ni­fi­ca­ti­vo en el proceso de CSMA/CD: sobre todo debido a que el modo se­mi­dú­plex solo permite una tra­n­s­mi­sión a la vez, es necesario que exista un mecanismo para evitar co­li­sio­nes. Esto es fácil de entender si co­m­pa­ra­mos el canal de tra­n­s­mi­sión con una carretera de un solo carril. Si el tráfico viene de ambas di­re­c­cio­nes 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 co­mu­ni­ca­ción bi­di­re­c­cio­nal fluida. Al no pro­du­ci­r­se co­li­sio­nes 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á co­n­di­cio­na­do por las co­n­di­cio­nes técnicas y, co­n­cre­ta­me­n­te, por el tipo de cable utilizado. Las redes co­ne­c­ta­das mediante cables coaxiales solo pueden funcionar en modo se­mi­dú­plex. El dúplex completo comenzó a uti­li­zar­se con la in­tro­du­c­ción de los cables de par trenzado y la fibra óptica. Al mismo tiempo, lo anterior se traduce en que los es­tá­n­da­res Fast Ethernet o Ethernet de alta velocidad (100 Mbit/s) y Gigabit Ethernet (1 Gbit/s) funcionan pre­do­mi­na­n­te­me­n­te como redes de dúplex completo y, por lo tanto, el protocolo CSMA/CD desempeña en la práctica un papel meramente se­cu­n­da­rio.

CSMA/CD vs. CSMA/CA

Además de la evolución del CSMA con CD o detección de co­li­sio­nes (collition detection), el algoritmo de acceso al medio co­m­pa­r­ti­do puede también mejorarse bajo la forma de CSMA/CA, es decir, pre­ve­n­ción de co­li­sio­nes (collision avoidance) Esta evolución es es­pe­cia­l­me­n­te necesaria en el caso de las co­ne­xio­nes in­alá­m­bri­cas. El protocolo CSMA/CD no funciona bien en redes in­alá­m­bri­cas por varias razones. La fu­n­da­me­n­tal reside en el problema del nodo oculto. Este problema se origina cuando dos nodos no se comunican di­re­c­ta­me­n­te y, al mismo tiempo, existe un nodo en el centro con el que sí que se comunican. Esto, in­e­vi­ta­ble­me­n­te, conduce a que se produzcan co­li­sio­nes.

El protocolo CSMA/CA intenta (tal y como su nombre indica) evitar las co­li­sio­nes en lugar de limitarse a de­te­c­tar­las. En caso de colisión, se aplica el protocolo co­rre­s­po­n­die­n­te. Así que podemos decir que el protocolo CSMA/CA es una ada­p­ta­ción del protocolo CSMA/CD a otro medio de tra­n­s­mi­sión.

Ir al menú principal