Ingénierie des réseaux - Chapitre 3: La couche transport 2 Master 1 SIGLIS Contrôler le débit démission La couche application passe un bloc de données à la couche transport La couche transport divise le blocs en segments de MSS octets La couche transport envoie autant de segments que possible (cgn_fenetre octets) Lorsque le premier acquittement parvient à lémetteur, 1RTT sest écoulé Lorsque le dernier acquittement parvient à lémetteur il sest écoulé 1RTT + soit ~ 1RTT Le débit est ~ cgn_fenetre/RTT octet/s Conclusion: Plus on augmente cgn_fenetre, plus on augmente le débit demission Plus on diminue cgn_fenetre, plus on diminue le débit demission
Ingénierie des réseaux - Chapitre 3: La couche transport 3 Master 1 SIGLIS Evitement de la congestion (congestion avoidance) Après la phase de démarrage lent on rentre dans la phase dévitement de la congestion On crée une nouvelle variable ssthresh ssthresh vaut la moitié de la valeur de cgn_fenetre au moment où on a détecté un évènement de perte La valeur du débit disponible est entre ssthresh et cgn_fenetre Quand on rentre dans la phase de congestion avoidance cgn_fenetre passe à ssthresh Laugmentation de cgn_fenetre devient linéaire A chaque réception dACK, on ajoute 1 MS à cgn_fenetre On sort de la phase de congestion avoidance quand on reçoit un triple ACK dupliqué.
Ingénierie des réseaux - Chapitre 3: La couche transport 4 Master 1 SIGLIS Evitement de la congestion On utilise une nouvelle variable ssthresh « slow start threshold » ssthresh vaut cgn_fenetre / 2 Quand on passe dans la phase évitement de la congestion, on augmente cgn_fenetre de manière linéaire et non plus exponentielle.
Ingénierie des réseaux - Chapitre 3: La couche transport 5 Master 1 SIGLIS Raffinement: inférer la perte Après 3 ACKs dupliqués cgn_fenetre est divisé par deux la fenêtre grossit ensuite linéairement mais après un évènement de timeout cgn_fenetre est fixé à 1 MSS cgn_fenetre ensuite grossit exponentiellement jusquà atteindre Seuil, puis elle grossit linéairement Philosophie 3 ACKs dupliqués indiquent que le réseau est capable de transporter des segments un timeout indique une situation de congestion
Ingénierie des réseaux - Chapitre 3: La couche transport 6 Master 1 SIGLIS Démarrage lent (Slow start) Quand la connexion commence cgn_fenetre = 1MSS A chaque réception dACK on double cgn_fenetre Slow Start sarrête lorsque on détecte 3 ACKs dupliqués Le débit initial est faible mais augmente exponentiellement vite. Slow start est une technique pour découvrir une borne supérieure du débit disponible Hôte A 1 segment RTT Hôte B time 2 segments 4 segments
Ingénierie des réseaux - Chapitre 3: La couche transport 7 Master 1 SIGLIS Résumé : Le contrôle de congestion de TCP Quand cgn_fenetre est en dessous de Seuil, lémetteur est en phase de slow start, la fenêtre croît exponentiellement Quand cgn_fenetre est au dessous de Seuil, lémetteur est en phase dévitement de la congestion, la fenêtre croît linéairement Quand on détecte trois ACKs dupliqués : Seuil = cgn_fenetre / 2 cgn_fenetre = Seuil Quand un timeout survient Seuil = cgn_fenetre / 2 Cgn_fenetre = 1 MSS
Ingénierie des réseaux - Chapitre 1 Généralités 8 Master 1 SIGLIS Augmentation additive, augmentation multiplicative Approche: augmenter le taux de transmission jusquà rencontrer un évènement de perte Augmentation multiplicative : Augmenter cgn_fenetre de 1 MSS à chaque RTT jusquà ce quune perte soit détectée Augmentation additive
Ingénierie des réseaux - Chapitre 3: La couche transport 9 Master 1 SIGLIS Contrôle de congestion Quand la connexion commence, cgn_fenetre = 1MSS Exemple: MSS = 500 octets; RTT=200ms débit initial : 20 kbs La bande passante disponible est sans doute >> MSS/RTT Il est souhaitable de monter rapidement à un débit proche du débit disponible Quand la connexion va commencer, on va augmenter le débit jusquà observer un évènement de perte.
Ingénierie des réseaux - Chapitre 3: La couche transport 10 Master 1 SIGLIS Contrôle de congestion TCP (simplifié) En phase de slow start, quand cgn_fenetre < Seuil la fenêtre croît exponentiellement En phase de congestion avoidance, quand cgn_fenetre < Seuil la fenêtre croît linéairement Quand un triple ACK dupliqué arrive: Seuil = cgn_fenetre / 2 cgn_fenetre = Seuil On passe en congestion avoidance Quand un timeout arrive : Seuil = cgn_fenetre / 2 cgn_fenetre = 1 MSS On passe en slow start Philosophie 3 ACKs dupliqués indiquent que le réseau est capable de transporter des segments un timeout indique une situation de congestion
Ingénierie des réseaux - Chapitre 3: La couche transport 11 Master 1 SIGLIS Evitement de la congestion (congestion avoidance) Après la phase de démarrage lent on rentre dans la phase dévitement de la congestion On crée une nouvelle variable Seuil Seuil vaut la moitié de la valeur de cgn_fenetre au moment où on a détecté un évènement de perte La valeur du débit disponible est entre Seuil et cgn_fenetre
Ingénierie des réseaux - Chapitre 5 La couche Liaison 13 Master 1 SIGLIS Un titre ici du texte ici Application Transport Réseau Liaison Physique Liaison Physique Application Transport Réseau Liaison Physique Réseau Liaison Physique Hôte Switch Routeur Hôte