Vous êtes sur la page 1sur 24

Chapitre VII

La couche transport

Automne 2011/2012 7. Couche transport 1

Rappel : la couche Rseau

7 Application
Fonctionnalits de la couche Rseau / IP 6 Prsentation
Adressage des nuds du rseaux 5 Session
4 Transport
Routage et acheminement
3 Rseau
Interconnexion de rseaux htrognes 2 Liaison
Fragmentation des paquets 1 Physique
Conversion dadresses IP -> MAC OSI
Service offert la couche Transport :
Best Effort telnet, ftp, smtp,
http, snmp,
Paquets perdus
Paquets r-ordonns
TCP UDP
Paquets dupliqus IP
Limite la taille des paquets
Hte-rseau

TCP/IP
Automne 2011/2012 7. 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. Adressage
2. tablissement et terminaison de connexions
3. Transmission fiable (squencement, retransmission, )
4. Contrle de flux et de congestion

Automne 2011/2012 7. Couche transport 3

1
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)

Automne 2011/2012 7. Couche transport 4

Ladressage dans le modle TCP/IP

Adressage de linterface No. de port


Adresse IP
Adresse dun service FTP HTTP FTP HTTP

SMTP SMTP
Port (= TSAP)
Permet de dmultiplexer TCP/UDP TCP/UDP
les
transmissions IP IP
Entier sur 16 bits
Utiliss par TCP et UDP Hte-rseau Hte-rseau
TCP et UDP peuvent
rutiliser les mmes ports Station 1 Station 2
Adresses IP
Automne 2011/2012 7. Couche transport 5

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
Automne 2011/2012 7. Couche transport 6

2
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

Automne 2011/2012 7. Couche transport 7

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

Automne 2011/2012 7. Couche transport 8

Segment UDP
32 bits

Port source Port destination


Longueur du segment Somme de contrle
8 octets
En-tte UDP Donnes
>= 20 octets
En-tte IP, Proto=17 Donnes

Longueur de len-tte: 8 octets


Port source: optionnel, pour la rponse
Longueur maximum dun segment: 65535 octets

Automne 2011/2012 7. Couche transport 9

3
Somme de contrle
Inclut
Le pseudo-header (informations de len-tte IP)
Len-tte UDP
Les donnes (+bourrage)
32 bits

Adresse source
Pseudo- Adresse destination
header zro Prot. IP (17) Longueur du segment
Port source Port destination
En-tte Longueur du segment Somme de contrle
UDP
Donnes

Bourrage
Calcul
The checksum is the 16-bit ones complement
of the ones complement sum of the 16-bit words

Automne 2011/2012 7. Couche transport 10

Exercices 5,6,7

Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 12

4
Modle de Service

Interface vers la couche Sockets


dapplication : sockets
Connexions TCP HTTP FTP FTP HTTP

SMTP SMTP
Connexion : liaison entre
deux sockets TCP TCP
Connexion
Transmission bidirectionnelle
IP IP
Transmission point--point
Le multicast / broadcast Hte-rseau Hte-rseau
nest pas possible
Station 1 Station 2
Adresses IP
Automne 2011/2012 7. Couche transport 13

Transfert tamponn flot doctets


TCP offre la couche
suprieur
un service flot doctets Flot doctets/blocs
1. Lapplication passe des blocs
de donnes TCP
Application Application
2. TCP met les donnes dans un
tampon dmission
3. TCP regroupe les donnes en
segments qui sont transmis
TCP TCP
4. Le rcepteur TCP place les Tampon Tampon de
segments dans un tampon de dmission rception
rception
5. TCP passe des donnes en Transmission de
bloc segments TCP
lapplication
La dlimitation des messages
de lapplications nest pas
prserve
Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 15

5
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)
3. Temporisateur de retransmission
Lmetteur arme un temporisateur lors de la transmission de
chaque segment
Si le temporisateur expire avec la rception dun acquittement, le
segment est retransmis

Automne 2011/2012 7. Couche transport 16

Format du segment TCP

Ports et somme de contrle 32 bits


Comme dans UDP
Numro de squence
Du premier octet des donnes Port source Port destination
Acquittement (optionnel): Numro de squence
Prochain no. de squence attendu Numro de squence acquitt
Long. Bits
Longueur de len-tte en-tte Rserv Fentre
source
Somme de contrle Pointeur durgence
En mots de 32 bits
Options (optionnelles) Bourrage
Fentre : contrle de flux
Espace libre du tampon de Donnes (optionnelles)
rception
Pointeur durgence
Indique la fin des donnes U A P R S F
Bits : R C S S Y I
urgentes G K H T N N
Options : p. ex. MSS
Taille maximale accepte dun
segment
Automne 2011/2012 7. 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
U A P R S F
FIN (fin de connexion) : Bits : R C S S Y I
Signale un segment FIN G K H T N N
Utilis lors de la libration dune
connexion
RST (reset)
Utilis pour rinitialiser une connexion
Automne 2011/2012 7. Couche transport 18

