Escolar Documentos
Profissional Documentos
Cultura Documentos
Protocoles de transport de
l‟Internet
Nos objectifs:
Comprendre les services Etudier les protocoles de
implémentés par la couche couche transport :
transport: UDP: transport sans connexion
multiplexage/demultiplexage TCP: transport orienté
fiabilité du transfert de connexion
données le contrôle de congestion TCP
contrôle de flux
contrôle de congestion
P3 P1
P1 P2 P4 application
application application
hôte 2 hôte 3
hôte 1
Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 4
Comment le démultiplexage
Hôte recevant les datagramme IP
Chaque datagramme a une 32 bits
adresse IP source et une
port source port dest
adresse IP destination
chaque datagramme
encapsule un segment de
Les autres champs de
l‟en-tête
couche transport
Chaque segment a un numéro
de port source et un num de Les données de
port destination spécifiques à l‟application
l‟application
(message)
hôte utilise les adresses IP et les
numéros de port pour diriger le
Format d‟un segment TCP/UDP
segment à la bonne socket
P2 P1
P1
P3
P1 P4 P5 P6 P2 P1P3
PS: 5775
PD: 80
IP-S: B
IP-D:C
Emetteur: Récepteur:
traite le contenu du segment Calcule le cheksum du segment
comme étant une séquence
reçu
d‟entiers de 16 bits
et vérifie si la valeur calculée du
checksum: le complément à un de
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Retenue
sortante 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
somme 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 11
TCP: vue générale
RFCs: 793, 1122, 1323, 2018, 2581
application application
Écrit données Lit données
Interface Interface
socket socket
Tampon Tampon de
d ‟envoi de réception
TCP de TCP
segment
350
300
250
RTT (milliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typiquement, = 0.25)
acks cumulatifs
Seq=92 timeout
timeout
X
lost
Sendbase
= 100
Seq=92 timeout
SendBase
= 120
SendBase
= 100 SendBase
= 120 déclanchement du Timeout
temps temps
Perte d‟un accusé
Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 22
TCP: scénarios de retransmission
Hôte A Hôte B
timeout
X
lost
SendBase
= 120
temps
Accusé de réception cumulatif
Arrivée d‟un segment intact et dans Envoi immédiat d‟un ACK cumulatif simple,
l‟ordre, doté d‟un num de séq attendu. Un accusant réception des deux segments
segment précédent est en attente de (dans l‟ordre)
l‟émission de son ACK
Arrivée d‟un segment hors séq doté d‟un Envoi immédiat d‟un ACK dupliqué
num de Seq supérieur au num attendu. indiquant le num de séq du prochain octet
(Lacune détectée) attendu (limite inf lacune)
Arrivée d‟un segment remplissant Envoi immédiat d‟un ACK, sous réserve que
complétement ou partiellement la lacune le segment coïncide avec la limite inf de la
dans les données reçues lacune
(On suppose que le récepteur TCP supprime les segments hors séquence)
RcvWindows : Espace mémoire disponible (spare room) en buffer
RcvBuffer : la taille du buffer de récéption allouée pour la connexion
LastByteRead : numéro du dernier octet dans le flux de données
retiré du buffer par le processus applicatif
LastByteRcvd : numéro du dernier octet dans le flux de données
reçus et placé dans le buffer
RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead]
Initialisation: Echange de
Trois états d‟échange:
segments TCP de connexion
entre un client et un serveur Etape 1: l‟hôte client envoie un
Initialisation de variables TCP: segment TCP SYN au serveur
Spécifie un num de séq initial
Num de séq
Pas de données
buffers, info contrôle de flux
Etape 2: l‟hôte serveur reçoit
(e.g. RcvWindow)
SYN et répond par un
client: intitiateur de connexion segment SYN+ACK
Socket clientSocket = new
Serveur alloue les buffers
Socket("hostname","port number");
Spécifie un num de séq initial
serveur: contacté par le client serveur
Socket connectionSocket = Etape 3: le client reçoit SYN+ACK
welcomeSocket.accept(); et répond par un segment ACK
qui peut contenir des données
Temps d‟attente
Etape 3: client reçoit FIN, répond
avec un ACK.
Met un “temps d‟attente” –
pour recevoir les segments de
données en cours de transfert
Etape 4: serveur, reçoit ACK et
ferme la connexion Fermeture
Transfert de données
ACK/- SYN+ACK/ACK
ÉTABLIE
CLOSE/FIN FIN/ACK
FIN/ACK ATTENTE
FIN FERMETURE
ATTENTE 1 EN COURS FERMETURE
CLOSE/FIN
ACK/- ACK/-
FIN+ACK/ACK
Dernier
FIN ATTENTE ACK
ATTENTE 2 TEMPORISÉE
FIN/ACK
ACK/-
FERMÉE
Congestion:
Informellement :”plusieurs sources envoient un grand volume de
données sur un court intervalle de temps au réseau.
Les conséquences:
Hôte A lout
Deux émetteurs, lin : données
deux récepteurs
originales
Pas de retransmission
R/3
lout
lout
lout
R/4
a. b. c.
“coût” de congestion:
Plus de travail (retrasmission) au niveau de l‟expéditeur et exploitation
inutile du débit de liaison des routeur
Retramsmission inutile: la liaison supporte de multiples copies des paquets
Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 36
Causes et effets de congestion : scenario 3
Hôte B
R4 R1
R2 Serveur C
R3
Hôte A lout
Hôte B
24 Kbytes
16 Kbytes
8 Kbytes
temps
CongWin = 1 MSS
expoentielle jusqu‟à l‟apparition
Exemple: MSS = 500 bytes &
d‟un événement de perte
RTT = 200 msec
doubler CongWin chaque RTT
taux d‟envoi initiale = 20
kbps conclusion: le taux d‟envoi initial
La bande passante disponible est lent mais augmente
peut être >> MSS/RTT rapidement en exponentiel
C‟est souhaitable de
remettre rapidement le taux
d‟envoi aux taux de la bande
passante disponible
Hôte A Hôte B
RTT
time
Implementation:
Variable seuil (Threshold)
À l‟événement de perte, le seuil est
mis à 1/2 du CongWin juste avant
l‟apparition de l‟événement de perte
Réception d’un Départ Lent CongWin = CongWin + MSS, Doubler la valeur de CongWin à
ACK pour un (DL) If (CongWin > Threshold) chaque RTT
segment non set state to “Evitement de
acquitté Congestion ”
Débit moyen0.75W
RTT
Connexion TCP 1
Routeur encombré
de capacité R
Connexion TCP 2
Débit Connection 1 R
Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 49