Вы находитесь на странице: 1из 36

Couche Transport

TCP/UDP

ENPC Transport 1
ˆ 1 Services de la couche transport
ˆ 2 Multiplexage et démultiplexage
ˆ 3 Transport sans connexion: UDP
ˆ 4 Principes du transfert fiable de données
ˆ 5 Transport orienté connexion: TCP

ENPC Transport 2
Services et protocoles transport
ˆ fournit une communication application
logique entre les processus transport
réseau
applicatifs exécutés sur des liaison
physique
réseau

tr
sites différents
liaison
réseau

an
physique
liaison

sp
ˆ Les protocoles transport physique

or
s’exécutent sur les sites

t
réseau

po
liaison

in
physique réseau
 émetteur: divise le

t
liaison

à
message en segments, les physique

po
in
passe à la couche réseau réseau

t
lo
liaison

g
physique
 récepteur: reforme le

iq
iu
message à partir des

e
application

segments obtenus de la
transport
réseau
couche réseau liaison
physique

ˆ Plus d’un protocole de


transport disponible pour les
applications
 Internet: TCP et UDP
ENPC Transport 3
Transport vs. réseau
ˆ Couche réseau: analogie:
communication logique 5 enfants envoient des
entre sites lettres à 5 autres enfants
ˆ processus = enfants
ˆ Couche transport :
ˆ messages appli= lettres
communication logique dans les enveloppes
entre processus ˆ sites = maisons
 Construit sur les ˆ protocole transport= Ann
services de la couche et Bill
réseau
ˆ Protocole réseau = le
 Enrichit le service de la service postal
couche réseau

ENPC Transport 4
protocoles internet transport
ˆ fiable, délivrance dans application
transport
l’ordre (TCP) réseau
liaison réseau
physique
Contrôle de congestion

tr
liaison
 réseau

an
physique
liaison

sp
Contrôle de flux physique

or


t
réseau
Connexion

po
liaison


in
physique réseau

t
liaison
Non fiable, dans le

à
ˆ physique

po
in
désordre: UDP réseau

t
lo
liaison

g
physique

iq
extension du protocole

iu


e
“best-effort” IP application
transport
réseau
ˆ services non disponibles: liaison
physique

 garantie des délais


 garantie largeur de bande

ENPC Transport 5
ˆ 1 Services de la couche transport
ˆ 2 Multiplexage et démultiplexage
ˆ 3 Transport sans connexion: UDP
ˆ 4 Principes du transfert fiable de données
ˆ 5 Transport orienté connexion: TCP

ENPC Transport 6
Multiplexage/démultiplexage
Multiplexage
Demultiplexage sur le site rcpt : sur le site emetteur:
Assembler les données de
livre les segments reçus
plusieurs sockets, ajouter
à la bonne socket
un entête (utilisé ensuite
pour le demultiplexage),
= socket = process

application P3 P1
P1 application P2 P4 application

transport transport transport

réseau réseau réseau

liaison liaison liaison

physique physique physique

site 2 site 3
site 1
ENPC Transport 7
Principe du démultiplexage
ˆ Le site reçoit des datagrammes
 chaque datagramme a l’adresse 32 bits
IP de l’émetteur et du
destinataire source port # dest port #

 chaque datagramme (couche


réseau) contient un segment Autres champs d’entête
(couche transport)
 chaque segment a le numéro de
port de l’émetteur et du Données application
destinataire
(les numéros de port sont (message)
spécifiques à chaque
applications)
ˆ Les sites utilisent les adresses Format segmentTCP/UDP
IP et les numéros de port pour
diriger les segments vers la
ENPC
socket appropriée Transport 8
Démultiplexage sans connexion
ˆ Quand un site reçoit un
ˆ Crée des sockets avec des segment UDP:
numéros de port:  contrôle le numéro de port
DatagramSocket mySocket1 = new du dest dans le segment
Dirige le segment UDP
DatagramSocket(99111);

ˆ Socket UDP identifiée par vers la socket attachée à
un couple: ce numéro de port
(adresse IP dest, numéro port dest) ˆ Les datagrammes IP
avec des adresses IP
et/ou des numéros de
port d’émetteurs
différents sont dirigés
vers la même socket

