CSMA/CD
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 protocolo 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.
Historia
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 protocolo CSMA y posteriormente a su evolución CSMA/CD
(CSMA con detección de colisiones).
Trama
CSMA/CD
La trama empleada en CSMA/CD está formada por ocho
campos:
·
El preámbulo, formado por 7 octetos, es
el encargado de que el receptor pueda sincronizarse con el emisor, de forma que
pueda localizarse el principio de la trama.
·
Delimitador de inicio: es un byte empleado para indicar al receptor el inicio de la trama.
·
Dirección de destino: contiene la dirección física (MAC) del equipo destinatario de la trama.
·
Dirección de origen: contiene
la dirección MAC de la estación emisora de la trama y tiene un formato similar
al de la dirección de destino.
·
Longitud: indica la
longitud del campo de datos que se encuentra a continuación. Es necesaria para
determinar la longitud del campo de datos en los casos que se utiliza un campo
de relleno.
·
Información: contiene
los datos transmitidos. Es de longitud variable, por lo que puede tener
cualquier longitud entre 42 y 1500 bytes.
·
Relleno: es usado
para que la trama alcance la longitud mínima requerida. Una trama debe contener
un mínimo número de bytes para que las estaciones puedan detectar las
colisiones con precisión.
·
Chequeo: contiene
un código de redundancia cíclica de 32 bits. Es utilizada como mecanismo de
control de errores en la transmisión.
Tipo de CSMA/CD
El protocolo CSMA/CD puede estar basado en cualquiera
de los siguientes procedimientos:
·
CSMA 1-persistente: cuando una
estación quiere transmitir, primero escucha el canal. Si éste está libre
entonces transmite inmediatamente. En el caso contrario permanece a la escucha
hasta que esté libre. En el momento en el que la estación considere que el
canal está disponible, se transmite inmediatamente. El problema radica en que
varias estaciones pueden estar esperando a que el canal esté libre para
transmitir, dando lugar a una colisión de sus tramas.
·
CSMA no persistente: funciona
de forma análoga al anterior excepto en el hecho de que cuando detecta que el
canal está ocupado, en vez de permanecer a la espera escuchándolo, espera un
tiempo aleatorio y vuelve a escuchar el canal. Con este método se reducen las
colisiones si el tráfico es elevado, mejorándose la utilización del canal. Sin
embargo aumentan los retardos para cargas de tráfico bajas .
·
CSMA p-persistente: al igual
que en los casos anteriores se escucha el canal, sin embargo si éste está
libre, en vez de transmitir inmediatamente, se transmite con una probabilidad
p, o bien se retrasa la emisión una ranura temporal con una probabilidad q=1-p
. Esta ranura temporal suele ser igual al máximo retardo de propagación de la
señal.
Habitualmente suele ser utilizado el protocolo
1-persistente, pues es empleado en el estándar IEEE_802.3.
Funcionamiento
Funcionamiento
general
En CSMA/CD , cada estación que desea transmitir debe realizar
una escucha del medio – detección de portadora- para comprobar si éste 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.
Ventajas
·
La detección
de colisiones en redes LAN cableadas es fácil.
·
El tiempo
medio necesario para dectectar una colisión es relativamente bajo.
·
Puede ser empleado
en sistemas de control de procesos contínuos si la carga de tráfico de la red
es baja (inferior al 20 %)
·
Ofrece un
rendimiento mayor en especial cuando existen pocas colisiones.
Desventajas
·
Una de las
desventajas más importantes radica en que no es posible garantizar un tiempo
máximo finito para el acceso de las tramas al canal de comunicación, por lo
cual no resulta adecuado para aplicaciones de tiempo real.
·
Normalmente
las redes CSMA/CD son de tipo half-duplex,
lo cual significa que mientras una estación envía información es incapaz de
escuchar el tráfico existente.
·
Problemática
en redes inalámbricas (ver más abajo)
Problemática en Redes inalámbricas
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:
·
Problema del nodo oculto: una estación puede creer que el canal (medio) está libre cuando en
realidad está ocupado por otra estación a la que no oye. En la siguiente imagen
se muestra como A y C transmiten hacia B ya que ambos detectaron que el canal
estaba libre. Sin embargo B escucha a ambos nodos, dando lugar a una colisión.
·
Problema del nodo expuesto: una estación puede creer que el canal está ocupado
cuando en realidad lo está ocupando otra estación que no interferiría en su
transmisión a otro destino. En la figura se muestra como C está comunicándose
con B. Como D detecta que el canal está ocupado, no puede transmitir hacia E,
cuando lo idóneo sería que sí pudiese.
Estos problemas fueron resueltos con la implementación
del protocolo CSMA/CA (MultiAccess
Collision Avoidance).
Parámetros según
norma IEEE 802.3
PARÁMETROS
DE CSMA/CD NORMA IEE 802.3
|
Velocidad de transmisión
|
10Mbps
|
Slot time
|
51.2 microseg (512 bits)
|
Límite de intentos
|
16
|
Longitud de jam
|
32 bits
|
Longitud máxima de la trama
|
1518 bytes
|
Longitud mínima de la trama
|
64 bytes
|
Intervalo entre tramas
|
9.6 microseg
|