Vous êtes sur la page 1sur 7

Universit

e de Perpignan

Annee 2013
TD 2 - Reseaux
Couche transport

Exercice 1 (Questions de cours).

1. Vrai ou faux ?

(a) Soit un serveur A envoyant un fichier volumineux `a un serveur B sur une connexion TCP.
Supposons que B naie aucune donnee `a envoyer `a A. B nemettra pas daccuse de reception
parce quil na pas de donnees sur lesquelles le greffer.
(b) Un segment TCP comporte un champ RcvWindow dans son en-tete.
(c) La taille de la fenetre RcvWindow reste la meme durant toute la duree de la connexion.
(d) Supposons que le dernier SampleRTT dune connexion TCP soit egal `a 1 seconde. Dans ce cas
la valeur de TimeoutInterval correspondant pour la connexion est obligatoirement superieur
ou egale `
a 1.
2. Une application peut-elle beneficier dun service de transfert de donnees fiable si elle repose sur
UDP ? Si oui, comment ?
3. Supposons que le serveur A envoie deux segments TCP directement lun apr`es lautre au serveur B
sur une connexion TCP. Le premier segment porte le numero de sequence 90, le second le numero
110.
(a) Combien doctets contient le premier segment.
(b) Supposons que seul le second segment arrive `a bon port. Quel est le numero de laccuse de
reception emis par B en reponse `a ce segment ?
Exercice 2. Supposons que le client A ouvre une session Telnet avec le serveur S. Au meme moment, le
client B en ouvre egalement une autre avec le serveur S. Citez quelques numeros dacc`es dorigine (source
port number ) et de destination (destination port number ) possibles pour :
1. les segments envoyes de A `
a S.
2. les segments envoyees de B `
a S.
3. les segments envoyes de S `
a A.
4. les segments envoyes de S `
a B.
5. Si A et B sont deux machines differentes, est-il possible que les segments transmis de A `a S aient
le meme numero dacc`es dorigine que les segments transmis de B `a S?
6. Quen est-il si A et B sont une seule et meme machine?
Exercice 3. UDP et TCP ont recours `
a des complements `a 1 pour le calcul de leurs sommes de controle.
Soit les trois octets suivants 01010101, 01110000, 01001100.
1. Quel est le complement `
a 1 de la somme de ces trois octets ? Detaillez les differents etapes de votre
raisonnement.
2. Pourquoi UDP se sert-il du complement `a 1 de la somme et pas de la somme elle-meme?
3. Avec ce syst`eme, comment le destinataire fait-il pour detecter les erreurs: est-il possible quune
erreur dun bit passe inapercue? Quen est-il dune erreur de deux bits? (Dans chacun des cas
donner des exemples pour illustrer votre affirmation).

Figure 1: Destinataire
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq0(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt=make_pkt(ACK,checksum)
udt_send(sndpkt)

Attendre
lenvoie de 1
de la couche
infrieure

Attendre
lenvoie de 0
de la couche
infrieure

rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) ||
has_seq1(rcvpkt)) )
sndpkt=make_pkt(NAK,checksum)
udt_send(sndpkt)

rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) ||
has_seq0(rcvpkt)) )
sndpkt=make_pkt(NAK,checksum)
udt_send(sndpkt)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)


&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt=make_pkt(ACK,checksum)
udt_send(sndpkt)

Exercice 4. Amelioration du protocole rtd2.1. Montrez quen presence de lexpediteur de la Figure 2


le destinataire evoque ici (Figure 1) est susceptible dentraner un blocage au cours duquel tous deux se
retrouveront `
a attendre un ev`enement nayant absolument aucune chance de seproduire.
Exercice 5 (rtd3.0).

1. Dessinez le FSM du pole destinataire du protocole rdt3.0.

2. Avec le protocole rdt3.0, les ACK circulant du destinataire `a lexpediteur ne comportent pas de
numero de sequence (bien quils soient dotes dun champ dacquittement contenant le numero de
sequence du paquet dont ils accusent reception). Expliquez pourquoi ces paquets ne comprennent
pas de numero de sequence.
3. Le diagramme schematise ce qui se passe lors dun envoie avec perte dun paquet de donnees. Faire
des diagrammes similaires pour un ACK perdu et une expiration prematuree du temps imparti.
Expediteur

Destinataire

send pkt0

rcv pkg0
send ACK0

rcv ACK0
send pkt1

Perte

timeout
resend pkt1

rcv pkt1
send ACK1

rcv ACK1
send pkt0

