4. Variantes de TCP
Depuis l'apparition du protocole de transport TCP, plusieurs
algorithmes qui visent à améliorer le mécanisme de
contrôle de congestion ont été proposés. Tous ces
algorithmes utilisent le même principe de transmission que TCP de base,
par contre chaque algorithme propose un nouveau mécanisme de
détection et d'évitement de congestion. Ces différentes
variantes ont été proposées dans le but de permettre
à TCP de réagir au mieux aux pertes de paquets. Dans ce qui suit,
nous allons donner un aperçu sur le fonctionnement des principales
variantes de TCP.
4.1. TCP Tahoe
La première version de TCP basée sur un
système de fenêtrage variable est apparue pour répondre aux
situations de congestion dans les réseaux longue distance. Cette version
est baptisée TCP Tahoe. Elle utilise un système de slow-start,
avec une valeur initiale de cwnd à 1 et une valeur de cwnd maximum de
ssthresh (avec une valeur par défaut de 65535). Au début TCP
Tahoe effectue un slow start, une fois qu'une perte de paquet se produise, le
nouveau ssthresh prend la valeur de cwnd courante et celle-ci est remise
à la valeur 1. Une fois le seuil ssthresh atteint, TCP exécute
une Congestion Avoidance. À partir de là la valeur de cwnd
augmente de façon linéaire et donc plus lentement qu'en
slow-start. A la réception de trois fois le même ACK, une
congestion est déclarée et le paquet perdu est renvoyé
sans attendre l'expiration du timeout (fast retransmit).
Le problème majeur de Tahoe est le temps
dépensé dans la détection de pertes. En effet, les
temporisateurs sont généralement et même plus souvent d'une
résolution de 500 ms, pendant que les délais d'aller retour
tendent de plus en plus à se raccourcir (câbles torsadé,
fibre optique,...). La détection d'une perte peut alors prendre au moins
500 ms ce qui constitue plusieurs délais d'aller retour.
4.2. TCP Reno
La différence avec Tahoe est qu'il utilise le
Fast-Recovery. A la réception de trois ACK dupliqués il
réduit de moitié la valeur de cwnd, ensuite il fixe le seuil de
ssthresh à la taille de cwnd. Il entre ensuite en phase de
retransmission rapide et en recouvrement rapide. S'il a un timeout il entre
à nouveau en phase démarrage lent comme avec TCP Tahoe mais avec
une fenêtre de congestion à 1MSS (maximum segment size).
26
Chapitre I: Concepts de base
Les principales innovations dans TCP Reno par rapport à
TCP Tahoe sont le facteur de réduction de la fenêtre, dans le cas
où une perte est détectée par acquittements
dupliqués, et les actions à entreprendre à ce moment. En
effet, dans Reno lors de la détection d'une perte par acquittements
dupliqués, seul le paquet supposé être perdu, mais pas les
suivants, est retransmis, et la phase de congestion au lieu du slow start est
exécutée à nouveau. Cependant, les performances de TCP
Reno se dégradent lorsque plusieurs pertes successives ont lieu dans la
même fenêtre de données.
|