Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
TD TCP
Exercice 0 : Débit réel et fenêtre
On considère plusieurs liaisons utilisées par une connexion TCP :
Fenêtre Débit TCP Taux
liaison Débit brut RTT (octets) utilisation
Ethernet 100 Mb/s 0.3 ms
Canal T1 satellite 1.54 Mb/s 500 ms
T3 transcontinental 45 Mbps 60 ms
Gigabit transcontinental 1 Gbps 60 ms
Sur ces liaisons, un hôte TCP envoie des fenêtres maximales.
Quelle est la taille d’une fenêtre maximale TCP ? Wmax = 524288 bits
Pour chaque liaison, quel est le débit maximum au niveau TCP ? Dtcp = Wmax/RTT bits/s
Pour chaque liaison, quel est le taux d’utilisation de la liaison ? Taux = Dtcp / Dlink
Exercice 1 : Diagramme d’échange TCP
Une connexion TCP est établie entre 2 hôtes A et B.
Sur le diagramme d’échanges page suivante, chaque segment est résumé par une ligne:
Seq=2000 (1000) Ack=7000 W= 4000
où
2000 =numéro de séquence initial du premier octet du segment
(1000) nombre d’octets de données contenus dans le segment
Ack=7000 = numéro d’acquittement
W=4000 = nombre d’octets dans la fenêtre de contrôle de flux TCP
Compléter le diagramme d’échanges en annexe.
Expliquer pourquoi B renvoie des segments contenant 0 octets.
G30 – TD TCP 1
Exercice 2:
Client
Serveur Web
Envoie des données
Envoie des données de
de 100 bytes
1000 bytes
CPT_em = 3259
CPT_REC= 0
CPT_em=712
CPT_REC=
CPT_em =
CPT_REC=
CPT_em =
CPT_REC=
Exercice 2:
Client
CORRIGE Serveur Web
Envoie des données
Envoie des données de
de 100 bytes
1000 bytes
CPT_em = 3259
CPT_REC= 0
CPT_em=712
CPT_REC=3260
CPT_em =3260
CPT_REC=713
CPT_em = 713
CPT_REC=3360
CPT_em = 3360
CPT_REC= 1713
CPT_em = 1713
CPT_REC= 3460
CPT_em =3460
CPT_REC= 2713
CPT_em =2713
CPT_REC= 3560
CPT_em = 3560
CPT_REC= 3713
CPT_em =3713
CPT_em = 3660 CPT_REC= 3660
CPT_REC=3714
CPT_em = 3660
CPT_REC= 3714 CPT_em = 3714
CPT_REC= 3660
CPT_em =3714
CPT_REC=3661
Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
Exercice 2 : Fast Retransmit
Examiner le tableau des échanges de segments TCP ci-dessous et expliquer ce qu’il se passe :
No Source Destination TCP Application commentaire
50034 > http [SYN] Seq=0 Port client :50034
51 [Link] [Link] Win=8192 Len=0 MSS=1460 Port serveur = 80=http
WS=2
http > 50034 [SYN, ACK] Seq=0
52 [Link] [Link] Ack=1 Win=5672 Len=0
MSS=1430
50034 > http [ACK]Seq=1 Ack=1 pas de données
53 [Link] [Link]
Win=17016 Len=0
HTTP GET ….
50034 > http [ACK] Seq: 1, HTTP/1.1
54 [Link] [Link]
Ack: 1, Len: 752
http > 50034 [ACK] Seq=1 Ack
55 [Link] [Link]
=753 Win=7232 Len=0
http > 50034[ACK] Seq: 2837, segment déséquencé
56 [Link] [Link] HTTP
Ack: 753, Len: 1026
50034 > http [ACK] Seq: 753, répéte dernier ACK
57 [Link] [Link]
Ack: 1, Len: 0
http > 50034[ACK]Seq: 1, Ack: HTTP/1.1 200 envoi du premier segment
58 [Link] [Link]
753, Len: 1418 OK
50034 > http [ACK]Seq=753
59 [Link] [Link] ack le segment 58
Ack=1419 Win=17016 Len=0
http > 50034[ACK]Seq: 1419, envoi du deuxième segment
60 [Link] [Link] HTTP
Ack: 753, Len: 1418
ack les 3 segments
50034 > http [ACK]Seq=753
61 [Link] [Link]
Ack=3863 Win=17016 Len=0
http > 50034[ACK]Seq: 6699,
62 [Link] [Link] HTTP segment déséquencé
Ack: 753, Len: 1260
50034 > http [ACK]Seq=753
63 [Link] [Link] répète le dernier ack
Ack=3863 Win=17016 Len=0
http > 50034[ACK]Seq: 3863,
64 [Link] [Link] HTTP en séquence
Ack: 753, Len: 1418
50034 > http [ACK]Seq: 753, ack le segment 64
65 [Link] [Link]
Ack: 5281, Len: 0
http > 50034[ACK]Seq: 5281,
66 [Link] [Link] HTTP segment en séquence
Ack: 753, Len: 1418
50034 > http [ACK]Seq=753
67 [Link] [Link] ack les segments 62, 64 et 66
Ack=7959 Win=17016 Len=0
G30 – TD TCP 2
Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
Exercice 3 : TCP
Pour chacun des segments A, B, C et D envoyés par l’hôte émetteur, expliquez comment l’hôte
récepteur acquitte ce qu’il reçoit. Mettez à jour les compteurs Em et Rec.
ACK=1000 1000
ACK=1100 REC= 1100
1100
1100
NE FAIT RIEN
1200
1200
REC=1100
Déséquencement
ACK=1100 Répète dernier ack
timeout
renvoi des segments C et D
Segment A Le Récepteur reçoit un segment avec Seq=800 alors que son
compteur indique 1000 => le segment a déjà été reçu ; le R
envoie le dernier acquittement
Segment B
Segment C
Segment D
G30 – TD TCP 3
Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
Exercice 4 : TCP Une connexion TCP est établie entre 2 hôtes A et B. Sur le diagramme
d’échanges, chaque segment est résumé par une ligne: Seq=2000, 100 bytes data ou Ack=7000, W=
4000
50 REC=150
50
150
150
150 250
250
FENËTRE 250 250
[250,550]
350
350 250 250 350 450
450
450
250 250 350 550
250
250
3 ACK DUPLIQUES
SEQ=250, 100 BYTES 550
EM=550
ACK=550, W=300
Compléter le diagramme d’échanges ci-dessus en faisant figurer les valeurs du compteur
d’émission Em ou Cpt_emis et de celui de réception Rec ou Cpt_rec, les valeurs des
numéros de séquence et d’acquittement (SEQ et ACK) ainsi que l’état de remplissage du
buffer de réception.
Le troisième segment envoyé par A est perdu. Effectuez la reprise sur erreurs.
G30 – TD TCP 4
Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
Exercice 4 : TCP congestion control
La figure ci-dessous montre le comportement de la fenêtre de congestion d’une connexion dans TCP
Reno. L’unité de temps est le RTT (Round Trip Time), la fenêtre de congestion est donnée en nombre
de segments. Répondre aux questions et justifier vos réponses.
TCP Reno
34 TIMEOUT
SS=32/2=16
32
30
28
26
24
Congestion Window Size
22 3 ack dupliqués
SS= 20/2=10
20 CA
timeout
18
ss=16 SS=16/2=8
16
14 CA CA
12
SS
10
8
6
4
SS
2
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
RTT
a) Donnez 2 raisons pour justifier pourquoi la phase slow start est utilisée
b) Identifier le(s) intervalle(s) de temps pendant lesquel(s) la connexion est dans la phase TCP
Slow Start.
c) Quelle est la valeur du seuil de Slow Start au premier RTT?
d) Identifier le(s) intervalle(s) de temps pendant lesquel(s) la connexion est dans la phase TCP
Congestion Avoidance.
G30 – TD TCP 5
Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
e) Après le 15ème (14ème) RTT, la perte d’un segment est-elle détectée par un triple ACK dupliqué
ou un time-out?
f) Quelle est la valeur du seuil de Slow Start après cette perte?
g) Après le 21ème RTT, la perte d’un segment est-elle détectée par un triple ACK dupliqué ou un
time-out?
h) Quelle est la valeur du seuil de Slow Start après cette perte?
G30 – TD TCP 6
Université Paris-saclay 2021
Master E3A M2 PRO Res-Tel
HOMEWORK
Exercice 5 : TCP Congestion Control TCP utilise un algorithme de contrôle de congestion qui gère
la taille de la fenêtre de congestion en fonction des détections de pertes de segment.
Pas de 3 Ack dupliqué avec TCP Tahoe
On considère que le protocole TCP Tahoe est utilisé avec une fenêtre initiale de 1. Il n’y a aucun
retard dans les acquittements : un segment est immédiatement acquitté par le récepteur TCP. On
considère une application qui doit transférer en tout 18 segments. NB : on reste dans la phase Slow
Start donc on n’a pas besoin de seuil.
Questions:
a. En supposant qu’il n’y a aucune perte lors du transfert des 7 premiers segments, quelle
est la valeur de la fenêtre de congestion Cwnd après la réception du 7ème acquittement ?
b. Quels segments seront transmis à réception du 7ème acquittement ?
c. On suppose que le 8ème segment est perdu, mais pas les segments ultérieurs. Quelle est la
valeur de Cwnd à la fin de la connexion quand les 18 segments de l’application ont été
acquittés. Pour cette question, on suppose que l’acquittement correspondant au segment
retransmis n’augmente pas la valeur de Cwnd.
d. Que devient le temps de transfert total si l’on divise le RTT (Round Trip Time) de la
connexion par 2 ?
G30 – TD TCP 7