# Control de flux (dades)

En les comunicacions de dades, el control de flux és el procés de gestió de la velocitat de transmissió de dades entre dos nodes per evitar que un emissor ràpid aclapara un receptor lent. El control de flux s'ha de distingir del control de congestió, que s'utilitza per controlar el flux de dades quan realment s'ha produït una congestió. Els mecanismes de control de flux es poden classificar segons si el node receptor envia retroalimentació o no al node emissor.
El control de flux és important perquè és possible que un ordinador enviador transmeti informació a una velocitat més ràpida que la que l'ordinador de destinació pot rebre i processar. Això pot passar si els ordinadors receptors tenen una gran càrrega de trànsit en comparació amb l'ordinador remitent, o si l'ordinador receptor té menys potència de processament que l'ordinador remitent.

## Atura i espera

El control de flux d'aturada i espera és la forma més senzilla de control de flux. En aquest mètode, el missatge es divideix en múltiples trames i el receptor indica que està disposat a rebre una trama de dades. El remitent espera un justificant de recepció (ACK) després de cada fotograma durant un temps especificat (anomenat temps d'espera). El receptor envia l'ACK per fer saber a l'emissor que la trama de dades s'ha rebut correctament. Aleshores, el remitent enviarà el següent fotograma només després de l'ACK.
Operacions
* Emissor: transmet un únic fotograma a la vegada.
* El remitent espera rebre l'ACK en el termini d'espera.
* Receptor: transmet un reconeixement (ACK) a mesura que rep una trama.
* Aneu al pas 1 quan es rebi l'ACK o s'arribi al temps d'espera.
Si es perd una trama o ACK durant la transmissió, la trama es torna a transmetre. Aquest procés de retransmissió es coneix com ARQ (sol·licitud de repetició automàtica).
El problema amb Stop-and-wait és que només es pot transmetre una trama alhora, i això sovint porta a una transmissió ineficient, perquè fins que l'emissor no rep l'ACK no pot transmetre cap paquet nou. Durant aquest temps, tant l'emissor com el canal no s'utilitzen.

## Finestra corredissa

Mètode de control de flux en el qual un receptor dona permís a un transmissor per transmetre dades fins que s'omple una finestra. Quan la finestra està plena, l'emissor ha de deixar de transmetre fins que el receptor anunciï una finestra més gran.

## Torna enrere N

Un algorisme de sol·licitud de repetició automàtica (ARQ), utilitzat per a la correcció d'errors, en el qual un reconeixement negatiu (NACK) provoca la retransmissió de la paraula equivocada així com de les N–1 paraules següents. El valor de N s'acostuma a triar de manera que el temps necessari per transmetre les N paraules sigui menor que el retard d'anada i tornada del transmissor al receptor i viceversa. Per tant, no cal un buffer al receptor.

## Repetició selectiva

La repetició selectiva és un protocol orientat a la connexió en què tant el transmissor com el receptor tenen una finestra de números de seqüència. El protocol té un nombre màxim de missatges que es poden enviar sense reconeixement. Si aquesta finestra s'omple, el protocol es bloqueja fins que es rep un reconeixement del primer missatge pendent. En aquest punt, l'emissor té clar per enviar més missatges.

## Control de flux de transmissió

Es pot produir el control del flux de transmissió:
* entre l'equip terminal de dades (DTE) i un centre de commutació, mitjançant un equip de terminació de circuits de dades (DCE), els tipus oposats s'interconnecten directament,
* o entre dos dispositius del mateix tipus (dos DTE, o dos DCE), interconnectats per un cable creuat.

### Control de flux de maquinari

A l'RS-232 comú hi ha parells de línies de control que normalment s'anomenen control de flux de maquinari:
* RTS (sol·licitud per enviar) i CTS (clar per enviar), utilitzats en el control de flux RTS
* DTR (data terminal ready) i DSR (data set ready), utilitzats en el control de flux DTR

### Control de flux de programari

Per contra, XON/XOFF se sol anomenar control de flux de programari.

## Control de flux en bucle obert

El mecanisme de control de flux de bucle obert es caracteritza per no tenir cap retroalimentació entre el receptor i el transmissor. Aquest senzill mitjà de control s'utilitza àmpliament. L'assignació de recursos ha de ser de tipus "reserva prèvia" o "hop-to-hop".

## Control de flux en bucle tancat

El mecanisme de control de flux de bucle tancat es caracteritza per la capacitat de la xarxa per informar de la congestió pendent de la xarxa al transmissor. A continuació, el transmissor utilitza aquesta informació de diverses maneres per adaptar la seva activitat a les condicions existents de la xarxa. ABR utilitza el control de flux de bucle tancat (vegeu contracte de trànsit i control de congestió). El control de flux de transmissió descrit anteriorment és una forma de control de flux de bucle tancat.

## Referències

* ↑ «What is flow control? | Definition from TechTarget» (en anglès). [Consulta: 25 setembre 2023].
* ↑ «Flow Control in Data Link Layer» (en anglès americà), 05-09-2020. [Consulta: 25 setembre 2023].
* ↑ «Data for the Comparison of Computed Flow Through Manually Operated Water Control Structures Using Theoretical Versus Calibrated Coefficients | U.S. Geological Survey» (en anglès). [Consulta: 25 setembre 2023].
* ↑ «Why Flow Control is Used in Both Data Link Layer and Network Layer?» (en anglès americà), 23-07-2023. [Consulta: 25 setembre 2023].