Exercice 6. Considererons une communication longue distance entre la cote Ouest et la cote Est des
Etats Unis. Le temps de propagation aller retour (RTT) `a la vitesse de la lumi`ere entre ces deux serveurs
est approximativement de 30ms. Supposez quils soient relies par un canal dun debit (R) de 1Gbit/s.
La taille (L) des paquets est fixe `
a 1000 octets ( en-tete incluse).
2

Figure 2: Expediteur
rdt_send(rcvpkt)
sndpkt=make_pkt(0,data,checksum)
udt_send(sndpkt)

rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isNAK(sndpkt)
udt_send(sndpkt)

rdt_rcv(rcvpkt)
&& notcorrupf(rcvpkt)
&& isACK(rcvpkt)
// rienfaire

Attendre lappel 0
de la couche
suprieure

Attendre ACK
ou NAK 0
rdt_rcv(rcvpkt)
&& notcorrupf(rcvpkt)
&& isACK(rcvpkt)
// rienfaire

Attendre ACK

Attendre lappel 0
de la couche
suprieure

ou NAK 1

rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isNAK(sndpkt)
udt_send(sndpkt)

rdt_send(rcvpkt)
sndpkt=make_pkt(0,data,checksum)
udt_send(sndpkt)

1. Quel est le delai de transmission?


2. Quel est le taux dutilisation pour un protocole stop and wait (RDT3)?
3. Quelle taille de fenetre N du protocole Go-Back-N faut-il parametrer pour que lutilisateur atteigne
un taux dusage superieur `
a 90 %.
Exercice 7. Considererez le protocole Go-Back-N en presence dune ouverture de fenetre de 3 et dune
gamme de numeros de sequence de 1024. Soit k le numero de sequence du prochain paquet dans lordre
attendu par le destinataire `
a linstant t. Supposez que le support physique utilise pour ce transfert ne
provoque jamais dinterversion de paquet. Repondez aux questions suivantes :
1. Quelles sont les combinaisons de numeros de sequence possibles dans la fenetre de lexpediteur `
a
linstant t. Justifiez votre reponse.
2. Recensez toutes les valeurs pouvant etre contenue dans le champ dacquitement des differents
messages circulant en direction de lexpediteur `a linstant t. Justifiez votre reponse.
Exercice 8. Soit une gamme de numeros de sequence de taille en bit `. Pour le protocole Go-Back-N
quelle est la plus grande taille de fenetre possible avant que ne se produisent les probl`emes illustrees dans
le diagramme ci-dessous.

Expediteur
0 1 2 3 0 1

pkt0

pkt1

0 1 2 3 0 1
0 1 2 3 0 1

pkt2

Destinataire

Expediteur

ACK0 0 1 2 3 0 1

0 1 2 3 0 1

ACK1 0 1 2 3 0 1

0 1 2 3 0 1

ACK2 0 1 2 3 0 1

0 1 2 3 0 1

pkt0

pkt1

pkt2

Destinataire
ACK0 0 1 2 3 0 1
ACK1 0 1 2 3 0 1
ACK2 0 1 2 3 0 1

pkt3

0 1 2 3 0 1
0 1 2 3 0 1

pkt0

recoit un paquet de numseq 0

0 1 2 3 0 1

0 1 2 3 0 1

recoit un paquet de numseq 0

Exercice 9. Imaginez que vous ayez `


