Vous êtes sur la page 1sur 25

Chapitre 3

Protocoles et Adressage de la couche Transport

1
Introduction
• La couche transport segmente les données et se charge du
contrôle nécessaire au réassemblage de ces blocs de données
dans les divers flux de communication.

• Pour ce faire, elle doit :


• effectuer un suivi des communications individuelles entre les applications
résidant sur les hôtes source et de destination ;
• segmenter les données et gérer chaque segment individuel ;
• réassembler les segments en flux de données d’application ;
• identifier les différentes applications.

• La couche transport remplit également d’autres fonctions :


• Elle permet à de nombreuses applications de communiquer sur le réseau au
même moment, sur un même périphérique ;
• Elle vérifie, si cela est nécessaire, que toutes les données sont reçues de façon
fiable et dans l’ordre par l’application voulue ;
• Elle utilise des mécanismes de gestion des erreurs.

2
Séparation de communications multiples

La couche transport segmente les données et gère la séparation des


données pour les différentes applications. Les nombreuses applications
qui s’exécutent sur un périphérique reçoivent les données correctes.
3
Les protocoles
La fonction première de la couche transport est de gérer les
données d’application des communications entre hôtes.
Cependant, des applications différentes ont des exigences
différentes pour leurs données, de sorte que des protocoles de
transport différents ont été développés afin de satisfaire ces
exigences.

4
TCP et UDP
• Les deux protocoles de la suite de protocoles TCP/IP les plus
couramment employés sont le protocole TCP (Transmission
Control Protocol) et le protocole UDP (User Datagram Protocol).
• Le protocole TCP est un protocole fiable avec connexion décrit
dans le RFC 793. Le protocole TCP impose une surcharge pour
accroître les fonctionnalités.
• Le protocole UDP est un protocole simple, non fiable et sans
connexion, décrit par le RFC 768. Il présente l’avantage d’imposer
peu de surcharge pour l’acheminement des données.
• Les services basés sur les protocoles TCP et UDP effectuent le suivi
des applications qui communiquent. Pour différencier les
segments et les datagrammes de chaque application, les
protocoles TCP et UDP utilisent chacun des champs d’en-tête
identifiant ces applications de façon unique. Ces identificateurs
uniques sont les numéros de port.
5
TCP : Transmission Control Protocol
Un service de flux d’octets orienté connexion et fiable :
o Les données applicatives sont fractionnées en fragments (segments)
dont la taille est jugée la meilleure par TCP pour l’émission.
o TCP réordonne les données si nécessaire avant de les passer à
l’application.
o Lorsque TCP émet un segment, il maintient un timer, attendant de la
part de l’autre extrémité l’acquittement de réception.
o Lorsque TCP reçoit des données, il émet un acquittement.
o TCP maintient une somme de contrôle de bout en bout. Si un
segment parvient avec une somme de contrôle invalide, TCP le
rejette et ne l’acquitte pas.
o TCP rejette les données dupliquées.
o TCP fournit un contrôle de flux.
o Les segments TCP sont encapsulés dans un datagramme IP.

6
Segment TCP
• Le protocole TCP spécifie d’autres fonctions, à savoir la livraison
dans l’ordre, l’acheminement fiable et le contrôle de flux.
Chaque segment du protocole TCP utilise 20 octets de surcharge
dans l’en-tête pour encapsuler les données de la couche
application.

7
Adressage de port

Les données des différentes applications sont dirigées vers l’application


adéquate car chaque application dispose d’un numéro de port unique
8
Adressage de port
• L‘IANA (Internet Assigned Numbers Authority) attribue les numéros
de ports. C’est une agence de normalisation responsable de
l’affectation de diverses normes d’adressage.

• Il existe différents types de numéros de ports :


• Ports réservés (numéros 0 à 1023). Ces numéros sont réservés à des
services et applications courantes.
• Ports inscrits (numéros 1024 à 49151). Ces numéros de ports sont
affectés à des processus ou applications d’utilisateurs. Ces processus
sont essentiellement des applications particulières qu’un utilisateur a
choisi d’installer plutôt que des applications courantes qui recevraient
un port réservé.
• Ports privés ou dynamiques (numéros 49152 à 65535). Également
appelés ports éphémères, ces ports sont généralement affectés de
façon dynamique à des applications clientes lorsqu’une connexion
est initiée.
9
TCP : ports standards
No port Mot-clé Description
20 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

10
TCP : La connexion
• Une connexion de type circuit virtuel est établie avant que les
données ne soient échangées : appel + négociation +
transferts.
• Une connexion = une paire d'extrémités de connexion.
• Une extrémité de connexion = couple (adresse IP, port).
• Exemple de connexion : ((124.32.12.1, 1034), (19.24.67.2, 21)).
• Une extrémité de connexion peut être partagée par plusieurs
autres extrémités de connexions (multiplexage).
• La mise en œuvre de la connexion se fait en deux étapes :
o une application (extrémité) effectue une ouverture active pour
demander l'établissement de la connexion.
o une autre application (extrémité) effectue une ouverture passive en
indiquant qu'elle accepte une connexion entrante,

11
TCP : En-tête 1/3
• Les numéros de port source et destination : afin d’identifier
l’application émettrice et réceptrice.
• Le numéro de séquence : C’est un nombre qui identifie la
position des données à transmettre par rapport au
segment original. Au démarrage de chaque connexion,
ce champ contient une valeur non nulle et non
facilement prévisible, c’est le numéro de séquence initial
ou ISN.
• Le numéro d’acquittement contient le numéro de
séquence suivant que le destinataire s’attend à recevoir.
• longueur d’en-tête (Data Offset) : donne la longueur de
l’en-tête en mots de 32 bits. Ceci est nécessaire parce
que la longueur du champs options est variable.

