Vous êtes sur la page 1sur 25

Chapitre 3:

La couche Transport
Fondements de base
Introduction
client Hosts serveur
Pages HTML ou fichiers
navigateur web server
HTTP ou FTP
application application
présentation presentation
TCP
(session) (session)
transport routage routage transport
IP IP IP
réseau réseau réseau réseau
ETH PPP ETH
liaison de données liaison de données liaison de données liaison
physique physique physique physique

LAN routeur LS routeur LAN


Lignes Spécialisées
vers autres routeurs

Fournit à la couche supérieure un service adapté aux besoins : adapte et optimise les services
de la couche réseau afin d’assurer un service approprié
Gère les communications de bout en bout
2
Services de la couche transport
 Mode « orienté connexion »
 création d’une connexion préalable, maintenue pendant toute
la communication et explicitement terminée
 négociation des paramètres de qualité de service à
l’établissement
 communication bidirectionnelle et ordonnée
 contrôle de flux
 contrôle de congestion (cas de TCP)
 Mode « sans connexion »
 transfert de datagrammes sans garanties
 Contrôles simplifiés

3
Eléments de protocole - Adressage
 Cas de TCP /UDP
 Les ports : une application particulière échange les données à
travers une (ou plusieurs) extrémité(s) dédiée(s) appelée(s)
port(s)
 Comment connaître le port distant ?
Un service est toujours disponible à un port bien connu
«Wellknown ports». La RFC 1340 donne la liste des numéros de
ports affectés, de façon prédéfinie, à des applications bien connues
 Pour TCP
 21: échange de fichiers via FTP
 22: accès à un shell sécurisé Secure Shell
 23: telnet
 25: envoi d'un email via SMTP
 80: consultation d'un serveur HTTP
 110: récupération d’email via POP
 443: HTTPS
 …
4
Eléments de protocole - Adressage
 Pour UDP
 161, 163: administration via SNMP
 520 : routage RIP
 …
 Ces numéros sont compris entre 0 et 1023, ne peuvent être
manipulés, sur les systèmes qu’avec les privilèges du super utilisateurs
 Les ports entre 1024 à 49151 sont des ports enregistrés et aussi
attribués par l' IANA à des services spécifiques et à la demande. Ces
ports peuvent être utilisés sans privilèges super utilisateur
 Les ports entre 49152 à 65535 sont dynamiques et ne peuvent être
enregistrés auprès de l' IANA, utilisés pour de façon temporaire
notamment coté client : ports éphémères

5
Le protocole UDP - Propriétés
 UDP - «User Datagram Protocol» RFC
768 32 bits
 «Connectionless» Sans contrôle de flux, ni
port source port dest
de congestion
 Le contrôle de congestion n’étant pas réalisé, ainsi longueur checksum
qu’au niveau IP, les protocoles de niv. application qui
n’effectuent pas un contrôle de congestion peuvent
causer des situations de congestion et donc des
pertes de données (sans contrôle approprié)
 Pas d’acquittement (ack)
 Adressage à travers des ports, service Données de la couche
«end-to-end» Application
 Comparé à IP, UDP n'apporte pas de (message)
fonctionnalités supplémentaires à part
l'utilisation des ports.
 Détection des erreurs au niveau de Format d’un segment UDP
l’entête (Checksum), inutile !

6
Le protocole UDP - Utilisations
 Utilisations
 transmettre des données très rapidement, avec moins de
surcoûts (puisque UDP impose moins de contrôle que TCP):
 transmettre des petites quantités de données sans perdre de temps
pour l’établissement d’une connexion TCP
 et la perte de données devrait être tolérée
 Eventuellement, ajouter des fonctions de contrôle au niveau de la
couche application pour améliorer la fiabilité : recouvrement
spécifique d’erreurs au niveau applicatif
 Exemple: Dans le cas de la transmission de la voix sur
IP/multimédias, tolérants à la perte de données (Existence de
mécanismes de substitution des données manquantes), par
contre la rapidité de transmission est un critère primordial
pour la qualité d'écoute

7
Le protocole TCP - Aperçu
 TCP – « Transmission Control Protocol » RFCs 793, 1122, 2474, 4379

 Transmission duplex fiable en mode connecté
 les messages sont découpés en segments.
 Les segments sont délivrés dans l'ordre d'émission
 La segmentation/concaténation (comme on va le voir dans la suite)
