Notas3b

Anuncio
a) Protocolos de Acceso a un Medio de Comunicación Compartido.
Existen muchos algoritmos para asignar un canal compartido. A continuación veremos
los más interesantes.
ALOHA
Norman Abramson (Universidad de Hawaii, 1985). Aunque fue hecho para
“broadcasting” de radio, la idea es aplicable para cualquier sistema donde usuarios sin
coordinación compiten por un canal compartido.
Existen dos versiones ALOHA puro y ALOHA dividido (“Slotted”). Difieren en
si el tiempo es dividido en periodos discretos o no, en los cuales deben caber los
“frames”. ALOHA puro no requiere sincronización global de tiempo ALOHA dividido
si.
ALOHA Puro: La idea es dejar que los usuarios transmitan cuando tengan datos a enviar.
Habrá colisiones y los “frames” en colisión serán destruidos. Sin embargo debido a la
propiedad de retroalimentación del “broadcasting” un emisor siempre puede escuchar el
canal para averiguar si su paquete ha sido destruido o no. En una LAN la
retroalimentación es inmediata, con un satélite hay un retardo de 270ms. Si el “frame”
fue destruido el emisor espera un lapso de tiempo aleatorio y vuelve a enviar el paquete.
El tiempo de espera debe ser aleatorio sino los mismos “frames” estarán colisionando una
y otra vez. Sistemas en los cuales múltiples usuarios comparten un canal común que
puede ocasionar conflictos son conocidos como “contention systems”.
Una idea de la generación de “frames” en un sistema ALOHA se da en la siguiente
figura. Todos los “frames” se han puesto del mismo tamaño pues el rendimiento de un
sistema ALOHA es maximizado teniendo un tamaño uniforme de “frame”.
Usuario
A
B
C
D
E
Time
Siempre que dos “frames” tratan de ocupar el canal al mismo tiempo habrá una colisión y
ambos serán desechados. Si el primer bit de un “frame” nuevo se traslapa con el último
bit de un “frame” casi terminado, ambos frames serán totalmente destruidos y tendrán
que ser retransmitidos después. El checksum no puede distinguir entre una pérdida total o
parcial, malo es malo.
Cual es la eficiencia de ALOHA? ó que fracción de todos los “frames” transmitidos se
salvan de colisionar bajo estas caóticas circunstancias.? Primero consideremos una
colección infinita de usuarios cada uno interactuando con su estación. Un ususario
siempre está en uno de dos estados: tecleando o esperando. Inicialmente todos los
usuarios están en el estado de tecleando. Cuando se ha terminado una línea, el usuario
deja de teclear y espera una respuesta. La estación entonces transmite un “frame”
conteniendo la línea y revisa el canal para ver si hubo éxito. Si fue así entonces el usuario
ve la respuesta y regresa a seguir tecleando. En caso contrario, el usuario continua
esperando y el “frame” es retransmitido una y otra vez hasta tener éxito.
Sea el “frame time” la cantidad de tiempo necesario para transmitir un “frame” estándar
de tamaño fijo. (longitud de “frame” dividida por la velocidad en bits). En este punto
asumimos que la infinita población de usuarios generó nuevos “frames” de acuerdo a la
distribución de Poisson con N “frames” por “frame time”. (Se necesita asumir una
población infinita para asegurar que N no se decrementa cuando los usuarios se
bloquean). Si N > 1, la comunidad de usuarios está generando “frames” a una velocidad
mayor de lo que puede manejar el canal, y es seguro que cada uno esté generando
colisiones. Para un rendimiento razonable se espera que 0 < N < 1.
Además de los nuevos “frames” las estaciones generan retransmisiones de “frames” que
antes colisionaron. Asumamos que la probabilidad de k intentos de transmisión por
“frame time”, nuevos y viejos combinados, tiene también distribución Poisson, con valor
G por “frame time”. Esta claro que G >= N. Al tener una carga baja (N=0) habrán pocas
colisiones, entonces pocas retransmisiones, asi que G =N. Al tener una alta carga habrán
muchas colisiones, asi que G > N. Bajo todas las cargas, el rendimiento es solo la carga
que se tiene, G, veces la probabilidad, S, de una trasmisión exitosa; esto es S=GP0, donde
P0 es la probabilidad de que un “frame” no colisione.
Un “frame” no colisionará si ningún otro “frame” es enviado dentro del “frame time” en
que se comenzó a enviar. Como se ve en la siguiente figura. Bajo esas condiciones ¿El
“frame” sombreado llegará sin daños?. Sea t el tiempo requerido para enviar un “frame”.
Si otro usuario ha generado un “frame” entre el tiempo t0 y t0 + 1, el final de ese “frame”
colisionará con el principio del “frame” sombreado. De hecho el “frame” sombreado ha
sido terminado incluso antes de que se transmitiera el primer bit, pero dado que en
ALOHA puro una estación no tiene modo de escuchar el canal antes de transmitir, no hay
manera de que sepa si hay otro “frame” en el canal. De la misma manera otro frame que
inicio a transmitirse entre t0 +t y t0+ 2t va a colisionar con el final del “frame”
sombreado.
Colisiona
con el
inicio del
“frame”
sombreado
t0
Colisiona
con el final
del “frame”
sombreado
t
t0 + t
t0 + 2t
t0 +3t Time
vulnerable
La probabilidad de que k “frames” sean generados durante un “frame time” esta dada por
la distribución de Poisson:
G k e G
P r[k ] 
k!
Asi que la probabilidad de 0 “frames” es e-G. En un intervalo de dos “frames times” el
número de “frames” generados es 2G. La probabilidad de que no se inicia mas tráfico
durante todo el periodo vulnerable esta dado por P0=e-2G. Usando S=GP0 obtenemos
S  Ge 2G
La relación entre el tráfico ofrecido y el rendimiento esta dado en la siguiente gráfica. El
rendimiento máximo ocurre a G=0.5, con S= 1/2e, el cual es cerca de 0.184. En otras
palabras lo mejor que podemos esperar en la utilización del canal es 18%. Este resultado
no es muy alentador, pero con todos los usuarios transmitiendo difícilmente podemos
esperar un 100% de éxito.
S (rendimiento
por “frame
time”)
0.40
Slotted ALOHA: S = Ge-G
0.30
0.20
Pure ALOHA: S = Ge-2G
0.10
0
0.5
1.0
1.5
G (intentos por “frame time”)
2.0
3.0
Slotted ALOHA: Publicada en 1972 por Roberts para duplicar la capacidad de un sistema
ALOHA. Su ropuesta fue dividir el tiempo en intervalos discretos, cada uno
correspondiente a un “frame”. Esto requiere que los usuarios estén de acuerdo con los
límites de las ranuras o divisiones. Una manera de lograr la sincronización es teniendo a
una estación especial para que emita un pip al inicio de cada intervalo, como un reloj.
En este sistema a una computadora no se le permite enviar aunque se le halla tecleado un
intro (“enter”). En cambio debe esperar al inicio del próximo periodo de tiempo.
Entonces el ALOHA puro se ha convertido en discreto. La probabilidad de que haya
tráfico de otros en el mismo lapso de tiempo es e-G lo cual lleva a:
S  GeG
Como se puede apreciar en la gráfica anterior este sistema ALOHA “slotted” tiene mayor
rendimiento para G = 1, el cual es S = 1/e o cerca de 0.368, el doble del ALOHA puro.
Lo mejor que se puede esperar con este sistema es que el 37 % de los lapsos estén
vacios, 37 % de éxito y 26 % de colisiones. Operando a mayores valores de G se reduce
el número de lapsos vacíos pero se incrementa exponencialmente el número de
colisiones. Considere un “frame” de prueba, la probabilidad de que evite una colisión es
e-G, o sea la posibilidad de que los demás usuarios estén silenciosos durante ese lapso de
tiempo. La probabilidad de una colisión es 1 –e-G. La probabilidad de que una
transmisión requiera k intentos (k –1 colisiones seguidas de un éxito) es:
Pk  eG (1  eG )k 1
El número esperado de transmisiones, E, por intro tecleado es:


