Chapitre 3 Transport
Chapitre 3 Transport
Chapitre 3 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.
2
Séparation de communications multiples
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
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.
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.
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,
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