Вы находитесь на странице: 1из 4

SRC1 S2

Rseau TD3

Correction du TD 3 connexion TCP


nseq = dernier n ack
ack = dernier seq reu + donnes

1. Exercice 1

Demande de connexion

SYN=1

Seq=ISN=1000
=1

Le bit SYN 1 est utilis pour indiquer


la fois une demande de connexion et
une communication accepte.
d=0
Autorisation de connexion

Seq=ISN=2000 Ack=1001
=1
=1

SYN+Ack=1

SYN=0
Ack=1

Seq=1001

d=0

Ack=2001
=1

d=0

Envoi de 50 octets
Seq=1001

Lchange ternaire est termin : le


premier segment transmettant des
donnes reprend le SEQ du segment
prcdent

d=50
Ack=1001+50 =1051

Seq=2001
Envoi de 30 octets
Seq=1051

d=30
0
d=10
0

Envoi de 10 octets
Seq=1081

Seq=2001
R-envoi de 30 octets

Seq=1051

Ack=1051
Ack

d=25
0

Ack
Ack=2001+25=2026

d=30
0

Lack des 30 octets nest pas transmis


mais le n de Seq de lenvoi des 10
octets prend la valeur de lack que lon
aurait du recevoir (anticipation)

Envoi de 25
On nacquitte pas les 10 octets car on
na pas reu les 30 : le serveur attend
toujours la Seq 1051 do la valeur de
lack

Cumul de lenvoi des 30 octets et de


lack des 25 octets
Ack
Seq=2026
Seq=1091

Ack= 1051+30+10=1091

FIN

Seq=2026
Seq=1092

IUT de Lens

Ack= 1092

Ack= 2027

FIN ACK

2 changes fusionns : la demande de


fin du serveur et lack de demande de
fin de lmetteur. Ceci est possible car
le serveur na plus de donnes
envoyer.

ACK

Page 1

2. Exercice 2
B

A
ack=1020

Valeur dans le champ WIndow


du datagramme.

w=8192

Write 1024
Seq=1020
d=500
Anticipation

Seq=1520
d=500

w=8192-500=7692

ack=1520
Anticipation

Seq=2020
d=24

ack=2020

ack=2044

w=7192

w=7168
Read 1024

ack=2044

IUT de Lens

w=8192

Emission sans data, juste pour


prvenir que la fentre a t
modifie : lack reste le mme.

Page 2

3. Extraits du RFC 793


Lorsqu'une connexion est tablie, un gnrateur de numro de squence initial (ISN) est utilis, qui
gnre un nouvel ISN sur 32 bits. Ce gnrateur est bas sur une horloge (qui peut tre virtuelle) 32
bit dont le bit de poids faible est incrment environ toutes les 4 microsecondes. De ce fait, le cycle
des ISN dure environ 4,55 heures. Comme nous supposons qu'un segment ne peut tre prsent dans
le rseau plus longtemps que sa dure de vie maximale (Maximum Segment Lifetime = MSL) et que
MSL est infrieur 4,55 heures, il est raisonnable de penser que l'ISN sera unique.
Le concept de "silence" TCP
Pour rsumer: chaque segment occupe une plage de squence l'intrieur de l'espace de
numrotation, tous les numros l'intrieur de ces plages sont "occups" pendant MSL secondes.
Aprs une dfaillance, un bloc temporel est pris par la plage de squence du dernier segment mis. Si
une connexion reprend trop tt, rmettant un segment utilisant un numro de squence compris
dans la plage de squence prcdente, il y aura risque pour le rcepteur de mal interprter la
squence de segments et produire une erreur de rassemblage de donnes.

3.4. Etablissement d'une connexion


