En octobre 1986, le débit d'Internet s'est effondré à environ un millième de sa capacité à mesure que la charge augmentait, alors même qu'aucun lien individuel n'était rompu. Van Jacobson a diagnostiqué la cause : les émetteurs transmettaient aussi vite qu'ils le pouvaient et, en cas de perte, retransmettaient à pleine vitesse, si bien que le réseau consacrait sa capacité à retransmettre des paquets qui seraient de nouveau abandonnés.

Son article de 1988 proposait le démarrage lent et l'évitement de la congestion. Un émetteur commence avec un segment et double sa fenêtre à chaque accusé de réception jusqu'à ce qu'il détecte une perte, puis il réduit la fenêtre de moitié et l'augmente lentement. Au lieu de supposer la capacité du chemin, chaque émetteur la mesure grâce au retour d'information et s'y adapte.

La conception est délibérément prudente au départ, car le seul moyen de connaître la bande passante disponible est de la sonder, et le seul moyen sûr de la sonder est de le faire doucement. Le comportement qui en résulte — augmentation additive, diminution multiplicative — permet à des milliers de connexions de partager un même chemin sans ordonnanceur central.

Sonder la capacité doucement ; réduire de moitié en cas de perte

La perte est traitée comme un signal, et non comme une erreur, de sorte que les émetteurs réagissent avant que le réseau ne soit submergé.

La croissance exponentielle trouve rapidement la capacité, tandis que la réduction de moitié en cas de perte maintient la reprise en sécurité.

L'algorithme est local : chaque émetteur s'adapte à partir de son propre retour d'information, si bien que le système passe à l'échelle de millions de connexions.

Il a corrigé une défaillance systémique par un changement du comportement d'un seul protocole, et non par de nouveau matériel.

Lorsque la capacité du système est inconnue et partagée, faites sonder chaque participant avec prudence et faites-le reculer sur retour d'information — l'ensemble s'autorégule alors.

Le démarrage lent et l'évitement de la congestion sont devenus le cœur du contrôle de congestion de TCP et ont été codifiés dans la RFC 2001 en 1997. Des variantes ultérieures (NewReno, CUBIC, BBR) ont affiné les règles de sondage, mais le principe de sondage et de recul régit toujours la manière dont la majeure partie d'Internet partage la bande passante.

VÉRIFIEZ LES SOURCES

Les sources

  1. Congestion Avoidance and Control ACM SIGCOMM 1988 (via Lawrence Berkeley National Laboratory) · ee.lbl.gov ·
  2. RFC 2001 — TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms IETF / RFC Editor · rfc-editor.org