Vous êtes sur la page 1sur 24

Chapitre II

La couche transport

Printemps 2012

2. Couche transport

Rappel : la couche Rseau


Fonctionnalits de la couche Rseau / IP
Adressage des nuds du rseaux Routage et acheminement Interconnexion de rseaux htrognes
Fragmentation des paquets Conversion dadresses IP -> MAC
7 6 5 4 3 2 1 Application Prsentation Session Transport Rseau Liaison Physique OSI telnet, ftp, smtp, http, snmp,

Service offert la couche Transport : Best Effort


Paquets perdus Paquets r-ordonns Paquets dupliqus Limite la taille des paquets

TCP UDP IP
Hte-rseau

TCP/IP
Printemps 2012 2. Couche transport 2

La couche Transport
Communication de bout en bout
Services offerts la couche suprieure
Service sans connexion Service orient connexion
Fiable (garantie de dlivrance) Dlivrance dans lordre dmission

Transmission de messages de longueur arbitraire

lments dun protocole de transport


1. 2. 3. 4. Adressage tablissement et terminaison de connexions Transmission fiable (squencement, retransmission, ) Contrle de flux et de congestion

Printemps 2012

2. Couche transport

Ladressage
Indique lentit de la couche suprieur avec laquelle on veut communiquer
Modle OSI
Couche rseau: NSAP (Network Service Access Point) Couche transport: TSAP (Transport Service Access Point)

Printemps 2012

2. Couche transport

Ladressage dans le modle TCP/IP


Adressage de linterface
Adresse IP

No. de port
FTP HTTP FTP HTTP

Adresse dun service


Port (= TSAP)
Permet de dmultiplexer les transmissions Entier sur 16 bits Utiliss par TCP et UDP TCP et UDP peuvent rutiliser les mmes ports

SMTP

SMTP

TCP/UDP IP Hte-rseau

TCP/UDP IP Hte-rseau

Station 1 Station 2 Adresses IP


5

Printemps 2012

2. Couche transport

Les ports TCP / UDP


Deux types de numros de port
Ports bien connus
Dfinis dans des RFC Configurs dans le fichier /etc/services dans Unix
Service Port Protocole utilis ftp (donnes) 20 TCP ftp (contrle) 21 TCP telnet 23 TCP smtp 25 TCP snmp 161 UDP portmap 111 TCP

Ports phmres

Assigns dynamiquement par le protocole PORTMAP


Un serveur senregistre auprs de PORTMAP de sa machine Un client contacte le PORTMAP la machine loigne pour demander le no de port correspondant un nom dune application
Printemps 2012 2. Couche transport 6

Interface vers la couche application: Sockets TCP/UDP


La communication des applications travers un rseau TCP/IP repose sur lutilisation de sockets Socket: reprsente une extrmit dune connexion
Identifi par
1. Ladresse IP de la machine locale 2. Le type du protocole utilis: TCP ou UDP 3. Un numro de port

Connexion
Association de deux sockets
2. Couche transport 7

Printemps 2012

Protocole de dmultiplexage simple


Protocole UDP: User Datagram Protocol (RFC 768) Fonctionnalits
Dmultiplexage entre applications en utilisant des port Contrle derreur optionnel (obligatoire dans IPv6)

Transmission non fiable


Sans acquittement ou retransmission Sans contrle de flux Sans connexion

Service de transmission similaire IP

Printemps 2012

2. Couche transport

Segment UDP
32 bits

Port source Longueur du segment 8 octets En-tte UDP >= 20 octets En-tte IP, Proto=17

Port destination Somme de contrle Donnes

Donnes

Longueur de len-tte: 8 octets Port source: optionnel, pour la rponse Longueur maximum dun segment: 65535 octets
Printemps 2012 2. Couche transport 9

Somme de contrle
Inclut
Le pseudo-header (informations de len-tte IP) Len-tte UDP Les donnes (+bourrage)
32 bits Adresse source Adresse destination zro Prot. IP (17) Longueur du segment Port source Port destination Longueur du segment Somme de contrle Donnes Bourrage

Pseudoheader En-tte UDP

Calcul

The checksum is the 16-bit ones complement of the ones complement sum of the 16-bit words
Printemps 2012 2. Couche transport 10

Exercices 5,6,7

Printemps 2012

2. Couche transport

11

Le protocole TCP
Transmission Control Protocol, RFC 793 Fonctionnalit principale : Transmission fiable de bout en bout Fonctionnalits supplmentaires importantes
Contrle de flux entre les systmes terminaux Contrle de gestion du rseau

