TCP détecte la congestion grâce à une combinaison de mécanismes, s'appuyant principalement sur les retours du réseau lui-même :
1. Notification explicite de congestion (ECN) :
* Comment ça marche : Les routeurs situés le long du chemin peuvent définir le bit Congestion Experienced (CE) dans l'en-tête IP d'un paquet. Il s'agit d'un signal non basé sur la perte indiquant une congestion *avant* que la perte de paquets ne se produise. L'expéditeur TCP reçoit alors ce paquet marqué et réagit en conséquence.
* Avantages : Permet un contrôle plus fluide des embouteillages car il fournit une alerte précoce. Empêche la perte de paquets, ce qui est plus perturbateur.
* Inconvénients : Nécessite la prise en charge du routeur pour ECN, qui n'est pas universellement déployé.
2. Perte de paquets :
* Comment ça marche : C'est la méthode la plus courante. Lorsqu'un paquet est perdu (en raison d'un encombrement ou pour d'autres raisons), l'expéditeur TCP ne reçoit pas d'accusé de réception (ACK) pour ce paquet dans un délai raisonnable. Ceci est interprété comme une indication de congestion.
* Avantages : Simple et largement applicable ; ne nécessite aucune fonctionnalité réseau particulière.
* Inconvénients : Réagit à la congestion *après* la perte de paquets, conduisant à une expérience plus perturbatrice. Il est également moins précis que l'ECN, car la perte peut être causée par d'autres raisons que la congestion.
3. Délais d'attente :
* Comment ça marche : TCP utilise des minuteries pour attendre les ACK. Si un ACK pour un paquet n'est pas reçu avant l'expiration du délai, l'expéditeur assume la perte du paquet (éventuellement en raison d'un encombrement) et réagit en conséquence.
* Avantages : Fournit un mécanisme de sauvegarde si d’autres méthodes échouent.
* Inconvénients : Peut être moins sensible à la congestion que les autres méthodes ; les valeurs de la minuterie nécessitent un réglage minutieux.
4. ACK en double :
* Comment ça marche : Si l'expéditeur reçoit trois ACK en double pour le même paquet, il en déduit qu'un paquet suivant celui qui a été reconnu pourrait avoir été perdu (ou retardé). Cela suggère une congestion.
* Avantages : Détecte la congestion *avant* qu'un délai d'attente ne se produise, offrant une réponse plus rapide.
* Inconvénients : Repose sur l’hypothèse que la perte de paquets en est la cause, et pas nécessairement la congestion elle-même. Peut être déclenché par d’autres problèmes de réseau.
En résumé :
La détection de congestion de TCP est une approche à plusieurs facettes. Idéalement, il utilise ECN pour une détection précoce et sans interruption. Si ECN est indisponible ou inefficace, il s'appuie sur la détection de perte de paquets via des délais d'attente et des ACK en double. Ces mécanismes, combinés aux algorithmes de contrôle de congestion de TCP (comme le démarrage lent, l'évitement de congestion, la retransmission rapide, la récupération rapide), fonctionnent ensemble pour ajuster le débit d'envoi en fonction de la capacité du réseau, évitant ainsi ou atténuant la congestion.
|