11

Contrôler le débit d’émission

  • 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

Page 1: Contrôler le débit d’émission
Page 2: Contrôler le débit d’émission

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

Page 3: Contrôler le débit d’émission

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é.

Page 4: Contrôler le débit d’émission

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.

Page 5: Contrôler le débit d’émission

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

Page 6: Contrôler le débit d’émission

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

Page 7: Contrôler le débit d’émission

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

Page 8: Contrôler le débit d’émission

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

Page 9: Contrôler le débit d’émission

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.

Page 10: Contrôler le débit d’émission

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

Page 11: Contrôler le débit d’émission

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