Vous êtes sur la page 1sur 60

Couche transport

• La couche transport
• Le protocole TCP
• Le protocole UDP
Couche transport

Emplacement de couche transport dans le modèle OSI

2
Couche transport

Emplacement de couche transport dans le modèle TCP/IP

La couche transport offre deux protocoles TCP


et UDP

• UDP : User Datagram Protocol


• TCP : Transmission Control Protocol

3
Couche transport

Communication bout en bout


o La couche transport -> Suivre les communications individuelles entre les applications résidant sur
les machines source et de destination

o Elle est responsable de transport des messages complets de bout en bout au travers du 4

réseau
Couche transport

Rôle de la couche transport

La couche Application offre à la couche transport les fonctionnalités suivantes :

o Identification des applications réseau sur une machine (notion de port)

o Le transport des données grâce à :

• 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

o Fournit une communication logique entre les


processus applicatifs exécutés sur des sites différents

o Les protocoles transport s’exécutent sur les sites

émetteur: divise le message en segments, les passe à la


couche réseau

récepteur: reforme le message à partir des segments


obtenus de la couche réseau

6
Couche transport
Fonction de la couche transport : modèle de communication entre application

o Modèle de communication est le modèle


client/serveur.

o Un Serveur (application) : toujours en cours


d’exécution, en attente des requêtes des clients

Plusieurs services (applications serveurs) peuvent


fonctionner sur la même machine

o Un client : programme qui communique avec un


serveur
-> un client envoi des requêtes

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

• Il faut donc pouvoir identifier les applications de façon unique

• Un numéro de port est associé a chaque application

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.

• Une application peut utiliser plusieurs ports.

• 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

• Client 192.168.1.2 • Serveur 192.168.1.20


• Application1 : port TCP/1400 • Application sur le port TCP/80

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

Communiquer (192.168.1.20, port 80/TCP) Possibilité d’échanger des données

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.

Fiabilité : il utilise une somme de contrôle pour la détection d’erreurs.

13
Segment TCP

Services de TCP

TCP garantie la remise de message dans l’ordre de l’émission :

• TCP utilise des numéros de séquences pour ordonner


les segments de données.

• TCP utilise les acquittements pour acquitter les


segments.

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)

Il existe 6 indicateurs, qui sont utilisés pour l’ouverture et la fermeture de la connexion

• URG : le pointeur urgent est valide


• ACK : le numéro d’accusé de réception est valide (utilisé en cas d’accusé
de réception cumulatif)
• PSH : demande de push
• RST : réinitialiser la connexion
• SYN : synchroniser les numéros de séquence
• FIN : mettre fin à la connexion

17
Segment TCP
Format d’un segment TCP (flags)

• Flag ACK : vaut 1 si le champ ‘numéro d’acquittement’ est valide


• Flag SYN : vaut 1 lors d’une ouverture de connexion
• Flag FIN : vaut 1 d’une fermeture de connexion

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

Le protocole TCP passe par trois phases

• 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

SYN = 1, Num seq = X


Reçoit, Num Seq = X (mémoriser X)

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

SYN = 1, Num seq = X


Reçoit, Num Seq = X (mémoriser X)

Reçoit, Num Seq = y SYN = 1, Num Seq = Y, ack =X+1


(mémoriser Y)

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

SYN = 1, Num seq = X


Reçoit, Num Seq = X (mémoriser X)

Reçoit, Num Seq = y SYN = 1, Num Seq = Y, ack =X+1


(mémoriser Y)

SYN = 0, Num Seq = X+1 ack = Y+1


Reçoit ack et connexion établie

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)

• MSS = 100 Octets


• Taille fichier = 600 Octets
• Taille de fenêtre d’émission = 3

26
Connexion TCP
Exemple de transfert de données (Perte de segment)

• MSS = 100 Octets


• Taille fichier = 600 Octets
• Taille de fenêtre d’émission = 3

27
Connexion TCP
Exemple de transfert de données (Perte d’un ACK)

• MSS = 100 Octets


• Taille fichier = 600 Octets
• Taille de fenêtre d’émission = 3

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 : 3000 octets

Segment 2 : 2500 octets

Segment 1 et 2 reçu,
attend l’octet 6400

Segment 3 : 2000 octets

30
Connexion TCP
Transfert de données (acquittement groupés en cas de perte)

• Même si les données sont correctement reçus,


TCP ne les acquitte pas si leur Numéro de séquence
est supérieur à celui attendu -> soit le segment est perdu ou en route

• Il renvoi un acquittement contenant le numéro de


Séquence attendu

• L’émetteur doit renvoyer le segment après un


Time Out (RTO).

31
Connexion TCP
Transfert de données (Exemple d’acquittement groupés en cas de perte)
A B

Premier segment de 1500 octets

Deuxième segment de 1500 octets

Ack du segment 1 et 2
( on attend le segment 3)

Troisième segment de 1500 octets

Quatrième segment de 1500 octets

on attend le segment 3

Réémission du troisième segment


32
ACK du segment 3 et 4
Connexion TCP
Fermeture de connexion

• 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

La transmission est reprise depuis la trame perdue ou erronée Méthode simple

34
TCP : retransmission

Selective Repeat

Seule la trame perdue ou erronée est retransmise

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

TCP utilise un mécanisme de


contrôle du flux de données basé
sur une fenêtre glissante

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

