Algorithme TCP

Il existe des algorithmes de TCP différents pour répondre à l'augmentation de la bande passante des liaisons : en effet les premiers algorithmes utilisés historiquement seraient incapables de faire monter le débit suffisamment rapidement pour saturer un lien réseau à 100 Mbit/s, débit typique des réseaux locaux dans les années 2000.

Les différents algorithmes TCP sont, parmi les plus connus :

  • TCP tahoe
  • TCP Reno
  • TCP new Reno
  • TCP Vegas

Il faut comprendre que l'algorithme TCP ne connait jamais le débit optimal à utiliser pour un lien : d'ailleurs il est difficile à estimer. IP, qui porte TCP, ne garantit pas que le chemin sera stable dans le temps à travers le réseau, d'où une impossibilité à prédire le débit à utiliser. De plus le débit est aussi conditionné par d'autres facteurs comme l'existence de flux concurrents sur une partie du chemin (par exemple vous pouvez avoir plusieurs téléchargements simultanés sur des serveurs ayant différents niveaux de performance).

C'est ainsi que TCP va essayer de deviner le meilleur débit à utiliser en essayant de toujours augmenter le débit jusqu'à la survenue d'une perte de paquet parce que le réseau n'arrive pas à absorber tout le débit. En effet, les réseaux informatiques sont conçus pour être les plus simples possibles et c'est la seule possibilité qu'a un réseau pour avertir les utilisateurs qu'il est saturé.

On distingue les algorithmes TCP par la forme du slow-start (démarrage lent) et leur façon d'utiliser la bande passante disponible. On parle parfois d'agressivité du protocole.

TCP tahoe - slowstart and congestion avoidance

Lors d’une congestion, TCP réagit en réduisant le débit de la connexion. Le protocole a la possibilité de mesurer l’importance du problème en observant l’augmentation du temps de réponse. Si le protocole ne réagit pas aux congestions, le nombre de retransmission peut continuer à augmenter et aggraver ainsi la congestion. C’est la raison pour laquelle un algorithme de contrôle réduit le flux en cas de congestion. Cet algorithme, appelé slowstart and congestion avoidance, littéralement « départ lent et évitement de congestion», doit être entièrement distribué puisqu’il n’existe pas de système central de contrôle dans TCP. Son principe consiste à débuter d’une fenêtre de taille 1 et à doubler la taille de la fenêtre chaque fois que l’ensemble des paquets de la fenêtre a été bien reçu avant la fin des temporisateurs de reprise respectifs. Lorsqu’un fragment arrive en retard, c’est-à-dire après que le temporisateur est arrivé à échéance, il est retransmis en redémarrant à une fenêtre de 1. Au cours de la deuxième phase de l’algorithme, congestion avoidance, lorsqu’un retard est détecté, qui oblige à un redémarrage sur une fenêtre de 1, la taille de la fenêtre N qui a provoqué le retard est divisée par 2 (N/2). À partir de la valeur de la taille 1 de redémarrage, la taille double jusqu’à ce que la taille de la fenêtre dépasse N/2. À ce moment, on revient à la taille précédente, qui était inférieure à N/2, et, au lieu de doubler, on ajoute seulement 1 à la taille de la fenêtre. Ce processus d’ajout de 1 se continue jusqu’à ce qu’un retard d’acquittement redémarre le processus à la fenêtre de taille 1. La nouvelle valeur qui déclenche la partie congestion avoidance est calculée à partir de la fenêtre atteinte divisée par deux. Un exemple de comportement de cet algorithme est illustré à la figure[1].

Ces différents critères sont :

  • augmentation linéaire/exponentielle du débit ;
  • diminution linéaire/exponentielle du débit après un événement (perte de paquets, dépassement d'un seuil, …) ;
  • l'existence de seuils de débit dans l'algorithme (par exemple l'augmentation peut devenir prudente une fois qu'elle arrive au niveau de sa dernière meilleure performance).

Il n'est pas aisé de parler de meilleure version TCP : il y a des versions adaptées aux réseaux très hauts débits, il y a des versions adaptées aux petits débits, il y a des versions adaptées aux réseaux qui font beaucoup d'erreurs.

Enfin, on observe que les algorithmes TCP sont tous compatibles entre eux (puisqu'il n'y a pas de modification du segment TCP mais seulement une variation sur leur vitesse d'arrivée). Par exemple, Windows Vista utilise Compound TCP alors que les noyaux Linux utilisent TCP CUBIC depuis la version 2.6.19.

Notes et références

  1. Eyrolles - 2008 - Les Réseaux - 6e édition

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Algorithme TCP de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Algorithme De Nagle — L algorithme de Nagle est un algorithme important pour le fonctionnement de TCP défini par John Nagle dans la RFC 896 (RFC 896). L objectif de cet algorithme est d améliorer l efficacité du protocole en réduisant le nombre de paquets nécessaires… …   Wikipédia en Français

  • Algorithme de nagle — L algorithme de Nagle est un algorithme important pour le fonctionnement de TCP défini par John Nagle dans la RFC 896 (RFC 896). L objectif de cet algorithme est d améliorer l efficacité du protocole en réduisant le nombre de paquets nécessaires… …   Wikipédia en Français

  • Algorithme de Nagle — L algorithme de Nagle est un algorithme important pour le fonctionnement de TCP défini par John Nagle dans la RFC 896 (RFC 896). L objectif de cet algorithme est d améliorer l efficacité du protocole en réduisant le nombre de paquets nécessaires… …   Wikipédia en Français

  • Tcp — Transmission Control Protocol Pour les articles homonymes, voir TCP. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • Algorithme de Karn — L algorithme de Karn permet d obtenir une mesure fiable du round trip delay time (RTT) lors de la transmission de paquets à travers un réseau via TCP. L algorithme a été proposé par Phil Karn en 1987[1]. Obtention de la mesure Obtenir une mesure… …   Wikipédia en Français

  • Algorthime TCP — Algorithme TCP Il existe des algorithmes de TCP différents pour répondre à l augmentation de la bande passante des liaisons : en effet les premiers algorithmes utilisés historiquement seraient incapables de faire monter le débit suffisamment …   Wikipédia en Français

  • Port TCP — Transmission Control Protocol Pour les articles homonymes, voir TCP. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • Van Jacobson — en 2006. Van Jacobson est l un des contributeurs principaux aux protocoles TCP/IP qui sont à la base d Internet. Ses contributions ont consisté à l amélioration des performances. Il est employé par Xerox PARC depuis 2006 et est également Chief… …   Wikipédia en Français

  • Transmission control protocol — Pour les articles homonymes, voir TCP. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • Pipelining HTTP — Le pipelining HTTP est une technique consistant à combiner plusieurs requêtes HTTP dans une seule connexion TCP sans attendre les réponses correspondant à chaque requête. Le pipelining présente plusieurs avantages: amélioration importante du… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”