6
Exercice 9

Automne 2011/2012 7. Couche transport 19

tablissement fiable dune connexion


Scnario
Cest simple ? Non ! Ordre de versement une banque
Protocole simpliste : Tous les paquets du client sont
tablissement de retards et retransmis
Hte A Hte B
connexion en deux temps Deman
de
1. Demande dtablissement Deman
de

2. Confirmation Confirmation
Versem
ent 1 m
Versem io
Hte A Hte B ent 1 m
io

Demande Confirmation

Deman
on de
Confirmati
Confirmation
??
? Versem
ent 1 m
io
Confirmation
??
?
Automne 2011/2012 7. Couche transport 20

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 Hte B Hte A Hte B

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

Automne 2011/2012 7. Couche transport 21

7
Dure de vie maximale dun
segment
Hte A Hte B
Problme des nouvelles incarnations dune SYN=x
connexion
x+1
Deux htes peuvent tablir et librer des SYN=y,ACK
incarnations de la mme connexion ACK y+1
Connexion Donne
en succession rapide 1 Sq=x+
s
1
Nouvelle incarnation : utilise la mme paire de
Donnes
sockets (Retransm
Sq=x+1
ission)
Comment viter des confusions cause dun
doublon retard dune connexion prcdente ?
On suppose une dure de vie limite des SYN=x
segments x+1
SYN=y,ACK
MSL : Maximum segment lifetime (2 min) ACK y+1
Connexion
Interdiction de rutiliser les mmes sockets 2
Donne
pendant 2 * MSL Sq=x+
1
s Segment
retard

Automne 2011/2012 7. 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 ?

Automne 2011/2012 7. 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
sens Hte A Hte B

FIN Sq=
x
Ne rsout pas le problme des deux armes
ACK x+1
Solution pratique :
y
Retransmission du premier FIN FIN Sq=
La connexion est libre par une temporisation, ACK y+1
mme si le deuxime ACK narrive pas

Automne 2011/2012 7. Couche transport 24

8
Automate nombre dtats finis de
TCP
Rsume le
comportement de TCP
lors de ltablissement
et de libration de
connexions

Automne 2011/2012 7. Couche transport 25

Transmission fiable

Garantie de la dlivrance des donnes, dans


lordre de lmission
Doit tre ralise sur une infrastructure non-
fiable (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

Automne 2011/2012 7. 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
Les implmentations actuelles acquittent chaque deuxime segment,
sauf lors dun dlai trop grand
Un acquittement perdu nimplique pas
ncessairement une retransmission Hte A
1
Hte B
Sq=101 ACK 10
Inconvnient principal Sq=1101
Si un segment intermdiaire a t perdu, Sq=2101 1
ACK 10
le rcepteur ne peut pas signaler la Temporisation de
Sq=3101 1
ACK 10
rception correcte des segments suivants retransmission
1
ACK 10
Lmetteur retransmettra probablement
tous les segments partir du segment Retransmission
Sq=101
Sq=1101 01
perdu (Mthode Go-back-n) Retransmissions
inutiles Sq=2101
ACK 41

Sq=4101

Automne 2011/2012 7. Couche transport 27

9
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 Hte A
Sq=x
Hte B

RTT : Round Trip Time Sq=x+


RTT
1 ACK x+1
RTO : Retransmission Timeout ACK x+2

Automne 2011/2012 7. 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)

Automne 2011/2012 7. 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

Automne 2011/2012 7. 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 :
Charge rho=75% peut provoquer des variations du RTT dun facteur
16
Le calcul RTO = SRTT avec beta=2 tolre des variations du
RTT dun facteur 2
Applicable pour une charge maximale du rseau de 30 % !
Solution :
Estimation non seulement du RTT mais aussi de sa
variance

Automne 2011/2012 7. Couche transport 31

Mthode amliore de calculer RTO


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

RTO
RTT
mesur
Mthode originale Mthode amliore
Automne 2011/2012 7. Couche transport 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
Emetteur
? Rcepteur Emetteur Rcepteur
Tran Tran
smis smis
sion sion
origin
RTT mesur

origin
ale ale
RTT mesur

Retr
ansm
issio ACK
n Retr
ansm
issio
n
ACK

Problme de lambigut de la retransmission


Solution (Algorithme de Karn) :
Ignorer les mesures du RTT concernant des segments
qui ont t retransmis

Automne 2011/2012 7. Couche transport 33