Implmentations (interoprables !)
TCP Tahoe, TCP Reno, TCP NewReno, TCP Sack, TCP Vegas

Printemps 2012

2. Couche transport

12

Modle de Service
Interface vers la couche dapplication : sockets Connexions TCP
Connexion : liaison entre deux sockets Transmission bidirectionnelle Transmission point--point
Le multicast / broadcast nest pas possible

Sockets
HTTP SMTP FTP FTP HTTP

SMTP

TCP IP

Connexion

TCP IP Hte-rseau

Hte-rseau

Station 1 Station 2 Adresses IP


Printemps 2012 2. Couche transport 13

Transfert tamponn flot doctets


TCP offre la couche suprieur un service flot doctets
1. Lapplication passe des blocs de donnes TCP 2. TCP met les donnes dans un tampon dmission 3. TCP regroupe les donnes en segments qui sont transmis 4. Le rcepteur TCP place les segments dans un tampon de rception 5. TCP passe des donnes en bloc lapplication
Flot doctets/blocs

Application

Application

TCP

Tampon dmission

Tampon de rception

TCP

Transmission de segments TCP

La dlimitation des messages de lapplication nest pas prserve


Printemps 2012 2. Couche transport 14

Forcer la dlivrance
Le drapeau PUSH
Lapplication peut ordonner TCP denvoyer et dlivrer les donnes immdiatement Exemple : terminal distance (Telnet)
Transmission aprs chaque retour chariot

Lmetteur TCP envoie les donnes sans attendre Le rcepteur TCP remet les donnes immdiatement lapplication

Le drapeau URGENT (signalisation hors bande)


Permet de signaler au rcepteur quil doit lire les donnes stockes par TCP Exemple :
Application distante est bloqu et naccepte pas les donnes de TCP Permet de tuer lapplication distante en envoyant un Ctrl-C

Le processus dapplication est interrompu et lit les donnes de TCP

Linterface TCP la couche application permet de spcifier ces drapeaux


Printemps 2012 2. Couche transport 15

Transmission des donnes - Survol


lments de la transmission fiable :
1. Numros de squence (sur 32 bits)
TCP numrote les octets transmis et non pas les segments
Les donnes dans dun segment peuvent changer lors dun retransmission

2. Segments dacquittement : confirmation la rception correcte dun segment


Indique le numro de squence du prochain octet attendu Dans une transmission bidirectionnelle, lacquittement peut tre transport gratuitement dans un segment de donnes normal (piggybacking) Lmetteur arme un temporisateur lors de la transmission de chaque segment Si le temporisateur expire avec la rception dun acquittement, le segment est retransmis
2. Couche transport 16

3. Temporisateur de retransmission

Printemps 2012

Format du segment TCP


Ports et somme de contrle
Comme dans UDP
32 bits

Numro de squence
Du premier octet des donnes

Acquittement (optionnel):
Prochain no. de squence attendu

Longueur de len-tte
En mots de 32 bits

Fentre : contrle de flux


Espace libre du tampon de rception

Port source Port destination Numro de squence Numro de squence acquitt Long. Bits Fentre en-tte Rserv source Somme de contrle Pointeur durgence Bourrage Options (optionnelles) Donnes (optionnelles)
U A P R S F R C S S Y I G K H T N N

Pointeur durgence
Indique la fin des donnes urgentes
Bits :

Options : p. ex. MSS


Taille maximale accepte dun segment
Printemps 2012 2. Couche transport

17

Bits de signalisation
URG : drapeau URGENT PSH : drapeau PUSH ACK :
Indique si le segment contient un acquittement

SYN (synchronisation) :
Signale un segment SYN Utilis lors de ltablissement dune connexion

FIN (fin de connexion) :


Signale un segment FIN Utilis lors de la libration dune connexion

Bits :

U A P R S F R C S S Y I G K H T N N

RST (reset)
Utilis pour rinitialiser une connexion
Printemps 2012 2. Couche transport 18

Exercice 9

Printemps 2012

2. Couche transport

19

tablissement fiable dune connexion


Cest simple ? Non ! Protocole simpliste :
tablissement de connexion en deux temps
1. Demande dtablissement 2. Confirmation
Hte A Hte B

Scnario
Ordre de versement une banque Tous les paquets du client sont retards et retransmis
Hte A Deman Hte B
de de Deman

Confirmation
Versem ent 1 m io Versem ent 1 m io

Demande

Confirmation
Deman de

Confirmati

on

?? ? ?? ?

