2. Control de Flujo

1. Concepto de control de flujo

En una comunicación digital, la estación emisora no puede transmitir tramas sin considerar la capacidad de recepción y procesamiento de la estación destino. Aunque el enlace físico tenga una determinada velocidad nominal, el receptor puede tener limitaciones de memoria, procesamiento o disponibilidad interna.

El control de flujo es el conjunto de técnicas que permite evitar que una entidad transmisora sobrecargue a una entidad receptora con una cantidad excesiva de datos.

En términos simples, el control de flujo responde a la pregunta:

¿El receptor está en condiciones de recibir más tramas?

Su función principal no es corregir errores, sino regular el ritmo de transmisión. Si el emisor transmite demasiado rápido y el receptor no puede procesar las tramas al mismo ritmo, se puede producir desbordamiento de buffer y pérdida de información.

El problema puede representarse así:

Emisor rápido  --->  Tramas  --->  Receptor con capacidad limitada

En una red real, el receptor no procesa instantáneamente todo lo que recibe. Primero almacena temporalmente las tramas en memoria, luego las valida, las interpreta y finalmente entrega los datos a las capas superiores.

Por eso, una comunicación eficiente requiere un equilibrio entre:

  • velocidad de transmisión del emisor;
  • capacidad del enlace;
  • capacidad de almacenamiento del receptor;
  • velocidad de procesamiento;
  • retardo de propagación;
  • mecanismo de confirmación.

2. Buffers de transmisión y recepción

En los extremos de un enlace existen memorias temporales llamadas buffers. Estas memorias permiten almacenar datos mientras el hardware y el software realizan las operaciones necesarias para transmitir o recibir información.

Buffer de transmisión

El buffer de transmisión almacena temporalmente las tramas que serán enviadas por la interfaz de red. Permite que el sistema prepare datos antes de colocarlos en el medio físico.

Buffer de recepción

El buffer de recepción almacena las tramas que llegan desde el enlace antes de que sean procesadas por el equipo receptor.

El receptor puede necesitar tiempo para:

  • verificar la trama;
  • comprobar si está dirigida a él;
  • analizar campos de control;
  • detectar errores;
  • entregar los datos a la capa superior;
  • liberar memoria para nuevas tramas.

Los buffers son necesarios, pero no son infinitos. Cuando la velocidad de llegada de tramas supera la capacidad de procesamiento del receptor, el buffer comienza a llenarse. Si no existe control de flujo, el buffer puede desbordarse.

3. Riesgo de desbordamiento de memoria en el receptor

El desbordamiento de buffer ocurre cuando la memoria temporal del receptor se llena y continúan llegando nuevas tramas.

Este problema puede producir:

  • pérdida de tramas;
  • aumento de retransmisiones;
  • degradación del rendimiento;
  • mayor latencia;
  • congestión local;
  • inestabilidad en el enlace.

El control de flujo busca prevenir este problema antes de que ocurra. Para ello, el receptor debe tener alguna forma de indicar al emisor cuándo puede continuar transmitiendo y cuándo debe esperar.

Una forma simple de controlar el flujo es permitir que el emisor envíe una trama y luego espere una confirmación. Este mecanismo se conoce como parada y espera.

4. Modelo general de análisis de transmisión de tramas

Para estudiar el control de flujo se utiliza un modelo simple con dos estaciones:

Estación origen  --------------------  Estación destino
Tx                                      Rx

La estación origen transmite tramas hacia la estación destino. La estación destino recibe las tramas y responde, si corresponde, mediante confirmaciones.

En este análisis se consideran dos situaciones generales:

  1. Transmisión sin pérdidas ni errores: las tramas llegan correctamente.
  2. Transmisión con pérdidas o errores: algunas tramas no llegan o llegan dañadas.

Es importante distinguir que el control de flujo no resuelve por sí mismo los errores de transmisión. El control de flujo regula el ritmo de envío. El control de errores, que se estudiará en otra unidad, se encarga de detectar errores, solicitar retransmisiones o recuperar tramas perdidas.

