Vous êtes sur la page 1sur 20

Réseaux et Plan du cours de RTD

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

Plan - Couche Transport


Introduction
" Présentation
" Couche Transport
" Éléments de base
– service visible des applications
– indépendant des technologies sous-jacentes
" TCP/UDP
– transmission bout-en-bout " ATM AAL
" service connecté ou non " Performances
" fiabilité
" performante
" Exercices

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 "

" débit (dans chaque direction)


" indépendance des primitives de transports
" temps de transit (dans chaque direction)
" mécanismes seulement dans les hôtes d'extrémités
" taux d'erreur résiduel (devrait être 0 !)
– séparation du service fournis par l'opérateur du
sécurité (écoutes; modification...)
réseau et l'utilisateur
"

" politique de service (priorité...)


Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 5 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 6

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
"

" RECEIVE (pas d'envoi de TPDU)


" DISCONNECT (envoi d'un DISC_REQ)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 9 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 10

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

– Client : SOCKET −> (BIND) −> CONNECT


Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 11 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 12
...[SEND,RECEIVE]*... −> CLOSE
Protocole de Transport Adressage : TSAP
" Transport Service Access Point
– identification des applications en communication
– ex: Adresse IP + Port, ATM AAL-SAP,...
" Le service de transport est fournis grâce à " Scénario de connexion:
un protocole de transport utilisé entre les " 1) serveur sur host2 associé au TSAP 122
deux entités en communication " 2) client sur host1 s'associe localement au TSAP 6 (source)
et demande le TSAP 122 sur host2 (destination)
– similitude à la couche liaison (a) mais couche
" 3) établissement d'une connexion réseau entre la source
transport (b) avec : host1 et la destination host2
" adressage explicite " 4) demande d'établissement d'une connexion au niveau
" gestion de connexion complexe transport entre TSAP 6 et TSAP 122
" mémoire, déséquencement, variabilité... " 5) validation...
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 13 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 14

TSAP/NSAP Exemple de Connexion


" Problèmes
– Comment savoir le TSAP d'un service ? Well known, serveur de
nom...
– Comment gérer de nombreux serveur en attente : utilisation d'un
protocole de connexion initial et d'un process server (inetd UNIX)

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...

" besoin d'une mise en correspondance supplémentaire – éviter la duplication avec :


" génération d'un nouveau TSAP à chaque connexion
" utilisation d'identificateurs uniques de connexion (état)
" élimination des anciens (= TTL mais circulaire)
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 17 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 18

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

" Utilisation d'un échange de trois TPDU :


– CONNECTION_REQUEST
" init. envoi son numéro de séquence vers le dest.

– 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

Terminaison de Connexion Two Army


" Deux types : Problem
– asymétrique
" fin de connexion des qu'une des
extrémités le demande " Problème de synchronisation
– pertes possibles (schéma) les deux armées bleues doivent attaquer
–
– symétrique conjointement :
" terminaison indépendantes des " quel protocole de communication fiable ?
deux directions – un messager peut être intercepté
" fin de connexion lorsque chaque – les commandements doivent être acquittés
extrémité à terminé – les acquittement aussi ... pas de solution !
– Two army problem " Même mécanisme pour les déconnexions
– introduction de temporisation

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

Exemple de Contrôle de Flux


Buffers " Utilisation d'un système de fenêtrage :
– 1 A −> seq = 14 (8 buff) −> B (A peut envoyer 8 TPDU)
– 2 <− ack = 14 (4 buff) <− (acceptation de 4 par B)
– 3 −> seq = 14 data m1 −> (envoi de 1, reste 3 à A)
– 4 −> seq = 15 data m2 −> (envoi de 1, reste 2 à A)
" Si la couche réseau est non-fiable, nécessité – 5 −> seq = 0 data m3 −> (envoi de 1, reste 1 à A)
de mémoriser les TPDU émis. – 6 −> seq = 1 data m4 !!! (perte de 1, reste 0 à A)
" Comment dimensionner les buffers ? – 7 <− ack = 0 (3 buff) <− (ack de m3, accept. de 3)
– si les TPDU sont de taille similaire, gestion d'un – 8 −> seq = 2 data m5 −> (envoi de 1, reste 1 à A)
ensemble de buffer de taille fixe (a)
– 9 −> seq = 3 data m6 −> (envoi de 1, reste 0 à A)
– si les TPDU sont de taille variable :
– 10 −> seq = 1 data m4 −> (A time out pour ack de m4)
" ensemble de buffers de taille variable (b)
– 11 <− ack = 3 (0 buff) <− (tout ack mais A bloqué)
" un buffer circulaire (c)