• En fonction de la taille des buffers et de la fenêtre d’anticipation
• Selon des algorithmes bien déterminés : Nagle, traitement de la fenêtre stupide
 Un mécanisme de contrôle de flux par fenêtre coulissante (voir ce qui
suit)
 Le contrôle de flux est opéré sur un flot d’octets
 Une numérotation des segments par rapport aux octets
 Un acquittement spécifie le num. d’octet attendu (cumulatif: les
précédents sont acquittés)
 La retransmission est déclenchée suite à l’expiration d’un temporisateur,
par application de la technique « Fast Retransmit » avec ou sans l’option
SACK (cf. diapos suivants)
 La valeur du temporisateur est recalculée en fonction du temps de cycle

8
Exemple TCP
Client Serveur
UPL TCP TCP UPL

Etablissement de connexion

Transfert de données

Fermeture de connexion

9
Le protocole TCP – Format d’un segment
Port source Port destination

Numérotation par
Numéro de séquence rapport à l’octet

Numéro d’ACK
Nombre
Long. C E UAP R S F Fenêtre d’octets
En-tête W C R C S S YI pouvant être
R E GKHT NN acceptés
Checksum Pointeur urgent Fermeture de
connexion
Options (exemples : négociation du MSS Max segment size (non inclus l’entête
TCP, par defaut 536 bytes), « Window scale factor », No-Op, utilisation d’un Ouverture de
protocole de retransmission sélective SACK …) connexion
Congestion Window Explicit
Longueur Congestion Données
Reduced Utilisé par la Livraison Refus de
de l'en- Notification urgentes à Champ
source pour indiquer immédiate à connexion
tête en ECN-Echo: partir de « Num
qu’elle a bien recu un l’application
mots de signale la pointeur d’ACK
ECE=1 et la fenêtre a (coté
32 bits présence de urgent » valide
été réduite destinataire)
congestion
10
Le protocole TCP – Les phases d’une
connexion
 Etablissement d’une connexion

(Active) (Passive)
Client Server
Rejet (ex. serveur
indisponible)

«Three way hand


shake»
collision :
établissement d’une
même connexion
11
Le protocole TCP – Les phases d’une
connexion
 Etablissement d’une connexion

Client Serveur
UPL TCP TCP UPL

SEQ=101 SEQ=322

12
Le protocole TCP - Les phases d’une
connexion
 Transfert de données
SEQ=101 SEQ=322

Client Serveur
UPL TCP TCP UPL

SEQ=117 SEQ=332
13
Le protocole TCP - Les phases d’une
connexion
 Libération d’une connexion
SEQ=117 SEQ=332

Client Serveur
UPL TCP TCP UPL
15 octets
restent
à envoyer

14
Les drapeaux
Client Serveur
SYN: Drapeau SYN à 1
UPL TCP TCP UPL

ACK: Drapeau ACK à 1

FIN : Drapeau FIN à 1

PSH : Drapeau PSH à 1

URG : Drapeau URG à 1

15
Le protocole TCP – Gestion des
acquittements
 Quelques scenarios de perte ou de retard d’acquittement

16
Le protocole TCP – Contrôle de flux

Circular buffer

17
Le protocole TCP – Contrôle de congestion
 Problème : plusieurs sources envoient de grands volumes de données qui passent
par un même routeur
 Perte de paquets (saturation des buffers des routeurs ) : lout << l in

 Délai de mise en file d’attente très long


 Risque de retransmission inutile (avant que le RTO ne s’adapte à la situation) : copie
multiples sur le réseau
 Pour un paquet perdu sur son parcours, la capacité de transmission dépensée par
chacun des routeurs en amont pour le faire progresser s’en trouve perdue
 Au niveau IP aucun contrôle de congestion
Hôte A

l l out
in :
données
originales

Hôte B Tampons de la liaison de


sortie en nombre limité

18
Le protocole TCP – Contrôle de congestion
 Solution : contrôle au niveau TCP (pas d’assistance du niveau
réseau)
 Détection
 La détection se base sur le fait que la perte d’un paquet est probablement
due à une congestion plutôt qu’une erreur de transmission, le taux
d’erreur sur les supports de transmission actuels est considéré très faible
 Contrôle
 En plus de la fenêtre de contrôle de flux (RcvWindow), utilisation d’une
fenêtre dite de congestion (CongWindow) :
Min{CongWindow, RcvWindow}
 Adapter dynamiquement la taille de la fenêtre de congestion
 Solution : « Slow Start » + « Additive Increase/Multiplicative Decrease »