Por lo tanto:

Control de flujo  → evita saturar al receptor.
Control de errores → permite detectar o recuperar tramas dañadas o perdidas.

5. Diferencia entre control de flujo y control de errores

Aunque ambos mecanismos pertenecen al control del enlace de datos, sus objetivos son distintos.

Aspecto

Control de flujo

Control de errores

Problema principal

El receptor puede saturarse

La trama puede perderse o dañarse

Pregunta central

¿El receptor puede recibir más?

¿La trama llegó correctamente?

Mecanismo típico

ACK, ventana, pausa

FCS, CRC, ACK, NACK, temporizador

Resultado esperado

Regular la velocidad de envío

Detectar y recuperar errores

Ejemplo

El receptor demora el ACK para frenar al emisor

El receptor descarta una trama con error

Ejemplo práctico:

Caso A:
El receptor recibe tramas correctas, pero no puede procesarlas tan rápido.
→ Problema de control de flujo.
Caso B:
El receptor recibe una trama con bits modificados.
→ Problema de control de errores.

6. Control de flujo por parada y espera

El mecanismo de parada y espera es la técnica más simple de control de flujo.

Su funcionamiento es el siguiente:

  1. La estación origen transmite una trama.
  2. La estación destino recibe la trama.
  3. La estación destino envía una confirmación o ACK.
  4. La estación origen espera el ACK antes de transmitir la siguiente trama.
  5. Si el receptor no desea recibir más tramas temporalmente, puede demorar la confirmación.

Representación:

Emisor                                  Receptor
 | ----------- Trama 1 --------------> |
 | <------------- ACK ---------------- |
 | ----------- Trama 2 --------------> |
 | <------------- ACK ---------------- |

La característica principal de este método es que sólo puede haber una trama pendiente de confirmación.

Ventajas de parada y espera

El método de parada y espera tiene varias ventajas:

  • es simple de implementar;
  • requiere poca memoria en el receptor;
  • permite confirmar cada trama individualmente;
  • facilita el control de la transmisión;
  • es adecuado para enlaces simples o de baja velocidad;
  • evita que el emisor ocupe el medio durante demasiado tiempo.
Desventajas de parada y espera

Su principal desventaja es la baja eficiencia en enlaces de alta velocidad o gran distancia.

Después de enviar una trama, el emisor debe esperar la confirmación antes de continuar. Durante esa espera, el enlace puede quedar sin uso, aunque tenga capacidad disponible.

Esto se vuelve crítico cuando:

  • el enlace tiene gran retardo de propagación;
  • la distancia es elevada;
  • la velocidad del enlace es alta;
  • las tramas son pequeñas;
  • el ACK tarda mucho en regresar.

7. Parámetros de análisis del enlace

Para analizar la eficiencia de parada y espera se utilizan varios parámetros.

Longitud del enlace en bits

La longitud del enlace en bits indica cuántos bits pueden estar simultáneamente dentro del enlace cuando una secuencia de bits lo ocupa completamente.

 B = R \cdot \frac{d}{V} 
Donde:
B = \text{longitud del enlace en bits}
R = \text{velocidad del enlace en bits por segundo}
d = \text{distancia del enlace en metros}
V = \text{velocidad de propagación en el medio}

También puede expresarse como:

B = R \cdot T_p

donde:

T_p = \frac{d}{V}
Tiempo de transmisión

El tiempo de transmisión es el tiempo necesario para colocar todos los bits de una trama sobre el enlace.

T_{tx} = \frac{L}{R}

Donde:
T_{tx} = \text{tiempo de transmisión}
L = \text{longitud de la trama en bits}
R = \text{velocidad del enlace en bits por segundo}
Tiempo de propagación

El tiempo de propagación es el tiempo que tarda un bit en viajar desde el emisor hasta el receptor.

T_p = \frac{d}{V}