– 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

Protocoles Internet Introduction à TCP


" RFC 793 (+ RFC 1122 et RFC 1323)
" Principalement deux services (et protocoles): " Fonctionnalités de TCP :
– TCP (Transmission Control Protocol) – Type de transmission
" protocole orienté connexion fiable avec contrôle de – Fiabilité et Robustesse:
flux et de congestion
" contrôle d'erreur
– UDP (User Data Protocol)
" ordonnancement
" protocole offrant le même service qu'IP
(datagramme non fiable) au niveau transport – Adaptation et Dynamisme :
" contrôle de flux
" contrôle de congestion
– Multiplexage et Ports

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

– byte stream oriented


Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 33 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 34

TCP : Adaptation et Dynamisme


Multiplexage et Ports (1)
" Contrôle de flux
– mécanismes de Fenêtre coulissante " Accès à TCP à travers des points d'accès
sliding window
"
(appelés sockets sous Unix BSD)
– urgence – socket associé à une adresse IP et un port
" envoi d'un paquet immédiat sans contrôle de flux " port = TCP TSAP = numéro sur 16 bits
valeur locale
" Contrôle de congestion –
– 0 à 255 : well kown ports
– deux algorithmes : – 0 à 1023 : ports système
– 1024 à 65535 : port utilisateurs
" « slow start »
– connexion TCP liée à 2 sockets
" « congestion avoidance » – un socket peut être lié à plusieurs connexions

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)

" CONNEXION_ACCEPTED (1)

" CONNEXION_ACCEPTED (2)

– FIN utilisé pour la terminaison de la connexion

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

Gestion de Connexion TCP


Établissement de la Connexion TCP
" Procédure à trois échanges :
– tree-way handshake
" ISN (Initial Sequence Number)
– numéro de séquence du premier octet
d'information transporté
– le premier octet transporter est alors ISN+1
– ISN est généralement dérivé de l'horloge de
l'hôte
" ex : un tic par 4 microsec
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 47 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 48
Automate
TCP Transfert de donnée TCP

" 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

Contrôle d'erreur TCP Politique de transmission TCP


" (1) −−−−−−SEQ=003 (300o)−−−−−−−>Ok " Découplage des
" (2) /−−−ACK=303−−− acquittement et de
l'envoi de données
" (3) −−−−−−SEQ=303/(300o)−−!!! " Émission retardée
pour remplir les
" (4) Ok<−−−ACK=303−/ buffer (mais PUSH
" (5) −−−−−−SEQ=603 (300o)−−−−−−−>Ok possible pour
l'interactivité)
" (6) Ok<−−−ACK=303−−−−−−−−−−−−−−−−− " Acquittements
" (7) −−−−−−SEQ=303 (300o)−−−−−−−>Ok retardé (ex: 500 ms)
pour attendre un
" (8) −−−−−−SEQ=603 (300o)−−−−−−−>Ok segment de retour
(sinon création d'un
" (9) Ok<−−−ACK=903−−−−−−−−−−−−−−−−− segment vide de 40
octets spécialement)
" ...
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 51 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 52
Contrôle de Flux TCP (1) Contrôle de Flux (2)
" Algorithme de Nagle
Transmis et Transmis Non
non acquitté Non transmis transmissible – Pour les applications interactives (Telnet,
acquitté
Xwindows ...) qui génère caractère par caractère :
" envoi du premier caractère puis buffering jusqu'à
l'acquittement (sauf si remplissage d'un segment entre
temps) : permet les envois groupés
" Basé sur la fenêtre variable (sliding window)
" Silly Window Syndrome
" pointeur de début de fenêtre
" pointeur indiquant la partie transmise non acquittée
– minimise les acquittements
" pointeur indiquant la fin de la fenêtre – attente de la possibilité de recevoir un MSS ou
– envoi de données urgentes toujours possible disponibilité de la moitié du tampon de réception

– si fenêtre = 0 alors toujours possibilité d'envoyer 1o – complémentaire du précédent


Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 53 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 54

Contrôle de Congestion TCP (1) Contrôle de Congestion TCP (2)


