Control de Enlace de Datos.
2. Control de Flujo
Control de Flujo
El control de flujo es una técnica utilizada para asegurar que una entidad de transmisión no sobre-cargue a la entidad receptora con una excesiva cantidad de datos.
Recordemos que en los extremos hay hardware =>Memorias de Recepción y Transmisión (Buffers) y estas no son infinitas.
Generalmente, la entidad receptora reserva una zona de memoria temporal para la recepción. Cuando se reciben los datos, una interrupción de hadware por ejemplo del receptor, le indica que debe realizar el procesamiento, para pasar los datos al software de las capas superiores( => "Desagotar la memoria"). En ausencia de procedimientos para el control de flujo, la memoria temporal del receptor se podría llenar y desbordarse mientras éste se encuentra procesando datos previos.
Modelo para el Análisis:
Figura 1
Observación: Hablamos de control de Flujo, en la gráfica aparecen errores, notar que el control de flujo NO resuelve como se soluciona el error, solo indica que NO se recibió la trama o que sí se recibió.
Control de Flujo de Parada y Espera.
- Una entidad origen transmite una trama.
- Tras la recepción, la entidad destino indica su deseo de aceptar otra trama mediante el envío de una confirmación de la trama que acaba de recibir (ACK) .
- El origen debe esperar a recibir la confirmación (ACK) antes de proceder a la transmisión de la trama siguiente. De este modo, el destino puede parar el flujo de los datos sin más que retener las confirmaciones.
- Es el control de flujo mas sencillo de implementar.
Ventajas
- El tamaño de la memoria temporal del receptor puede ser limitado ( a una trama)
- Cuanto más larga sea la transmisión es más probable que haya errores, precisándose en tal caso la retransmisión de la trama completa.
- Si se usan tramas más pequeñas, los errores se detectarán antes y, en consecuencia, se necesitará retransmitir una cantidad de datos menor.
- En un medio compartido, como por ejemplo una LAN, es frecuente que no se permita que una estación ocupe el medio durante un periodo de tiempo largo, evitándose así que las otras estaciones transmisoras sufran grandes retardos y que algunas abusen del uso frente a otras.
Desventajas
Todo bien pero, analicemos otra situación. Vamos a tratar de comparar cuanto de la trama "inunda el medio"
Definimos B como la longitud de un enlace en Bits, daría una idea de la cantidad de Bits necesarios para usar todo el medio de un extremo a otro (inundar).
Figura 2 : Longitud de un Enlace en Bits
B : longitud del enlace en bits; es decir, el número de bits presentes en el enlace cuando una secuencia de ellos lo ocupa completamente.
R : velocidad del enlace, en bps.
d : longitud, o distancia, del enlace en metros.
V : velocidad de propagación, en m/s.
En aquellas situaciones en las que la longitud del enlace en bits es mayor que la longitud de
la trama, aparecen ineficiencias importantes. Estos problemas se muestran en la siguiente Figura
Figura 4
Podemos expresar a, como un valor adimensional que compara la cantidad de la cantidad de Bits necesarios para usar todo el medio de un extremo a otro, respecto de la cantidad de bits de una trama.(cociente) .
Digamos que Tb, es el tiempo de 1 bit en el canal, si multiplicamos por la cantidad de bits de una trama, tendremos la duración en segundos de una Trama y si multiplicamos B ( cantidad de bits en el enlace) por el tiempo de un bit tendremos el tiempo que toma inundar con bits todo el canal.
Si planteamos el cociente de los dos tiempos:
Figura 3
a: Longitud del Enlace en bits / Longitud de la trama
B: longitud del enlace en bits.
L : Nro. bits de la trama
Uso eficiente del Enlace a>1 ó a<1 ?
Obsérvese que, para a>1, la línea está siempre infrautilizada, e incluso para el caso a < 1, la línea se utiliza de forma ineficiente.
Resumiendo, el procedimiento de control de flujo mediante parada y espera da lugar a una utilización ineficiente de la línea para el caso de velocidades de transmisión muy altas entre emisores y receptores que se encuentran separados a grandes distancias.