Min{CongWindow, RcvWindow}
Débit= Bytes/sec
RTT

19
Le protocole TCP – Contrôle de congestion
 Une vue d’ensemble :
SS « Slow Start » + AIMD « Additive Increase/Multiplicative Decrease»

44
40 “Additive Increase" Expiration du temporisateur
ou 3 ACKs dupliqués
Seuil
Fenêtre de congestion (MSS)

36
d’évitement "multiplicative decrease”
32
Suite 3 ACKs dupliqués (Reno)
28
“Additive Increase"
24
20
16 Augmenter la fenêtre Le seuil est ramené à la moitié
rapidement, la doubler: de la taille de la fenêtre
12 incrémentation à chaque
1 MSS (Maximum Segment 8 réception des acks
Size), pour ne pas (Si émission de 8 seg. et
4 "multiplicative decrease”
Contribuer à une situation, réception des acks
correspondants, on passe à 16) Suite RTO
éventuelle, de congestion 0
déjà existante Time(RTT)
10

12

14

16

18

20

22

24
0

20
Le protocole TCP – Contrôle de congestion
 Phase SS « Slow Start », démarrage lent
 La connexion démarre, CongWindow = 1 MSS Cwnd (+1 à chaque
Ack reçu)
Exemple : si MSS = 500 oct. & RTT = 200 ms alors le
débit init.=20 kbps
 La bande passante disponible pourrait être >> MSS/RTT
 alors il serait souhaitable d’augmenter rapidement
le taux d’envoi aux taux supporté par la bande passante
disponible
 mais sans arriver à une situation de congestion
 quand la connexion démarre, le taux d’envoi croît de façon
exponentielle (doubler CongWindow) à chaque RTT j
 jusqu’à un seuil d’évitement («slow start threshold» ) : à
partir de ce seuil le risque est considéré plus grand, le seuil
est la moitié de la fenêtre précédemment atteinte

21
Le protocole TCP – Contrôle de congestion
 Phase « Congestion Avoidance » -
AIMD « Additive Increase/Multiplicative Decrease»»
 Accroissement additif : augmenter la valeur de CongWin de
1MSS après chaque RTT en absence de phénomène de perte
 Décroissance Multiplicative
 réduire CongWindow à 1 si l’événement de perte apparaît
(version Tahoe)
 réduire CongWindow à sa moitié si l’événement 3 ACKs
dupliqués et à 1 si RTO (version Reno) : « Fast Retransmit» »
 Si on reprend à 1 alors « slow Start »
Fenêtre de
congestion
24 Kbytes
Version Reno Cwnd
(+1/cwnd à la
3ACK 3ACK réception des
16 Kbytes 8 Ack)
dup. dup. 3ACK
3ACK 3ACK
dup.
dup. dup.

8 Kbytes

temps
22
Le protocole TCP – Contrôle de congestion
Pour résumer, reprenons
Slow Start: A chaque Ack recu, CWND=CWND+1 (doubler CWND à chaque pas)
Congestion Avoidance
Tous les CWND Acks recus, CWND=CWND+1
Timeout (RTO): SSThresh= CWND/2 et CWND=1

CWND Additive
Increase
Timeout
20 (RTO)
Timeout
16 Threshold (RTO)

12 Threshold
Threshold
8

4 Slow-start

23 2 4 6 8 10 12 14 16 18 20 22 24 26 t
Le protocole TCP – Contrôle de congestion
Pour résumer, reprenons
Congestion Avoidance
Tous les CWND Acks recus, CWND=CWND+1
Timeout (RTO): SSThresh= CWND/2 et CWND=1
3 ACKs dupliqués : Fast Retransmit, CWND=SSThresh= CWND/2
CWND
3 Acks dup.
20 +++ Timeout

16 Threshold

12 Threshold

t
2 4 6 8 10 12 14 16 18 20 22 24 26
24
Le protocole TCP – Contrôle de congestion
Pour résumer, reprenons
Congestion Avoidance
Tous les CWND Acks recus, CWND=CWND+1
Timeout (RTO): SSThresh= CWND/2 et CWND=1
3 ACKs dupliqués : Fast Retransmit, CWND=SSThresh= CWND/2
CWND
3 Acks dup
20 +++ Timeout

16 Threshold

12
Threshold
8

t
2 4 6 8 10 12 14 16 18 20 22 24 26

Vous aimerez peut-être aussi