Donde:
T_p = \text{tiempo de propagación}
d = \text{distancia del enlace}
V = \text{velocidad de propagación}

Relación adimensional a

La relación a compara la longitud del enlace en bits con la longitud de la trama.

a = \frac{B}{L}

Como:

B = R \cdot T_p

L = R \cdot T_{tx}

entonces:

a = \frac{R \cdot T_p}{R \cdot T_{tx}}

Simplificando:

a = \frac{T_p}{T_{tx}}
Interpretación de "a"

Si:

a < 1

el tiempo de propagación es menor que el tiempo de transmisión de la trama. La trama es relativamente larga respecto del enlace.

Si:

a > 1

el tiempo de propagación es mayor que el tiempo de transmisión. El transmisor puede terminar de enviar la trama antes de que el primer bit llegue al receptor.

En este segundo caso, el mecanismo de parada y espera se vuelve muy ineficiente, porque el emisor permanece mucho tiempo esperando el ACK.

Eficiencia aproximada de parada y espera

Si se desprecia el tiempo de transmisión del ACK, el ciclo completo de parada y espera puede aproximarse como:

T_{\text{ciclo}} = T_{tx} + 2T_p

La eficiencia aproximada es:

\eta = \frac{T_{tx}}{T_{tx} + 2T_p}

Dividiendo numerador y denominador por T_tx:

\eta = \frac{1}{1 + 2a}

En porcentaje:

\eta(\%) = \frac{1}{1 + 2a} \cdot 100

Esta expresión permite ver que, a medida que aumenta a, disminuye la eficiencia de parada y espera.

8. Ejemplos de parada y espera

8.1. Enlace de fibra óptica de 200 m a 1 Gbps

Se considera un enlace de fibra óptica con los siguientes datos:

R = 1 \text{ Gbps} = 10^9 \frac{bits}{s}
d = 200 \text{ m}
V = 2 \times 10^8 \frac{m}{s}
L = 1000 \text{ bytes} = 8000 \text{ bits}
Cálculo del tiempo de propagación
T_p = \frac{d}{V}

T_p = \frac{200}{2 \times 10^8}

T_p = 1 \times 10^{-6} \text{ s}

T_p = 1 \mu s
Cálculo del tiempo de transmisión
T_{tx} = \frac{L}{R}

T_{tx} = \frac{8000}{10^9}

T_{tx} = 8 \times 10^{-6} \text{ s}

T_{tx} = 8 \mu s
Cálculo de la longitud del enlace en bits
B = R \cdot T_p

B = 10^9 \cdot 1 \times 10^{-6}

B = 1000 \text{ bits}
Cálculo de "a"
a = \frac{B}{L}

a = \frac{1000}{8000}

a = 0{,}125

Eficiencia aproximada
\eta = \frac{1}{1 + 2a}

\eta = \frac{1}{1 + 2 \cdot 0{,}125}

\eta = \frac{1}{1{,}25}

\eta = 0{,}8

\eta(\%) = 80\%
Interpretación

En este caso, el enlace es corto y el retardo de propagación es bajo. El método de parada y espera no aprovecha el enlace de forma perfecta, pero su rendimiento todavía puede ser aceptable.

La trama tarda 8 μs en transmitirse y el ACK llega aproximadamente a los 10 μs desde el inicio del proceso. Por lo tanto, el emisor puede transmitir una trama cada 10 μs.

8.2. Enlace satelital geoestacionario

Se considera un enlace de 1 Mbps entre estaciones terrestres que se comunican mediante un satélite geoestacionario.

Datos:

R = 1 \text{ Mbps} = 10^6 \frac{bits}{s}

d = 36.000.000 \text{ m} \times 2

V = 3 \times 10^8 \frac{m}{s}

L = 8000 \text{ bits}

Se multiplica la distancia por 2 porque la señal debe subir hasta el satélite y luego bajar hasta la estación destino.

