JLA 2015, AG 2021
Couche Transport
JLA 2015, AG 2021
Multiplexage/Démultiplexage
JLA 2015, AG 2021
UDP
IP
Interface Matérielle TCP
Applications
Adresses
Ethernet IP dest source Protocole Données
Adresses Ethernet IP dest source Protocole
Données
Port source destination Port source destination
CRC
CRC
JLA 2015, AG 2021
Émission
L'application émet des données
La couche TCP/UDP ajoute les ports source/destination
IP ajoute l'identifiant du protocole
Le paquet est éventuellement découpé pour
constituer des fragments de tailles compatibles avec la couche matérielle
Chaque fragment est encapsulé dans une trame
JLA 2015, AG 2021
La trame est validée en comparant l'adresse
Ethernet de destination avec celle de l'interface et transmet le paquet IP à la couche IP
IP valide le paquet reçu en examinant l'adresse IP de destination
IP assemble les différents fragments si besoin IP transmet les données du paquet au protocole désigné par le champ protocole, UDP ou TCP, du paquet
Le protocole transmet les données à l'application en examinant le port destination
L'application traite les données
Réception
JLA 2015, AG 2021
User Datagram Protocol
JLA 2015, AG 2021
Protocole en mode non connecté
Les datagrammes arrivent dans un ordre quelconque Ils peuvent être perdus ou dupliqués
Nécessité d'une programmation rigoureuse Bidirectionnel
Non fiable
Datagramme de taille limité : 65 535
Assure le multiplexage/démultiplexage sur la base du numéro de port
JLA 2015, AG 2021
Datagramme UDP
Port
Dest. Taille CRC Données Port
Source
16 16 16 16
65535 octets
JLA 2015, AG 2021
TCP
JLA 2015, AG 2021
Protocole en mode connecté : une connexion est un préalable à toute transmission
Bidirectionnel
Fiable :chaque paquet est acquité
Assure le contrôle du contenu des paquets Assure la retransmission en cas d'erreur Message ou segment de taille illimité
Les données constituent un flot non structuré
Nécessité d'un format des données pour pouvoir les interpréter
JLA 2015, AG 2021
N u m é r o d e s é q u e n c e P or t S ou r c e
0 4 1 0 1 6 2 4 3 1
P or t De s t in a t ion N u m é r o d 'a c q u it t e m e n t
Ta illeRé s e r vé Cod e F e n ê t r e
Con t r ôle P oin t e u r U r g e n t
Op t ion s Bit s Bou r r a g e
Don n é e s
JLA 2015, AG 2021
Numéro de séquence du premier octet de données contenues dans le segment IP
Numéro d’acquittement: numéro du caractère attendu (si = n signifie que n-1 caractères ont été reçus)
Fenêtre: indique la taille maximale des données que l'on peut accepter lors de la réception d'un segment (MTU)
JLA 2015, AG 2021
Code: caractérise le contenu du segment 0x20 URG message urgent
0x10 ACK acquittement
0x08 PSH transmission forcée
0x04 RST réinitialisation de la connexion 0x02 SYN segment de début de connexion 0x01FIN indicateur de fin de connexion
JLA 2015, AG 2021
Pointeur urgent: indique la position du caractère urgent dans les données si code = URG
La somme de contrôle est calculée en ajoutant en tête et uniquement pour le calcul le pseudo en-tête qui n'est pas transmis
Adresse IP source Adresse IP destination
00000000 Protocole Longueur TCP
JLA 2015, AG 2021
Établissement d'une connexion : Poignée de main en 3 parties
(Three Way Handshaking)
JLA 2015, AG 2021
le serveur se met en attente d'une connexion:
connexion passive
le client envoi un segment de synchronisation : SYN contenant un numéro de séquence initial 4760 par exemple
le serveur répond par un segment SYN/ACK (4761) acquittant le segment précédent contenant son
numéro de séquence initial 7544 par exemple le client répond par un segment ACK (7545) acquittant le segment précédent du serveur et contenant les premières données utilisateur
JLA 2015, AG 2021
Clie n t S e r ve u r
S YN 4 7 6 0
S YN ,ACK= 4 7 6 1 ,7 5 4 4
ACK= 7 5 4 5 e t d on n é e s RS T(c on n e xion r e fu s é e )
JLA 2015, AG 2021
TERMINAISON
JLA 2015, AG 2021
Chaque partie termine la connexion en envoyant un segment contenant le bit FIN valant 1
Les segments FIN peuvent contenir des données Chaque extrémité acquitte avec un segment ACK le segment FIN qui lui a été envoyé
Double poignée de main (to-way handshake)
Lorsqu'elle est réalisée la connexion est terminée Les deux parties ne terminent pas forcément la connexion au même instant
Passage de Bi-directionnel à Uni-directionnel
JLA 2015, AG 2021
Clie nt Se rve ur
Etat actuel Action Etat suivant Etat actuel Action Etat suivant
ESTABLISHED FIN-WAIT-1 ESTABLISHED
FIN-WAIT-1 ESTABLISHED CLOSE-WAIT
FIN-WAIT-1 FIN-WAIT-2 CLOSE-WAIT
FIN-WAIT-2 CLOSE-WAIT LAST-ACK
FIN-WAIT-2 TIME-WAIT LAST-ACK CLOSED
TIME-WAIT LAST-ACK CLOSED
TIME-WAIT CLOSED CLOSED
CLOSED Connexion terminée CLOSED Connexion terminée
Envoi d'un segment FIN
Attend le ACK de son segment FIN
Envoi un ACK pour acquitter le FIN et attend la fin de l'application
A reçu le ACK, attend
la fin du serveur Attend la fin de
l'application
Le client attend le segment FIN venant du serveur
L'application locale s'est terminée les serveur envoi un segment FIN
Le client acquitte ACK le segment FIN reçu du serveur
Attente de la réception d'un segment ACK
Le client attend un temps égal au double de la durée de vie d'un segment pour être sûr que ACK est reçu
Le serveur a reçu les segment ACK du client
Le délai d'attente est expiré la connexion est terminée
Connexion terminée du côté serveur
JLA 2015, AG 2021
CONNEXION DANS TCP
Une connexion est caractérisée par un quintuplet:
{Protocole,
Adresse IP source, Port Source,
Adresse IP destination, Port Destination}
●
Les descripteurs des sockets ne font pas partie du quintuplet
●
À chaque extrémité de la connexion les cinq informations sont connues
●
Plusieurs processus peuvent partager l'utilisation du même port du moment qu'il ne sont pas
connectés au même processus (serveur parallèle
par exemple)
JLA 2015, AG 2021
Fiabilité
Pour assurer une transmission fiable des données chaque paquet est acquitté
Acquittement : accusé de réception d'un paquet envoyé à l'émetteur par le récepteur
Peut être contenu dans un paquet de données envoyées par l’émetteur au récepteur
Le récepteur conserve les données envoyées jusqu'à la réception de l’acquittement
Si l’acquittement ne parvient pas au bout d'un certain temps à l'émetteur celui-ci envoie à nouveau le paquet
JLA 2015, AG 2021
Fiabilité : problèmes
Perte d'un acquittement : le paquet est envoyé en double et le récepteur le reçoit deux fois
L’acquittement arrive après le délai d'attente : paquet en double
Les temps d'attente doivent être suffisamment longs pour permettre l'arrivée du paquet
Pas trop important pour conserver un bon débit À l'établissement de la connexion il est déterminé un délai d'attente
JLA 2015, AG 2021
Fenêtre glissante
Technique permettant d'accélérer la transmission de paquets avec acquittement
Plusieurs paquets, 8 par exemple, sont transmis sans attendre les acquittements
Quand l’acquittement du premier paquet est reçu on déplace la fenêtre et on émet immédiatement le
paquet suivant
JLA 2015, AG 2021
1 2 3 4 5 6 7 8 9 10 11
Fenêtre
Acquittement du paquet 3
1 2 3 4 5 6 7 8 9 10 11
Fenêtre
1 2 3 4 5 6 7 8 9 10 11
Fenêtre
1 2 3 4 5 6 7 8 9 10 11
Fenêtre
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11
1 2 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11