ENPC Transport 9
Sans connexion
DatagramSocket serverSocket = new DatagramSocket(6428);

P3 P1
P1
P2

PS: 6428 PS: 6428


PD: 9157 PD: 5775

PS: 9157 PS: 5775


client PD: 6428 PD: 6428 Client
serveur
IP: A IP: C IP:B

PS fournit “l’adresse de retour”

ENPC Transport 10
Démulptiplexage orienté connexion

ˆ Socket TCP identifiée ˆ Un site serveur peut


par un 4-uplet: avoir plusieurs sockets
 Adresse IP source TCP simultanément:
 Numéro de port source  Chaque socket est
 Adresse IP dest identifiée par son propre
 Numéro de port dest 4-uplet

ˆ Le site rcpt utilise tous ˆ Les serveurs WEB ont


ces champs pour diriger des sockets différentes
le segment vers la pour chaque client
socket appropriée connecté

ENPC Transport 11
démultiplexage orienté
connexion

P3 P2 P4 P1
P1

PS: 80 PS: 80
PD: 9157 PD: 5775

PS: 9157 PS: 5775


client PD: 80 PD: 80 Client
serveur
IP: A IP: C IP:B

ENPC Transport 12
ˆ 1 Services de la couche transport
ˆ 2 Multiplexage et démultiplexage
ˆ 3 Transport sans connexion: UDP
ˆ 4 Principes du transfert fiable de données
ˆ 5 Transport orienté connexion: TCP

ENPC Transport 13
UDP: User Datagram Protocol [RFC 768]
ˆ Protocole de transport
simple, sans valeur ajoutée pourquoi UDP?
ˆ Service “best effort”, les ˆ Pas d’établissement de
segments UDP peuvent connexion (qui ajoute des
être: délais)
 Perdus ˆ Simple: sans état connexion
 Livrés dans le désordre à la source et au receveur
aux applications ˆ Entête de segment petit
ˆ Sans connexion: ˆ Pas de contrôle de
 Pas de “poignée de congestion: UDP peut
main” entre émetteur et circuler aussi vite que
récepteur possible
 Chaque segment UDP
est traité
indépendamment des
ENPC
autres Transport 14
ˆ Utilisé pour les flux d’appli
multimedia 32 bits

 Tolérantes aux pertes port source # port dest #


 Sensibles à la vitesse longueur Somme ctrl
ˆ Autres usages
 DNS

ˆ Transfert fiable sur UDP: Données application


la fiabilité est ajoutée par (message)
la couche applicative
 Correction d’erreur
spécifique à l’application
Format de segment UDP

ENPC Transport 15
Somme de contrôle UDP
But: détecter les “erreurs” (ex: bits inversés) dans le
segment transmis

Emetteur Récepteur:
ˆ Traite le segment comme ˆ Calcule la somme de contrôle
une séquence d’entiers du segment reçu
16-bit ˆ Contrôle si la somme calculée
ˆ Somme de contrôle: correspond au champ ad hoc
addition du contenu du du segment reçu:
segment  NON - erreur détectée
ˆ L’émetteur met la somme  OUI – pas d’erreur
de contrôle dans le champ détectée
ad hoc du segment UDP Mais peut être présente ….

ENPC Transport 16
ˆ 1 Services de la couche transport
ˆ 2 Multiplexage et démultiplexage
ˆ 3 Transport sans connexion: UDP
ˆ 4 Principes du transfert fiable de données
ˆ 5 Transport orienté connexion: TCP

ENPC Transport 17
Principes du transfert fiable
ˆ important dans les couches applications, transport, liaison
ˆ un des sujets importants pour les réseaux

ˆ Les caractéristiques du canal non fiable déterminent la


complexité du protocole de transfert fiable (reliable data
ENPC transfer protocol (rdt)) Transport 18
Idée:
ˆ Si le canal peut inverser les bits: somme de
contrôle pour le détecter
ˆ Correction des erreurs:
 Accusé de réception (ACKs): le receveur dit explicitement