Confirmation Versem ent 1 m io Confirmation


20

Printemps 2012

2. Couche transport

tablissement de connexion dans TCP


Difficult principale :
Tenir compte de la possibilit de doublons

Mcanismes de TCP
Les segments SYN ont galement un numro de squence Un ordinateur qui reoit un SYN demande lmetteur sil est valable

Three way handshake (tablissement de connexion en trois tapes)


Les htes prparent la transmission des donnes Les htes se mettent daccord sur les numros de squence initiaux

Hte A
SYN=x

Hte B

Hte A
SYN=x

Hte B

x+1 SYN=y,ACK ACK y+1

x+1 SYN=y,ACK
RST

Printemps 2012

2. Couche transport

21

Dure de vie maximale dun segment


Problme des nouvelles incarnations dune connexion
Deux htes peuvent tablir et librer des incarnations de la mme connexion en succession rapide
Nouvelle incarnation : utilise la mme paire de sockets
Hte A Hte B

SYN=x

x+1 SYN=y,ACK
Connexion 1

Comment viter des confusions cause dun doublon retard dune connexion prcdente ?

ACK y+1 Donne s Sq=x+ 1 Donnes Sq=x+1 (Retransm ission)

On suppose une dure de vie limite des segments


MSL : Maximum segment lifetime (2 min)

SYN=x

Interdiction de rutiliser les mmes sockets pendant 2 * MSL

Connexion 2

x+1 SYN=y,ACK ACK y+1

Donne s Sq=x+ 1

Segment retard

Printemps 2012

2. Couche transport

22

Libration de connexion
Cest simple ? Non plus ! Protocole simpliste
Libration en deux temps
Jai termin ! Et vous ? Jai galement termin !

Problme des deux armes


Les deux arme bleues doivent se mettre daccord sur lheure de lattaque
Arme 1 : Attaque laube Arme 2 : Confirm

Comment larme 2 sait-elle que la confirmation a t reue ?


Larme 1 pourrait confirmer la rception de la confirmation
Comment larme 1 sait-elle que cette confirmation a t reue ?


Printemps 2012 2. Couche transport 23

Libration dune connexion dans TCP


Les connexions TCP sont bidirectionnelles
Libration sparment dans les deux sens
Un hte peut demander la libration dun sens de la connexion Lautre hte peut continuer transmettre Segments FIN et ACK pour librer la connexion dans un Hte A Hte B sens Ne rsout pas le problme des deux armes Solution pratique :
Retransmission du premier FIN La connexion est libre par une temporisation, mme si le deuxime ACK narrive pas
FIN Sq= x

ACK x+1 y FIN Sq= ACK y+1

Printemps 2012

2. Couche transport

24

Automate nombre dtats finis de TCP


Rsume le comportement de TCP lors de ltablissement et de libration de connexions

Printemps 2012

2. Couche transport

25

Transmission fiable
Garantie de la dlivrance des donnes, dans lordre de lmission Doit tre ralise sur une infrastructure nonfiable (service best-effort dIP) lments de la ralisation
1. Numros de squence
Les octets transmis sont numrots, non pas les segments SYN et FIN ont galement des numros de squence

2. Acquittement 3. Retransmission
Estimation de la temporisation de retransmission

Printemps 2012

2. Couche transport

26

Acquittements cumulatifs
Lacquittement dun numro de squence confirme la rception de tous les octets avant ce numro de squence Avantages
Il nest pas ncessaire dacquitter chaque segment sparment Un acquittement perdu nimplique pas ncessairement une retransmission
Les implmentations actuelles acquittent chaque deuxime segment, sauf lors dun dlai trop grand
Hte A Hte B

Inconvnient principal

Sq=101

1 ACK 10

Si un segment intermdiaire a t perdu, le rcepteur ne peut pas signaler la rception correcte des segments suivants Lmetteur retransmettra probablement tous les segments partir du segment perdu (Mthode Go-back-n)

Sq=1101 Sq=2101
Temporisation de retransmission

1 ACK 10 1 ACK 10 1 ACK 10

Sq=3101

Retransmission Retransmissions inutiles

Sq=101 Sq=1101 Sq=2101 Sq=4101

01 ACK 41

Printemps 2012

2. Couche transport

27

Temporisateur de retransmission
Lexpiration dun temporisateur dclenche la retransmission dun segment Problme : quelle valeur choisir pour le temporisateur ?
Valeur trop petite : retransmissions inutiles Valeur trop grande : attente inutile lors dune perte

