cours 6 Transport complet.key
26 pages
Français

cours 6 Transport complet.key

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

La couche TransportProtocole de TransportTransport4Frontière du sous-réseauRéseauRéseau3Protocole de RéseauLiaison21 Physique © P. Sicard-Cours Réseaux 4 Couche Transport 1Services de la couche transport• Transfert fiable efficace, sûr et économique d’informations de bout en bout• Dans l’idéal, répondant à des QoS diverses• Dernière couche avant les “applications”• Les qualités de services nécessaires aux applications- Très variables- Exemples: • Transfert de fichier: Taux erreur nul, débit n’est pas primordial, le temps de transit non plus• Téléphone: Taux d’erreur peut être non nul, débit minimum indispensable, temps de transit minimum (< 0,25 s)© P. Sicard-Cours Réseaux 4 Couche Transport 2Les services de la couche transport d’Internet• Rappel: IP sans connexion non fiable, déséquencement possible, délai de transfert très variable• Protocoles pensés au départ pour le transfert de fichier et l’utilisation de machine à distance• Deux types de services suivant les besoins de l’application à développer– Sans connexion, aucune QoS: User Datagram Protocol (UDP)– Avec connexion: Transport Control Protocol (TCP)» Ouverture et fermeture de connexion» Fragmentation et reassemblage» Contrôle de flux et récupération des erreurs• TCP et UDP se sont imposés naturellement. Les normes OSI ont été définies en parallèle mais elles sont arrivées trop tard• TCP garantie seulement un taux de perte nul • Dans les norme OSI il existe différents niveaux ...

Sujets

Informations

Publié par
Nombre de lectures 62
Langue Français

Exrait

La couche Transport
Protocole de Transport
Transport4
Frontière du sous-réseau
RéseauRéseau3
Protocole de Réseau
Liaison2
1 Physique

© P. Sicard-Cours Réseaux 4 Couche Transport 1
Services de la couche transport
• Transfert fiable efficace, sûr et économique d’informations de
bout en bout
• Dans l’idéal, répondant à des QoS diverses
• Dernière couche avant les “applications”
• Les qualités de services nécessaires aux applications
- Très variables
- Exemples:
• Transfert de fichier: Taux erreur nul, débit n’est pas
primordial, le temps de transit non plus
• Téléphone: Taux d’erreur peut être non nul, débit

minimum indispensable, temps de transit minimum (<
0,25 s)
© P. Sicard-Cours Réseaux 4 Couche Transport 2Les services de la couche transport
d’Internet
• Rappel: IP sans connexion non fiable, déséquencement possible, délai de
transfert très variable
• Protocoles pensés au départ pour le transfert de fichier et l’utilisation de
machine à distance
• Deux types de services suivant les besoins de l’application à développer
– Sans connexion, aucune QoS: User Datagram Protocol (UDP)
– Avec connexion: Transport Control Protocol (TCP)
» Ouverture et fermeture de connexion
» Fragmentation et reassemblage
» Contrôle de flux et récupération des erreurs
• TCP et UDP se sont imposés naturellement. Les normes OSI ont été définies
en parallèle mais elles sont arrivées trop tard
• TCP garantie seulement un taux de perte nul

• Dans les norme OSI il existe différents niveaux de QoS pouvant être utilisés
suivant le réseau sous jacent
© P. Sicard-Cours Réseaux 4 Couche Transport 3
QoS dans Internet
• Application temps-réel : la QoS de TCP est insuffisante
• Niveau Réseau
– RSVP: Ressource Reservation Protocol
– Permet de réserver dans les routeurs des ressources permettant de garantir un
débit, délai de traversée...
– C’est le destinataire qui est à l’origine des réservations en fonction de la QoS
qu’il espère
– Nécessite des échanges de paquets de signalisation
– Différentiation de service (DiffServ):
– Définition de classes de services de qualités différentes
– Marquage des paquets et traitement prioritaire dans les routeurs
– Ces techniques sont peu utilisées à grande échelle car difficile à mettre en oeuvre
© P. Sicard-Cours Réseaux 4 Couche Transport 4Garanties de QoS
• Niveau Transport TCP inutile pour beaucoup d’application
“temps-réel”
– Exemple: le téléphone
– Les paquets perdus et réemis arrivent trop tard
– Un taux d’erreur non nul est possible
– Utilisation de UDP
– Une couche supplémentaire entre UDP et l’application: RTP
(Real Time Protocol) normalisé
– Numérotation des paquets, estampillage temporel, rapports du récepteur à
l’émetteur pour signaler: la QoS courante (délai de transit, taux d!’erreur, débit…)
– Adaptation par l’application (changement de taux de compression, correction à
l!’arrivée, tampon d!’amortissement à l!’arrivée …)

