Académique Documents
Professionnel Documents
Culture Documents
Cours de Reseaux
Cours de Reseaux
Reseaux - Cours 2
UDP et TCP : Protocoles de Transport de TCP/IP
Cyril Pain-Barre
IUT Informatique Aix-en-Provence
Semestre 2 - version du 22/3/2011
Cyril Pain-Barre Transport UDP et TCP 1/90
2/67
Services et Limitations dIP
Services dIP :
interconnexion de reseaux
remise de datagrammes `a des hotes (adresses IP)
adaptation aux MTU des reseaux
duree de vie limitee des datagrammes
detection des erreurs sur len-tete
signalisation de certaines erreurs via ICMP
Limitations dIP :
pas dadressage des applications (client/serveur Web,
client/serveur FTP, etc.)
livraison des datagrammes non garantie
duplication possible des datagrammes !
desequencement possible des datagrammes
erreurs possibles sur les donnees
pas de controle de ux
Cyril Pain-Barre Transport UDP et TCP 2/90
3/67
R ole du Transport
Aller au-del`a des limites dIP
Assurer, si possible, la correction derreurs :
signalees par ICMP
non signalees
2 protocoles de transport disponibles dans TCP/IP :
UDP : transport rapide, non connecte, permettant la
multi-diusion
TCP : transport able en mode connecte point-`a-point
distinguent les applications au sein dun meme hote
garantissent lindependance des communications
Cyril Pain-Barre Transport UDP et TCP 3/90
4/67
Adressage des applications
Plusieurs applications reseaux peuvent sexecuter en parall`ele sur un
ordinateur
Probl`eme : comment un emetteur peut-il preciser `a quelle application
est adresse un message ?
La solution retenue sur Internet est lutilisation de destinations
abstraites : les ports (ne pas confondre avec les ports physiques des
hubs/switchs)
entiers positifs sur 16 bits
UDP et TCP fournissent chacun un ensemble de ports independants : le
port n de UDP est independant du port n de TCP
le syst`eme permet aux applications de se voir aecter un port UDP et/ou
TCP (choisi ou de mani`ere arbitraire)
certains numeros de port sont reserves et correspondent `a des services
particuliers
Ladresse dune application Internet est le triplet :
(adresse IP, protocole de transport, numero de port)
Cyril Pain-Barre Transport UDP et TCP 4/90
5/67
Demultiplexage des ports
DHCP
(serveur)
TFTP DNS FTP SMTP HTTP
69
IP
TCP
selon champ Protocole
... ... ...
53 67
17 6
53 21 25
80
UDP
applications TCP applications UDP/TCP applications UDP
selon Port
Cyril Pain-Barre Transport UDP et TCP 5/90
6/67
Le protocole UDP : User Datagram Protocol
(RFC 768)
Cyril Pain-Barre Transport UDP et TCP 6/90
7/67
Services dUDP
Utilise IP pour acheminer les messages dun ordinateur `a un autre.
Service rendu :
adressage des applications par numero de port
multiplexage/demultiplexage par numeros de port
controle facultatif de lintegrite des donnees
Meme type de service non able, non connecte que IP :
possibilite de perte, duplication, desequencement de messages
pas de regulation de ux
Un programme utilisant UDP doit gerer lui-meme ces
probl`emes !
Cyril Pain-Barre Transport UDP et TCP 7/90
8/67
Format des datagrammes UDP
En-tete : pas doption possible, nombre xe doctets = 8
Donnees : nombre variable doctets ( 65 535)
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
Longueur Totale
Port UDP Destination Port UDP Source
Checksum
t
a
i
l
l
e
v
a
r
i
a
b
l
e
Donnes
e
n
t
e
Cyril Pain-Barre Transport UDP et TCP 8/90
9/67
Champs UDP : ports source et destination
Port UDP Source : indique le numero de port de lemetteur.
Peut etre `a 0 si aucune reponse nest attendue.
Port UDP Destination : numero de port du destinataire. Si ce
port na ete alloue `a aucun processus, UDP renverra un
message ICMP de destination inaccessible car port non alloue
(type 3, code 3) et detruit le datagramme
Demultiplexage UDP selon le port destination :
Appli 2
IP
UDP
port x
Appli 1 Appli 3
port z port y
selon champ Protocole (17)
Cyril Pain-Barre Transport UDP et TCP 9/90
10/67
Serveurs et ports reserves UDP
Voir http://www.iana.org/assignments/port-numbers
Well known Port Assignment : certaines applications bien connues
ont des ports UDP reserves [0, 1023]
Exemples :
Num (decimal) Application
7 Serveur echo
13 Serveur daytime
19 Serveur chargen
53 Serveur DNS
67 Serveur BOOTP/DHCP
68 Client BOOTP/DHCP
69 Serveur TFTP
123 Serveur NTP
les ports [1024, 49151] sont enregistres (mais peuvent etre utilises)
les ports [49152, 65535] sont dits dynamiques et/ou `a usage prive
Cyril Pain-Barre Transport UDP et TCP 10/90
11/67
Champs UDP : Checksum
Facultatif : tout `a 0 si non calcule
Verie la totalite du datagramme + Pseudo en-tete UDP.
Permet de sassurer :
que les donnees sont correctes
que les ports sont corrects
que les adresses IP sont correctes
Meme calcul que IP sur tout le datagramme UDP (bourrage
eventuel 1 octet `a 0) + pseudo en-tete UDP
Pseudo en-tete UDP (interaction avec IP) : (12 octets)
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
17 (en dcimal) pour IP
Adresse IP Source
Adresse IP Destination
Protocole Zone Zro Longueur Datagramme UDP
Cyril Pain-Barre Transport UDP et TCP 11/90
12/67
Interface socket BSD (Unix) pour UDP
int socket(int domain, int type, int protocol) : retourne un Service
Access Point (SAP) aupr`es dUDP, utilise en premier param`etre des
primitives ci-apr`es
int bind(int sock, const struct sockaddr *addr, socklen t addrlen)
associe au SAP ladresse dapplication addr
ssize t sendto(int sock, const void *buf, size t len, int ags,
const struct sockaddr *to, socklen t tolen)
demande lenvoi de len octets contenus dans buf, `a ladresse to
ssize t recvfrom(int sock, void *buf, size t len, int ags,
struct sockaddr *from, socklen t *fromlen)
recoit dans buf un message dau plus len octets ; ladresse de lemetteur
est placee dans from
int close(int sock) : lib`ere le SAP
Cyril Pain-Barre Transport UDP et TCP 12/90
13/67
Mod`ele Client/Serveur utilisant UDP
Le serveur est demarre sur un ordinateur en ecoute sur un port. Son
adresse est le triplet : (adresse IP, UDP, port)
Lecoute consiste `a attendre quun message parvienne `a ce port ; les clients
devront connatre le port du serveur (interet des ports reserves)
Le client envoie une requete au serveur (`a son adresse) :
pour recevoir une reponse du serveur, il doit avoir acquis un numero de port
UDP. Le plus souvent, ce port est quelconque. Rares sont les clients (comme
BOOTP/DHCP) qui necessitent un port precis.
la requete est un message applicatif : suite doctets constituant un PDU
(Protocol Data Unit) du protocole quimplementent le client et le serveur.
UDP fabrique un datagramme UDP avec pour champ Donnees ce message,
et pour champ Port Destination celui du serveur. Le Port Source est celui du
client.
Le datagramme UDP est ensuite envoye via un datagramme IP avec les
adresses IP du serveur (destination) et du client (source).
Le serveur recot le message du client, ainsi que son adresse. Il peut alors
traiter le message et repondre au client.
Selon le protocole, la discussion peut se poursuivre, ou sarreter l`a.
Cyril Pain-Barre Transport UDP et TCP 13/90
14/67
Files dattente et reception
Attribution de port allocation le dattente
Reception dun datagramme :
port destination non attribue : destruction + message ICMP
port alloue : si le non pleine, ajoute dans la le,
sinon detruit (pas de message ICMP!)
Appli consomme les elements de la le, par acc`es synchrone :
si aucun datagramme, processus place en attente
sinon, consommation du premier datagramme (FIFO)
Une application peut demander plusieurs ports
Cyril Pain-Barre Transport UDP et TCP 14/90
15/67
Utilisation UDP : mod`ele requete/reponse
Soit AppliB qui utilise 2 ports :
si re coit datagramme sur port x, renvoie les donnees en
majuscules
si re coit datagramme sur port y, renvoie les donnees `a lenvers
pour ce genre de service, AppliB peut traiter les datagrammes
au f ur et `a mesure
A1 A2 C1
UDP
Hte A
UDP
Hte C
UDP
Hte B
AppliB
x y
Cyril Pain-Barre Transport UDP et TCP 15/90
16/67
Utilisation UDP : suivi de la discussion
Si la discussion est longue et complexe, il est plus simple de deleguer
Exemple : serveur TFTP
recoit un premier datagramme dun client sur le port 69
demande un nouveau port
cree un ls pour traiter ce client sur ce nouveau port
renvoie un datagramme au client indiquant sur quel port poursuivre la
discussion (transfert de chier)
retourne `a lecoute de larrivee de nouveaux clients
la discussion se poursuit entre le client et le ls TFTP dedie
UDP
Hte A
UDP
Hte C
TFTP
Client
TFTP
Client
UDP
Hte B
Fils
TFTP
y
Serveur
TFTP
69
Fils
TFTP
x
Cyril Pain-Barre Transport UDP et TCP 16/90
17/67
Utilisation UDP : multidiusion
UDP ore un service en mode non connecte
Une application peut ainsi exploiter la multidiusion IP et
emettre un seul datagramme qui sera recu par un ensemble de
stations, en utilisant comme destination, une adresse :
broadcast : diusion `a toutes les stations dun reseau, ou du
reseau local pour ladresse de diusion limitee
(255.255.255.255)
multicast : adresses de classe D pour diuser `a un ensemble de
stations se trouvant eventuellement sur des reseaux dierents
(les routeurs qui les separent doivent etre congures pour cela).
Utilisees notamment pour la diusion de medias audio/video.
Exemple
Envoi par un client DHCP dun message `a tous les serveurs
DHCP du reseau local. Ladresse destination du message DHCP est
(255.255.255.255, UDP, 67)
Cyril Pain-Barre Transport UDP et TCP 17/90
18/67
Mise en uvre du transfert able
Cyril Pain-Barre Transport UDP et TCP 18/90
19/67
Transfert able en mode connecte
Bien souvent les applications ont besoin dechanger de gros
volumes de donnees de mani`ere able
Exemples : FTP, SMTP, HTTP, . . .
Il est toujours possible dorir ce service en sappuyant sur un
service non able non connecte comme IP ou UDP
Pour cela, on a besoin de quelques elements essentiels :
les accuses de reception (ACK)
des temporisateurs : alarmes qui expirent (timeout)
la numerotation des paquets (ou donnees)
Cyril Pain-Barre Transport UDP et TCP 19/90
20/67
Accuses de reception (ACK)
Lemetteur dun paquet attend une conrmation de reception
de la part du recepteur avant denvoyer un autre paquet
Le recepteur accuse reception dun paquet en envoyant un
ACK
metteur Rseau Rcepteur
mission paquet 2
mission paquet 1
rception paquet 1
envoi dun ACK
rception ACK
Protocole de type envoyer et attendre
Cyril Pain-Barre Transport UDP et TCP 20/90
21/67
Temporisateurs
Des paquets peuvent etre perdus dans le reseau
Si paquet perdu, pas dACK donc blocage
Utilisation dun timer arme lors de lemission du paquet :
si expire, renvoie le paquet
si reception ACK avant expiration, desactivation du timer
metteur Rseau Rcepteur
mission paquet 1
timeout
mission paquet 1
+ armement timer
envoi de lACK
Cyril Pain-Barre Transport UDP et TCP 21/90
22/67
Temporisateurs : probl`eme de reglage
Scenario du timer trop court et mise en cause abilite :
mission paquet 1
+ armement timer
timeout
mission paquet 1
envoi de lACK
mission paquet 2
envoi de lACK
mission paquet 3
metteur Rseau Rcepteur
Le paquet 1 est accepte deux fois par le recepteur !
Le deuxi`eme ACK est pris pour celui du paquet 2 !
Mais si timer trop long, on perd en ecacite. . .
Cyril Pain-Barre Transport UDP et TCP 22/90
23/67
ACK : probl`eme de lACK perdu
Scenario de lACK perdu et mise en cause abilite :
metteur Rseau Rcepteur
mission paquet 1
+ armement timer
envoi de lACK
timeout
mission paquet 1
envoi de lACK
mission paquet 2
Le paquet 1 est accepte 2 fois par le recepteur !
Cyril Pain-Barre Transport UDP et TCP 23/90
24/67
Numerotation des paquets et des ACK
Les paquets et les ACK portent des numeros : resoud les probl`emes
dACK perdu et dalarme trop courte.
metteur Rseau Rcepteur
mission paquet 1
+ armement timer
envoi de lACK n1
timeout
mission paquet 1
mission paquet 2
(paquet 2 attendu)
envoi de lACK n1
ignore paquet 1
Cyril Pain-Barre Transport UDP et TCP 24/90
24/67
Numerotation des paquets et des ACK
Les paquets et les ACK portent des numeros : resoud les probl`emes
dACK perdu et dalarme trop courte.
metteur Rseau Rcepteur
mission paquet 1
+ armement timer
envoi de lACK n1
(paquet 2 attendu)
mission paquet 1
ignore paquet 1
envoi de lACK n1
envoi de lACK n2
accepte paquet 2
timeout
mission paquet 2
ACK n1 ignor
timeout
mission paquet 2
Cyril Pain-Barre Transport UDP et TCP 25/90
25/67
Fenetre glissante (ou `a anticipation)
Principe :
emettre n paquets sans attendre dACK (n est la taille de la
fenetre)
envoys envoi autoris envoi interdit
...
fentre initiale (taille 8)
1 2 3 4 5 6 7 8 9 10 11
un temporisateur par paquet emis
la reception du ACK du premier paquet de la fenetre la fait
glisser :
envoi autoris envoi interdit envoys acquitts
...
la fentre a gliss
1 2 3 4 5 6 7 8 9 10 11
Cyril Pain-Barre Transport UDP et TCP 26/90
26/67
Ecacite de la fenetre glissante
La fenetre glissante permet dexploiter au mieux le reseau :
metteur Rseau Rcepteur
mission paquet 1
envoi de lACK n1
mission paquet 2
mission paquet 3
mission paquet 4
mission paquet 5
mission paquet 6
mission paquet 7
mission paquet 8
mission paquet 9
envoi de lACK n2
envoi de lACK n3
envoi de lACK n4
envoi de lACK n5
envoi de lACK n6
envoi de lACK n7
Cyril Pain-Barre Transport UDP et TCP 27/90
27/67
Fenetre glissante et gestion des acquittements
Si un paquet de donnees est perdu, deux possibilites :
rejet total (ou global)
rejet selectif
Cyril Pain-Barre Transport UDP et TCP 28/90
28/67
Fenetre glissante et gestion des acquittements
Rejet total : aucun paquet suivant celui perdu nest acquitte
mission paquet 1
accept : envoi de lACK n1
mission paquet 2
mission paquet 3
mission paquet 4
mission paquet 5
mission paquet 6
mission paquet 7
mission paquet 8
mission paquet 9
accept : envoi de lACK n2
accept : envoi de lACK n3
timeout, rmission paquet 4
metteur Rcepteur Rseau
rejet : envoi de lACK n3
rejet : envoi de lACK n3
rejet : envoi de lACK n3
rmission paquet 5
rejet : envoi de lACK n3
la fenetre en reception a une taille de 1
Cyril Pain-Barre Transport UDP et TCP 29/90
29/67
Fenetre glissante et gestion des acquittements
Rejet selectif : paquet de donnees i perdu
la fenetre en reception a une certaine taille m (de preference m = n)
ceux qui entrent dans la fenetre sont gardes, les autres sont ignores
mais les ACK pour ces paquets ont pour numero i 1
si timeout, lemetteur nenvoie que le premier paquet non acquitte
lorsque paquet i reemis et recu, lACK renvoye est celui du dernier
paquet re cu (ou celui avant un autre paquet eventuellement perdu)
1 2 3 4 5 6 7 8 9 11 10
1 2 3 4 5 6 7 8 9 11 10
12 13 14 15 16 ...
12 13 14 15 16 ...
Fentre dmission (taille 15) :
Fentre de rception (taille 10) :
Cyril Pain-Barre Transport UDP et TCP 30/90
30/67
Rejet selectif : exemple
metteur Rcepteur Rseau
mission paquet 1
mission paquet 2
mission paquet 3
mission paquet 4
mission paquet 5
mission paquet 6
mission paquet 7
mission paquet 8
mission paquet 9
mission paquet 10
mission paquet 13
mission paquet 14
mission paquet 15
mission paquet 11
mission paquet 12
accept : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
rejet : envoi de lACK n1
accept : envoi de lACK n11
gard : envoi de lACK n11
gard : envoi de lACK n11
gard : envoi de lACK n11
mission paquet 16
mission paquet 17
rmission paquet 2
Cyril Pain-Barre Transport UDP et TCP 31/90
31/67
Rejet selectif : amelioration par NACK
Envoi dun (seul) NACK si recepteur se rend compte dune erreur :
metteur Rcepteur Rseau
mission paquet 1
mission paquet 2
mission paquet 3
mission paquet 4
mission paquet 5
mission paquet 6
mission paquet 7
mission paquet 8
mission paquet 9
accept : envoi de lACK n1
gard : envoi de NACK n2
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n1
gard : envoi de lACK n9
gard : envoi de lACK n10
gard : envoi de lACK n11
gard : envoi de lACK n12
mission paquet 12
rmission paquet 2
mission paquet 11
mission paquet 10
mission paquet 13
mission paquet 14
mission paquet 15
mission paquet 16
mission paquet 17
gard : envoi de lACK n13
gard : envoi de lACK n14
Cyril Pain-Barre Transport UDP et TCP 32/90
32/67
Transmission bidirectionnelle et superposition
Pour une transmission bidirectionnelle :
equiper les deux cotes de fenetres demission et de reception
pas forcement de meme taille de chaque cote !
amelioration par superposition ou piggybacking :
les paquets de donnees contiennent un indicateur ACK (oui ou
non le paquet contient aussi un ACK) et un champ n
o
ACK :
...
ACK Num Paquet Donnes Num ACK
Cyril Pain-Barre Transport UDP et TCP 33/90
33/67
Le protocole TCP : Transmission Control Protocol
(RFC 793 corrigee par RFC 1122 et 1323)
Cyril Pain-Barre Transport UDP et TCP 34/90
34/67
Proprietes du service de TCP
Oriente connexion : transfert de ots doctets. La suite
doctets remise au destinataire est la meme que celle emise
Circuits virtuels : une fois une connexion demandee et
acceptee, les applications la voient comme un circuit dedie
Transferts tamponnes : quelle que soit la taille des blocs de
donnees emis par les applications, TCP est libre de les
decouper ou de les regrouper
Connexions non structurees : pas de fronti`ere placee par
TCP entre les messages emis par les applications
Connexions full-duplex : les donnees sechangent dans les
deux sens mais un sens de transmission peut etre libere par
lemetteur
Cyril Pain-Barre Transport UDP et TCP 35/90
35/67
Adresse dapplication, port et connexion
Comme pour UDP, ladresse dune application est un triplet (adresse
IP, TCP, port) : le serveur et le client doivent en posseder une. Le port
du client est generalement quelconque.
Mais `a la dierence dUDP, on ne peut envoyer un message directement
`a une adresse : il faut que le client etablisse une connexion avec le
serveur. Ils ne peuvent echanger des messages que via une connexion
t
e
Donnes
t
a
i
l
l
e
v
a
r
i
a
b
l
e
Cyril Pain-Barre Transport UDP et TCP 66/90
44/67
Format des segments TCP
Unite de donnees de protocole (PDU) echangee pour etablir/liberer
une connexion et transferer/acquitter des donnees
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
Port TCP Source Port TCP Destination
Numro de Squence
Numro dAccus de Rception
Fentre
Pointeur Urgent Checksum
t
a
i
l
l
e
v
a
r
i
a
b
l
e
t
a
i
l
l
e
v
a
r
i
a
b
l
e
Bourrage
Donnes
LET Rserv Flags
Options TCP (ventuelles)
e
n
t
e
p
a
r
t
i
e
f
i
x
e
(
2
0
o
c
t
e
t
s
)
6 bits
U
R
G
Y
A
C
K H
S
P R
S
T N
S F
N
I
Cyril Pain-Barre Transport UDP et TCP 67/90
45/67
Segment TCP : champ Numero de sequence
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
Port TCP Source Port TCP Destination
Numro dAccus de Rception
Fentre
Pointeur Urgent
t
a
i
l
l
e
v
a
r
i
a
b
l
e
t
a
i
l
l
e
v
a
r
i
a
b
l
e
Bourrage
LET Rserv
Options TCP (ventuelles)
e
n
t
e
p
a
r
t
i
e
f
i
x
e
(
2
0
o
c
t
e
t
s
)
Flags
Numro de Squence
Donnes
Checksum
premier octet
Indique le numro que porte le premier
octet de donnes
Cyril Pain-Barre Transport UDP et TCP 68/90
46/67
Segment TCP : champ LET
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
Numro dAccus de Rception
Fentre
Pointeur Urgent Checksum
t
a
i
l
l
e
v
a
r
i
a
b
l
e
t
a
i
l
l
e
v
a
r
i
a
b
l
e
Rserv
e
n
t
e
p
a
r
t
i
e
f
i
x
e
(
2
0
o
c
t
e
t
s
)
Flags
Numro de Squence
Donnes
Bourrage
Options TCP (ventuelles)
LET
Port TCP Source Port TCP Destination
multiplier par 4 pour
longueur de lentte
( cause des options)
Cyril Pain-Barre Transport UDP et TCP 69/90
47/67
Segment TCP : champ Fenetre
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
Port TCP Source Port TCP Destination
Numro de Squence
Numro dAccus de Rception
Fentre
Pointeur Urgent Checksum
t
a
i
l
l
e
v
a
r
i
a
b
l
e
t
a
i
l
l
e
v
a
r
i
a
b
l
e
Bourrage
Donnes
LET Rserv
Options TCP (ventuelles)
e
n
t
e
p
a
r
t
i
e
f
i
x
e
(
2
0
o
c
t
e
t
s
)
Flags
indique la place disponible
dans le tampon de rception
Cyril Pain-Barre Transport UDP et TCP 70/90
48/67
Segment TCP : Checksum
Obligatoire
Verie la totalite du segment + Pseudo en-tete TCP.
Comme pour UDP, permet de sassurer :
que les donnees sont correctes
que les ports sont corrects
que les adresses IP sont correctes
Meme calcul que IP/UDP (bourrage eventuel 1 octet `a 0) +
pseudo en-tete TCP
Pseudo en-tete TCP (interaction avec IP) : (12 octets)
3
0
1
6 7 8 9
2
0 1 2 3
2
4 5 6 7 8 9
3
1
0
0 1 2 4 3 5 6 7 8 9
1
0 1 2 3 4 5
bits :
6 (en dcimal) pour IP
Adresse IP Source
Adresse IP Destination
Protocole Zone Zro Longueur Segment TCP
Cyril Pain-Barre Transport UDP et TCP 71/90
49/67
Segment TCP : option MSS
Utilisee eventuellement pendant la phase de connexion (uniquement)
Format (4 octets) :
Type (2) Longueur Option (4)
Valeur MSS
8 bits 8 bits
Chaque cote indique la taille max des donnees des segments quil veut
recevoir, appelee MSS (Maximum Segment Size) :
souvent MTU - 40 (en-tetes IP et TCP sans option)
dependant de la taille des buers de reception
par defaut 536 (576 octets pour le datagramme IP)
Dicile `a choisir pour lInternet :
si trop petit, perte decacite
si trop grand, risque de fragmentation
Lideal est le plus grand tel quaucun datagramme nest fragmente
Cyril Pain-Barre Transport UDP et TCP 72/90
50/67
Donnees Urgentes (Hors Bande)
j
o
u
r
R
T
T
e
t
t
i
m
e
r
m
i
s
e
j
o
u
r
R
T
T
e
t
t
i
m
e
r
m
i
s
e
j
o
u
r
R
T
T
e
t
t
i
m
e
r
Cyril Pain-Barre Transport UDP et TCP 89/90
67/67
Automate detats ni de TCP
transitions detats :
evenement / action, o` u :
evenement :
italiques : primitive
appelee par le
programme
ACK, SYN, etc. :
reception dun segment
avec ce bit positionne
action :
ACK, SYN, etc. : envoi
segment
- : rien
tempo : temporisation
de 2 fois la duree de vie
dun segment
en pointilles, les evenements
exceptionnels
Ferm
coute
SYN
mis
SYN
reu
Attente
Fermer
Dernier
ACK
Fermer
en cours
Fin
Attente1
Fin
Attente2
Tempori
sation
Dbut
Ouverture
passive
Connexion
tablie
Ouverture active
/ FIN Fermer
/ FIN Fermer
/ FIN Fermer
/ SYN mission
SYN / SYN + ACK
RST/
SYN / SYN + ACK
ACK /
ACK /
FIN / ACK
FIN + ACK / ACK ACK /
FIN / ACK
tempo
ACK /
SYN + ACK / ACK
FIN / ACK
/ SYN
Fermer /
tempo
Fermer
Cyril Pain-Barre Transport UDP et TCP 90/90