que le paquet reçu est OK
 Accusé de réception négatif (NAKs): le receveur dit
explicitement qu’il y a une erreur dans le paquet reçu
 L’émetteur retransmet le paquet si nécessaire

ENPC Transport 19
Et si les ACK/NACK sont corrompus?

Traiter les dupliquas:


ˆ L’émetteur ajoute un numéro
ˆ L’émetteur n’a plus de de séquence à chaque paquet
retour du récepteur ˆ L’émetteur retransmet le
ˆ S’il retransmet: duplication paquet courant si ACK/NAK
possible corrompu
ˆ Le récepteur ignore (ne livre
Que faire? pas) les paquets reçus en
double
ˆ L’émetteur ACK/NAK les
ACK/NAK du récepteur? Et
si ces ACK/NAK sont stop et attend
perdus? L’émetteur envoi un paquet
ˆ Retransmettre, même si le et attend la réponse du
paquet a été reçu sans récepteur
erreur?
ENPC Transport 20
Et les pertes?

Approche: l’émetteur attend un temps “raisonnable”


l’ACK/NACK
ˆ Retransmission si l’ACK n’est pas reçu à temps
ˆ Si paquet (ou ACK) simplement retardé (et pas perdu):
 La retransmission créera un dupliqua, l’usage du numéro
de séquence évite la livraison multiple
 Le receveur doit indiquer le numéro de séquence du
paquet pour lequel il envoie ACK
ˆ Nécessite l’évaluation du temps

ENPC Transport 21
stop-et-attend
émetteur receveur
Premier bit du paquet transmis
t=0, t = L / R

premier bit du paquet


arrivé
RTT Dernier bit du paquet arrivé,
envoie de ACK

ACK arrive, envoie du


paquet suivant, t = RTT + L
/R

U L/R .008
émetteur= = 30.008 = 0.00027
RTT + L / R microsec
onds
ENPC Transport 22
protocoles en pipeline (avec
anticipation)
Pipelining: l’émetteur envoie “avec anticipation”
plusieurs paquets, çà acquitter par le récepteur
 La plage des numéros de séquence doit être étendue
 Tampons chez l’émetteur et/ou le récepteur

ˆ Deux types de protocoles en pipeline: go-Back-N,


selective repeat
ENPC Transport 23
Go-Back-N (fenêtre glissante)
Emetteur
ˆ “fenêtre” jusqu’a N paquets consécutifs non acquittés,

ˆ ACK(n): ACKs acquiite tous les paquets jusqu’à n “ACK cumulatif”


ˆ timeout(n): retransmet le paquet n et tous les paquets envoyés
ayant un numéro de séquence supérieur à n

ENPC Transport 24
Selective repeat: fenêtre chez l’émetteur
et le récepteur

ENPC Transport 25
ˆ 1 Services de la couche transport
ˆ 2 Multiplexage et démultiplexage
ˆ 3 Transport sans connexion: UDP
ˆ 4 Principes du transfert fiable de données
ˆ 5 Transport orienté connexion: TCP

ENPC Transport 26
TCP: Résumé RFCs: 793, 1122, 1323, 2018, 2581
ˆ Bi-directionnel:
ˆ point à point:  Flux bi-directionnel dans la
 Un émetteur,un receveur même connexion
ˆ fiable, flux ordonné d’octets
 MSS: (maximum segment
size) taille maximum d’un
 Pas de limites des messages segment pour les données
ˆ En pipeline: applicatives
 Largeur de la fenêtre ˆ Orienté connexion:
affectée par les contrôles  Poignée de main (échange
de flux et de congestion de message de contrôle),
initialise états émetteur et
ˆ tampons: émetteur et récepteur avant l’échange
récepteur des données
 Aucun élément de la
