Cuando la interfaz del servidor tiene un
paquete para transmitir, escucha en la línea para determinar si hay mensajes
siendo transmitidos. Si no detecta transmisión alguna, la interfaz comienza a
enviar. Cada transmisión está limitada en el tiempo, pues existe un tamaño
máximo de paquete. Cuando un transceiver comienza a transmitir, la señal no
llega a cada punto de la red simultáneamente, a pesar de que viaja a casi un
80% de la velocidad de la luz. Por lo anterior, es posible que 2 transceivers
determinen que la red está ociosa y comiencen a transmitir al mismo tiempo;
provocando la colisión de las dos señales.
Detección de Colisiones (CD): Cada transceiver monitorea
el cable mientras está transfiriendo para verificar que una señal externa no
interfiera con la suya. Cuando una colisión es detectada, la interfaz aborta la
transmisión y espera hasta que la actividad cese antes de volver a intentar la
transmisión. Política de retención exponencial. El emisor espera un tiempo
aleatorio después de la primera colisión; un periodo de espera 2 veces más
largo que el primero en caso de una segunda colisión; 4 veces más largo la
próxima vez, etc., reduciendo así al máximo la probabilidad de colisión.
Otro
modo de explicarlo es:
El protocolo CSMA/CD funciona
de algún modo como una conversación en una habitación oscura.
Todo el mundo escucha hasta que se produce un periodo de
silencio, antes de hablar (CS, detección de
portadora).
Una vez que hay silencio, todo el mundo tiene las mismas
oportunidades de decir algo (Acceso Múltiple).
Si dos personas empiezan a hablar al mismo tiempo, se dan cuenta
de ello y dejan de hablar (Detección de Colisiones.)
PROTOCOLOS DE ACCESO MÚLTIPLE CON
DETECCIÓN DE PORTADORA
En
ALOHA las estaciones se ponían a transmitir sin preguntar si el medio está
libre. Veamos ahora protocolos más 'diplomáticos', que antes de ponerse a
hablar miran si alguien ya lo está haciendo. Estos protocolos se denominan de
acceso múltiple con detección de portadora o CSMA (Carrier Sense Multiple
Access). Esto permite hacer un uso más eficiente del canal, y llegar a mayores
grados de ocupación.
CSMA 1-persistente
En su
nivel más primitivo el protocolo CSMA hace lo siguiente: cuando tiene una trama
lista para enviar primero escucha el canal para saber si está libre; si lo está
envía la trama; en caso contrario espera a que se libere y en ese momento envía
la trama. Este protocolo se denomina CSMA 1-persistente porque hay una
probabilidad 1 (es decir certeza) de que la trama se transmita cuando el canal
esté libre.
En una
situación real con tráfico intenso es muy posible que cuando un ordenador
termine de transmitir haya ya una 'cola' de ordenadores esperando para enviar
su trama; con CSMA 1-persistente es altamente probable que todas esas tramas
sean emitidas a la vez y colisionen, pudiéndose repetir este proceso varias
veces con la consiguiente degradación del rendimiento. De hecho no hace falta
que lo hagan exactamente a la vez: basta con que empiecen a transmitir con una
diferencia de tiempos menor que la distancia que los separa, ya que en tal caso
detectarán el canal libre en el momento de iniciar la transmisión; por ejemplo,
supongamos dos ordenadores unidos por un cable de un kilómetro de longitud, con
lo que la señal emitida por uno tardará unos 5 m s en llegar al otro; si la
diferencia de tiempo con la que ambos empiezan a emitir es menor de 5 m s se
producirá una colisión, pues el segundo no habrá recibido la señal del primero
a tiempo de evitarla. En este tipo de redes el retardo de propagación de la
señal puede tener un efecto importante en el rendimiento.
A pesar de sus inconvenientes el CSMA 1-persistente supone un avance respecto al ALOHA
ranurado, ya que toma la precaución de averiguar antes si el canal está
disponible, con lo que se evitan un buen número de colisiones. Suponiendo
distribución de Poisson la máxima eficiencia puede llegar al 55%
aproximadamente, obteniéndose ésta con un grado de ocupación del 100%. Como
veremos más tarde el funcionamiento de Ethernet corresponde hasta cierto punto
con el de CSMA 1-persistente.
CSMA no persistente
En un intento por resolver el problema del protocolo anterior
podemos adoptar la estrategia siguiente: antes de enviar escuchamos, si el
canal está libre transmitimos, pero si está ocupado, en vez de estar a la
escucha, pendientes de usarlo en cuanto se libere, esperamos un tiempo
aleatorio después del cual repetimos el proceso; A este protocolo se le denomina CSMA no persistente.
Intuitivamente podemos predecir que dará una menor eficiencia que CSMA 1-persistente para tráficos moderados (pues
introduce una mayor latencia), pero se comportará mejor en situaciones de
tráfico elevado pues evita el efecto 'cola de espera' y las colisiones que en
consecuencia se producen. La simulación matemática confirma esta suposición.
CSMA
p-persistente
Tratemos ahora de diseñar un protocolo híbrido, que combine las
ventajas de los dos anteriores. Tendrá el rendimiento de CSMA 1-persistente en tráficos moderados y el de CSMA no persistente en tráficos intensos. Este
protocolo se denomina CSMA p-persistente y
se aplica a canales a intervalos o ranurados. El funcionamiento es el
siguiente: cuando el ordenador tiene algo que enviar primero escucha el canal;
si está libre transmite, en caso contrario espera; cuando se ha liberado
transmite con una probabilidad p (o no transmite con una probabilidad q=1-p);
si no ha transmitido en el primer intervalo el ciclo se repite, es decir transmite
con una probabilidad p (o no transmite con una probabilidad q). El proceso se
repite hasta que finalmente la trama es transmitida o bien otro ordenador
utiliza el canal, en cuyo caso espera un tiempo aleatorio y empieza de nuevo el
proceso.
Ajustando el valor del parámetro p se puede regular el
funcionamiento de este protocolo entre el de CSMA.1-persistente y el de CSMA no persistente.
Su eficiencia es en general superior a la de ambos.
CSMA con detección de colisión
Hasta ahora, una vez habían empezado a transmitir una trama los
ordenadores seguían transmitiendo aun cuando detectaran que había una colisión.
En ese caso sería más eficiente parar de transmitir, ya que la trama será
errónea e inútil. Este tipo de protocolo se conoce comoCSMA/CD (Carrier Sense Multiple Access with Collision Detection,
acceso múltiple detección de portadora con detección de colisiones), y se
utiliza en la red local IEEE 802.3, también conocida como Ethernet, en sus
múltiples variantes.
En una red CSMA/CD la
única circunstancia en la que puede producirse una colisión es cuando dos
ordenadores empiezan a transmitir a la vez, o con una diferencia de tiempo lo
bastante pequeña como para que la señal de uno no haya podido llegar al otro
antes de que éste empiece a transmitir. Supongamos que tenemos dos ordenadores
A y B situados en extremos opuestos de la red, y que el tiempo que la señal
tarda en propagarse de un extremo a otro de la red es t; cabría pensar que
pasado ese tiempo t desde que A empieza a transmitir ya puede estar seguro de
que no se producirán colisiones; sin embargo esta suposición es incorrecta, ya
que B podría haber empezado a transmitir justo en el instante t -e, o sea
inmediatamente antes de que le haya llegado la trama de A; por tanto sólo
después de un tiempo 2t puede A estar seguro de haberse `apoderado' del canal
de transmisión.
Dado
que el período de incertidumbre en CSMA/CD se reduce a ese intervalo 2t estas
redes se suelen modelar como un sistema ALOHA ranurado con intervalos de tamaño
2t.