L'change "ternaire" est la technique de ngociation utilise pour la connexion. Cette procdure est
habituellement initie par un TCP vers un autre TCP. La procdure fonctionne mme si les deux TCP
essaient de se connecter simultanment l'un l'autre. Lorsqu'une telle tentative simultane survient,
chaque TCP reoit un segment "SYN" ne transportant aucun accus de rception aprs l'mission de
son propre "SYN". Bien sr, il restera toujours le cas d'un segment "SYN" d'une ancienne connexion
qui peut faire croire TCP qu'un tablissement est en cours. Une bonne utilisation du segment de
rinitialisation peut rsoudre cette ambigut.
Plusieurs exemples d'initialisation d'une connexion suivent. Aucun de ces exemples ne montrent des
segments d'initialisation transportant des donnes, ce qui est parfaitement lgitime, dans la mesure o
TCP n'envoie pas de donne tant qu'il n'est pas sr de la stabilit du canal (c'est--dire que TCP est
sens tamponner les donnes qui lui sont transmises par l'application tant que l'tat ESTABLISHED
n'a pas t atteint). La ngociation "ternaire" rduit le risque de fausses connexions. L'implmentation
des changes entre la mmoire et les messages apportera les informations ncessaires cette
vrification.
La transaction ternaire la plus simple est dcrite en figure 7. Ces figures doivent tre interprtes de la
faon suivante. Chaque ligne est numrote pour rfrence. La flche vers la droite (-->) indique le
dpart d'un paquet TCP du TCP A vers le TCP B, ou l'arrive en B d'un segment issu de A. La flche
inverse (<--), la transmission dans le sens oppos. L'ellipse (...) indique un segment toujours sur le
rseau (retard). Un "XXX" indique un segment perdu, ou rejet. Les commentaires apparaissent
entre parenthse. L'tat TCP reprsente l'tat obtenu APRES le dpart ou l'arrive du segment (dont
le contenu est mentionn au centre de la ligne). Le contenu des segments est montr sous forme
abrge, avec son numro de squence, les flags marqus, et le champ ACK. Les autres champs tels
qu'adresses, fentres, offset, etc. ne sont pas montrs par souci de clart.
TCP A
CLOSED
SENT
-->
ESTABLISHED
ESTABLISHED
ESTABLISHED

TCP B
1.
LISTEN
2. SYN<SEQ=100><CTL=SYN>
-->
SYN-RECEIVED
3.
<-- <SEQ=300><ACK=101><CTL=SYN,ACK>
<-SYN-RECEIVED
4.
--> <SEQ=101><ACK=301><CTL=ACK>
-->
ESTABLISHED
5.
--> <SEQ=101><ACK=301><CTL=ACK><DATA> -->
ESTABLISHED
Dialogue "ternaire" basique de connexion
Figure 7.

IUT de Lens

Page 3

En ligne 2 de la figure 7, TCP A met une requte envoyant un segment SYN indiquant qu'il utilisera
des numros de squence partir de 100. En ligne 3, TCP B renvoie sa requte SYN tout en
acquittant le SYN reu de TCP A. Notez que le champ d'accus de rception indique que TCP B
attend maintenant un numro de squence gal 101, le SYN de la premire requte ayant
consomm la valeur 100 suivant le principe du numrotage implicite des contrles.
En ligne 4, TCP A rpond par un segment vide contenant l'accus de rception au SYN de TCP B; En
ligne 5 enfin, TCP A envoie des donnes. Notez alors que le numro de squence de la ligne 5 est
identique celui de la ligne 4, car ACK n'occupe pas d'espace dans la squence (si c'tait le cas, il
nous faudrait acquitter les acquittements et on n'en sortirait plus!).
Gnration d'un signal de rinitialisation
Si la connexion est dans un tat synchronis (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSEWAIT, CLOSING, LAST-ACK, TIME-WAIT), tout segment non recevable (hors fentre de rception,
ou accus de rception invalide) provoque l'mission d'un segment vide contenant le numro de
squence courant en mission et l'accus de rception indiquant le prochain numro de squence
attendu en rception, et la connexion reste dans le mme tat.

IUT de Lens

Page 4