a transferer un fichier tr`es volumineux (dune taille de L octets)
de A vers B, avec un MSS de 1460 octets.
1. Quelle est la valeur maximale de L compatible avec les numeros de sequence de TCP? Souvenez
vous que le champ de numeros de sequence TCP dispose de 4 octets.
2. Partant de la valeur L obtenue ci-dessus, calculez le temps necessaire `a la transmission integrale du
fichier. Nous admettrons quune longueur den-ete totale (en tetes de transport, reseau et liaison de
donnees confondus) de 66 octets est ajouteee aux differents segments avant que le paquet final ne
soit de constitue et envoye sur une liaison `a 10Mbit/s. Ignorez les controles de flux et de congestion;
A est ici capable denvoyer ses segments les uns apre`es les autres en continus.
Exercice 10 (TCP). Lechagne TCP de la Figure 3 correspond `a un transfert FTP. La nature de chaque
segment (SYN, ACK, FIN, DATA) est donnee, le chiffre entre paranth`eeses correspond au nombre doctets
transmis dans le segment. Les n umeros de sequence et dacquittement sont donnes ci-apr`es. Completer
la Figure 3.
Exercice 11. Considerez la procedure TCP utilisee pour lestimation de la duree du trajet aller-retour
(RTT) avec = 0.1. Soit SampleRTT1 lechantillon RTT le plus recent et SampleRTT2 le 2eme echantillon
RTT le plus recent, etc.
1. Pour une connection TCP donnee supposez que quatre accuses de reception aient ete emis avec
les echantillons RTT respectifs SampleRTT4,SampleRTT3,SampleRTT2 et SamleRTT1. Exprimez le
EstimateRTT `
a laide de ces quatre valeurs.
2. Generalisez votre formule `
a n temps de trajet aller retour.
3. Reprenez cette meme formule en faisant tendre n vers linfini. Expliquez pourquoi ce processus de
calcul de la moyenne (averaging procedure) est appele moyenne exponentielle glissante.
Exercice 12. Considerez le graphe ci-apr`es presentant la courbe de variation de la taille dune fenetre
de congestion de TCP au cours du temps. En admettant que la fenetre de congestion de TCP Reno
connaisse ce genre de fluctuation, repondez aux question suivantes :
1. Identifiez les intervalles de temps associes `a la mise en route progressive de TCP.
2. Identifiez les intervalles de temps associes `a la procedure qui tend `a eviter la congestion du TCP.
3. Apr`es le 16e pas de transmissio, la perte de segments se detecte-t-elle au moyen dun trible ACK
ou du fait de lexpiration de la temporisation?
4. Apr`es le 22e pas de transmission, la perte de segments se detecte-t-elle au moyen dun triple ACK
ou du fait de lexpiration de la temporisation?

Figure 3: Session/Numero de sequence TCP


Destinataire

Expediteur
SYN(0)
seq=188

SYN(0)
ACK=?
seq=381,

ACK(0)
seq=?, A
CK=?

3)
DATA(5
ACK=?

seq=382,

DATA(1
6)
seq=?, A

CK=?

K(0)

FIN AC

seq=653,

ACK(0)
seq=?, A
CK=654
FIN AC

K(0)

seq=?, A

CK=?

ACK(0

K=?

C
seq=?, A

(a) enonc
e

ACK=25

5. Quelle est la valeur du Threshold au premier pas de transmission ?


6. Quelle est la valeur du Threshold au 18e pas de transmission ?
7. Quelle est la valeur du Threshold au 24e pas de transmission ?
8. A quel pas de transmission le 70e segment est il envoye?
9. En admettant que la perte dun paquet soit detecte apr`es le 26e pas de transmission par la reception
dun ACK triple, quelles seront alors la taille de la fenetre de congestion et la valeur de Threshold?

Exercice 13 (Controle de congestion TCP).


1. Rappeler le fonctionne du controle de congestion TCP,
et expliquer la difference fait par TCP lors dun evenement time out et dun evenement trois
ACK duplique.
2. Lors de la reception de trois ACK duplique, ces ACKs peuvent-ils etre suivis de trois autres ACK
provenant du meme probl`eme de congestion?
3. TCP g`ere cette problematique comme suit:
Lors de la reception du troisieme ACK duplique:
Reduction du seul threshold = congwnd/2.
Retransmission du segment manquant.
congwnd = threshold + 3M SS
A chaque reception dun ACK duplique congwnd = congwnd + 1M SS.
Lors de la reception dun aquitement concernant de nouvelles donnees on reduit leg`erement
la fenetre congwnd = threshold
Le diagramme de la Figure 4 illustre le fonctionnement de lalgorithme TCP en cas de perte de
segment. Seuls sont representes les segments transmis et les acquittements recus par lemetteur.
Levolution de la fenetre demission est egalement representee avec les numeros des segments transmis et non-acquites et les numeros des segments pouvant etre transmis suivant la valeur de la
fenetre de congestion congwnd. Repondre aux questions suivantes
(a) A quelle phase correspond le debut de la transmission. Quel est le numero du segment perdu
et sur quel ev`enement se termine cette premi`ere phase?
(b) Quel est lalgorithme utilise lors de la deuxi`eme phase? Sur quel evenement se termine-t-elle?
(c) Justifiez levolution de congwnd

Figure 4: Gestion de congestion TCP


0

9 10 11 12 13 14 15 16 17 18 19

ACK=0
Seq=0
Seq=1
Seq=7

9 10 11 12 13 14 15 16 17 18 19

ACK=2
Seq=8
Seq=9
ACK=7

9 10 11 12 13 14 15 16 17 18 19

9 10 11 12 13 14 15 16 17 18 19

Seq=10

Seq=14
ACK=7
ACK=7
ACK=7

9 10 11 12 13 14 15 16 17 18 19

9 10 11 12 13 14 15 16 17 18 19

9 10 11 12 13 14 15 16 17 18 19

Seq=7
ACK=7
ACK=7

9 10 11 12 13 14 15 16 17 18 19

Seq=15
ACK=7
Seq=16

9 10 11 12 13 14 15 16 17 18 19

ACK=7
Seq=17
ACK=15

9 10 11 12 13 14 15 16 17 18 19
Seq=18

temps