Upload
york
View
35
Download
0
Embed Size (px)
DESCRIPTION
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) - PowerPoint PPT Presentation
Citation preview
2Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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 s’est écoulé Lorsque le dernier acquittement parvient à l’émetteur il s’est é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
d’emission Plus on diminue cgn_fenetre, plus on diminue le débit
d’emission
3Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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 L’augmentation de cgn_fenetre devient linéaire
A chaque réception d’ACK, on ajoute 1 MS à cgn_fenetre On sort de la phase de congestion avoidance quand on reçoit un triple ACK dupliqué.
4Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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.
5Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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
6Ingénierie des réseaux - Chapitre 3: La couche transportMaster 1 SIGLIS
Démarrage lent (Slow start)
Quand la connexion commence cgn_fenetre = 1MSS A chaque réception d’ACK on double cgn_fenetre Slow Start s’arrê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
7Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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
8Ingénierie des réseaux - Chapitre 1 GénéralitésMaster 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 qu’une perte soit détectée
Augmentation additive
9Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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.
10Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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
11Ingénierie des réseaux - Chapitre 3: La couche transportMaster 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