© P. Sicard-Cours Réseaux 4 Couche Transport 5
Fonctionnalités des procoles transport
d’Internet
. Protocoles client/serveur:
» Le serveur se met en attente de demandes
» Le client initie le dialogue par une demande
• Interface des “sockets”: librairies de primitives d’accès aux
protocoles transport TCP et UDP
• 1 serveur : 1 numéro de port fixé
– Côté serveur: réservés pour applications standards
– Fichier /etc/services
– Exemple: HTTP port 80 en TCP
- Côté client: alloués dynamiquement
• Multiplexage vers les applications:
- Adresses Internet source et destination, numéros de ports source et destination
- Entêtes réseau (IP) et transport (TCP ou UDP)
© P. Sicard-Cours Réseaux 4 Couche Transport 6Adressage
TELNET HTTP
Port 23 Port 80
TCP
Adresse IP 193.8.8.8 Adresse IP 55.0.0.2
IP
Adresse Ethernet 00:0a:95:a2:79:77 Adresse Ethernet 00:0a:95:a2:68:6c
ETHERNET ETHERNET
• Numéro de port particulier attribué aux applications “standards” (/
etc/services)
• Adresse IP attribuée de façon unique à une “interface réseau” sur
une machine
Architecture et principes 01© P. Sicard-Cours Réseaux 1 7
Les services du protocole UDP
• Mode sans connexion (Datagram)
• Multiplexage applications -> transport
• Numéro de port sur 2 octets
• Longueur en nombre d’octets
• Détection d’erreur optionnelle (par “checksum”)
• Aucun contrôle de flux et de récupération d’erreur
• Entête UDP:
Port source Port destination
Longueur Détection d'erreur

Données
© P. Sicard-Cours Réseaux 4 Couche Transport 8Services du protocole TCP
• Service orienté connexion
- Ouverture et libération de la connexion
• Segmentation re-assemblage des messages
- Pas de notion de paquets de donnée à la réception : flux d’octets
• Rétablir l’ordre des paquets
- Numérotation des octets de données
• Multiplexage vers plusieurs applications (numéro de port)
• Transfert de données exprès
• Contrôle de flux
• Détection des paquets erronés et perdus
• Récupération des erreurs par réémission

• Détection d’inactivité
© P. Sicard-Cours Réseaux 4 Couche Transport 9
Le format du paquet TCP
Port source Port destination
Numéro de séquence
Numéro d'acquittement
Lg de
Flags Fenêtrel'entête
Détection d'erreur Pointeur
Options
• Flags: Urgent, Ack, Psh, Rst, Syn, Fin
© P. Sicard-Cours Réseaux 4 Couche Transport 10L’établissement d’une connexion
• Hypothèses :
- connexion bidirectionnelle entre deux entités
- Le niveau transport est mis en œuvre au dessus d’une couche réseau non fiable
- Perte de paquet
- Retardement de paquets
- Déséquencement des paquets
• Le problème :
- Par un mécanisme de retransmission, on peut avoir plusieurs exemplaires d’un même
paquet en cours de transmission
- On doit donc impérativement reconnaître et éliminer les doublons.
- Comment définir une connexion sans ambiguïté ?
- Comment associer une donnée à une connexion ?

© P. Sicard-Cours Réseaux 4 Couche Transport 11
Mécanisme d’établissement de
connexion
• Echange de paquets spéciaux pour l’ouverture de la connexion
- Connexion Request (CR)
• Identificateur de connexion dans l’entête des paquets
• Numéro de séquence pour les données pour différencier les paquets d’une
même connexion
• Chaque TPDU circulant est identifiée de façon unique par un couple :
<identificateur de connexion, n°TPDU>
Entité transport A Entité transport BCR (id = x )
DATA(x)

