ingénierie des réseaux - chapitre 3: la couche transport 2 master 1 siglis contrôler le débit...

13

Upload: amable-mas

Post on 04-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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
Page 2: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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

Page 12: 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
Page 13: 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

13Ingénierie des réseaux - Chapitre 5 La couche LiaisonMaster 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