Vous êtes sur la page 1sur 90

1/67

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

Etablissement dune connexion :


Serveur : eectue une ouverture passive en ecoutant sur un port, cest
`a dire en demandant un port et en attendant quun client sy connecte
Client : eectue une ouverture active en demandant letablissement
dune connexion entre son adresse et celle du serveur. Le serveur doit
etre en ecoute. Les modules TCP du client et du serveur interagissent
pour etablir cette connexion.
Une fois la connexion etablie, le serveur et le client doivent lutiliser
pour envoyer/recevoir des messages. TCP est charge dassurer la
abilite de la connexion (notamment soccupe des acquittements/
retransmissions)
Cyril Pain-Barre Transport UDP et TCP 36/90
36/67
Serveurs et ports reserves TCP
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
20 Serveur FTP (donnees)
21 Serveur FTP (commandes)
22 Serveur SSH
23 Serveur TELNET
25 Serveur SMTP (transfert de mail)
53 Serveur DNS
80 Serveur HTTP (www)
119 Serveur NNTP (news)
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 37/90
37/67
Interface socket BSD (Unix) pour TCP
socket() et bind() ont la meme fonction que pour UDP
int listen(int sock, int backlog)
(serveur) prepare le SAP pour une ouverture passive
int accept(int sock, struct sockaddr *addr, socklen t *addrlen)
(serveur) attend une demande de connexion (ouverture passive).
Renvoie un SAP pour la connexion etablie et addr contient ladresse du
client
int connect(int sock, const struct sockaddr *addr,
socklen t addrlen)
(client) demande letablissement dune connexion (ouverture active) au
serveur dadresse addr
ssize t send(int sock, const void *buf, size t len, int ags)
envoie len octets contenus dans buf `a travers la connexion sock
ssize t recv(int sock, void *buf, size t len, int ags)
recoit dans buf au plus len octets de la connexion sock
int close(int sock) : lib`ere un SAP (socket decoute ou connexion)
Cyril Pain-Barre Transport UDP et TCP 38/90
38/67
Ports et connexions
Plus complexe quUDP car un port peut etre utilise pour plusieurs
connexions simultanement :
un serveur peut accepter plusieurs clients `a la fois : chaque appel
daccept() retourne une nouvelle connexion utilisant le port du serveur
plus rare, un client peut aussi utiliser son port pour etablir plusieurs
connexions (mais pas vers la meme adresse serveur)
En dehors des SAP douverture passive, TCP g`ere surtout des objets
connexion
Une connexion est identiee par le quadruplet forme avec ladresse de
ses deux extremites :
(adresse IP locale, port local, adresse IP distante, port distant)
Les connexions sont gerees independamment les unes des autres
Chaque connexion dispose de ses propres tampons en emission/
reception et de chaque cote
Cyril Pain-Barre Transport UDP et TCP 39/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
TCP
Hte B
(139.124.187.4)
Interface TCP
Cyril Pain-Barre Transport UDP et TCP 40/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
TCP
Hte B
(139.124.187.4)
Ouverture passive
socket()
accept()
listen()
bind()
Cyril Pain-Barre Transport UDP et TCP 41/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
A1
(client)
TCP
Hte B
(139.124.187.4)
TCP
Hte A
(32.128.54.97)
Interface TCP
Cyril Pain-Barre Transport UDP et TCP 42/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
A1
(client)
TCP
Hte B
(139.124.187.4)
TCP
Hte A
(32.128.54.97)
Interface TCP socket()
connect()
Ouverture active
Cyril Pain-Barre Transport UDP et TCP 43/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
A1
(client)
R E R E
connexion #1
socket
Connexion #1 : (139.124.187.4, 80) et (32.128.54.97, 4321)
socket
port 4321
TCP
Hte B
(139.124.187.4)
TCP
Hte A
(32.128.54.97)
Interface TCP socket()
connect()
Ouverture active
Cyril Pain-Barre Transport UDP et TCP 44/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
A1
(client)
R E R E
connexion #1
socket
Connexion #1 : (139.124.187.4, 80) et (32.128.54.97, 4321)
socket
port 4321
TCP
Hte B
(139.124.187.4)
TCP
Hte A
(32.128.54.97)
Interface TCP
Cyril Pain-Barre Transport UDP et TCP 45/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
A1
(client)
R E R E
connexion #1
socket
Connexion #1 : (139.124.187.4, 80) et (32.128.54.97, 4321)
socket
port 4321
C1
(client)
TCP
Hte B
(139.124.187.4)
TCP
Hte A
(32.128.54.97)
TCP
Hte C
(195.10.134.12)
Cyril Pain-Barre Transport UDP et TCP 46/90
39/67
Ports et connexions : exemple
AppliB
(serveur)
port 80
socket
A1
(client)
R E R E
connexion #1
socket
Connexion #1 : (139.124.187.4, 80) et (32.128.54.97, 4321)
socket
port 4321
C1
(client)
R E R E
TCP
Hte B
(139.124.187.4)
TCP
Hte A
(32.128.54.97)
TCP
Hte C
(195.10.134.12)
Connexion #2 : (139.124.187.4, 80) et (195.10.134.12, 5678)
connexion #2
socket
port 5678
socket
Cyril Pain-Barre Transport UDP et TCP 47/90
40/67
Flots doctets et segments
pour TCP une connexion sert `a transmettre des ots doctets
dans les deux sens
les ots sont transmis par des segments (PDU de TCP)
un segment est transmis par un seul datagramme IP (sauf
fragmentation pendant lacheminement)
lemetteur transmet `a TCP des blocs de donnees de taille
quelconque
le recepteur recup`ere des blocs de donnees de taille quelconque
mais le nombre doctets transportes par un segment est
decide par TCP :
pour des raisons decacite
pour la regulation de ux
Cyril Pain-Barre Transport UDP et TCP 48/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A
AppliA
Hte B
(139.124.187.4)
AppliB
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
Cyril Pain-Barre Transport UDP et TCP 49/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A
AppliA
Hte B
(139.124.187.4)
AppliB
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
donnes transmettre
send()
Cyril Pain-Barre Transport UDP et TCP 50/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
placement dans le
tampon dmission
Cyril Pain-Barre Transport UDP et TCP 51/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
autres donnes transmettre
send()
Cyril Pain-Barre Transport UDP et TCP 52/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
placement dans le
tampon dmission
Cyril Pain-Barre Transport UDP et TCP 53/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80 TCP dcide de transmettre
un segment
Cyril Pain-Barre Transport UDP et TCP 54/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
entte TCP
Cyril Pain-Barre Transport UDP et TCP 55/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
entte IP
Cyril Pain-Barre Transport UDP et TCP 56/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
(fragmentation possible)
traverse du rseau
Cyril Pain-Barre Transport UDP et TCP 57/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
(fragmentation possible)
traverse du rseau
Cyril Pain-Barre Transport UDP et TCP 58/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
Cyril Pain-Barre Transport UDP et TCP 59/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
placement dans le
tampon de rception
Cyril Pain-Barre Transport UDP et TCP 60/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
TCP peut envoyer un ACK
maintenant ou plus tard
Cyril Pain-Barre Transport UDP et TCP 61/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
lecture des donnes
recv()
Cyril Pain-Barre Transport UDP et TCP 62/90
41/67
Flots doctets et segments : exemple
(32.128.54.97)
Hte A Hte B
(139.124.187.4)
AppliB
AppliA
R E
port 4321
TCP
IP
socket
TCP
IP
E R
socket socket
connexion tablie
port 80
mise jour des tampons
Cyril Pain-Barre Transport UDP et TCP 63/90
42/67
Numero de sequence et fenetre glissante
Pour une transmission ecace, TCP utilise une fenetre glissante
TCP nacquitte pas les segments mais les octets re cus
Tous les octets de donnees transmis portent un numero : le numero de
sequence
Les acquittements indiquent le numero du prochain octet attendu
La fenetre glissante (emission) comporte alors 3 pointeurs :
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 24 ... 27 28 29 30 31 32 33 ... 26
octets transmis mais
non encore acquitts
octets non encore transmis
mais qui peuvent ltre
octets quon nest pas encore
autoris transmettre
octets transmis
et acquits
Fentre dmission
Chaque cote de la connexion poss`ede une fenetre demission et une
fenetre de reception
Les acquittements peuvent transiter avec les donnees (superposition)
Cyril Pain-Barre Transport UDP et TCP 64/90
43/67
Taille de fenetre variable et controle de ux
La fenetre glissante na pas une taille xe
Les segments (en particulier ACK) contiennent une information taille
de fenetre :
... ... ... ... ... ... ...
A B
segment avec taille = x
fentre actuelle
A indique `a B la place disponible dans son tampon de reception
La reaction de B depend de la taille annoncee :
augmentation : B augmente sa fenetre et envoie les octets
supplementaires quelle comprend
... ... ... ... ... ... ...
B
fentre augmente
diminution : lors du glissement, B diminue sa fenetre (sans exclure les
octets qui y etaient dej`a)
... ... ... ... ... ... ...
B
fentre diminue
Cyril Pain-Barre Transport UDP et TCP 65/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
LET Rserv Flags
p
a
r
t
i
e

f
i
x
e

(
2
0

o
c
t
e
t
s
)
bits :
Port TCP Source Port TCP Destination
Numro de Squence
Numro dAccus de Rception
Fentre
Pointeur Urgent Checksum
Bourrage
Options TCP (ventuelles)
t
a
i
l
l
e

v
a
r
i
a
b
l
e
e
n

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)

Emetteur veut envoyer des donnees en urgence, sans attendre que le


recepteur ait lu les donnees precedentes
Exemple : envoi de Ctrl-C pour arreter le traitement de lapplication
destinataire
Le TCP emetteur place les donnees urgentes et envoie immediatement
le segment
Le TCP recepteur interrompt lapplication destinataire (sous Unix,
signal SIGURG)
Mise en uvre par bit URG et Pointeur Urgent :
si bit URG = 1 : donnees urgentes presentes et Pointeur Urgent indique
leur n dans le segment (mais pas leur debut)
si bit URG = 0 : pas de donnees urgentes, Pointeur Urgent ignore
P
S
H
F
I
N
A
C
K
R
S
T
S
Y
N
Pointeur Urgent
flags (6 bits)
U
R
G
16 bits
Cyril Pain-Barre Transport UDP et TCP 73/90
51/67
Remise forcee
Application emettrice demande de ne pas retarder lemission
des donnees, plutot que de tamponner
Particuli`erement utile dans le cas dun terminal virtuel : apr`es
le retour `a la ligne, il faut envoyer, voire meme pour chaque
caract`ere tape ou deplacement de souris (X-Window)
TCP emetteur place le bit PSH `a 1 :
F
I
N
R
S
T
S
Y
N
A
C
K
P
S
H
flags (6 bits)
U
R
G
Le TCP recepteur doit remettre les donnees au plus vite (ne
pas tamponner dans sa memoire)
Cyril Pain-Barre Transport UDP et TCP 74/90
52/67
Acquittements et Retransmissions
Le bit ACK `a 1 indique que le champ Numero dAccuse de
Reception doit etre utilise
F
I
N
R
S
T
S
Y
N
P
S
H
Numro dAccus de Rception
A
C
K
flags (6 bits)
U
R
G
32 bits
Un segment non acquitte est retransmis apr`es timeout
Un segment retransmis peut contenir plus de donnees que le
precedent
Numero ACK nacquitte pas le segment : indique le numero
du prochain octet attendu
LACK est cumulatif : a des avantages et des inconvenients
Rejet global ou selectif (le plus courant)
En pratique lemetteur ne renvoie que le premier segment non
acquitte
Cyril Pain-Barre Transport UDP et TCP 75/90
53/67

Etablissement dune connexion


En 3 temps, avec bits SYN et ACK
P
S
H
F
I
N
R
S
T
A
C
K
S
Y
N
U
R
G
metteur Rseau Rcepteur
mission SYN, sq=x
mission SYN sq=y, ACK x+1
Rception SYN
Rception ACK
(connexion tablie)
mission ACK y+1
Rception SYN, ACK
(connexion tablie)
Permet dignorer des demandes retardees
Resoud aussi les connexions simultanees des deux cotes
Numero de Sequence choisi (presque) aleatoirement dans
chaque sens
Cyril Pain-Barre Transport UDP et TCP 76/90
54/67
Liberation dune connexion
Processus en trois temps modie, avec bits FIN et ACK
P
S
H
R
S
T
S
Y
N
A
C
K
F
I
N
U
R
G
Connexion liberee lorsque chaque cote a indique quil navait plus de
donnees `a emettre :
metteur Rseau Rcepteur
mission FIN sq=x
Rception FIN
mission ACK x+1
Rception ACK
des donnes peuvent
tre transmises
mission FIN sq=y, ACK x+1
Rception FIN
mission ACK y+1
Rception ACK
plus de donnes
vers rcepteur
Armement timer
Armement timer
`
A la n, un temporisateur est utilise pour laisser le temps aux segments
retardes darriver ou detre detruits
Puis les donnees relatives `a la connexion sont detruites
Cyril Pain-Barre Transport UDP et TCP 77/90
55/67
Fermeture brutale dune connexion
Bit RST `a 1 :
S
Y
N
A
C
K
F
I
N
P
S
H
R
S
T
U
R
G
Signie quil a y eu un probl`eme grave
Connexion liberee immediatement
Donnees non traitees/segments retardes sont perdus
Applications sont informees
Utilise aussi pour refuser une demande de connexion
Cyril Pain-Barre Transport UDP et TCP 78/90
56/67
Temporisation et retransmission
Un segment (donnees) non acquitte doit etre retransmis
Probl`emes importants sur Internet :
comment calculer/estimer le RTT (Round Trip Time) ?
quelle duree du temporisateur ?
source : TCP/IP
Architecture, protocoles,
applications. D. Comer,
Edts Dunod
Cyril Pain-Barre Transport UDP et TCP 79/90
57/67
Ajustement dynamique du RTT estime
Pour chaque connexion, TCP g`ere une variable RTT
Soit M = temps mis pour retour de lACK dun segment
RTT est mis `a jour selon la formule :
RTT = RTT + (1 )M
o` u 0 1 (generalement 7/8) est le poids attribue `a
lanciennce valeur de RTT
Valeur du timer T = RTT (`a lorigine du standard = 2)
Jacobson (1988) a propose une amelioration du calcul de
RTT et de T, pour tenir compte de la variance. Devenu la
r`egle depuis 1989 :
Di = M RTT
RTT = RTT Di , o` u generalement vaut 1/2
3
Dev = Dev + (|Di | Dev), o` u generalement vaut 1/2
2
T = RTT + Dev, o` u generalement vaut 4
Cyril Pain-Barre Transport UDP et TCP 80/90
58/67
Ajustement dynamique du timer : exemple
En pointilles, des valeurs aleatoires de RTT. En trait plein, le timer
calcule :
source : TCP/IP Architecture, protocoles, applications. D. Comer, Edts Dunod
Cyril Pain-Barre Transport UDP et TCP 81/90
59/67
RTT et Algorithme de Karn
Probl`eme : si un segment est retransmis et un ACK recu,
doit-il etre pris pour le premier ou le dernier segment ?
Selon le choix, le calcul de RTT et de T peut etre
grandement fausse !
Algorithme de Karn (radio amateur) :
Ne pas mesurer M pour un segment retransmis
Mais augmenter T, selon la formule :
T = T
o` u generalement vaut 2.
Cyril Pain-Barre Transport UDP et TCP 82/90
60/67
Timer et grandes variations RTT
source : TCP/IP
Architecture, protocoles,
applications. D. Comer,
Edts Dunod
Il reste des situations impossibles `a prevoir mais la reaction est ge-
neralement tr`es bonne.
Cyril Pain-Barre Transport UDP et TCP 83/90
61/67
Syndrome de la fenetre stupide
Soit une application qui ne lit les donnees quoctet par octet
Lemetteur envoie susamment doctets pour remplir le
tampon de reception
Le TCP recepteur envoie une taille de fenetre nulle
Lorsque lapplication lit un octet, TCP enverra une taille de
fenetre de 1
Lemetteur peut alors envoyer 1 octet !
Puis taille de fenetre 0
etc.
Cest pas mieux si cest lemetteur qui envoie de lui-meme des petits
segments !
Cyril Pain-Barre Transport UDP et TCP 84/90
62/67

Eviter la fenetre stupide


Cote recepteur : (Algorithme de Clark) nannoncer une
reouverture de la fenetre que lorsque sa taille est :
soit egale `a la moitie du tampon de reception
soit egale au MSS
Cote emetteur : (Algorithme de Nagle) retarder le plus
possible lenvoi :
si des donnees nont pas ete acquittees, placer les nouvelles
donnees en tampon
ne les envoyer que si atteint taille maximale du segment ou la
moitie de la fenetre demission
lorsquun ACK arrive, envoyer ce quil y a (meme si le segment
nest pas plein)
ceci meme en cas de PUSH!
Il est parfois necessaire de desactiver lalgo de Nagle, notam-
ment pour X-Window (il faut envoyer les mouvements de la
souris de suite et non les tamponner. . . ).
Cyril Pain-Barre Transport UDP et TCP 85/90
63/67
TCP et la congestion
La congestion produit des retards importants et des pertes de
datagrammes
Retransmettre des segments retardes/detruits aggrave la
congestion jusqu`a leondrement congestif
TCP en tient compte et cherche `a eviter la congestion et
reagit en cas de congestion :
demarrage lent
diminution dichotomique
Necessite la gestion dune fenetre de congestion
Fenetre utilisee = min(Fenetre recepteur, Fenetre congestion)
Cyril Pain-Barre Transport UDP et TCP 86/90
64/67
TCP et la congestion : demarrage lent
Au debut de la connexion ou suite `a une congestion, eectuer
un demarrage lent avec fenetre congestion = 1 segment
Demarrage lent : pour chaque segment acquitte, augmenter
de 1 segment la fenetre de congestion
lent mais croissance exponentielle !
Cyril Pain-Barre Transport UDP et TCP 87/90
65/67
TCP et la congestion : diminution dichotomique
TCP estime que la perte dun segment est due `a la congestion
Si segment perdu, xer un seuil `a la moitie de la fenetre de
congestion (taille mini = 1 segment)
Augmenter la temporisation (algo de Karn)
Recommencer un demarrage lent jusqu`a atteindre le seuil
phase devitement de congestion : `a partir du seuil,
naugmenter que de 1 segment pour lensemble des segments
acquittes (croissance lineaire)
Cyril Pain-Barre Transport UDP et TCP 88/90
66/67
TCP et la congestion : illustration
temps
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
16
17
(nombre de segments)
taille fentre
dmarrage lent vitement
congestion
dmarrage lent vitement
congestion
non acquitt : nouvelle fentre (vitement partir de 8)
+ doublement temporisateur
+ doublement temporisateur
non acquitt : nouvelle fentre
(vitement partir de 6)
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
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

Vous aimerez peut-être aussi