11
Retransmission rapide
Problme des
acquittements cumulatifs Hte A Hte B
1
Un segment intermdiaire Sq=101 ACK 10

a t perdu Sq=1101

Comment signaler que les Sq=2101


ACK 10
1

segments suivants sont Sq=3101 1


ACK 10
arrivs ?
{
1
ACK 10
Acquittements dupliqus
Sq=101
Retransmission
Solution : Suite de la transmission Sq=4101
ACK 41
01

Lors de la rception dun


segment en dsordre, le
rcepteur rpte le dernier
ACK (dup ACK)
Si lmetteur reoit 3 dup-
ACKs, il retransmet le
segment sans attendre un
timeout
Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 35

Exercices 8,15,16,18,19

Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 37

Rappel : contrle de flux

Mthode la plus simple : Hte A Hte B

Stop and Go (Envoyer et attendre) Temps de


Message 1 propagation d
Algorithme RTT
ACK
Le rcepteur acquitte chaque segment
sparment Message 2
Lmetteur ne peut envoyer un
ACK
nouveau segment quaprs la
rception de lacquittement du Message 3
segment prcdent B ralentit la
transmission
Le rcepteur peut ralentir la ACK
transmission en retardant les
Message 4
acquittements
Simple mais faible utilisation du
rseau

Automne 2011/2012 7. 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 Hte B

Temps de
RTT = ( LMess + L ACK ) / C + 2d Message 1 propagation d
RTT
LMess LMess
U= = ACK
RTT C LMess + L ACK + 2dC
Message 2

Utilisation est inversement proportionnelle au ACK


produit largeur de bandedlai (bandwidth delay product)
Message 3
B ralentit la
BWD = RTT C transmission
ACK

Message 4
Automne 2011/2012 7. Couche transport 39

13
Exemple numrique
120.00%

100.00%

Paramtres: 80.00%
Utilisation U

60.00%
Lmess=1000 bit
Lack: 10 bit 40.00%

Dlai de propagation d = 10ms 20.00%

Largeur de bande C entre 0.00%

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

Automne 2011/2012 7. 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 ...

mis et acquitt Peut tre envoy


mis non A envoyer quand
immdiatement
Rception de acquitt la fentre glisse

lACK pour 8 et 9 Fentre glissante

... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

mis et acquitt Peut tre envoy


immdiatement
Automne 2011/2012 7. Couche transport 41

Gestion de la fentre glissante


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

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

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

... 4 5 6 7 8 9 10 11 12 13 ...

Automne 2011/2012 7. Couche transport 42

14
Performances du protocole de
la fentre glissante

Une fentre suffisamment grande permet


dexploiter le canal de transmission 100 %
Taille optimale de la fentre : Hte A Hte B

Temps de
Seq 1 propagation d
RTT = ( LMess + LACK ) / C + 2d RTT
Seq 2 ACK

W Seq 3
ACK
U =1= Seq 4 ACK
RTT C Seq 5 ACK
W = RTT C Seq 6

La taille optimale de la fentre glissante est gale


au produit largeur de bande dlai du canal
Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 44

Exemple du contrle de flux dans


TCP
Fentre glissante Hte A Hte B
Tampon de rception
... 0 4096
Sq=0,
0 4096 6144 Long.
2048 octets
... 0 2048 4096
8
Fentre 204
0 2048 4096 6144 ACK 2048,
...
Sq=20
0 2048 4096 6144 48, Lo
ng. 20
48 octets
0 Tampon plein 4096
Fentre 0
Fentre ferme ACK 4096,
... L'application lit 2048 octets
8
Fentre 204 0 2048 4096
0 2048 4096 6144 ACK 4096,

...
Sq=40
0 2048 4096 6144 96, Lo
ng. 10
24 octets
... 0 3072 4096

0 2048 4096 6144

Automne 2011/2012 7. 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

tre 0
ACK x, Fen
Lors dune fentre nulle, la perte de Fentre ferme ...
lannonce dune fentre non nulle ACK x, Fen
tre 2048

causerait un interblocage Attend l'annonce Attend la rception

Lmetteur envoie priodiquement de fentre de donnes


...

...
de petits segments dun octet qui Sq=x,
obligent le rcepteur de r-annoncer (WindowLong. 1
probe)
la fentre ACK x+1, Fen
tre 2048

...

Automne 2011/2012 7. 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 Rcepteur
Donnes transmettre Tampon plein
... ... tre 0
ACK x, Fen
L'application lit 1 octet
... ...
Fentre ferme tre 1 Annonce fentre = 1
ACK x, Fen

... ... Un nouvel octet arrive


Sq=x+1,
1 octet
... ... Tampon plein
tre 0
ACK x, Fen
...

... ...
Fentre ferme

Automne 2011/2012 7. Couche transport 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

Automne 2011/2012 7. Couche transport 48

16
Exercices 25, 27, 28

Automne 2011/2012 7. 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
Danger de lamplification dune congestion par TCP
TCP ragit une perte avec une retransmission ce qui
peut augmenter la charge du rseau
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

Automne 2011/2012 7. 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 aller-
retour metteur Canal Rcepteur
Donnes
Fentre glissante
14 13 12 11 10
.. 6 7 8 9 10 11 12 13 14 15 ..
7 8 9 10

6
ACK

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

ACK
Automne 2011/2012 7. 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

Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 53

Exemple de Slow Start


Fentre de congestion Emetteur Rcepteur

1 MSS

RTT
ACK
2 MSS

RTT

4 MSS

RTT

8 MSS

Automne 2011/2012 7. 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 :
MSS MSS
cwnd cwnd +
cwnd
Augmentation dun MSS par RTT

Automne 2011/2012 7. Couche transport 55

Exemple
Slow Start et Congestion Avoidance
Fentre de congestion cwnd

Au-dessous de ssthresh: 52
Slow Start 48
Slow vitement de
Cwnd double chaque 44
start congestion
RTT 40
36
32
28 ssthresh
Au-dessus de ssthresh: 24
20
Congestion Avoidance 16
Cwnd crot dun 12
segment chaque RTT 8
4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Temps (multiples de RTT)

Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 57

19
Comportement de cwnd et ssthresh

Trois phases
Slow Start avec une
Fentre de congestion cwnd

croissance exponentielle 52

de cwnd 48
44 Timeout et
Congestion avoidance 40 retransmission
36
(accroissement additif 32
ssthresh

de ssthresh) 28
24
Diminution de ssthresh 20 ssthresh
16
lors dune perte 12
(dcroissance 8
4
multiplicative de
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)

Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 59

Exemple de Recouvrement Rapide


Hte A Hte B
cwnd=1 Seg 0

ACK 1
cwnd=2 Seg 1
Seg 2
Dmarrage
lent
ACK 2
cwnd=3 ACK 3 Seg 3
cwnd=4 Seg 4
Seg 5
ACK 4 Seg 6
cwnd=5
ACK 5 Seg 7
cwnd=6
Seg 8
ACK 5 Seg 9
Dup ACK 1
ACK 5 Seg 10
Dup ACK 2 ACK 5
ssthresh=3, cwnd=3+3=6 Dup ACK 3 ACK 5 Seg 5
cwnd=7 Dup ACK 4 ACK 5 Seg
Recouvrement 11
cwnd=8 Dup ACK 5 Seg 12
rapide
ACK 11
cwnd=3
vitement de
congestion

Automne 2011/2012 7. Couche transport 60

20
Effet de recouvrement rapide sur le
dbit

cwnd cwnd

t
a) sans recouvrement rapide t b) avec recouvrement rapide