• C’est le paquet d’acquittement qui contient la


taille de la fenêtre, cette taille peut varier selon
la quantité de mémoire disponible

• 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

TCP : Les fenêtres


Fenêtre d’émission : les données de l'application

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

Seuil de démarrage lent (ssthresh) Estimation de la bande passante disponible, généralement


initialisé à la valeur de rwnd

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

Taille de fenêtre = 1 Taille de fenêtre = 2 Taille de fenêtre = 3


39
Contrôle de flux
Exemple : technique de fenêtre glissante

Dans l’exemple, on a une fenêtre de 8 octets et un flux de données à envoyer.

A un instant donnée : 3 octets reçus, 8 en cours de transmission et 4 en attente.


Lorsque les octets 4 à 11 seront reçus et acquittés, l’émetteur pourra envoyer d’autres octets.

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

Il peut arriver que des données se perdent et n’arrivent pas à destination

Comment identifie-t-on une perte ?

41
Contrôle de congestion

Il peut arriver que des données se perdent et n’arrivent pas à destination

Le contrôle de congestion de TCP doit optimiser le débit de transmission sans mettre


en danger la stabilité du réseau

Défis :

1. Déterminer la capacité disponible sur le réseau


2. Ajuster le débit pour obtenir le débit optimal qui permet un régime de
transmission stable et en équilibre

42
Contrôle de congestion

Les phases de 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

phase 1: slow start

après une congestion, pas de remontée trop


rapide.

initialisation de la fenêtre à 1 segment


augmentation de 1 segment a chaque
acquittement

44
Contrôle de congestion

Algorithmes de contrôle de congestion

phase 2: congestion avoidance

• Utilisé quand cwnd >= ssthresh

Dans Slow Start, la taille de cwnd augmente de manière exponentielle


• Augmentation doit ralentir quand TCP s’approche au débit optimal
• Un seuil d’évitement de congestion indique quand on s’approche à une congestion

45
Contrôle de congestion

Algorithmes de contrôle de congestion

phase 2: Détection de congestion

Cas 1 : Time Out (Si timeout : W ← 1. Début d’une nouvelle phase slow start.)

Le délai d’expiration expire avant la réception de l’accusé de réception d’un segment.

Dans ce cas, l’expéditeur réagit par :

• 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

Algorithmes de contrôle de congestion

phase 2: Détection de congestion

Cas 2 : Détection lors de la réception de 3 accusés de réception


(Si reception de 3 dupacks : ssthresh ← W /2)

L’expéditeur reçoit 3 accusés de réception en double pour un segment.

Dans ce cas, l’expéditeur réagit par:

• 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

= (Taille de la fenêtre du récepteur / Taille maximale


du segment) / 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

4 Application utilisant 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.

Rapide, simple et efficace, mais non fiable (risque de perte de données)

52
Segment de UDP

Format de l’entête

o Port source : numéro de port du processus émetteur.


o Port destination : numéro de port du processus de destination.
o Longueur : longueur du paquet UDP en octet. (en-tête + données).
o Total de contrôle (checksum) : champ optionnel permet de vérifier l’intégrité
des données.

Taille de l’entête = 8 octets


53
Connexion UDP

o Un transfert UDP est caractérisé par :


o @ IP source
o @ IP destination
o Port source
o Port destination
o Connexion à usage unique
o Le port client est rendu après utilisation
o Le port serveur attend un autre client

54
Application / protocole qui utilisent UDP

o UDP Le protocole HTTP


• Surcouche de UDP
o Requête HTTP :
o Le Client demande un port UDP -> 1843
o Le Client envoie datagramme :
• IPclient:1843 -> IPserveur:80
o Le Serveur envoie une réponse (page Web)
• IPserveur:80 IPClient:1843
TCP vs UDP
• Le port 1843 est rendu à la machine Client

55
Application / protocole qui utilisent UDP

o La signalisation de certains protocoles

• Trivial File Transfer Protocol (TFTP)


• Domain Name System (DNS) name server
• Simple Network Management Protocol (SNMP)

o Applications temps réel, Visio et audioconférences

56
Avantages et inconvénients

Avantage :

• Simple (pas de connexion, pas d’état entre le client et le serveur)


• économique en bande passante (en-tête de 8 octets)
• Sans contrôle de congestion donc UDP peut émettre sans attendre

Inconvénients : UDP est un protocole non fiable

• Pas d’acquittement donc pas de garantie de bon acheminement


• Pas de détection de pertes donc pas retransmission possible
• Pas de contrôle de flux et donc pas de risque de saturation des buffer
• Pas de séquencement donc les datagrammes peuvent être dans le désordre

57
Exercice

faire le diagramme d’une connexion entre un client et un serveur qui font les échanges
suivants :

• Le client fait une demande au serveur avec 25 octets de données.


• Le serveur lui répond avec un premier segment contenant 500 octets de données.
Puis un second de 400 octets.
• Le client fait alors une nouvelle demande de 25 octets, en même temps que le
serveur lui répond avec un troisième segment contenant 400 octets de données.
• Le serveur répond à la seconde demande avec 500 octets.
• Il y a un temps d’attente.
• Le serveur répond avec 400 octets de plus.
• Le client clôt sa connexion.
• Le serveur clôt la sienne à son tour.

58
Correction

59
Conclusion

60

Vous aimerez peut-être aussi