Cálculo del tiempo de propagación
T_p = \frac{d}{V}

T_p = \frac{36.000.000 \times 2}{3 \times 10^8}

T_p = 0{,}24 \text{ s}

T_p = 240 \text{ ms}

Cálculo del tiempo de transmisión
T_{tx} = \frac{L}{R}

T_{tx} = \frac{8000}{10^6}

T_{tx} = 0{,}008 \text{ s}

T_{tx} = 8 \text{ ms}
Longitud del enlace en bits
B = R \cdot T_p

B = 10^6 \cdot 0{,}24

B = 240.000 \text{ bits}
Relación "a"
a = \frac{B}{L}

a = \frac{240.000}{8000}

a = 30

Eficiencia aproximada
\eta = \frac{1}{1 + 2a}

\eta = \frac{1}{1 + 2 \cdot 30}

\eta = \frac{1}{61}

\eta \approx 0{,}0164

\eta(\%) \approx 1{,}64\%
Interpretación

En este caso, la eficiencia de parada y espera es muy baja. Aunque la trama tarda sólo 8 ms en transmitirse, el ACK llega mucho después debido al gran retardo de propagación del enlace satelital.

Esto significa que el enlace permanece la mayor parte del tiempo sin transmitir nuevas tramas, esperando la confirmación.

Por esta razón, parada y espera no es conveniente en enlaces de gran retardo. Para este tipo de escenarios se necesitan mecanismos que permitan mantener varias tramas en tránsito.

9. Relación con ventana deslizante

Aunque el desarrollo completo de ventana deslizante corresponde a la unidad siguiente, conviene anticipar la idea central.

El problema de parada y espera es que sólo permite una trama pendiente de confirmación. La ventana deslizante mejora este comportamiento permitiendo que el emisor transmita varias tramas antes de recibir un ACK.

Si el tamaño de ventana es W, entonces el emisor puede tener hasta W tramas en tránsito.

W = \text{cantidad maxima de tramas que pueden estar pendientes de confirmacion}

Para mantener el enlace ocupado de forma continua, una condición aproximada es:

W \geq 1 + 2a

Con esta relación se observa que, cuanto mayor es el retardo de propagación respecto del tiempo de transmisión, mayor debe ser la ventana.

En el caso de fibra óptica corta:

a = 0{,}125

1 + 2a = 1{,}25

Figura 1:  a>1

Una ventana de 2 tramas podría ser suficiente para mantener el enlace ocupado.

En el caso satelital:

a = 30

1 + 2a = 61

Se necesitaría una ventana cercana a 61 tramas para aprovechar completamente el enlace.

10. Control de flujo en redes actuales

El control de flujo no es sólo un concepto teórico. También aparece en tecnologías modernas de red.

En Ethernet full-duplex existe un mecanismo conocido como IEEE 802.3x Pause Frame. Cuando un dispositivo detecta que sus buffers se están llenando, puede enviar una trama de pausa al equipo conectado directamente para solicitar que detenga temporalmente la transmisión.

Este mecanismo actúa a nivel de enlace y busca evitar pérdida de tramas por congestión local en el receptor.

También existen mecanismos más avanzados como Priority Flow Control, utilizado en entornos de centros de datos. En lugar de pausar todo el enlace, permite pausar clases específicas de tráfico según su prioridad.

La idea conceptual sigue siendo la misma que en el modelo básico estudiado en esta unidad:

Si el receptor no puede procesar más información, debe existir algún mecanismo para regular al transmisor.

11. Resumen de la unidad

El control de flujo permite regular la transmisión de tramas para evitar que el receptor sea sobrecargado.

El mecanismo de parada y espera es simple, pero puede ser ineficiente cuando el enlace tiene alta velocidad o gran retardo.

La longitud del enlace en bits permite analizar cuántos bits pueden estar simultáneamente en el medio.

La relación a = B/L permite comparar la longitud del enlace en bits con la longitud de la trama.