La bonne valeur doit dpendre du temps aller retour normal entre lmission du segment et la rception de lacquittement

Paramtres importants de TCP


RTT : Round Trip Time RTO : Retransmission Timeout
RTT

Hte A Sq=x Sq=x+ 1

Hte B

ACK x+1 ACK x+2

Printemps 2012

2. Couche transport

28

Estimation du RTT
Mthode originale prconise dans la RFC 793
1. Mesurer le temps RTT entre lmission dun segment et la rception de lACK correspondant
La plupart des implmentations TCP ne mesurent quun segment la fois et non pas tous

2. Lissage exponentielle des mesures : SRTT (Smoothed RTT)

SRTT = SRTT + (1 ) RTT

alpha : Coefficient de lissage (recommand : alpha=0,9)


Dtermine la vitesse de ladaptation aux variations du RTT

3. Timeout de retransmission

RTO = SRTT
beta: Coefficient de variance du RTT (recommand : beta=2)

Printemps 2012

2. Couche transport

29

Estimation amliore du RTT


En 1986 Internet a souffert plusieurs effondrements
Chute du dbit effectif dun facteur 1000 sur quelques liens importants

Constatation
TCP tait incapable de sadapter aux charges leves
Une augmentation brusque du RTT provoquait beaucoup de retransmissions

TCP injectait du trafic supplmentaire dans un rseau dj congestionn

Printemps 2012

2. Couche transport

30

10

Analyse du problme
Thorie des files dattente
Charge rho = Frquence des arrives * Temps de services des paquets

La variance du RTT est inversement proportionnelle rho


Exemple : Le calcul RTO = SRTT avec beta=2 tolre des variations du RTT dun facteur 2 Applicable pour une charge maximale du rseau de 30 % !
Charge rho=75% peut provoquer des variations du RTT dun facteur 16

Solution :
Estimation non seulement du RTT mais aussi de sa variance

Printemps 2012

2. Couche transport

31

Mthode amliore de calculer RTO


Err = RTT SRTT SRTT = SRTT + g Err D = D + h (Err D ) RTO = SRTT + 4D.
Err : diffrence entre SRTT et nouvelle mesure D : cart moyen du RTT g, h : contrlent la vitesse de ladaptation des variations du RTT
Recommand: g = 1/8, h=1/4

RTO RTT mesur Mthode originale


Printemps 2012 2. Couche transport

Mthode amliore
32

Algorithme de Karn
Comment mesurer le RTT si un segment a t retransmis ?
Est-ce que lACK concerne le segment original ou la retransmission ? Rcepteur Emetteur Emetteur Rcepteur
RTT mesur RTT mesur

Tran smis sion origin ale Retr ansm issio n

Tran smis sion origin ale

ACK

ACK Retr ansm issio n

Problme de lambigut de la retransmission Solution (Algorithme de Karn) :


Ignorer les mesures du RTT concernant des segments qui ont t retransmis
Printemps 2012 2. Couche transport 33

11

Retransmission rapide
Problme des acquittements cumulatifs
Un segment intermdiaire a t perdu Comment signaler que les segments suivants sont arrivs ?
Acquittements dupliqus Hte A Hte B

Sq=101

1 ACK 10

Sq=1101 Sq=2101

1 ACK 10 1 ACK 10 1 ACK 10

Solution :
Lors de la rception dun segment en dsordre, le rcepteur rpte le dernier ACK (dup ACK) Si lmetteur reoit 3 dupACKs, il retransmet le segment sans attendre un timeout
Printemps 2012

Retransmission

Sq=3101

Sq=101 Sq=4101

Suite de la transmission

01 ACK 41

2. Couche transport

34

Rsum: service de TCP


Connexions bidirectionnelles tablissement de connexion
Three-way handshake

Libration de connexion
Sparment pour chaque sens

Service de transmission fiable


Numro de squence pour chaque octet transmis Acquittements cumulatifs Retransmission dclenche par un temporisateur
Estimation adaptative du RTT

Printemps 2012

2. Couche transport

35

Exercices 8,15,16,18,19

Printemps 2012

2. Couche transport

36

12

Contrle de flux et de congestion


Objectif
Rgulation de la vitesse de transmission

Contrle de flux
Adaptation la vitesse du rcepteur vite quun metteur rapide surcharge un rcepteur lent

Contrle de congestion
Adaptation la vitesse du rseau vite des pertes excessives de paquets cause dune surcharge du rseau

Printemps 2012

2. Couche transport

37

Rappel : contrle de flux