© P. Sicard-Cours Réseaux 4 Couche Transport 12Perte de la demande de connexion
• Les données sont envoyées mais rejetées en B (pour lui pas de connexion)
• Donc on rajoute ACK_CR + armement de timer de réemission en A
AA B B
Armement d’un timer CR (id = x ) CR (id = x )
Perte
ACK_CR (id = x )
DATA(x)DATA(x)
Rejetée
© P. Sicard-Cours Réseaux 4 Couche Transport 13
Problème des doublons
• Reémission possible d’un CR alors que le CR initial a
simplement été retardé et non perdu
• Reémission possible de données dans une connexion
précédente
A B
CR (id = x ) (DOUBLON)
Connexion x ouverte et fermée
Rejeté depuis un moment
mais trop tard
ACK_CR (id = x )
DATA(x)(DOUBLON)
Pris comme une nouvelle donnée

© P. Sicard-Cours Réseaux 4 Couche Transport 14Solution au problème des doublons
• Se rappeler quels id de connexion ont déjà été déjà utilisés
– Pour reconnaître les doublons de demandes d’ouverture de connexion, on
conserve les références des connexions fermées
– Si on veut résister aux pannes: sauvegarde sur disque dur des ids déjà utilisés
– Problème : le nombre d’id de connexion n’est pas infini
– Il faudra reprendre à un moment les ids déjà utilisés
– On se débrouille pour avoir une durée de vie limitée des paquets
– Soit T la durée de vie maximale d’un paquet sur le réseau
– Méthodes de limitation de la durée de vie:
» Limiter la taille du réseau (mais les paquets peuvent tourner en rond)
» Champs durée de vie (exemple: IP)
» Estampiller avec date et heure mais difficile car besoin d’une horloge
commune
© P. Sicard-Cours Réseaux 4 Couche Transport 15
Solution avec durée de vie limitée(1)
• Première idée : on ne réutilise une référence seulement après
un temps T
• CR+ACK ne suffisent pas
CR (id = x )
CR (id = y)
Temps > T
CR (id = x )
ACK_CR (id = x )
PERDU
DOUBLON

Connexion x considérée
ouverte
© P. Sicard-Cours Réseaux 4 Couche Transport 16Solution avec durée de vie limitée(2)
• Une méthode d’ouverture de connexion fiable:
- Une connexion est identifiée par deux références uniques choisies
respectivement par chacune des entités de transport
- L’identification de la connexion est établie au cours du protocole d’ouverture à
trois phases!:
» A envoie une demande de connexion :CR (mon_id = x)
» B répond par une acceptation de connexion: AC (mon_id = y, ton_id = x)
» A envoie un acquittement: ACK(mon_id = x, ton_id = y)
• Si on garantit l’unicité de x et y sur T unités de temps
(indépendamment de chaque côté) alors
- on peut garantir que les doublons seront rejetés
- il n’y aura pas d’ambiguité sur les connexions (même en présence de panne)

© P. Sicard-Cours Réseaux 4 Couche Transport 17
Cas du CR dupliqué
• Message de rejet possible
Entité transport A Vieux Entité transport B
Doublon
CR (mon_id = x )
AC(mon_id = y, ton_id = x)
AC(mon_id = y, ton_id = x)
REJECT( x, y)
Connexion rejeté car
(x, y) annulé! soit référence x déjà utilisée
! soit plus utilisée mais pas
! d’attente de AC sur x

© P. Sicard-Cours Réseaux 4 Couche Transport 18Cas du ACK dupliqué
• Pire cas: après un CR (x) dupliqué
Entité transport A Entité transport B
Vieux
Doublon CR (mon_id = x )
AC(mon_id = y, ton_id = x)
AC(mon_id = y, ton_id = x)
ACK(mon_id = x, ton_id = z) Vieux
Doublon Rejeté car référence (x, z) n’existe pas
REJECT( x, y) z forcément "y car temps écoulé
Connexion rejeté car depuis le choix de y < T
! soit référence x déjà utilisée
! soit plus utilisée mais pas connexion (x, y) annulé
! d’attente de AC sur x

© P. Sicard-Cours Réseaux 4 Couche Transport 19
Ambiguité sur les données dupliquées
• l’état de la connexion impossible mais il reste le
problème des données dupliquées
CR (x )
AC (x,y)
Temps1 > T
ACK(x,y)
Fermeture(x,y)
CR (id = x)
Temps2 < T
AC(x,y)
ACK(x,y)
Data(x,y)(DOUBLON) non rejetée
Mise en pratique dans TCP
© P. Sicard-Cours Réseaux 4 Couche Transport 20