connexion TCP dans les
différents éléments du
réseau entre l’émetteur et
le rcpt
application
ˆ Contrôle de flux:
application
Données à envoyer Données à lire
socket
L’émetteur ne débordera
socket
TCP TCP 
pas le récepteur
tampon émetteur tampon récepteur
segment
ENPC Transport 27
TCP structure d’un segment
32 bits
URG: donnée urgente Compté en octes
(non utilisé en général) N° port source N° port dest
de données
N° de séquence (Pas en segment)
ACK: n°ACK valide
N°séquence d’acquittement
PSH: délivrance taille non
en têteutilisé U A P R S F Fenêtre de rcpt
immédiate
# octets que le
(non utilisé en général) Somme ctrl Ptr donnée urgente
rcvr peut
RST, SYN, FIN: accepter
Options (longueur variable)
Établissement de
la connexion
(commandes)
Données de l’application
Somme de contrôle
Internet (longueur <MSS)
(comme dans UDP)

ENPC Transport 28
TCP: Gestion de la connexion
Rappel: l’émetteur et le ˆ client: initie la connexion
récepteur établissent Socket clientSocket = new
une “connexion” avant
Socket("hostname","port

l’échange de données number");

ˆ initialise les variables TCP: ˆ serveur: contacté par le


client
 N° de seq.
Socket connectionSocket =
 tampons, info pour le welcomeSocket.accept();
contrôle de flux (ex:
RcvWindow)

ENPC Transport 29
3-poignée de main
(Three way handshake):

Pas 1: l’hôte client envoie un segment TCP SYN au serveur


 Indique son n° de séquence initial
 Pas de données
Pas 2: l’hôte serveur reçoit SYN et répond avec un segment
SYNACK
 Le serveur alloue ses tampons
 Spécifie son n° de séquence initial
Pas 3: le client reçoit SYNACK, répond avec un segment ACK qui
peut contenir des données

ENPC Transport 30
TCP gestion de la connexion
Fermer une connexion:
client serveur
Le client ferme la socket:
clientSocket.close(); close
FIN

pas 1: le coté client envoie un


segment TCP FIN au serveur
AC K
close
pas 2: le serveur reçoit FIN, FIN
répond avec ACK. Il ferme la
connexion et envoie FIN.

Attente finie
A CK

fermé

fermé

ENPC Transport 31
Pas 3: le client reçoit FIN, client serveur
répond avec ACK.
close
 Entre dans une attente FIN

finie. Il répondra avec


ACK à tout FIN reçu
AC K
close
Pas 4: le serveur reçoit ACK. FIN
La connexion est fermée.

Attente finie
A CK

fermé

fermé

ENPC Transport 32
TCP: Transfert fiable
ˆ TCP crée un service ˆ Retransmissions
fiable au dessus du effectuées si:
Un évt timeout
service non-fiable d’IP 
 Acks dupliqués
ˆ Protocole en pipeline
ˆ Acks groupés
ˆ TCP utilise un seul
timer pour la
retransmission

ENPC Transport 33
TCP: contrôle de flux
Contrôle de flux
ˆ Le coté receveur de TCP a L’émetteur ne fait pas
un tampon de réception: déborder le tampon de
rcpt en transmettant
trop vide

ˆ Service d’alignement
des débits: aligner le
débit de l’émetteur au
débit de lecture de
ˆ Le processus applicatif
l’application réceptrice
peut être lent dans sa
lecture des données du
tampon

ENPC Transport 34
Contrôle de congestion
Congestion:
ˆ Informellement: “trop de sources envoient trop de données
trop vite pour que le réseau qui les gère”
ˆ Différent du contrôle de flux
ˆ Manifestations:
 Perte de paquets (débordements des tampons dans les
routeurs)
 Délais longs (attente dans les tampons des routeurs)
ˆ Un problème important pour les réseaux

ENPC Transport 35
Approches pour le contrôle de la
congestion
2 grandes approches à l’égard du contrôle de la
congestion:
Gestion par les systèmes Gestion assistée par le
terminaux: réseau:
ˆ Sans info-en-retour ˆ Les routeurs donnent de l’info-
explicite du réseau en-retour aux systèmes
terminaux
ˆ Congestion déduite par les
systèmes terminaux en  Un seul bit indique la
observant les pertes et les congestion (SNA, DECbit,
délais TCP/IP ECN, ATM)
ˆ Approche choisie par TCP  Explicite la vitesse de
transmission de l’émetteur

ENPC Transport 36

Оценить