Mthode la plus simple :
Stop and Go (Envoyer et attendre)
Hte A Message 1 ACK Message 2 ACK Message 3 B ralentit la transmission Hte B Temps de propagation d

Algorithme
Le rcepteur acquitte chaque segment sparment Lmetteur ne peut envoyer un nouveau segment quaprs la rception de lacquittement du segment prcdent Le rcepteur peut ralentir la transmission en retardant les acquittements

RTT

ACK Message 4

Simple mais faible utilisation du rseau


Printemps 2012 2. Couche transport 38

Performances du protocole Stop and Go


Taux dutilisation du rseau U :
Rapport entre le dbit effectif obtenu D et la capacit du rseau C

Calcul
Lmess: longueur dun message en bits Lack: longueur dun ACK en bits
Hte A Message 1 ACK Message 2 Hte B Temps de propagation d

RTT = ( LMess + L ACK ) / C + 2d U= LMess LMess = RTT C LMess + L ACK + 2dC

RTT

Utilisation est inversement proportionnelle au ACK produit largeur de bandedlai (bandwidth delay product)
Message 3

BWD = RTT C
ACK
Printemps 2012 2. Couche transport

B ralentit la transmission

Message 4

39

13

Exemple numrique
120.00% 100.00%
Utilisation U

Paramtres:

80.00% 60.00% 40.00% 20.00% 0.00%

Lmess=1000 bit Lack: 10 bit Dlai de propagation d = 10ms Largeur de bande C entre 1 kb/s et 1 Mb/s

Largeur de bande C (bits/s)

Utilisation infrieure 5% C = 1 Mb/s

Stop and Go nest appropri que pour les rseaux faible produit largeur de bande dlai

Printemps 2012

2. Couche transport

40

Protocole de la fentre glissante


Mthode de contrle de flux plus labore Amliore le taux dutilisation
Permettant lmetteur denvoyer plusieurs paquets avant de devoir attendre un accus de rception

Principe
Les donnes dans la fentre peuvent tre envoyes sans attendre dacquittement La rception dun acquittement permet de glisser la fentre droite
Fentre glissante ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... Peut tre envoy immdiatement Fentre glissante ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... Peut tre envoy immdiatement
41

mis et acquitt

Rception de lACK pour 8 et 9

mis non acquitt

A envoyer quand la fentre glisse

mis et acquitt
Printemps 2012 2. Couche transport

Gestion de la fentre glissante


Hte A 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 ... 10 ... Hte B

Sq 0, 1,2

ACK 3
0 1 2 3 4 5 6 7 8 9 10 ...

Sq 3,4,5 Sq 6,7,8, 9
0 1 2 3 4 5 6 7 8 9 10 ...

K6 AC

...

10 11 12 13 ...

Printemps 2012

2. Couche transport

42

14

Performances du protocole de la fentre glissante


Une fentre suffisamment grande permet dexploiter le canal de transmission 100 % Hte B Taille optimale de la fentre : Hte A
RTT = ( LMess + LACK ) / C + 2d W RTT C W = RTT C U =1=
RTT Seq 1 Seq 2 Seq 3 Seq 4 Seq 5 Seq 6
ACK ACK ACK ACK

Temps de propagation d

La taille optimale de la fentre glissante est gale au produit largeur de bande dlai du canal
Printemps 2012 2. Couche transport 43

Contrle de flux dans TCP


Bas sur un protocole fentre glissante mais avec une taille de fentre variable La fentre utilisable correspond la place libre dans le tampon du rcepteur Chaque accus de rception indique en plus la taille de la fentre (window advertisement) En variant la taille de la fentre, le rcepteur peut contrler la vitesse de transmission de lmetteur
Printemps 2012 2. Couche transport 44

Exemple du contrle de flux dans TCP


Fentre glissante ... 0 4096 6144 ... 0 2048 4096 6144 ... 0 2048 4096 6144 Hte A Hte B Tampon de rception 4096 0

Sq=0, Long. 2048


ACK 2048,

octets

8 Fentre 204

2048

4096

Sq=20 48, Lo ng. 20 48


ACK 4096,

octets

0 Tampon plein 4096

Fentre ferme ... 0 2048 4096 6144 ... 0 2048 4096 6144 ... 0 2048 4096 6144

Fentre 0
L'application lit 2048 octets

ACK 4096,

8 Fentre 204

2048

4096

Sq=40 96, Lo ng. 10 24

octets

3072 4096

Printemps 2012

2. Couche transport

45

15

