description |
---|
l’émetteur adapte le débit en fonction du réseau |
- Adaptation à la vitesse du réseau
- Évitement des pertes excessives de paquets à cause d'une surcharge du réseau
- Le réseau n’est plus en mesure de transporter tout le trafic injecté et perd des paquets
{% hint style="warning" %} Danger de l’amplification d’une congestion par TCP par une retransmission excessive de la perte de paquets {% endhint %}
{% hint style="success" %} Le contrôle de congestion de TCP doit optimiser le débit de transmission sans mettre en danger la stabilité du réseau {% endhint %}
Nom | Acronyme | Définition |
---|---|---|
Maximum Segment Size | mss |
|
Slow Start Threshold | ssthresh |
|
advertised Window | awnd |
|
Congestion Window | cwnd |
|
Sending Window | swnd |
|
retransmit timeout | rto |
|
Roundtrip time | rtt |
|
La taille de la fenêtre est proportionnelle au débit, donc la fenêtre régule le débit
L’émetteur adapte valeur cwnd en fonction des acquittements reçus ou des pertes détectées
Il y a trois phases, avec des règles différentes pour adapter cwnd:
- Démarrage lent: Pour détecter le débit optimal, TCP commence avec une petite fenêtre de congestion et augmente rapidement le débit
- Évitement de congestion: Dès que TCP s’approche de la zone de congestion, TCP augment le débit plus lentement
- Accroissement additif - décroissance multiplicative: Dès qu’une perte est détectée TCP ralentit rapidement puis augmente à nouveau lentement
- TCP doit fonctionner correctement pour n’importe quelle capacité du réseau (entre bits/s et Gb/s)
- Il faut éviter de surcharger un lien lent au départ➢Petite fenêtre cwnd au début
- Il faut rapidement arriver à exploiter la capacité de liens importants➢Augmentation rapide de cwnd
- initialement cwnd = 1MSS
- Ensuite cwnd est incrémenté de 1MSS par acquittement reçu
{% hint style="info" %} La fenêtre de congestion cwnd double à chaque RTT (délai aller-retour) {% endhint %}
- Dans Slow Start, la taille de cwnd augmente exponentiellement
- Augmentation doit ralentir quand TCP s’approche du ‘débit optimal’
- Un seuil d’évitement de congestion indique quand on s’approche d’une congestion (ssthresh)
- Dès que
$$cwnd > ssthresh$$ , cwnd est agrandi linéairement - Pour chaque acquittement reçu
$$cwnd \mathrel{{+}{=}} \dfrac{MSS \times MSS}{cwnd}$$
{% hint style="info" %} Au-dessus du seuil la fenêtre de congestion croît d'un MSS chaque RTT {% endhint %}
Comment déterminer la valeur du seuil de congestion ssthresh?
- Lorsqu’il n’y a pas de congestion, ssthresh croît linéairement avec cwnd → accroissement additif
- Lorsqu’une perte a été détectée, ssthresh est diminué à la moitié → décroissance multiplicative
Théorie des files d’attente : Pour garantir la stabilité du réseau, le débit doit diminuer de manière exponentielle
TCP (reno) recommence avec Slow Start pour éviter des rafales de retransmissions
- Slow Start avec une croissance exponentielle de cwnd
- Congestion avoidance (accroissement additif de sstresh)
- Diminution de sstresh lors d'une perte (décroissance multiplicative de sstresh)
L’utilisation de Slow Start après des pertes isolées n’est pas optimale
- Si des segments intermédiaires ont été perdus mais les segments suivants sont arrivés, cela indique une congestion légère et ne justifie pas Slow Start
Recouvrement rapide pour résoudre rapidement la perte de segments isolés ( en combinaison avec retransmission rapide)
- Retransmettre rapidement le segment manquant
- Diminuer la fenêtre à la moitié
- Continuer avec Congestion Avoidance
La taille de la fenêtre de congestion est variée en fonction de la congestion du réseau. Une congestion est détectée à cause de pertes de paquets
- Au début de la connexion et après un timeout de retransmission (→congestion sévère)
- Permet d’augmenter rapidement le débit
- Dès que le débit s’approche à la capacité disponible
- Indique la zone critique où une congestion est possible
- Accroissement additif et décroissance multiplicative de ssthresh
- Ssthresh oscille entre le débit maximum et la moitié de ce débit