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.


  1. Una entidad origen transmite una trama.
  2. 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) .
  3. 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.
  4. 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 el uso del medio 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.

Veamos los distintos casos. 
Si el tiempo de transmisión (tiempo que tarda una estación en transmitir una trama) se normaliza ( se divide)  a la unidad y el retardo de propagación (tiempo que tarda un bit en ir desde el emisor hasta el receptor) se expresa como la variable a.

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.