Fentre ferme
Si le tampon de rception est plein, le rcepteur arrte la transmission en indiquant une fentre nulle Quand la fentre est nulle, lmetteur ne peut transmettre des donnes que dans deux cas
Donnes urgentes (avec le drapeau URG) Sondes de fentre (window probes)
Hte A Hte B

Lors dune fentre nulle, la perte de Fentre ferme ... lannonce dune fentre non nulle causerait un interblocage Attend l'annonce de fentre Lmetteur envoie priodiquement de petits segments dun octet qui obligent le rcepteur de r-annoncer la fentre
...
...

tre 0 ACK x, Fen

tre 2048 ACK x, Fen


Attend la rception de donnes

Sq=x, (WindowLong. 1 probe) tre 2048 ACK x+1, Fen

Printemps 2012

2. Couche transport

46

Le syndrome de la fentre stupide


Silly Window Syndrome
Problme de performances lorsque lapplication rceptrice lit les donnes octet par octet Chaque accus de rception annonce un petit espace disponible et chaque segment ne transporte quune petite quantit de donnes.
metteur Donnes transmettre ... ... Fentre ferme ... ... ... ... ... ... Rcepteur Tampon plein

tre 0 ACK x, Fen tre 1 ACK x, Fen

L'application lit 1 octet Annonce fentre = 1 Un nouvel octet arrive

Sq=x+1, 1 octet

Tampon plein

...

... Fentre ferme

Printemps 2012

2. Couche transport

...

tre 0 ACK x, Fen

47

viter la fentre stupide


