Transmission de Données
7 - Couche Transport 1. Introduction (3h)
2. Couche Physique (3h)
3. Couche Liaison (3h)
Maîtrise EEA
4. Couche d'Accès au Médium (3h)
5. Couche Réseau (9h)
Olivier Fourmaux 6. Couche Transport (6h)
Basé sur la 3éme édition du livre du Pr. A. S. Tanenbaum : Computer Networks
7. Applications (6h)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 1 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 2
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 3 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 4
Qualité de Service
Service Transport " Couche transport complémente ou améliore
de la Qualité de Service (QoS) fournis par la
" Pourquoi une autre couche de bout-en-bout ? couche réseau
construction du service attendu par les applications " Paramètres potentiellement associés à la
distinct de celui fournis par la couche réseau
couche transport (généralement négociés):
" mode connecté fiable sur un service réseau datagramme
non-fiable (ex: TCP/IP) " délais d'établissement d'une connexion
taux d'échec d'établissement d'une connexion
séparation des entités réseaux et applicatives "
Entité Transport
TPDU
" Transport Protocol Data Unit
messages échangés entre deux entités de transport
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 7 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 8
Automate d'État
Primitives de Transport " transitions
déclenchées par
" Propres à chaque service de transport des primitives
locales ou des
" Similaires à celle de la couche réseau mais arrivées de
détachées des technologies réseaux TPDU
" Exemple (service simple en mode connecté fiable):
" ------
" LISTEN (pas d'envoi de TPDU) processus serveur
" CONNECT (envoi d'un CONN_REQ)
" ----------
SEND (envoi de DATA_REQ)
processus client
"
BSD Sockets
Plan - Couche Transport
" Primitives pour TCP utilisées par les UNIX BSD
" SOCKET (création d'un nouveau point terminal) " Présentation
BIND (attache une adresse au socket)
"
" Elements de base
" LISTEN (acceptation des connexions avec file d'attente)
" ACCEPT (acceptation bloquante)
" TCP/UDP
" CONNECT (établissement actif de connexion) " ATM AAL
SEND (envoi de données sur une connexion)
"
" Performances
" RECEIVE (réception de donnée d'une connexion)
" CLOSE (terminaison d'une connexion)
" Exercices
Serveur : SOCKET −> BIND −> (LISTEN) −> ACCEPT
...[SEND,RECEIVE]*... −> CLOSE
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 15 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 16
Adressage Hiérarchique Etablissement de Connexion
" Comment localiser la machine du serveur ? " Envoi d'un CONNECTION_REQUEST TPDU
Structure hiérarchiques : mais possibilité de :
" TSAP = galaxie | étoile | planète | pays | ville | machine | port " perte
" TSAP = 33 1 4427 7126 " mémorisation
" TSAP = adresse IP | port " duplication
Structures à plat (flat address space) peut créer deux connexions...
Numéros de Séquences
" Principe de base : deux TPDU avec le même numéro de
séquence ne peuvent se rencontrer
Tree Way Handshake
utilisation de l'horloge pour l'initialisation
progression limité : existence d'une zone interdite (a) " Établissement d'une connexion bidirectionnelle
problème de la réutilisation des numéros de séquence (b)
avec numéros de séquences indépendants
" attente d'un délais T assurant la fin des connexions précédentes
CONNECTION_ACCEPTED
" dest. acquitte et envoi le sien vers init.
DATA
" init. acquitte avec les premières données vers dest.
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 19 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 20
Exemple Tree Way Handshake (1) Exemple Tree Way Handshake (2)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 21 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 22
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 23 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 24
Exemples de Terminaison (1) Exemples de Terminaison (2)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 25 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 26
utilisation des acquittements et de la quantité de 12 <− ack = 3 (1 buff) <− (A peut envoyer m7)
donnée admissible à la destination pour définir 13 <− ack = 3 (2 buff) <− (B a trouvé de la place)
la taille des buffers: contrôle de flux 14 −> seq = 4 data m7 −> (reste 1 à A)
15 −> seq = 5 data m8 −> (reste 0 à A, bloqué)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 27 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 28
16 !!! ack = 5 (4 buff) <− potential deadlock
Multiplexage
Multiplexage ascendant pour partager les ressources Plan - Couche Transport
réseau (généralement coûteuses)
Multiplexage descendant possible pour réaliser du partage " Présentation
de charge...
" Éléments de base
" TCP/UDP
" ATM AAL
" Performances
" Exercices
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 29 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 30
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 31 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 32
TCP : Type de Transmission TCP : Fiabilisation et Robustesse
" Transmission de bout-en-bout " Contrôle d'erreur de transmission
abstraction du réseau détection d'erreurs sur les données reçues
end-to-end Transport Service " Ordonnancement
" Mode orienté connexion détection des paquets dé-sequencés
" Bidirectionnel détection des duplications
full duplex " Fiabilisation de la transmission
" Point-à-point acquittements positifs et cumulatifs
envoi de messages entre les deux hôtes d'extrémité retransmissions sur temporisation
" Transport d'un flot d'octet ordonnancement
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 35 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 36
Multiplexage et Ports (2) Modèles de Base de TCP
" Quelques well-know TCP ports et les services associés :
numéro nom description
7 ECHO Echo
11 USERS Active Users
13 DAYTIME Daytime
20 FTP−DATA File Transfert Data protocole orienté octets
21 FTP−CTRL File Transfert Control " ne préserve pas les frontières de message
22 SSH Secure Shell
pas de contrôle sur les émissions :
23 TELNET Telnet
25 SMTP Simple Mail " données envoyées immédiatement ou bufferisées
53 DOMAIN Domain Name Server récupération de données urgentes
67 BOOTPS Bootstrap Server
" exemple : pour le traitement d'un CTRL-C
68 BOOTPC Bootstrap Client
69 TFTP Trivial FTP
79 FINGER Finger
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 37 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 38
102 ISO−TSAP ISO Transport
Protocole TCP
" Numéros de séquence indépendant dans Segments TCP
chaque direction
associés à chaque octet " Échange de segments par les entités TCP
" indique le numéro du premier octet transmis entête de 20 octets (+ options) = IP
mots de 32 bits zero ou plus octets de données
bouclage théorique en moins de 6 minutes à 100Mbps,
taille des segments décidés par TCP
"
mais en pratique beaucoup plus long !
utilisés pour les acquittements " taille max = max (65535o avec entête TCP, MTU)
" si N octets sont délivrés du paquet avec le numéro de un segment doit tenir dans la MTU
séquence X, l'acquittement aura pour valeur X+N (soit " pour internet (IPv4) la MTU mini est 556 bytes (payload
le numéro du prochain octet à recevoir) TCP de 536 octets)
piggybacking
" les deux numéros sont présent dans les mêmes paquets
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 39 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 40
Flags de l'Entête TCP
Entête TCP " Six flags de 1 bit (fonction demandée si = 1):
URG indique que l'Urgent Pointer est utilisé et que sa valeur
correspond à l'offset des données à communiquer prioritairement au
destinataire
ACK indique que le numéro de séquence pour les acquittements est
valide (piggybacking)
PSH indique au récepteur de délivrer les données à l'application (ne
pas attendre le remplissage des tampons)
RST ré-initialisation de la connexion... il y a un problème...
SYN utilisé à l'établissement de la connexion pour indiquer la phase
de connexion :
" CONNEXION_REQUEST (avec Ack=0)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 41 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 42
Pseudo-entête TCP
Fenêtre et Urgence
" Checksum sur l'entête, les données et le peudo-entête
lors de ce calcul le champs checksum est mis à zéro
complément à 1 de la somme sur 16 bits des complément à 1
" Sliding Window (fenêtre glissante ou « coulissante »)
le même calcul effectué avec le checksum vaut zéro si OK contrôle de flux
protection contre les mauvaises destinations mais violation de la
hiérarchie protocolaire " crédit d'octets donné à l'émetteur
" estimation des tampons libres dans le récepteur
" Zone d'urgence
envoi d'information express
indication du décalage par rapport au début du
message en octets
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 43 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 44
Options TCP Gestion de la Connexion TCP
" « Window Scale »
décalage à droite du champ window size (16 bits
" Trois phases :
max soit passage de 64 Ko à 4 Go !!!) établissement de la connexion
" problèmes des réseaux haut débits : transfert des informations avec
ATM à 155 Mbps et délais de 30 ms : paquets de 64 Ko en
3ms
" contrôle de flux
contrôle de congestion
" « Selective Acknolegment » "
libération de la connexion
utilisation d'autre politiques d'aquittement :
« selective repeat » au lieu de « Go-back-N »
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 45 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 46
" Séquencement
informations transmises dans le payload des
segments TCP sous forme d'une série d'octets
numérotés modulo 2 ~ 32
numéro de séquence = premier octet du payload
" Contrôle d'erreur
" contrôle de flux
" contrôle de congestion
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 49 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 50
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 61 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 62
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 63 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 64
Entête UDP Service UDP
" Segment avec un entête de 8 octets " Service datagramme sans connexion
les ports ont la même utilité qu'avec TCP peu d'overhead
la longueur comprend l'entête pas de détection d'erreur de transmission ou de
le checksum optionnel utilise aussi un pseudo- duplication
entête " Application utilisant UDP
applications réactives locales : NFS
applications client:serveur légère : DNS, TFTP
applications multicast
" Attention : pas de contrôle de congestion !
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 65 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 66
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 67 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 68
Segmentation And Reassembly 4 Catégories d'AAL
" AAL 1 :
" trafic temps réel à débit constant en mode connecté sans
détection d'erreur (video, audio)
" AAL 2 :
" AAL 1 avec un débit variable (flux compressés) et
détection d'erreur
" AAL 3/4:
" service complexe pour les données (orienté connexion ou
non, fiable ou non...)
" AAL 5 :
" version simple et performante des informaticiens de
l'AAL 3/4
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 69 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 70
AAL 1 AAL 2
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 71 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 72
AAL 3 / 4
AAL 5
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 75 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 76
Améliorer les Performances
Plan - Couche Transport
1) La vitesse du processeur est plus importante que
celle du réseau " Présentation
2) Limiter le nombre de paquets pour limiter " Éléments de base
l'overhead
" TCP/UDP
3) Minimiser les changements de contextes
4) Minimiser les recopies mémoires
" ATM AAL
5) On peut augmenter la bande passante mais pas " Performances
réduire les délais " Exercices
6) Éviter la congestion est bien mieux que la soigner
7) Éviter les Timeout
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 77 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 78
Problème
" Voir sur le tableau noir...