Académique Documents
Professionnel Documents
Culture Documents
• La couche transport
• Le protocole TCP
• Le protocole UDP
Couche transport
2
Couche transport
3
Couche transport
o Elle est responsable de transport des messages complets de bout en bout au travers du 4
réseau
Couche transport
• TCP (fiable) un protocole orienté connexion qui assure l’arrivée des paquets dans l’ordre, sans erreur,
les accusés de réception et retransmission des paquets perdus.
• UDP (non fiable) un protocole non orienté connexion dont le contrôle d'erreur est archaïque
5
Couche transport
Fonction de la couche transport
6
Couche transport
Fonction de la couche transport : modèle de communication entre application
7
Couche transport
Identification des application
• TCP et UDP peuvent servir simultanément à plusieurs applications (processus) sur la même
machine.
• Ces processus communiquent par la même interface réseau et partagent la même adresse
IP
8
Couche transport
Identification des application
9
Couche transport
Notion de port
• Un port est un concept abstrait , c’est un numéro qui permet d’identifier une application
réseau sur une machine
• Deux applications sur la même machine ne peuvent pas avoir le même port.
• Les numéros des port source/destination sont transportés dans l’entête UDP/TCP.
10
Couche transport
Modèle client/serveur : exemple de communication
Le client doit se connecter au serveur vie Une fois la connexion est établie, le serveur
l’adresse IP du serveur ainsi le port Connaît le port du client
L’identificateur de la connexion entre la source (application 1) et la destination (serveur qui utilise port 80)
11
est ( 192.168.1.2, TCP/1400 , 192.168.1.20, TCP/8)
Protocole TCP
1 Services de TCP
2 Segment TCP
3
Connexion TCP
4 Contrôle de flux
5 Fenêtre de congestion
12
Services de TCP
Service orienté connexion : avant d’envoyer les données on doit ouvrir une connexion entre
l’émetteur et le récepteur.
Service bout en bout : le transfert de données a lieu entre des processus individuels
s’exécutant sur des systèmes d’extrémité.
Orienté flux : Cela signifie que les données sont envoyées et reçues sous forme de flux
d’octets.
Service full duplex : la communication peut avoir lieu dans les deux sens en même temps.
13
Segment TCP
Services de TCP
14
Segment TCP
Format d’un segment TCP
15
Segment TCP
Format d’un segment TCP
• Port source et destination (sur 16 bits chacun) : servent à identifier les extrémités de la connexion TCP
• Numéro de séquence (sur 32 bits) : c’est le numéro d’un segment envoyé (le numéro de son premier octet)
• Numéro d’accusé réception (numéro d’acquittement sur 32 bits) : c’est le numéro du dernier octet reçu +1 ,
Donc le numéro de prochain octet à recevoir
• Données : données de la couche supérieur (couche application)
16
Segment TCP
Format d’un segment TCP (flags)
17
Segment TCP
Format d’un segment TCP (flags)
18
Connexion TCP
Trois phases :
o Etablissement de la connexion
o Transfert des informations avec :
o Contrôle de flux
o Contrôle de congestion
o Libération de la connexion
19
Connexion TCP
Etablissement de connexion en 3 phases : SYN, SYN-ACK, ACK
• Ouverture de la connexion
• Echange de données
• Fermeture de la connexion
20
Connexion TCP
Exemple
21
Connexion TCP
TCP : Ouverture de connexion
1. La machine A initie une connexion en envoyant un segment indiquant son numéro de séquence initial
(ISN : Initial Sequence Number) X avec un bit SYN à 1 pour indiquer une demande de connexion (la machine B
Peut refuser la connexion)
A B
22
Connexion TCP
TCP : Ouverture de connexion
2. La machine B répond par un accusé de réception de numéro X+1 -> demande de connexion accepté :
La machine B inclut son propre numéro de séquence initial Y et le bit SYN
La source (machine A) reçoit le paquet et mémorise le numéro de séquence Y.
A B
23
Connexion TCP
TCP : Ouverture de connexion
3. L’hôte A répond par un accusé de réception de numéro Y+1 mais n’inclut pas le bit SYN(SYN=0). La connexion est établie
et les données peuvent être échangés dans les deux sens.
A B
24
Connexion TCP
TCP : Exemple d’Ouverture de connexion
On suppose que le numéro de séquence initiale de la machine A est 904 et celui de B est 2500
A B
Demande de connexion
Connexion acceptée
Confirmation
25
Connexion TCP
Exemple de transfert de données (cas idéale)
26
Connexion TCP
Exemple de transfert de données (Perte de segment)
27
Connexion TCP
Exemple de transfert de données (Perte d’un ACK)
28
Connexion TCP
Transfert de données (acquittement groupés)
Pour minimiser le nombre d’acquittement les destinataire va acquitter le dernier segment pour indiquer que
tous les segments du rang inférieur sont bien reçus échangés, TCP permet d’acquitter plusieurs segments à la fois
A B
Segment 1
Segment 2
Segment 3
Ack=4
Pour indiquer que les
trois segments sont
Bien reçus
29
Connexion TCP
Transfert de données (exemple d’acquittement groupés)
A B
Segment 1 et 2 reçu,
attend l’octet 6400
30
Connexion TCP
Transfert de données (acquittement groupés en cas de perte)
31
Connexion TCP
Transfert de données (Exemple d’acquittement groupés en cas de perte)
A B
Ack du segment 1 et 2
( on attend le segment 3)
on attend le segment 3
• Comme dans l’ouverture d’une connexion, il faut que les deux entités soit d’accord pour la fermeture de la
connexion pour éviter la perte des données.
Exemple :
A B A B
Demande de
déconnexion
Acquittement de
demande reçue
Demande de
déconnexion
Déconnexion
acceptée
33
TCP : retransmission
Go-back-N
34
TCP : retransmission
Selective Repeat
35
Contrôle de flux
Les machines qui envoient ou reçoivent les données ne le font pas toutes au même rythme
Il peut donc arriver que l’émetteur envoie ses données beaucoup plus vite que le récepteur ne
Peut les gérer
36
Contrôle de flux
Notions de fenêtre d’émission et de réception
• Le récepteur envoie à l’émetteur la taille de
la fenêtre qui indique combien d’octets peuvent
être transmis sans avoir besoin d’autorisation
-> espace libre dans son buffer de réception
• Dans les cas extrêmes, cette taille peut se réduire à 0 octet les tampons sont pleins, il ne faut
plus envoyer de données.
37
Contrôle de flux
Fenêtre de réception (rwnd) : Nombre max de paquets que le récepteur est capable de recevoir =
taille du buffer en entrée du récepteur
Fenêtre de congestion (cwnd) Nombre max de paquets que l'émetteur peut envoyer avant de
recevoir un accusé lui permettant de poursuivre la transmission
38
Contrôle de flux
Technique de fenêtre glissante
A B A B A B
Segment 1 Segment 1
Segment 1
Segment 2 Segment 2 Segment 1 reçu
Segment 1 reçu Segment 2 reçu
Segment 1 reçu
Segment 3 Segment 2 reçu
Envoi d’ack 2 Segment 3 Segment 3 reçu
Envoi d’ack 3 Envoi d’ack 4
Segment 2 Segment 3
Segment 4 Segment 4
Segment 2 reçu Segment 3 reçu
Segment 5
Envoi d’ack 3 Segment 4 reçu Segment 5 Segment 3 reçu
Envoi d’ack 5 Segment 4 reçu
Segment 6
Segment 3 Segment 5 Segment 5 reçu
Segment 3 reçu Segment 6 Segment 5 reçu
Envoi d’ack 4 Segment 6 reçu Envoi d’ack 7
Envoi d’ack 7
Si les octets 4,5,6,7 et sont acquittés alors -> la taille de la fenêtre devient 5
5 octets libre dans le buffer du destinataire -> l’émetteur peut envoyer aux maximum 5 octets 40
(par exemple : 12,13,14,15,16)
Contrôle de congestion
41
Contrôle de congestion
Défis :
42
Contrôle de congestion
- Slow Start
- Congestion Avoidance
- Détection de congestion :
- Détection de timeout
- Détection d’accusé de réception dupliqué
43
Contrôle de congestion
Algorithmes de contrôle de congestion
44
Contrôle de congestion
45
Contrôle de congestion
Cas 1 : Time Out (Si timeout : W ← 1. Début d’une nouvelle phase slow start.)
• Définition du seuil de démarrage lent sur la moitié de la taille actuelle de la fenêtre de congestion.
• Réduction de la taille de la fenêtre de congestion à 1 MSS.
• Reprise de la phase de démarrage lent.
46
Contrôle de congestion
• Définition du seuil de démarrage lent sur la moitié de la taille actuelle de la fenêtre de congestion.
• Réduction de la taille de la fenêtre de congestion jusqu’au seuil de démarrage lent.
• Reprise de la phase d’évitement de la congestion.
47
Fenêtre de congestion
Exemple : slow start
Seuil
= Nombre maximal de segments TCP que
la fenêtre du récepteur peut accueillir / 2
48
Fenêtre de congestion
Exemple
A : slow start
B : triple ACK + CW/2
C: Evit de Cong
D: triple ACK + CW/2
E: Evit de Cong
F: Timeout
G: slow start
49
Fenêtre de congestion
Exemple
W = 16
• Au 4ème tour de transmission la valeur seuil
(ssthresh) 12 passe en phase d’évitement de la
congestion et se poursuit jusqu’à la 8ème
transmission.
• Au 8ème tour de transmission, 3 ACK en double sont
reçus par le récepteur et entrent en mode
d’augmentation additive.
• Le délai d’attente se produit au 15ème tour de
transmission => time-out
Le threshold = 14/2 = 7
50
UDP
1 Services de UDP
2 Segment UDP
3
Connexion UDP
5 Avantages et inconvénients
51
Services de UDP
N’est pas orienté connexion : pour envoyer des données, la source ne doit pas ouvrir une connexion
avec la destination.
Ne séquence pas et n’acquitte pas les données : UDP n’assure pas que les données émises arrivent
à la destination. Même si elles n’arrivent pas dans le bon ordre.
52
Segment de UDP
Format de l’entête
54
Application / protocole qui utilisent UDP
55
Application / protocole qui utilisent UDP
56
Avantages et inconvénients
Avantage :
57
Exercice
faire le diagramme d’une connexion entre un client et un serveur qui font les échanges
suivants :
58
Correction
59
Conclusion
60