Lmetteur et le rcepteur contribuent ce problme, donc les deux cts doivent contribuer le rsoudre Ct rcepteur : ne pas annoncer de petites fentres
Ne pas annoncer de nouvelle taille de fentre jusqu ce que puisse tre agrandie
soit par un segment de pleine taille (c'est--dire le MSS), soit par la moiti de l'espace du tampon du rcepteur

Ct metteur : ne pas transmettre de petits segments


Ne pas transmettre un segment que si
un segment de pleine taille peut tre envoy, ou un segment peut tre envoy qui a au moins la moiti de la taille du tampon de rception LACK du segment prcdent a dj t reu et toutes les donnes du tampon dmission peuvent tre envoyes

Printemps 2012

2. Couche transport

48

...

16

Exercices 25, 27, 28

Printemps 2012

2. Couche transport

49

Contrle de congestion
tat de congestion
Le rseau nest plus en mesure de transporter tout le trafic inject et supprime des paquets TCP ragit une perte avec une retransmission ce qui peut augmenter la charge du rseau

Danger de lamplification dune congestion par TCP

Le contrle de congestion de TCP doit optimiser le dbit de transmission sans mettre en danger la stabilit du rseau Dfis
1. Dterminer la capacit disponible sur le rseau 2. Ajuster le dbit pour obtenir le dbit optimal qui permet un rgime de transmission stable et en quilibre

Printemps 2012

2. Couche transport

50

Comportement stationnaire de TCP


Dbit optimal : quilibre stable de la transmission
Taille de la fentre = Produit largeur de bande dlai Un nouveau paquet nest inject dans le rseau que si un autre est sorti Toute une fentre de donnes est en transit entre lmetteur et le rcepteur La vitesse de transmission est autorgule par le dbit allerretour Rcepteur metteur Canal
Fentre glissante
.. 6 7 8 9 10 11 12 13 14 15 ..
6

Donnes 14
7

13
8

12
9

11
10

10

ACK Donnes 15
8

Fentre glissante
.. 7 8 9 10 11 12 13 14 15 16 ..

14
9

13
10

12
11

11

ACK
Printemps 2012 2. Couche transport 51

17

Bases du contrle de congestion de TCP


La fentre de congestion (cwnd, congestion window)
Gre par lmetteur pour limiter le dbit dmission TCP adapte la taille de cwnd au niveau de congestion dtect

Combinaison du contrle de flux et de congestion

Fentre effective = min (Annonce de fentre, cwnd )


Principe du contrle de congestion
Pour dtecter le dbit optimal, TCP commence avec une petite fentre de congestion et augmente rapidement le dbit ( Dmarrage lent) Ds que TCP sapproche la zone de congestion, TCP augment le dbit plus lentement ( vitement de congestion) Ds quune perte est dtect TCP ralentit rapidement et augmente nouveau lentement

Printemps 2012

2. Couche transport

52

Dmarrage lent (Slow Start)


Motivation
TCP doit fonctionner correctement pour nimporte quelle capacit du rseau (entre bits/s et Gb/s) Il faut viter de surcharger un lien lent ds le dbut
Petite fentre cwnd au dbut

Il faut rapidement arriver exploiter la capacit de liens importants


Augmentation rapide de cwnd

Algorithme Slow Start


Initialement cwnd = 1 MSS Ensuite cwnd est incrment de 1 MSS par acquittement reu

Cwnd double chaque RTT


Printemps 2012 2. Couche transport 53

Exemple de Slow Start


Fentre de congestion 1 MSS RTT Emetteur Rcepteur

ACK
2 MSS RTT

4 MSS RTT

8 MSS

Printemps 2012

2. Couche transport

54

18

vitement de congestion (Congestion Avoidance)


Dans Slow Start, la taille de cwnd augmente de manire exponentielle Augmentation doit ralentir quand TCP sapproche au dbit optimal Un seuil dvitement de congestion indique quand on sapproche une congestion
Paramtre ssthresh de TCP

Algorithme Congestion Avoidance


Ds que cwnd > ssthresh, cwnd est agrandie linairement Pour chaque acquittement reu :

cwnd Augmentation dun MSS par RTT


Printemps 2012 2. Couche transport 55

cwnd cwnd +

MSS MSS

Exemple Slow Start et Congestion Avoidance


Fentre de congestion cwnd

Au-dessous de ssthresh: Slow Start


Cwnd double chaque RTT

Au-dessus de ssthresh: Congestion Avoidance


Cwnd crot dun segment chaque RTT

52 48 44 40 36 32 28 24 20 16 12 8 4

Slow start

vitement de congestion

ssthresh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Temps (multiples de RTT)


Printemps 2012 2. Couche transport 56

Variation du seuil dvitement de congestion


Comment dterminer la valeur du seuil de congestion ssthresh ?
Ssthresh doit reprsenter la taille optimale de la fentre de congestion

Lorsquil ny a pas de congestion, ssthresh crot linairement avec cwnd accroissement additif Les signal que le dbit optimal a t dpass est la perte dun paquet
Thorie des files dattente
Lors dune congestion, la longueur des files dattente peut crotre de manire exponentielle Pour garantir la stabilit du rseau, le dbit doit diminuer de manire exponentielle

Lorsquune perte a t dtecte, ssthresh est diminu la moiti dcroissance multiplicative TCP recommence avec Slow Start (aprs un timeout)
Pour viter des rafales de retransmissions
Printemps 2012 2. Couche transport 57

19

Comportement de cwnd et ssthresh


Trois phases
Slow Start avec une croissance exponentielle de cwnd Congestion avoidance (accroissement additif de ssthresh) Diminution de ssthresh lors dune perte (dcroissance multiplicative de ssthresh)
Fentre de congestion cwnd
52 48 44 40 36 32 28 24 20 16 12 8 4

Timeout et retransmission ssthresh

ssthresh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Temps (multiples de RTT)

Printemps 2012

2. Couche transport

58

Recouvrement rapide (Fast Recovery)


Lutilisation de Slow Start aprs des pertes isoles nest pas efficace
Si des segments intermdiaires ont t perdus mais les segments suivants sont arrivs, cela indique une congestion lgre et ne justifie pas Slow Start

Recouvrement rapide pour rsoudre rapidement la perte de segments isols


Utilis en combinaison avec Retransmission Rapide

Algorithme Recouvrement Rapide


Retransmettre rapidement le segment manquant Diminuer la fentre la moiti Continuer avec Congestion Avoidance
Printemps 2012 2. Couche transport 59

Exemple de Recouvrement Rapide


Hte A cwnd=1
Seg 0
ACK 1

Hte B

cwnd=2 Dmarrage lent cwnd=3 cwnd=4

Seg 1 Seg 2
ACK 2 ACK 3 Seg 3 Seg 4 Seg 5 ACK 4 Seg 6 ACK 5 Seg 7 Seg 8 ACK 5 Seg 9 ACK 5 Seg 10 K5 AC ACK 5 Seg 5 ACK 5 Seg 11 Seg 12 ACK 11

cwnd=5 cwnd=6 Dup ACK 1 Dup ACK 2 Dup ACK 3 Dup ACK 4 Dup ACK 5

Recouvrement rapide

ssthresh=3, cwnd=3+3=6 cwnd=7 cwnd=8 cwnd=3

vitement de congestion

Printemps 2012

2. Couche transport

60

20

Effet de recouvrement rapide sur le dbit

cwnd

cwnd

a) sans recouvrement rapide

b) avec recouvrement rapide

Printemps 2012

