Couche Transport
TCP et UDP
© Ahmed Mehaoua - 1
Le Modèle OSI
Application Application
Présentation Présentation
Session Session
Transport Transport
Réseau Réseau
Liaison Liaison
Physique Physique
1
Problématique ?
UDP
© Ahmed Mehaoua - 3
Transport
© Ahmed Mehaoua - 4
2
Services offerts par la couche
Transport
Multiplexage des données issues de différentes applications sur une
connexion de niveau réseau avec démultiplexage au moyen de paramètres
dans l’en-tête des segments (n° de ports)
Service Transport VS Service Réseau
Couche réseau: transfert de données entre machines
Couche transport : transfert de données entre processus applicatifs (Pi)
receiver
P3 P4
application-layer M1 M2
data
application
segment P1 transport P2
header M2
M1 network
application application
segment Ht M transport transport
packet network
Hn segment network
network network
UDP
© Ahmed Mehaoua - 5
UDP
© Ahmed Mehaoua - 6
3
Architecture d’un terminal IP
Système
d’exploitation
© Ahmed Mehaoua - 7
4
Communication client/serveur
Processus
Application
www.yahoo.fr
Fragmentation
Contrôle d'erreurs
DNS Contrôle de flux
Ports UDP TCP Séquencement
Multiplexage
128.45.3.234 Adressage
Adresse IP Routage
ARP
Ports
© Ahmed Mehaoua - 10
5
UDP / TCP: les ports
RFC 1700
Well-known ports
© Ahmed Mehaoua - 11
Notion de multiplexage
© Ahmed Mehaoua - 12
6
TCP : ports standards
No port Mot-
Mot-clé
clé Description
20 FTP-
FTP-DATA File Transfer [Default Data]
21 FTP File Transfer [Control]
23 TELNET Telnet
25 SMTP Simple Mail Transfer
37 TIME Time
42 NAMESERVER Host Name Server
43 NICNAME Who Is
53 DOMAIN Domain Name Server
79 FINGER Finger
80 HTTP WWW
110 POP3 Post Office Protocol - Version 3
111 SUNRPC SUN Remote Procedure Call
© Ahmed Mehaoua - 13
UDP
© Ahmed Mehaoua - 14
7
UDP : format du datagramme
Les messages UDP sont appelés datagrammes UDP.
IP
Taille maximale
= 65536 octets
Taille (en-
(en-tête inclus)
en octets
Contrôle des erreurs
(optionnel)
vaut zé
zéro si non utilisé
utilisé
Datagramme UDP
© Ahmed Mehaoua - 15
UDP : Multiplexage
UDP multiplexe et démultiplexe les datagrammes en sélectionnant
les numéros de ports :
Le Port source indique la session créatrice du paquet (une
application obtient un numéro de port de la machine locale; dès
lors que l'application émet un message via ce port Î le champ
PORT SOURCE du datagramme UDP contient ce numéro de
port),
une application connaît (ou obtient) un numéro de Port distant
afin de communiquer avec le service désiré.
Inconvénients de TCP
© Ahmed Mehaoua - 16
8
Inconvénients de UDP
Manque de fiabilité (pas nécessaire pour les applications de
vidéo diffusion ou de VoIP)
Aucune gestion de la congestion (les routeurs sont la seul
solution pour réduire cet effet)
UDP représente un pourcentage très réduit du trafic qui
traverse le réseau
Quelques applications utilisant UDP: DNS, SNMP,
DHCP et RIP.
TCP
© Ahmed Mehaoua - 17
TCP
© Ahmed Mehaoua - 18
9
Transmission Control Protocol
TCP
© Ahmed Mehaoua - 19
TCP
© Ahmed Mehaoua - 20
10
TCP: Fragmentation &
Encapsulation
MSS : maximum segment size
Application Message
MSS
TCP Segment
TCP hdr TCP data
IP Packet 20 bytes
IP hdr IP data
Ethernet Frame 20 bytes
segment TCP
© Ahmed Mehaoua - 22
11
TCP : format du segment
segment TCP
© Ahmed Mehaoua - 23
Numé
Numéro d’d’acquittement : le prochain numé
numéro de séséquence NS attendu par
l’émetteur
’émetteur de cet acquittement. Acquitte implicitement les octets NS
NS-1, NS-
NS-2,
etc.
Fenêtre:
Fenêtre: la quantité
quantité de donné
données que l’é
l’émetteur
metteur de ce segment est capable de
recevoir; ceci est mentionné
mentionné dans chaque segment (donné
(données ou acquittement).
12
TCP : Format du segment
CODE BITS : indique la nature du segment :
Champ OPTIONS
Permet de né négocier la taille maximale des segments échangé
changés. Cette
option n'est pré
présente que dans les segments d'initialisation de connexion
(avec bit SYN).
TCP calcule une taille maximale de segment de maniè manière à ce que le
datagramme IP ré résultant corresponde au MTU du ré réseau. La
recommandation est de 536 octets.
La taille optimale du segment correspond au cas où où le datagramme IP
n’est pas fragmenté
fragmenté mais :
il n’
n’existe pas de mé
mécanisme pour connaî
connaître le MTU,
le routage peut entraî
entraîner des variations de MTU,
la taille optimale dé
dépend de la taille des en-
en-têtes (options).
13
TCP : La connexion
une connexion de type circuit virtuel est établie avant que les données
ne soient échangées : appel + négociation + transferts
TCP connexion
© Ahmed Mehaoua - 27
TCP opening
© Ahmed Mehaoua - 28
14
TCP : fermeture connexion
TCP closing
© Ahmed Mehaoua - 29
TCP acquittement
© Ahmed Mehaoua - 30
15
TCP : ACKs cumulés
A B A B
ACK cumulé
cumulés ACK cumulé
cumulés
ACK retardé
retardés
TCP acquittement
© Ahmed Mehaoua - 31
TCP acquittement
© Ahmed Mehaoua - 32
16
TCP : envoi des ACK
TCP acquittement
© Ahmed Mehaoua - 33
TCP : retransmission
Acquittements et retransmissions
Le mécanisme d’acquittement de TCP est cumulatif :
il indique le numéro de séquence du prochain octet attendu :
tous les octets précédents cumulés sont implicitement acquittés
Si un segment a un numéro de séquence supérieur au numéro
de séquence attendu (bien que dans la fenêtre), le segment est
conservé mais l’acquittement référence toujours le numéro du
séquence attendu.
Pour tout segment émis, TCP s’attend à recevoir un acquittement :
Si le segment n’est pas acquitté, le segment est considéré
comme perdu et TCP le retransmet.
Or un réseau d’interconnexion offre des temps de transit
variables nécessitant le réglage des temporisations;
TCP gère des temporisations variables pour chaque connexion
en utilisant un algorithme de retransmission adaptative,
17
TCP : Retransmissions
Algorithme de retransmission adaptative
Gestion de la congestion
© Ahmed Mehaoua - 35
Fenêtrage: suite
© Ahmed Mehaoua - 36
18
TCP : Contrôle de flux par
fenêtrage (2)
Le mécanisme de fenêtrage mis en oeuvre dans TCP opère au niveau de
l'octet et non pas au niveau du segment; il repose sur :
1 2 3 4 5 6 7 8 9 10 11 . . .
3 pointeurs
App write
19
TCP : Contrôle des congestions
TCP gè
gère :
le contrôle de flux de bout en bout (saturation des tampons des
terminaux ré
récepteurs)
cepteurs) par une fenêtre de transmission;
mais également les problè
problèmes de congestion des tampons des
routeurs au moyen d’ d’une fenêtre de congestion.
Utilise 3 variables :
Une fenêtre de congestion : cnwnd
Un temporisateur fonction du RTT (dé
(délai aller-
aller-retour)
Un seuil : ssthresh
Gestion de la congestion
© Ahmed Mehaoua - 39
Slow Start
Start with cwnd = 1 (slow start) sender receiver
On each successful ACK increment cwnd cwnd
1
cwnd ← cnwd + 1 data packet
5
6
7
8
© Ahmed Mehaoua - 40
20
Congestion Avoidance
Starts when cwnd ≥ ssthresh
On each successful ACK:
sender receiver
cwnd ← cwnd + 1/cwnd
cwnd
1 data packet
ACK
2 1 RTT
Multiplicative Decrease
On each packet drop Î decrease cwnd:
cwnd:
cwnd ← Win / 2
cwnd
Slow Start
cwnd Congestion Avoidance
Win
W W+1
4
Win /2
2
1
RTT RTT Time
© Ahmed Mehaoua - 42
21
Initially:
MD MD Time
© Ahmed Mehaoua - 43
22