Cuando "a" es grande, parada y espera desaprovecha el enlace porque el transmisor pasa mucho tiempo esperando confirmaciones.

Los enlaces satelitales geoestacionarios son un caso típico donde parada y espera resulta muy ineficiente.

La ventana deslizante mejora la eficiencia al permitir varias tramas en tránsito, aunque su estudio detallado se desarrolla en la unidad siguiente.

12. Actividades de comprensión

Se toma como base la información proporcionada por la cátedra de COMUNICACIONES 2, donde el control de flujo se define como una técnica para evitar que el transmisor sobrecargue al receptor y donde se aclara que no corrige errores, sino que regula la recepción de tramas. Este concepto también aparece en tecnologías reales: por ejemplo, Ethernet full-duplex puede usar mecanismos de pausa para que un receptor con memoria limitada solicite detener temporalmente la transmisión. 

Actividad 1

Explique con sus palabras qué problema resuelve el control de flujo.

Actividad 2

Indique si las siguientes afirmaciones son verdaderas o falsas.

Afirmación

V/F

Justificación

El control de flujo evita que el receptor sea sobrecargado.

   

El control de flujo corrige errores de bits.

   

En parada y espera sólo puede haber una trama pendiente de confirmación.

   

Si el ACK se retrasa, el transmisor debe esperar.

   

Si a es grande, parada y espera se vuelve más eficiente.

   
Actividad 3

Un enlace tiene los siguientes datos:

R = 100 \text{ Mbps}

d = 10 \text{ km}

V = 2 \times 10^8 \frac{m}{s}

L = 12000 \text{ bits}

Calcule:
  1. tiempo de propagación;
  2. tiempo de transmisión;
  3. longitud del enlace en bits;
  4. valor de a;
  5. eficiencia aproximada de parada y espera.
Actividad 4

Explique por qué un enlace satelital geoestacionario es un mal caso para utilizar parada y espera.

Actividad 5

Compare el caso de fibra óptica de 200 m con el caso satelital geoestacionario. Indique cuál tiene mayor a y qué significa eso para la eficiencia del enlace.

13. Cierre de la unidad

El control de flujo es una función fundamental de la Capa de Enlace de Datos. Su objetivo es evitar que el transmisor envíe información a una velocidad superior a la que el receptor puede procesar.

El método de parada y espera permite comprender el principio básico de transmisión y confirmación, pero presenta limitaciones importantes cuando el producto entre velocidad y retardo del enlace es elevado.

El análisis mediante B, L y a permite evaluar cuantitativamente la eficiencia del mecanismo. Esta herramienta es especialmente útil para comparar enlaces cortos, como una fibra óptica local, con enlaces de gran retardo, como una comunicación satelital geoestacionaria.

En la próxima unidad se estudiará con mayor profundidad el mecanismo de ventana deslizante, que permite mejorar el rendimiento al mantener varias tramas en tránsito antes de recibir confirmaciones.

5 links interesantes para los alumnos

  1. IBM — OSI Model: útil para ubicar la Capa de Enlace dentro del modelo OSI y relacionarla con transferencia entre dispositivos de una misma red. (IBM)
  2. Cisco — Flow Control and Storm Control Configuration Guide: muestra una aplicación real de control de flujo de Capa 2 usando IEEE 802.3x Pause Frames en switches Ethernet. (Cisco)
  3. IEEE 802.3x and Asymmetrical Flow Control: material técnico histórico de IEEE 802.3 que explica el propósito de 802.3x Flow Control en puertos full-duplex con memoria limitada. (IEEE 802)
  4. IEEE 802.1Qbb — Priority-based Flow Control: recurso oficial para estudiar una evolución del control de flujo por prioridad en redes de centros de datos. (IEEE 802)
  5. Starlink — Technology: permite relacionar el ejemplo de enlace satelital del apunte con sistemas LEO actuales, donde la menor órbita reduce significativamente la latencia frente a GEO. (Starlink)