Compound TCP
Compound TCP (CTCP) est un algorithme créé par Microsoft qui a été introduit dans la pile TCP des systèmes Windows Vista et Windows Server 2008. Il est conçu pour ajuster de manière agressive la fenêtre de congestion de l'expéditeur afin d'optimiser TCP pour les connexions ayant des latences importantes, tout en essayant de préserver l'équité (contrairement à HSTCP). Il est aussi disponible pour Linux, ainsi que pour Windows XP et Windows Server 2003 via un correctif.
Principes de fonctionnement
Comme FAST TCP et TCP Vegas, Compound TCP utilise des estimations de délais d'attente comme mesures de congestion. Si le délai est faible, on suppose qu'aucun lien sur son chemin n'est congestionné et on augmente rapidement sa vitesse. Cependant, contrairement à FAST et Vegas, il ne cherche pas à maintenir un nombre constant de paquets en file d'attente.
Compound TCP maintient deux fenêtres de congestion : une fenêtre AIMD et une fenêtre basée sur la latence. La taille de la fenêtre glissante réellement utilisée est la somme de ces deux fenêtres. La fenêtre AIMD augmente de la même manière qu'avec le protocole TCP Reno. Si le délai est faible, la fenêtre basée sur la latence augmente rapidement pour optimiser l'utilisation du réseau. Une fois que la latence est connue, la fenêtre associée diminue progressivement pour compenser l'augmentation de la fenêtre AIMD. Le but est de garder leur somme à peu près constante, à une valeur que l'algorithme estime être le produit bande passante * latence. En particulier, lorsqu'un ralentissement est détecté, la fenêtre basée sur la latence est réduite par l'estimation de la taille de file d'attente afin d'éviter le phénomène de la congestion persistante, rencontré avec FAST et Vegas. Ainsi, contrairement à TCP-Illinois et son précurseur TCP Africa, Compound TCP peut réduire sa fenêtre en réaction à un ralentissement. Cela augmente son équité par rapport à Reno.[réf. nécessaire]
Plateformes supportées
Windows 2003 et XP x64
Un correctif incluant CTCP est disponible pour Windows XP 64 bits et Windows Server 2003[1].
La clé de registre suivante peut être positionnée sur 1 pour l'activer ou 0 pour le désactiver :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl
Windows Vista/2008/7
CTCP est activé par défaut sur les versions bêta de Windows Server 2008 et désactivé par défaut sur Windows Vista et 7.
CTCP peut être activé avec la commande :
netsh interface tcp set global congestionprovider=ctcp
ou désactivé avec la commande :
netsh interface tcp set global congestionprovider=none
Pour afficher le paramétrage de CTCP :
netsh interface tcp show global
Le paramètre "Add-On Congestion Control Provider" a pour valeur "none" si CTCP est désactivé ou "ctcp" s'il est activé.
Windows 8 et supérieur
Depuis Windows 8, Windows utilise une commande PowerShell pour modifier l'algorithme de contrôle de congestion.
Linux
En plus de Windows, CTCP a également été porté sous Linux par Angelo P. Castellani. Un patch dérivé a été développé à Caltech, il comprenait le réglage CTCP TUning By Emulation (TUBE). Le patch était uniquement disponible pour les chercheurs à cause de brevets logiciels. Depuis la version 2.6.17 du noyau, le module est incompatible et ne peut plus être compilé en raison de changements de l'API du noyau[2].
Voir aussi
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Compound TCP » (voir la liste des auteurs).
Liens externes
- Compound TCP Internet-Draft
- "A Compound TCP Approach for High-speed and Long Distance Networks", juillet 2005
- Performance Enhancements in the Next Generation TCP/IP Stack, The Cable Guy
- The Compound TCP for High-speed and Long Distance Networks, publication Microsoft Research
- Vista's TCP/IP Promises and Perils, article de Network Performance Daily
- Caltech's Compound TCP patch for Linux
- Activation de CTCP sur 2003/XP x64: ,
- Report on experimental evaluation of Compound TCP Hamilton Institute et Caltech, mars 2008.
- A simulation-based study of Compound TCP, 14 juillet 2008
- Portail de Microsoft
- Portail de l’informatique