L2 Info&SPI TD —Systémes et Réseaux Institut Galilée
AE if
Rb {
institut Galitée
TD : Couche Transport (TCP)
Exercice 1:
Navigateur Web Serveur Web
‘Segment 1
‘Segment 2
Segment 4
Segment 6
‘Segment 7
‘Segment 8
Léchange TCP de la figure ci-dessus correspond au transfert d'une page WEB entre un
navigateur WEB et un serveur WEB. On fait 'hypothése que la requete a la page WEB fait
100 octets et que la page WEB retournée fait 1000 octets. Il n’y a pas d’erreurs de
transmission.
Pour chaque segment de données, différentes informations apparaissent. D'une part la
présence d'un on plusieurs des différents indicateurs comme SYN, FIN, ACK. Par ailleurs
sur la premiére ligne deux chiffres sont portés, Le premier chiffre correspond au numéro
de séquence du premier octet du segment, le deuxiéme chiffre correspond au numéro du
premier octet du prochain segment a envoyer. Le chiffre entre parenthases correspond au
nombre total octets transmis dans le segment. Si le segment est porteur d'un
acquittement positif, l'ndicateur ACK est mentionné et a coté de lui doit figurer la valeur
du champ acquittement du segment TCP.
Complétez les numéros de séquence et les numéros dlacquittement qui manquent sur la
figure (qui apparaissent sous forme de point d'interrogation). Indiquez a quoi
correspondent les différents segments numérotés de 1 a8.
Correction :
Page 1/4L2 Info&SPI TD ~Systémes et Réseaux Institut Galilée
Navigateur Web Serveur Web
Ouverture connexion | _
Connexion acceptée
Connexion acceptée
Et envoie requéte
page WEB
Envoi page WEB
Demande fermeture
connexion
Fermeture acceptée
Demande fermeture
i connexion
Fermeture acceptée
Exercice 2:
Considérons le transfert d'un fichier de taille illimité sur une connexion TCP classique. La
taille maximale des données d'un segment (MMS) est 200 octets. La transmission démaure,
nous représentons dans la figure 1 le chronogramme obtenu
Page 2/4L2 Info&SPI TD —Systémes et Réseaux Institut Galilée
RTO!
# | Num | Num | URG] ACK] PSH] RST | SYN] FIN | Taille
Seq_| Ack Données
T3999 | Xx 0
2 | 12 | 4000 Xx x 0
3__| 4000 [123 X 0
4 | 4000 | 123 200
1. Complétez dans le tableau cidessus les paramétres associés a chaque segment
(Numéros de séquence et dacquittement, flags et Taille des données).
Réponse:
# | Num | Num | URG [ ACK | PSH | RST | SYN | FIN | Taille
Seq _| Ack Données
ie x 0
2 | 122 | 4000 x x 0
3 | 4000 | 123 Xx 0
4 | 4000 [123 200
3_| 4200 [123 200
6 {123 | 4200 x 0
7 123 4400. x oO
8 | 4400 [123 200
Page 3/4L2 Info&SPI TD —Systémes et Réseaux Institut Galilée
> 4600 123 200
1o_| 123 | 4400 x 0
ii | 4800 | 123 200
12 123 4800 x oO
13__|_123_| 5000 x 0
14 | S000 | 123 200
15_ [5200 |" 123 200
16 123 5000 x oO
17_| 34007123 200
1s | S600 |" 123 200
19 5800 123 200
20 |_ 123 | 5000 ms 0
21__|_123_| 5000 x 0
22 5000 123 200
23 123 5400 x oO
24 | 5200 [123 200
25 123 5400 xX oO
26 5400 123 200
27 123__| 6000 x | 0
2. Quiimplique la premiére perte aut niveau des acquittements suivants ?
L’acquittement 7 est perdu, mais le récepteur envoie un autre acquittement (seg 10) suite a
la réception du segment de données 9.
3. Le déséquencement observé moditie-til les émissions de segments de données ?
Non.
4, Comment est détectée la premiéze perte d'un segment de données et comment est
elle réparée ?
La détection de la perte du segment 14 est di a la réception de 3 ack identiques (16, 20 et
21) avant expiration du temporisateur RTO. A noter que le segment 13 ne compte pas
dans les ACK dupliqués, car le segment 14 nfavait pas encore été généré au moment ott le
segment 13 est arrive.
La stratégie de retransmission suite a 3 ACK dupliqués est de type retransmission
selective : ’émetteur ne retransmet que le segment indiqué par les dupACK (le segment
14).
5. Comment est détectée la seconde perte d'un segment de données et comment est
elle réparée ?
Le temporisateur RTO pour le segment 15 a expiré avant réception d’un ACK 5400. Ce
segment est considéré comme perdu, et TCP considére que cela est di 4 un probleme
grave (ie.congestion). La source va considérer que tous les segments envoyés aprés le
segment 15 sont « vraisemblablement » perdus aussi. La stratégie de retransmission est
alors de type Go-back-n:: I'emetteur retransmet tous les segments data depuis le segment
15.
Page 4/4L2 Info&SPI TD —Systémes et Réseaux Institut Galilée
Remarque : le récepteur ne sait jamais si la source exécute un algo de retransmission de
type sélectif ou go-back-n. Ses acquittements concernent done toujours le premier octet
non recu. Les segments correctement recus sont gardés dans le tampon de réception.
Exercice 3 : Mécanismes de contréle de congestion TCP
1
3,
Pour TCP, quel phénomene indique une congestion dans le réseau ? Comment
précisément peut-on constater cette congestion ?
Réponse : La congestion est indiquée par le non retour d’un acquittement avant
Yexpiration du temporisateur de retransmission. Ce retard s‘explique soit par la
perte du paquet soit par un temps de transport trop long.
Que se passe til dans le routeur pour susciter ce phénomene.
Réponse : Le retard provient d’une surcharge des files d’attente done de la
mémoire d’un routeus). La perte peut provenir d’un débordement des mémoires
d'un noeud mais aussi d’ume perte provoquées explicitement par un élément de
réseau. On suppose que la mémoire d’un routeur se trouve débordée, et que alors
les paquets sont jetés.
Pour TCP ce phénoméne donne suite a Vinférence de la congestion. Mais ce
phénoméne pent se produire méme quand il n'y a pas de congestion dans le réseau.
Dans quels autres cas un tel phénomeéne peutil se produire ?
Réponse : Les pertes de paquets peuvent se produire si une liaison n'est pas fiable,
Par exemple, si les paquets sont perdus sur une liaison sans-fil. , Dans ce cas, ce
nest pas une indication de congestion. Une faille transitoire de routage peut aussi
etre a l'origine d’tme perte, sans qu'il existe de congestion dans le réseau.
Si ce phénomeéne n'indique pas toujours une congestion, pourquoi est-ce que IETF
base la norme TCP 1a-dessus ? Pourquoi est-ce que l'ETF na pas défini une norme
dans laquelle un routeur constate lui-méme un état de congestion et envoi un
message explicite 4 I’émetteur ?
Réponse : La philosophie derriére Internet est une philosophie de repousser
Yintelligence aux bords du réseau pour permettre d/avoir du matériel trés simple au
coeur du réseau. On préfére alors avoir une signalisation de congestion qui marche
de bout en bout, meme si elle n'est pas complétement fiable.
Pour le controle de congestion, TCP utilise un seuil qui indique le débit au dessus
duquel on risque de rencontrer de la congestion. Ce seuil est exprimé par un
paramétre ssthresh, qui indique un nombre d’octets. Pour obtenir le débit seuil
on divise ssthresh par la période aller retour entre I'émetteur et le récepteur (un «
RIT » ou « Round Trip Time » en anglais).
Le débit peut varier en dessous et au dessus du seuil ssthresh /RTT. L’émetteur
maintient un parametre cwnd qui indique le nombre d’octets qu'il peut envoyer
dans le réseau avant de recevoir un acquittement. (Le nom cwnd est un raccourci
pour « congestion window » en anglais, qui veut dire « fenétre de congestion ».)
Quand cwnd > ssthresh, I’émetteur fait particuliérement attention a ne pas
provoquer de congestion.
Page 5/4L2 Info&SPI TD ~Systémes et Réseaux Institut Galilée
Supposons que ssthresh est 4 5000 octets, ewnd est 4 6000 octets, et la taille d’un
paquet est de 500 octets. Un émetteur envoi douze paquets de 500 octets dans une
période RIT, et recoit douze acquittements (un pour chaque paquet). Que devient
les valeurs de ssthresh et cwnd ? Comment s/appellent ces changements de
valeurs ?
Réponse : La valeur de cwnd augmente avec la taille d’un paquet aprés avoir regu
les douze acquittements. La nouvelle valeur de cwnd est donc de 6500 octets. Cela
s‘appelle « V'accroissement additif » (« additive increase » en anglais). La valeur de
ssthresh ne change pas.
A noter que la valeur de cwnd augmente de la taille d’un paquet par RTT, et non
par acquittement (qui serait une augmentation beaucoup plus rapide). Dans notre
exemple, I’émetteur envoie douze paquets dans le premier RTT. Dans le deuxiéme
RIT il va pouvoir envoyer treize paquets.
Une précision : les implémentations de TCP ont le droit d’augmenter cwnd d’une
maniére approximativement linéaire. Plusieurs implémentations, par exemple,
augmente cwnd par MSS*2/ cwnd pour chaque acquittement recu (oi1 MSS est la
taille maximale d’un paquet ~ Maximum Segment Size). Ceci peut impliquer une
accroissement plus que linéaire ou moins que linéaire dépendant de si on accumule
Jes acquittements.
6, Supposons que ssthresh est toujours 4 5000 octets, que cwnd est maintenant a
14.000 actets, que I’émetteur envoi 14,000/500 = 28 paquets, et que l’émetteur recoit
une indication de congestion avant de recevoir le premier acquittement. Que
devient les valeurs de ssthresh et cwnd ? Comment s‘appel ces changements de
valeurs ?
Réponse : La valeur de ssthresh va devenir la moitié de la valeur cwnd, clest-a-
dire 7000 octets. La valeur de ownd devient la taille d’un paquet, c'est-a-dire 500
octets.
Cela s‘appelle la « réduction multiplicative » (« multiplicative decrease » en anglais).
Pourquoi dit-on « multiplicative » quand ownd retourne toujours a la taille d’un
paquet ? Parce que cwnd va rapidement remonter a la nouvelle valeur de
ssthresh, qui est la moitié de l'ancienne valeur de cwnd.
Une précision : la valeur de ssthresh ne peut pas descendre plus bas que la taille
de deux paquets (c'est-a-dire 1000 octets dans notre exemple).
Une autre précision : ici on suppose que cwnd octets ont été « perdus » dans le
réseau, Clest-a-dire qu'il y a cwnd octets non acquittés. La formule précise est de
fixer ssthresh 4 la moitié du nombre d’octets non acquittés.
7. Nous venons de voir comment on augmente et comment on diminue cund en
fonction de Tabsence ou la présence d’indicateurs de congestion. Comment
s‘appelle cet algorithme ? Quelle est I'idée derriére cet algorithme ?
Réponse : L’algorithme s'appelle « I'évitement de congestion » (« congestion
avoidance » en anglais). Il implémente une politique AIMD (« Additive Increase,
Multiplicative Decrease »). L'idée est d’angmenter lentement le débit atin de ne pas
produire trop de congestion, et de diminuer le débit tras rapidement au cas of on a
une indication de congestion.
Page 6/4L2 Info&SPI TD —Systémes et Réseaux Institut Galilée
8. Au démarrage, et aprés avoir recu une indication de congestion, la valeur de cwnd
est plus petite que la valeur de ssthresh. Décrivez la maniére permettant
d’augmenter cwnd quand cwnd < ssthresh, en fonction de I’exemple suivant.
Supposons que ssthresh soit égal A 3000 octets et que cwnd soit égal A 500 octets,
la taille d’un paquet, L’émetteur a plusieurs paquets préts a étre envoyer. Combien
de paquets envoie !émetteur pendant la premiére période RIT ? S'il recoit des
acquittements pour tous ses paquets, que devient la valeur de cwnd ? Combien de
paquets envoie lémetteur pendant la deuxiéme période RIT ? Sil recoit des
acquittements pour tous ses paquets, que devient la valeur de ewnd ? En générale,
comment évolue la taille de cwnd ?
Réponse : Dans la premiare période RTT I’émetteur envoie un paquet de 500 octets.
Quand il recoit I'acquittement il augmente cwnd a 1000 octets. Dans la deuxiéme
période RIT lémetteur envoie deux paquets de 500 octets chacun. Ayant recu les
deux acquittements, il augmente cwnd de 1000 octets a 2000 octets. En général, il
augmente cwnd par la taille d’un paquet (500 octets) pour chaque acquittement recu.
Cela revient a doubler cwnd dans chaque période RIT si émetteur recoit un
acquittement pour chaque paquet envoyé. Ce processus continue jusqu’a ce que
cwnd atteint ssthresh. A ce moment, I’émetteur bascule vers I’ « évitement de
congestion ».
Une précision : certaines implémentations de TCP regroupent les acquittements,
envoyant un acquittement pour deux paquets recus. Dans ce cas, ‘augmentation de
cwnd est moins qu’exponentiel.
9, Comment s’appelle la période pendant laquelle ewnd est plus petit que ssthresh ?
Réponse : « le démarrage lent » (« stow start » en anglais). Le slow start n’est pas
vraiment « slow » — il Sagit d’une augmentation exponentielle du débit de
transmission. Mais, on V'appelle « slow » parce qu’on commence avec un débit
faible.
10. Que devient la valeur de ssthyesh si I'émetteur recoit une indication de
congestion pendant que cwnd est plus petit que ssthresh ?
Réponse : ssthresh devient toujours la moitié du nombre d’octets non acquittés.
Cest-a-dire cwnd/2 s'il y a cwnd octets non acquittés.
Exercice 4: Illustration du mécanisme de contrdéle de congestion TCP
Le controle de flux de TCP repose sur le principe que la perte d’um paquet est due A une
congestion dans le réseau. Aussi, lorsqu’ume perte est détectée, la procédure de controle
de congestion se met en place. Lors de I'envoi des données, le protocole augmente au fur
et A mesure la vilesse d’émission jusqu’A ce qu'une perte apparaisse. Alors le protocole
ralentit automatiquement son débit afin de palier d’éventuelles pertes additionnelles. Ce
principe permet d’éviter que les retransmissions de données ne viennent s‘ajouter a la
congestion déja existante.
Rappel des algorithmes slow-start et congestion avoidance
+ A initialisation d'une connexion :
ewnd
Mss (1 segment)
Page 7/4L2 Info&SPI
TD ~Systémes et Réseau
Institut Galilée
ss-threshold := 64 Koctets (65535 octets)
* AllowedWindow
= min (cwnd , AdvertisedWindow)
+ Lorsqu'une congestion est détectée, a chaque expiration du temporisateur
ss-threshold := fligthsize / 2
cwnd
Mss (1 segment)
+ Lorsque des données sont acquittées, ewnd est augmenté :
IF cwnd = ss-threshold THEN cwnd
ACK regu) (slow-start)
Tracer un diagramme illustrant I'évolution de la fenetre de congestion (cwnd) de TCP en
ELSE cwnd
fonction du temps, sous les hypothéses suivantes :
+ Ia taille maximum de segment est de 1024 octets,
+ initialement, la fenétre de congestion est de 64 Koctets,
* Tiunité de temps utilisée est le délai aller-retour (RTT),
* au temps 0, la connexion démarre et au temps 14, le temporisateur de
retransmission vient d’expirer
Response:
cwnd + MSS (ou ewnd + 1 MSS par
cwnd + MSS2/cwnd (ou cwnd + 1 MSS par RIT, si
aucune perte) (congestion avoidance).
Temps |Réception Mécanisme | cund Emission max.
0 Time Out_|64Ko/2=32Ko | Siow Start _|1 1 segment
1 1ACK __|32Ko Siow Start__|1+1=2 _|2 segments
2 2ACK __|32Ko Slow Start__|2+2=4 _|4 segments
3 4ACK __|32Ko Stow Start_|4+4=8 _|8 segments
4 8ACK __|32Ko Slow Start _|8+8=16 | 16 segments
5 16 ACK _|32Ko Stow Start _|16+16=32_|32 segments
6 32 ACK _|32Ko Cong. Avoid |32+1=33 _ |33 segments
7 33 ACK _|32Ko Cong. Avoid |33+1=34 _ |34 segments
8 34ACK__|32Ko Cong. Avoid |34+1=35 _ |35 segments
9 33 ACK _|32Ko Cong. Avoid |35+1=36 _ |36 segments
10 36 ACK 32Ko Cong, Avoid_| 36+1 = 37 37 segments
1 |37ACK__|32Ko Cong. Avoid |37+1=38 _ |38 segments
12___|38AcK _|32Ke Cong. Avoid |38+1=39 _ |39 segments
13 |39 ACK _|32Ko Cong. Avoid |39+1=40 _ |40 segments
14__| Time Out_|40Ko/2=20Ko _ | Siow Start _|1 1 segment
1s |1ACK _|20Ko Slow Start__|1+1=2 _|2 segments
Page 8/4L2 Info&SPI TD —Systémes et Réseaux Institut Galilée
16 2ACK __|20Ko Slow Start _|2+2=4 4 segments
17 4 ACK __|20Ko Slow Start__|4+4=8 8 segments
18 SACK __|20Ko Stow Start _|8+8=16 | 16 segments
9 16 ACK |20Ko Slow Start | Min(threshol |20 segments
d16+16) =
20
20 20 ACK _|20Ko Cong. Avoid |20+1=21 __|21 segments
21 21ACK __|20Ko Cong. Avoid |21+1=22 _|22 segments
22 22 ACK | 20Ko Cong. Avoid 23 segments
23 23 ACK __|20Ko Cong: Avoid segments
2 4 6 & 10 12 14 16 18 20 22 temps
Page 9/4