12
TCP : En-tête 2/3
• CODE BITS : indique la nature du segment :
o URG : le pointeur de données urgentes est valide, les données
sont émises sans délai, les données reçues sont remises sans délai.
o ACK : active les acquittements.
o PSH C’est une notification de l’émetteur au récepteur, pour lui
indiquer que toutes les données collectées doivent être
transmises à l’application sans attendre les éventuelles données
qui suivent.
o RST : réinitialise la connexion.
o SYN : utilisé à l’initialisation de la connexion pour indiquer où la
numérotation séquentielle commence. Le Numéro de séquence
inscrit dans le datagramme (correspondant à SYN) est alors un
Initial Sequence Number (ISN) produit par un générateur
garantissant son unicité.
o FIN : utilisé lors de la libération de la connexion.
13
TCP : En-tête 3/3
• Fenêtre: Le contrôle de flux est fourni par chaque
extrémité annonçant une taille de fenêtre. C’est le
nombre d’octet que le récepteur veut bien accepter.
• Checksum: Un calcul qui porte sur la totalité du segment,
en-tête et données.
• Pointeur de données urgentes : c’est un moyen pour
l’émetteur de faire transiter des données urgentes à
l’autre extrémité.
• Options est un paramétrage de TCP. Sa présence est
détectée dès lors que l’offset est supérieur à 5. Exemple :
négociation des tailles de segments.

14
Fiabilisation des conversations
• La fiabilité des communications TCP est assurée à l’aide de
sessions avec connexion.
• Cette connexion rend possible le suivi d’une session, ou d’un
flux de communication, entre les hôtes.
• Lorsqu’une session a été établie, la destination envoie des
accusés de réception à la source pour les segments qu’elle
reçoit. Ces accusés constituent l’élément de base de la
fiabilité dans la session TCP.
• Si la source ne reçoit pas d’accusé de réception dans un
délai prédéterminé, elle retransmet ces données vers la
destination.
• La surcharge provoquée par l’utilisation du protocole TCP
provient en partie du trafic réseau généré par les accusés
de réception et les retransmissions.

15
Processus Serveur TCP

16
TCP : Réassemblage des segments

17
TCP : Communications fiables
La fiabilité des communications TCP est assurée à l’aide de sessions
avec connexion. Lorsque deux hôtes communiquent à l’aide de
TCP, une connexion est établie avant que les données ne puissent
être échangées.

Etablissement d’une connexion TCP

1- A envoie une requête SYN à B 3- A envoie une réponse ACK à B

2- B envoie une réponse ACK et une requête SYN à A


18
Une fois la communication terminée, les sessions sont fermées et il
est mis fin à la connexion.

Fermeture d’une connexion TCP

1- A envoie une requête FIN à B 2- B envoie une réponse ACK à A


3- B envoie une requête FIN à A 4-A envoie une réponse ACK à B
19
TCP : Taille de fenêtre

Dans cet exemple, la taille


de fenêtre initiale d’une
session TCP représentée est
définie à 3000 octets.

Lorsque l’expéditeur a
transmis 3000 octets, il
attend le reçu de ces
octets avant de
transmettre d’autres
segments de cette session.

Une fois que l’expéditeur a


reçu l’acquitement du
destinataire, il peut
transmettre 3000 octets
supplémentaires.

20
TCP : Retransmission
• En général, un service sur l’hôte de destination utilisant le
protocole TCP ne génère d’accusé de réception que pour les
séquences contiguës d’octets.
• Si un ou plusieurs segments sont manquants, seules les données
des segments qui complètent le flux donnent lieu à l’émission
d’accusés de réception.
• Quand le protocole TCP sur l’hôte source n’a pas reçu d’accusé
de réception après un délai prédéterminé, il revient au dernier
numéro d’accusé de réception et retransmet les données depuis
ce point.
• Dans une implémentation TCP classique, un hôte peut transmettre
un segment, placer une copie du segment dans une file d’attente
de retransmission et lancer un minuteur.
• Quand l’accusé de réception des données est reçu, le segment
est supprimé de la file d’attente. Si l’accusé de réception n’est pas
reçu avant l’écoulement du délai prévu, le segment est retransmis.
21
TCP : Encombrement et contrôle de flux

22
Le protocole UDP
• Le protocole UDP est un protocole sans connexion et ne propose
pas de mécanismes sophistiqués de retransmission, de
séquençage et de contrôle de flux :
• Il crée beaucoup moins de surcharge que le protocole TCP,
• Non fiable : la fiabilité doit être implémentée à un autre niveau,

• Des protocoles importants de la couche application utilisent le


protocole UDP, notamment :
• DNS (Domain Name System)
• SNMP (Simple Network Management Protocol)
• DHCP (Dynamic Host Configuration Protocol)
• TFTP (Trivial File Transfer Protocol)
• Jeux en ligne

• La faible surcharge qu’engendre le protocole UDP rend celui-ci


très intéressant pour de telles applications.
23
Datagramme UDP
• Les blocs de communication utilisés dans le protocole UDP sont
appelés des datagrammes. Ces datagrammes sont envoyés « au
mieux » par ce protocole de couche transport.
• Le protocole UDP est notamment utilisé par les applications
suivantes :
• Système de noms de domaine (DNS)
• Lecture vidéo en continu
• Voix sur IP (VoIP)

24
UDP : sans connexion et non fiable

Le protocole UDP se contente donc de réassembler les données dans l’ordre dans
lequel elles ont été reçues, puis de les transmettre à l’application. Si l’application
attache une grande importance à l’ordre des données, elle devra identifier l’ordre
correct des données et déterminer leur mode de traitement.
25

Vous aimerez peut-être aussi