k 1
k 1
E kPk  keG (1  e G ) k 1  eG
Como resultado de la dependencia exponencial de E sobre G, pequeños incrementos en la
carga del canal pueden drásticamente reducir su rendimiento.
Protocolos de Acceso Múltiple con Detección de Portadora
Con ALOHA la mejor utilización del canal es 1/e. Lo cual es sorprendente considerando
que las estaciones transmiten sin importar si las demás lo están haciendo. Pero en redes
locales es posible que las estaciones detecten lo que están haciendo las demás y así
puedan adaptar su comportamiento. Estas redes pueden tener una utilización mejor que
1/e.
Los protocolos en los cuales las estaciones escuchan por una portadora (una transmisión)
y actúan en función de ello son llamados “carrier sense protocols”. A continuación se
mencionan los más utilizados.
CSMA Persistente y No-Persistente.
1-Persistente CSMA (Carrier Sense Múltiple Access). Cuando una estación tiene
datos para enviar, primero escucha el canal para ver si alguien más está transmitiendo
datos en ese instante. Si el canal está ocupado entonces se espera hasta que se desocupa.
Cuando detecta que esta desocupado entonces transmite un “frame”. Si ocurre una
colisión la estación espera un periodo de tiempo de longitud aleatoria y empieza de
nuevo. Se llama 1-persistente porque tiene una probabilidad de 1 siempre que encuentre
el canal desocupado.
El retardo de propagación tiene un efecto importante en el rendimiento de este
protocolo. Hay una pequeña oportunidad de que justo después que la estación empezó a
transmitir otra estación se preparó para enviar y detectar el canal. Si la señal de la primera
estación aún no se ha propagado hasta donde está la segunda, está última detectará que el
canal está desocupado y también empezará a transmitir, lo cual resultará en una colisión.
Mientras más largo sea el retardo de propagación más importante se vuelve este efecto y
más se deteriora el rendimiento del protocolo.
Incluso si el retardo es 0 aun pueden haber colisiones. Si dos estaciones se
preparan para enviar a la mitad de la transmisión de una tercera estación entonces
esperarán hasta que termine para transmitir y cuando esto suceda ambas estaciones
empezarán a transmitir al mismo tiempo y ello resultará en una colisión. Si ellas no
fueran tan impacientes habrían menos colisiones. A pesar de ello este protocolo tiene
mayor rendimiento que ALOHA puro, pues ambas estaciones tuvieron la precaución de
no interferir con la tercera. Lo mismo sucede si lo comparamos con ALOHA dividido.
Otro protocolo de este tipo es CSMA No-Persistente. En este protocolo se hace un
intento de ser menos codicioso que el anterior. Antes de enviar la estación detecta el
canal. Si nadie más está enviando la estación empieza a hacerlo. Sin embargo si el canal
está en uso la estación no sigue detectando el canal continuamente con el propósito de
detectar si se desocupó inmediatamente al final de la transmisión en curso. En cambio se
espera un periodo de tiempo aleatorio y luego repite el algoritmo. Como resultado lleva a
una mejor utilización del canal.
El último protocolo de esta familia es CSMA p-persistente. Se aplica a canales
divididos y trabaja asi: Cuando una estación esta lista para enviar, detecta el canal. Si está
desocupado transmite con una probabilidad p . Con una probabilidad q= 1-p lo difiere
hasta el siguiente lapso. Si ese lapso también esta desocupado, transmite o bien difiere
otra vez, con probabilidades p y q. Este proceso es repetido hasta que el frame se ha
transmitido u otra estación empezó a transmitir. En el segundo caso actúa como si
hubiera existido una colisión. Si la estación detecta que el canal está ocupado entonces
espera hasta el siguiente lapso y aplica el algoritmo. La siguiente figura muestra el
rendimiento contra el tráfico ofrecido para los tres protocolos en comparación de los dos
protocolos de ALOHA.
CSMA con Detección de Colisiones.
Los protocolos CSMA persistentes y no-persistentes son una mejora sobre
ALOHA, pues se aseguran de que las estaciones no trasmitan si el canal esta ocupado.
Otra mejora es cuando las estaciones interrumpen su transmisión tan pronto como
detecten una colisión. Es decir si dos estaciones detectan que el canal está desocupado y
empiezan a transmitir al mismo tiempo, ellas detectarían la colisión casi inmediatamente.
En lugar de terminar de transmitir sus “frames” los cuales ya están dañados, ellas
abruptamente detienen la transmisión tan pronto como detecten la colisión. Interrumpir
rápidamente la transmisión de un “frame” que ya está dañado ahorra tiempo y ancho e
banda. Este protocolo es llamado CSMA/CD (Carrier Sense Múltiple Access with
collision Detection), ampliamente usado en las redes LAN, en la subcapa MAC.
El protocolo CSMA/CD al igual que otros protocolos de LAN usan el modelo
descrito en la siguiente figura. En el pinto marcado como t0 una estación ha terminado de
transmitir su “frame”. Ahora cualquiera otra estación que tenga un “frame” listo intentará
enviarlo. Si dos o más estaciones deciden transmitir simultáneamente, habrá una colisión.
Las colisiones pueden ser detectadas revisando la amplitud del pulso en la señal recibida
y comparándolo con la señal transmitida.
Divisions de
Contención
t0
Frame
Período de
Transmisión
Frame
Frame
Frame
Período
de Ocio
Período de
Contención
Tiempo
Después de que una estación detecta una colisión, interrumpe su transmisión,
espera un lapso de tiempo aleatorio, y luego intenta nuevamente, asumiendo que ninguna
otra estación ha iniciado a transmitir en ese tiempo. Entonces el modelo CSMA/CD
consistirá de alternar periodos de transmisión con periodos ociosos.
Ahora vamos a ver los detalles del algoritmo de contención. Suponga que dos
estaciones empiezan a transmitir al mismo tiempo t0. ¿Cuánto demorará en enterarse de
que hubo una colisión? La respuesta a esta pregunta es vital para determinar la longitud
del período de contención y por lo tanto cual será el retardo y el rendimiento. El tiempo
mínimo que tome detectar una colisión es el tiempo que le toma a la señal propagarse de
una estación a otra.
Del razonamiento anterior se podría decir que una estación, la cual, después de
iniciar su transmisión, no escucha una colisión, durante el periodo de tiempo que le toma
a la señal propagarse por todo el cable, puede estar segura de que pudo transmitir sin
conflictos. Esta conclusión esta mal. Considere el siguiente escenario. Sea  el tiempo de
propagación de una señal entre dos estaciones rápidas. En el tiempo t0, empieza a
transmitir una estación. En  - , un instante antes de que la señal llegue a la estación
más distante, dicha estación empieza a transmitir. Obviamente ella detecta la colisión casi
inmediatamente y se detiene, pero el poquito ruido causado por la colisión no se regresa a
la estación original hasta el tiempo 2 - . En otras palabras una estación no puede estar
segura de que encontró el cable desocupado hasta que ha transmitido por un tiempo igual
a 2 sin escuchar una colisión. Por está razón se modela el intervalo de contención como
ALOHA dividido con un ancho de intervalo de 2. En un cable coaxial de 1 km de
longitud   5 sec. Por simplicidad asumiremos que cada intervalo contiene 1 bit. Una
vez que el canal ha sido probado una estación puede transmitir a cualquier velocidad que
desee, obviamente no solo a 1 bit por 2 segundo.
Es importante aclarar que el proceso de detección de colisiones es un proceso
análogo. El hardware debe escuchar el cable mientras está transmitiendo. Si lo que se lee
es diferente de lo que se envió, sabe que hubo una colisión. La implicación es que la
codificación de la señal debe permitir la detección de colisiones (la colisión de dos
señales de 0 volts sería imposible de detectar). Por ello se usa codificación especial.
CSMA/CD es un protocolo importante, una versión de el es el 802.3 (Ethernet), el
cual es un estándar internacional.
Para evitar cualquier mal entendido es importante señalar que ningún protocolo de
subcapa MAC garantiza entrega confiable de los paquetes. Incluso en la ausencia de
colisiones, el receptor puede que no haya copiado el “frame” correctamente (por ejemplo
debido a falta de espacio en buffer).
Documentos relacionados
Descargar