Protocole TCP : connexions et gestion de flux – Sujet Corrigé

ASR 2013–2014 TP n 12
Protocole TCP : connexions et gestion de flux – Sujet
Corrigé
1 Définition
Question 1.1. TCP est un protocole de transport qui est :
— full-duplex,
— fiable,
en mode connecté.
Expliquez ces trois termes.
Correction
full-duplex : connexion bidirectionnelle, permettant l’envoi et la réception simultanée.
fiable : Assure La réception de toutes les données envoyées dans l’ordre dans lequel elles ont été
envoyées.
en mode connecté : l’échange de données entre deux points se fait au sein d’une connexion qui doit
être établie avant l’envoi de données.
2 Mécanismes de connexion
Question 2.1. Comment est identifiée une connexion TCP ?
Correction Une connexion TCP est identifiée de façon unique par le couples des deux sockets aux extré-
mités, une socket étant identifiée par un couple (adresse, port).
Question 2.2. Tracer le chronogramme correspondant à l’initialisation d’une connexion TCP entre 2 ma-
chine A et B. En donnant les valeurs des champs ACK, FIN, SYN, Sequence Number et Acknowledgement
Number. Que se passe-t-il quand les deux machines cherchent à établir une connexion simultanément ?
Correction Cf. Figure 1.
Question 2.3. Tracer le chronogramme correspondant à l’envoi de 1 000 bits de données sur cette connexion.
Question 2.4. Tracer le chronogramme correspondant à la fermeture de la connexion, à demande la clôture
de la connexion.
3 Mécanismes de gestion du flux
Question 3.1. Une machine A veut envoyer 1 Mo de données par TCP à une machine B. Que se passe-t-il
si la machine B traite les données par blocs de 8 bits ? Comment modifier le fonctionnement du récepteur
TCP pour atténuer ce problème ?
Correction Syndrome de la fenêtre stupide : on envoie par grands blocs mais on les consomme par petits
blocs. Le récepteur envoie une indication d’actualisation de la fenêtre à chaque octet consommé.
Question 3.2. Lors de l’utilisation du protocole telnet, chaque caractère est envoyé dès sa frappe au ser-
veur. Quel est le rendement de cette solution ? Comment modifier le fonctionnement de l’envoyeur TCP
pour atténuer ce problème.
E. Fleury, M. Gallet, C. Rezvoy, A. Miquel, M. Sid-Lakhdar
ASR 2013–2014 TP n 12
(SEQ = x + 1, ACK = y + 1)
SYN (SEQ = y, ACK = x + 1)
SYN (SEQ = x)
Hôte BHôte A
TEMPS
SYN (SEQ = y, ACK = x + 1)
SYN (SEQ = y)
SYN (SEQ = x)
SYN(SEQ = x, ACK = y + 1)
Hôte BHôte A
TEMPS
FIGURE 1 – Initialisation d’une connexion TCP, cas normal et cas avec collision
Correction Le drapeau PUSH est utilisé pour ne pas mettre les données en tampon avant de les envoyer.
Le rendement est mauvais, car chaque octet envoyé nécessite un segment TCP de 21 octets (20 d’en-tête),
avec 20 octets en plus d’en-tête IP. Il y a un acquittement par TCP, puis une indication de modfication de
fenêtre, soit 121 octets. Algorithme de Nagle : on envoit le premier octet, et on attend son acquittement
avant d’envoyer les autres. Ensuite, on envoie dès que la taille du segment est atteinte ou si la moitié de la
fenêtre est remplie.
Question 3.3. Pourquoi l’algorithme de Nagle peut-il être désactivé par l’application ?
Correction En cas d’interaction rapide avec l’utilisateur (souris), ça pose des problèmes.
Question 3.4. Latence (ping) et débit sont-ils reliés dans le cas du protocole TCP ?
Correction Oui : si la latence est trop élevée, la fenêtre TCP sera rapidement remplie et l’émetteur ne
pourra plus envoyer de nouveaux paquets avant l’acquittement. Le débit sera alors limité.
Question 3.5. Qu’est-ce que le slow start ?
Correction Mécanisme de base de TCP pour contrôler le flux : initialement la fenêtre TCP est petite
(ce qui induit un faible débit) et est doublée tant que tout se passe bien. En cas de problème, la taille est
réinitialisée.
Question 3.6. Considérons l’effet de l’utilisation du Slow Start sur une ligne avec un RTT de 10 ms sans
congestion. La fenêtre du récepteur est de 24 Kb avec une taille maximale de segment de 2 Kb. Le seuil est
au départ fixé à 32 Kb. Combien de temps faut-il attendre pour que la taille de la fenêtre de congestion soit
maximale sans tenir compte des délais d’émission et de réception ?
Correction On suppose que l’émetteur désire émettre en continu. Au départ, la taille de la fenêtre de
congestion est 1 MSS (maximum segment size), donc 2 Kb. Chaque émission de segments en rafale et
réception des acquits correspondants se font en un RTT, c’est-à-dire 10 ms.
E. Fleury, M. Gallet, C. Rezvoy, A. Miquel, M. Sid-Lakhdar
ASR 2013–2014 TP n 12
FIN
ACK
PSH
RST
Longueur
en-tête
TCP
SYN
URG
Options (facultatif)
Pointeur urgent
Taille de la fenêtre
Numéro de séquence
Réservé
Numéro d’accusé réception
port destinationport source
32 bits
Données (facultatif)
Total de contrôle
FIGURE 2 – Description d’un segment TCP
FIGURE 3 – Connexion entre X et Y via R, S et T.
Transmission 1 : on émet 1 MSS, soit 2 Kb, après 10 ms, on reçoit 1 acquit, la fenêtre passe de 2 Kb
à 4 Kb.
Transmission 2 : on émet 2 MSS, soit 4 Kb, après 10 ms, on reçoit 2 acquits, la fenêtre passe de 4
Kb à 8 Kb.
Transmission 3 : on émet 4 MSS, soit 8 Kb, après 10 ms, on reçoit 4 acquits, la fenêtre passe de 8
Kb à 16 Kb.
Transmission 4 : on émet 8 MSS, soit 16 Kb, après 10 ms, on reçoit 4 acquits, la fenêtre passe de 16
Kb à 24 Kb.
Au total, il aura fallu 40 ms.
Considérons maintenant le réseau décrit à la figure 3, dans lequel X et Y sont reliés l’un à
l’autre via trois routeurs R, S et T. X transmet des données à Y à l’aide d’une connexion TCP.
La fenêtre de réception de Y est de 12 MSS, sachant que la taille maximale des segments a été
négociée à 512 Bytes. Le temps de réaction des routeurs est de 10 ms, et le temps de traitement des
stations (vérification d’un segment et génération d’un acquit, vérification d’un acquit et prépara-
tion d’émission d’un nouveau segment) est de 15 ms. Chaque segment reçu par Y donne lieu à
l’émission immédiate d’un acquit (segment TCP vide). Le timeout avant que X ne considère un
segment comme perdu est de 2 s. On prendra en compte l’overhead introduit par TCP et IP (40
E. Fleury, M. Gallet, C. Rezvoy, A. Miquel, M. Sid-Lakhdar
ASR 2013–2014 TP n 12
bytes au total).
Question 3.7. Quel temps faut-il à X et Y dans le meilleur des cas pour atteindre le débit maximal,
sachant que le seuil de congestion est initialisé à 4 Kbytes ?
Correction Dans un premier temps, il faut calculer le RTT. RTT = 3.5T(transmission d’un MSS sur
une liaison à 500 kbps)+3.5T(transmission d’un acquit sur une liaison à 500 kbps)+6T(réaction
d’un routeur)+2T(traitement d’une station).Orona:
T(transmission d’un MSS sur une liaison à 500 kbps) = (512 + 40) 8/(500 103) = 8.83ms
T(transmission d’un acquit sur une liaison à 500 kbps) = 40 8/(500 103) = 0.64ms
Donc RTT = 123.15ms.
Ensuite, il faut déterminer si la vitesse qui corresponds à l’envoi du maximum que peut gérer le récep-
teur (=taille de la fenêtre de réception) en un RTT est plus petite ou plus grande que le débit le plus petit de
la liaison. On a (12 (512 + 40) 8)/(123.15 10 3) = 430304.51bit/s, soit 54 Ko/s, à comparer avec
500 Ko/s. On voit donc que c’est la fenêtre de réception qui limite la vitesse maximale d’émission. C’est
l’algorithme du slow-start qui détermine comment les segments successifs sont envoyés, jusqu’à concur-
rence du seuil de congestion, à savoir 4KB. On a :
Instant Transmission Taille du segment
0 1 1 MSS
1 2 2 MSS, soit 1 kB
2 3 4 MSS, soit 2 kB
3 4 8 MSS, soit 4 kB
4 5 9 MSS, soit 4,5 kB
5 6 10 MSS
6 7 11 MSS
7 8 12 MSS
On le voit, il faut donc 7 RTT pour émettre le maximum acceptable par l’hôte de destination, soit 7
123.15ms = 862.05ms.
Question 3.8. Quelle est l’efficacité des différentes lignes au débit maximal ?
Correction Sur une ligne à 1 Mbps, on émet au maximum 12 MSS, soit 12 (512) octets toutes les
123.15 ms (cette fois, on ne compte pas l’en-tête car on ne compte que les données utiles au niveau 4), donc
[(12 (512) 8)/(123.15 10 3)]/106 = 39,91% et pour une ligne à 500 Kbps, on a une efficacité deux
fois plus grande, donc à 79, 82%
Question 3.9. Pour un seuil de congestion initial de 20 MSS, sachant que tous les acquits de la rafale
la plus grande viennent d’être perdus, combien de temps faudra-t-il avant que le débit maximum ne soit
récupéré ?
Correction La rafale la plus grande correspond à l’envoi de 12 MSS. Si tous les acquite- ments sont
perdus, il faut déjà 2 s pour que l’émetteur en prenne conscience. Le Seuil est à 6 MSS, soit 12/2. On voit
donc :
Instant Transmission Taille du segment
0 1 1 MSS
1 2 2 MSS, soit 1 kB
2 3 4 MSS, soit 2 kB
3 4 6 MSS, soit 3 kB
on atteint pas 8, car le seuil est dépassé avant et c’est lui qui limite la phase de slow-start.
E. Fleury, M. Gallet, C. Rezvoy, A. Miquel, M. Sid-Lakhdar
ASR 2013–2014 TP n 12
Instant Transmission Taille du segment
4 5 7 MSS
5 6 8 MSS
6 7 9 MSS
7 8 10 MSS
8 9 11 MSS
9 10 12 MSS
Au total, il aura fallu 2 + 9 * (123.15 * 10-3) = 3.108 secondes.
E. Fleury, M. Gallet, C. Rezvoy, A. Miquel, M. Sid-Lakhdar
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !