Contrôle de flux

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le contrôle de flux, dans un réseau informatique, représente un asservissement du débit binaire de la source vers le puits.
Quand une machine qui a un débit montant supérieur au débit descendant de la destination, la source diminue son débit pour ne pas submerger le puits de requêtes (obligeant parfois, vu que le puits ne peut pas les traiter, la ré-émission de ces dernières). Le contrôle de flux doit être différencié du contrôle de congestion, qui est utilisé pour contrôler le flux de données lorsque la congestion a déjà eu lieu. Les mécanismes de contrôle de flux sont classés par le fait que le récepteur envoie une information de retour à l'émetteur.

Stop and wait[modifier | modifier le code]

Le stop and wait est la forme la plus simple de contrôle de flux. Dans cette méthode, le récepteur indique qu'il est prêt à recevoir chaque segment, le message étant divisé en plusieurs segment. L'émetteur doit attendre un acquittement (ACK) pour chaque segment pendant une période de temps (appelée time out). L'ACK est envoyé afin de s'assurer que le récepteur a bien reçu le segment. Par suite, l'émetteur peut transmettre le segment suivant après avoir reçu l'ACK.

Algorithme 
  1. Émetteur : transmet un seul segment à la fois.
  2. Récepteur: transmet un acquittement (ACK) lorsqu'il reçoit le segment.
  3. Émetteur reçoit un ACK au plus tard après la période time out.
  4. Retour à l'étape 1.

Si le segment ou l'ACK est perdu durant la transmission, alors il doit être retransmis. La procédure de retransmission est connue sous le nom de Automatic Repeat reQuest (ARQ).

Le problème de stop and wait provient du fait qu'un seul segment est transmis à la fois. Ceci mène à une faible efficacité de l'utilisation du canal de transmission, étant donné que l'émetteur ne peut envoyer un autre segment qu'après avoir reçu un ACK.

Fenêtre coulissante[modifier | modifier le code]

Il s'agit d'une méthode dans laquelle le récepteur donne la permission à l'émetteur de transmettre des données jusqu'à ce que la fenêtre devienne pleine. Lorsque la fenêtre devient pleine, l'émetteur doit arrêter la transmission jusqu'à ce qu'il reçoive un acquittement ou un ordre d'extension de la fenêtre.

Exemples d'application de contrôle de flux[modifier | modifier le code]

Transmission Control Protocol (TCP)[modifier | modifier le code]

TCP met en œuvre un contrôle de flux dichotomique (le contrôle de flux de TCP est fusionné à son système de contrôle de congestion).

Exemple : Si on (avec une connexion bas débit, ligne 56 kbit/s) vous envoie un fichier via un logiciel de partage (vous disposez d'une connexion haut débit type ADSL). Vous ne pourrez jamais le recevoir plus vite que le maximum d'émission de votre correspondant. Le protocole de transport qui a été utilisé a mis en œuvre un contrôle de flux. De la même façon si vous lui envoyez un fichier, le même mécanisme se mettra en place et vous ne lui enverrez pas plus vite qu'il ne peut le recevoir.

Communication série[modifier | modifier le code]

En communication série asynchrone RS-232, deux modes de contrôle de flux sont proposés : en hardware via les lignes RTS/CTS (Ready To Send/Clear To Send) ou sous contrôle logiciel via les caractères ASCII XON/XOFF. En hardware, les lignes RTC/CTS de l'UART peuvent être pilotées par le logiciel. Le contrôle hardware, en RS-232, nécessite 5 fils (Rx, Tx, Gnd, RTS, CTS), le contrôle logiciel n'en nécessite que 3 (Rx, Tx, Gnd).