" Système de fenêtrage pour la congestion
– nombre d'octet potentiellement transmissible est le
minimum des deux fenêtres
" Détection de la congestion
– pertes généralement dues à la congestion
" Guérison de la congestion
– diminution du débit pour réduire les embouteillages
– réduire la fenetre à un segment
– « multiplicative decrease » : réduction de la fenêtre
de congestion de moitié et doublement de la
temporisation de retransmission
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 55 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 56
Contrôle de Congestion TCP (3) Contrôle de Congestion TCP (4)
" « Slow Start »
– après une congestion, pas de remontée trop rapide !!!
– initialisation de la fenêtre à 1 segment
– augmentation de 1 segment a chaque acquittement
" « Congestion Avoidance »
– pour stopper l'augmentation trop rapide (le slow start
est exponentiel)
– à partir d'un seuil : augmentation de 1 segment a
chaque RTT
– le seuil vaut la moitié de la fenêtre lors de la dernière
congestion
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 57 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 58

Temporisation TCP (1)


Contrôle de Congestion (5) " TCP utilise de nombreux temporisateurs :
– Temporisateur de retransmission :
" Algorithme « fast retransmit » " démarré à chaque envoi d'un paquet en attendant son
acquittement
– si un acquittement est dupliqué, est-ce une perte
ou un dé-séquencement ? " calcul du RTT : RTT = a*RTT + (1-a)M avec ex: a=0.2
" retransmission au bout de b*RTT avec ex: b=2
– Attente de trois acquittement dupliqués
– Temporisateur de persistance
" Algorithme « fast recovery » " pour débloquer la situation après une fenêtre d'émission
– si plusieurs acquittements sont dupliqués, il n'y a réduite à zéro et une ouverture perdue
qu'une perte : – Temporisateur d'inactivité
– pas de slow start mais la fenêtre est affecté au " indique de vérifier la présence de l'autre extrémité
seuil + 3 segments – Temporisateur de déconnexion
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 59 " deux fois la durée de vie des paquets
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 60
Temporisation TCP (2)
" Optimisation du calcul des temporisations de Libération de la Connexion TCP
retransmission :
– Algorithme de Van Jacobson " Terminaison normale :
" b proportionnel à l'écart type du RTT – fin demandée par l'une des extrémités (flag FIN = 1)
" Err = M - RTT – acquittement et attente de la réciproque
" RTT = M + d*Err
" var = var + d*(|Err| - var)
" Terminaison brutale :
" temporisation : a*RTT+e*var (ex: a=1 et e=4) – envoi de la primitive ABORT (flag RST = 1)
– Algorithme de Karn – toutes les transmission ou réceptions sont
" mise à jours des paramètres que sur les segments reçut interrompues et les tampons sont vidés
sans problèmes (acquittés du premier coup)

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

UDP Protocole UDP


" User Data Protocol " Protocole de transport en mode non connecté
" RFC 768 – permet d'envoyer directement des paquets IP au
niveau de la couche Transport
" Protocole UDP
– utilisation d'un seul paquet pour les transmissions
" Entête UDP (One-way Handshake) : création d'un paquet et
transmission immédiate au niveau IP
" Service UDP

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

ATM Adaptation Layer


Plan - Couche Transport
" Y a-t'il une couche transport avec ATM
" Présentation
– si oui c'est la couche AAL :
" Éléments de base
" TCP/UDP
" ATM AAL
" Performances
" Exercices

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

" Temps réel avec un débit variable


" Trafic temps réel avec un débit constant – adapté aux flux avec compression
" SN = numéro de séquence
– émission directe (= tuyau) sans récupération sur erreur
" IT = Type de cellule (début, fin etc...)
" SN = Numéro de Séquence
" LI = indication sur la taille du payload
" SNP = Protection du SN
" CRC = détection d'erreur sur la cellule
" Pointeur pour délimiter les messages
– mal standardisé, inutilisable
– Certainement non nécessaire

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

" Transport de donnée en réaction à AAL 3/4


" Deux modes pour les données : – Simplicité et performance
– CRC sérieux pour service fiable
– stream et messages
– unicast et multicast
– avec ou sans fiabilité pour les deux modes
– bit dans le PTI des cellules pour délimitation
– multiplexage
– « avenir » de l'ATM en informatique (IETF RFC 1483)
– inefficace et trop complexe
Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 73 Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 74

Mesurer les Performances


Plan - Couche Transport
– Vérifier que l'échantillon est suffisamment grand
" Présentation
– Vérifier que l'échantillon est significatif
" Éléments de base – Attention aux horloges de faible résolution
" TCP/UDP – Attention aux événements perturbateurs inattendus
" ATM AAL – Attention aux interférences de la prise de mesure

" Performances – Comprendre ce que l'on mesure


– Méfiance avec les extrapolations
" Exercices

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...

Olivier.Fourmaux@L2TI.univ-paris13.fr Maîtrise EEA / RTD-7 / Page 79

Vous aimerez peut-être aussi