Automne 2011/2012 7. 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

Automne 2011/2012 7. Couche transport 62

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

Automne 2011/2012 7. 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

Automne 2011/2012 7. 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

Automne 2011/2012 7. 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)

1
Seuil maximum Smax Seuil minimum Smin

Pmax

Longueur moyenne Lavg Smin Smax Lavg

a) Seuils de la longueur de la file dattente b) Probabilit dlimination dun paquet en


fonction de loccupation moyenne de la file
dattente

Automne 2011/2012 7. Couche transport 66

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

Automne 2011/2012 7. 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 1 Mb/s
10 ms 10 ms
500 Kb/s
R2
R1 10 ms
1 Mb/s 1 Mb/s
100 ms 10 ms
Connexion 2

Automne 2011/2012 7. Couche transport 68

Rsultats de simulation
30
Connexion 1
25
Connexion 2
La connexion rapide a une CWND 20
cwnd (MSS)

plus grande pendant la plupart du 15


temps 10
Connexion 1 ragit plus rapidement
5
aux pertes et agrandit la fentre
plus rapidement 0
0 5 10 15 20 25 30 35 40 45
La connexion rapide obtient 2,5 fois Tem ps (s)
le dbit de la connexion lente 2500
Connexion 1
Un RTT plus petit signifie que avec
Segments transmis

2000 Connexion 2
mme fentre, plus de donnes sont
1500
transmis par unit de temps
1000

500

0
0 5 10 15 20 25 30 35 40 45
Tem ps (s)
Automne 2011/2012 7. 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 500000
Le trafic TCP doit tre 400000
Connexion TCP
Connexion UDP
protg contre le trafic UDP
Dbit (bits/s)

300000
Contrle daccs pour le
trafic UDP 200000

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)

Automne 2011/2012 7. Couche transport 70

Exercice 42

Automne 2011/2012 7. Couche transport 71

24