2. Couche transport

61

Rsum du contrle de congestion dans TCP


La taille de la fentre de congestion est varie en fonction de la congestion du rseau
Une congestion est dtecte cause de pertes de paquets

Slow Start : croissance exponentielle du dbit


Au dbut de la connexion et aprs un timeout de retransmission ( congestion svre) Permet daugmenter rapidement le dbit

Congestion avoidance: croissance linaire du dbit


Ds que le dbit sapproche la capacit disponible

Seuil dvitement de congestion ssthresh


Indique la zone critique o une congestion est possible Accroissement additif et dcroissance multiplicative de ssthresh Ssthresh oscille entre le dbit maximum et la moiti de ce dbit

Printemps 2012

2. Couche transport

62

Exercices 31, 33, 34, 35, 36, 37, 38

Printemps 2012

2. Couche transport

63

21

Gestion active des files dattente


Le contrle de congestion de TCP est effectu par les systmes terminaux
Les routeurs ne doivent pas tre modifis pour cette mthode TCP ragit tard, quand la congestion sest produite
Niveau lev de la longueur des files dattente

Meilleure solution
Le rseau avertit TCP dune congestion avant quelle ne se produise Mthodes de gestion active des files dattente

Printemps 2012

2. Couche transport

64

Random Early Detection (RED)


Implment sur des routeurs Principe
Le routeur mesure la longueur moyenne de la file dattente Ds quune congestion sannonce, le routeur avertit TCP en supprimant de manire alatoire des paquets La probabilit dlimination est une fonction de la longueur de la file dattente

Printemps 2012

2. Couche transport

65

Fonctionnement de RED
Lavg : longueur moyenne de la file dattente Smin : Si Lavg > Smin, RED commence supprimer des paquets au hasard Smax : Si Lavg > Smax, RED supprime tous les paquets entrant
P(limination)

Seuil maximum Smax

Seuil minimum Smin

Pmax

Longueur moyenne Lavg a) Seuils de la longueur de la file dattente

Smin

Smax

Lavg

b) Probabilit dlimination dun paquet en fonction de loccupation moyenne de la file dattente


66

Printemps 2012

2. Couche transport

22

Comportement de RED
RED permet de rduire la longueur moyenne des files dattente en offrant le mme throughput
Rduction des dlais de transfert

Problmes
Choix des paramtres
Smin, , Smax, Pmax

Oscillation de la longueur dune file dattente

Printemps 2012

2. Couche transport

67

Comportement de flux dans un rseau


Plusieurs connexions TCP
Problme principal : quit
Chaque connexion doit recevoir une partie quitable de la capacit du rseau

Difficile obtenir (et dfinir !)


Le comportement dune connexion TCP dpend
De la capacit des liens traverss Du dlai aller retour du chemin

Exemple
Connexion 1 1 Mb/s 10 ms R1 1 Mb/s 100 ms Connexion 2 500 Kb/s 10 ms 1 Mb/s 10 ms R2 1 Mb/s 10 ms

Printemps 2012

2. Couche transport

68

Rsultats de simulation
30 Connexion 1 25
cwnd (MSS)

La connexion rapide a une CWND plus grande pendant la plupart du temps


Connexion 1 ragit plus rapidement aux pertes et agrandit la fentre plus rapidement

Connexion 2

20 15 10 5 0 0 5 10 15 20 25 30 35 40 45 Tem ps (s)

La connexion rapide obtient 2,5 fois le dbit de la connexion lente


Segments transmis

2500 2000 1500 1000 500 0 0 5

Un RTT plus petit signifie que avec mme fentre, plus de donnes sont transmis par unit de temps

Connexion 1 Connexion 2

10

15

20

25

30

35

40

45

Tem ps (s)
Printemps 2012 2. Couche transport 69

23

Flux TCP et UDP


TCP adapte le dbit aux conditions dans le rseau
Flux lastiques Appropri pour le transfert de donnes

UDP transmet avec le dbit impos par lapplication


Flux non-lastiques Adapt aux flux multimdia, qui ncessitent souvent un dbit fixe
Exemple : voix sur IP : 64 kb/s
Dbit (bits/s)

Le trafic TCP doit tre protg contre le trafic UDP

500000 400000 300000

Connexion TCP Connexion UDP

Contrle daccs pour le 200000 trafic UDP Applications adaptatives qui 100000 simulent le comportement de TCP 0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 Temps (s)
Printemps 2012 2. Couche transport 70

Exercice 42

Printemps 2012

2. Couche transport

71

24