Les trois composants principaux des algorithmes de contrôle de congestion TCP sont :
1. Démarrage lent : Il s’agit de la première phase du contrôle de la congestion. Lorsqu'une connexion TCP est établie, l'expéditeur commence à transmettre des paquets avec une petite taille de fenêtre de congestion (généralement 1 MSS, où MSS est la taille maximale du segment). Chaque fois qu'un accusé de réception (ACK) est reçu pour un paquet transmis, la taille de la fenêtre d'encombrement est augmentée de 1 MSS. Cela conduit à une croissance exponentielle du taux de transmission. Le démarrage lent aide l'expéditeur à trouver rapidement le débit de transmission approprié sans surcharger le réseau.
2. Évitement des embouteillages : Une fois que la fenêtre de congestion atteint un certain seuil (généralement le seuil de démarrage lent, ssthresh), l'expéditeur entre dans la phase d'évitement de congestion. Au cours de cette phase, la fenêtre de congestion augmente plus lentement – de 1 MSS pour chaque temps d'aller-retour (RTT) des accusés de réception reçus. Cette augmentation additive vise à sonder progressivement la capacité du réseau sans provoquer de congestion. L'algorithme continue d'augmenter la fenêtre de congestion jusqu'à ce qu'une congestion soit détectée.
3. Détection et récupération des embouteillages : Ce composant est déclenché lorsqu'une congestion est détectée. Cette détection se produit généralement en cas de perte de paquets (par exemple, en raison de paquets abandonnés ou de délais d'attente). Lorsqu’il détecte une congestion, l’algorithme prend des mesures drastiques pour réduire le taux de transmission. Le mécanisme de récupération le plus courant consiste à réduire de moitié la taille de la fenêtre de congestion (diminution multiplicative). Cette réduction soudaine permet de désengorger rapidement. Le seuil de démarrage lent (ssthresh) est également généralement mis à jour à la moitié de la taille de la fenêtre de congestion au moment de la détection de congestion, pour empêcher l'expéditeur d'augmenter de manière agressive et trop rapide son débit de transmission.
Il est important de noter que de nombreuses variations et améliorations existent au sein de ces trois composants principaux dans différents algorithmes de contrôle de congestion TCP (par exemple, Tahoe, Reno, New Reno, Cubic). Ces variations se concentrent principalement sur la manière dont la congestion est détectée, sur la manière dont la fenêtre de congestion est ajustée et sur la manière dont le seuil de démarrage lent est mis à jour.
|