1 / 91

2 . La couche transport

2 . La couche transport. La couche transport est une couche à part dans le modèle Elle peut être vue comme la plaque tournante de tous les protocoles Son rôle : réaliser un transfert (connexion) fiable entre deux machines (distante)

burton
Download Presentation

2 . La couche transport

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2. La couche transport • La couche transport est une couche à part dans le modèle • Elle peut être vue comme la plaque tournante de tous les protocoles • Son rôle : • réaliser un transfert (connexion) fiable entre deux machines (distante) • indépendamment de la nature du ou des sous-réseaux mis en place

  2. Le service transport • Rappel : • la vocation de la couche transport est de fournir, en principe un processus de la couche applications, un service de transport : • efficace • fiable • économique • pour réaliser cette tâche, cette couche utilise les services mis à sa disposition par la couche réseau • entité de transport = logiciel et/ou matériel qui assure cette fonction

  3. Hôte 1 Hôte 2 Adresse transport Couche application (ou session) Couche application (ou session) Interface application/transport Entité de transport Entité de transport TPDU Protocole de transport Interface transport/réseau Couche réseau Couche réseau Adresse réseau Le service transport

  4. Le service transport • A l’instar de la couche réseau, la couche transport fournit deux types de services : • avec connexion • sans connexion • Ces services sont très proches de ceux de la couche réseau. Pourquoi les avoirs dans deux couches ? • le code de la couche transport est exécuté sur les clients • le code de la couche réseau est exécuté sur des routeurs : • le client n’y a donc pas d’influence • Améliorer le service de la couche 3 ne peut donc se faire qu’en ajoutant une couche l’encapsulant

  5. Les primitives du service transport • La couche transport fournit une interface afin d’accéder à ses services. Les primitives de cette interface sont fonction : • du type de service demandé • ont été définies de manière à être pratiques et faciles à utiliser. En effet, un grand nombre d’informaticiens (développeurs, …) sont amenés à les utiliser

  6. Bloque jusqu’à ce qu’un processus tente de se connecter listen (aucun) connect CONNECTION REQUEST Tente activement d’établir une connexion send DATA Envoie des informations receive (aucun) Bloque jusqu’à ce que le paquet DATA arrive disconnect DISCONNECTION REQUEST Cette extrémité souhaite libérer la connexion Les primitives du service transport

  7. L’encapsulation • Pour rappel : • les TPDU (cfr. N-PDU de 1080) sont les messages envoyés par une entité transport à une autre entité transport. • les TPDU (échangées par la couche transport) sont contenues dans des paquets (échangés par la couche réseau). Les paquets sont, eux, contenus dans des trames (échangées par la couche liaison de données)

  8. En-tête de la trame En-tête du paquet En-tête de la TPDU Charge utile de la TPDU Charge utile du paquet Charge utile de la trame L’encapsulation

  9. Sockets de Berkeley • Ces sockets (interface de connexion) offrent une autre ensemble de primitives. • Elles sont très similaires au modèle de notre premier exemple tout en offrant plus de souplesse et davantage de fonctions. Leur TPDU seront vues plus tard avec TCP.

  10. socket bind receive listen accept close connect send Crée le nouveau point terminal d’une communication Attache une adresse locale au socket Annonce la volonté d’accepter des connexions. Donne la taille de la file d’attente Bloque l’appelant jusqu’à ce qu’une tentative de connexion se présente Envoie des données via la connexion Reçoit des données de la connexion Tente activement d’établir une connexion Libère la connexion Sockets de Berkeley

  11. Sockets de Berkeley • Fonctionnement : • le serveur exécute les primitives : • socket, bind, listen et accept • socket crée un nouveau point terminal et lui alloue un espace de tables dans l’entité de transport • bind attribue une adresse réseau à un socket. Dès cet instant, des clients distants peuvent s’y connecter • listen alloue de l’espace pour gérer les files d’attentes des appels entrants. Grande différence p/r au modèle précédent : ce listen n’est pas bloquant

  12. Sockets de Berkeley • accept : • lors de l’arrivée d’une TPDU demandant une connexion, l’entité de transport crée un nouveau socket ayant les mêmes caractéristiques que l’original (descripteur de fichier). • le serveur peut alors dupliquer le processus (le thread) pour gérer la connexion sur un nouveau socket • le serveur revient alors sur le socket original pour attendre une nouvelle connexion

  13. Eléments de protocoles de transport • Le service transport est assuré par un protocole de transport établi entre deux entités de transport. Il ressemble par de nombreux aspects au protocole de la couche liaison de données. Comme lui, il gère : • le contrôle d’erreurs • le séquencement • le débit • …

  14. Routeur Routeur Hôte Hôte Canal de communication Sous-réseau Eléments de protocoles de transport • Il existe cependant des différences fondamentales entre les deux. Alors qu’au niveau de la couche 2, la communication s’opère directement via le support physique, au niveau de la couche 4, ce support est « remplacé » par un sous-réseau.

  15. Eléments de protocoles de transport • Quelques différences influant sur le protocole : • un routeur n’a pas besoin de spécifier à quel routeur il veut s’adresser, alors qu’en couche 4 il faut explicitement désigner l’adresse du destinataire • l’établissement d’une connexion est également plus complexe. En couche 2, l’entité située à l’autre extrémité du support physique est toujours là (sauf panne). La couche transport doit faire face à un niveau de difficulté bien plus grand

  16. Eléments de protocoles de transport • Suite : • la couche 4 est confrontée au risque d’errance des données à l’intérieur du réseau. Lorsqu’une trame est envoyée elle arrive ou non mais elle ne tourne pas en rond. Dans un réseau, ce type de problème est plus que probable. Pire, dans un sous-réseau, un paquet peut non seulement tourner en rond mais aussi disparaître puis … réapparaître (mémorisation dans les routeurs, …). Ces éléments engendrent une complexification des protocoles

  17. Eléments de protocoles de transport • Suite : • last but not least les couches 2 et 4 gèrent un contrôle du flux et donc une mémorisation. Cependant, la couche transport gère un nombre important et fluctuant de connexions et nécessite de ce fait une approche radicalement différente de celle retenue pour la couche 2. • Détaillons quelque peu ces points

  18. Adressage • Etablissement d’une connexion : • dès qu’un processus applicatif souhaite ouvrir une connexion, il faut spécifier à qui ont veux s’adresser • nb : également vrai pour le mode sans … connexion car la question est : a qui envoyer le message ? • Utilisation des ports : • la méthode courante est la définition d’adresses de transport pour lesquelles les processus peuvent être à l’écoute d’éventuelles demandes de connexion : les ports

  19. Adressage • TSAP : • au niveau de la couche 4, nous les appelerons des TSAP. • l’équivalent au niveau de la couche 3 sont les NSAP dont les adresses IP sont un exemple • La figure suivante illustre la relation entre TSAP et NSAP

  20. TSAP 1208 Hôte 1 Hôte 2 Couche application Processus applicatif Couche transport TSAP 1836 Connexion de transport TSAP 1522 Couche réseau NSAP Couche liaison de données NSAP Couche physique Adressage

  21. Adressage • Scénario : • l’hôte 2 héberge, entre autre, un serveur de date sur le point d’accès TSAP 1522. Il est en attente d’un appel entrant (usage d’un listen) • un processus sur l’hôte 1 veut connaître la date. Il émet un connect en spécifiant la source (TSAP 1208) et la destination (TSAP 1522). Il en découle l’établissement d’une connexion de transport entre les deux processus sur les deux machines

  22. Adressage • Localisation des services ? • une question cruciale est de connaître la localisation des services • comment l’hôte 1 sait-il que le serveur de date est connecté au TSAP 1522 de l’hôte 2 ? • soit les TSAP sont fixes (historique) et leur adresse est immuable : • ceci est vrai pour un certain nombre d’entre eux : • Web, ftp, telnet

  23. Adressage • mais il en existe de nombreux autres qui ne sont pas dans ce cas : • service peu connu ou « privé » • à la durée de vie courte • dont l’adresse n’est pas connue par avance • il est donc nécessaire de trouver un modèle d’adressage plus efficace. On l’appelle protocole de préconnexion.

  24. Adressage • Fonctionnement : • au lieu d’attribuer une adresse définie à chaque serveur potentiel écoutant un TSAP connu, chaque ordinateur, souhaitant offrir des services, possède un serveur de processus. • ce dernier ce comporte comme un proxy. Il écoute simultanément sur un ensemble de ports, en attente d’une demande de connexion. Les utilisateurs potentiels d’un service doivent donc commencer par générer un connect en spécifiant le TSAP du service souhaité.

  25. Adressage • si aucun serveur ne les attend, ils se connectent alors au serveur de processus qui, après avoir pris la requête entrante, active le serveur demandé et lui transmet la connexion. • Malheureusement, ce protocole ne résout pas tout. • il y a de nombreuses situations pour lesquelles le service doit exister indépendamment du processus serveur : • serveur de fichier. Nécessite du matériel spécifique qui ne peut être construit à la volée

  26. Adressage • Solution : • faire appel à un processus spécial : • serveur de noms ou serveur d’annuaire • pour connaître l’adresse d’un TSAP correspondant à un nom de service donné (ex. « date et heure »), l’utilisateur établit une connexion vers le serveur de noms (son TSAP est connu !!!) • dans cette requête, le nom du service recherché est mentionné • le serveur d’annuaire communique l’adresse en retour

  27. Etablissement d’une connexion • Problème très délicat à cause : • des pertes • des stockages • de la duplication • des disparitions/réapparitions • … • Il existe peu de méthodes capables de s’accommoder de l’existence de doublons.

  28. Etablissement d’une connexion • La plus efficace : • consiste en une discrimination fondée sur la durée de vie des paquets • on peut restreindre la durée de vie à un maximum en utilisant une ou plusieurs des méthodes suivantes : • limiter la taille du sous-réseau • affecter un compteur de nombre de nœuds traversés pour chaque paquet • timestamp pour chaque paquet

  29. Etablissement d’une connexion • Evaluation : • la première méthode limite les risques que les paquets tournent en rond et diminue les risques de congestion • la seconde (cfr. TTL) initialise un compteur. Ce dernier est décrémenté à chaque passage dans un nœud. Le paquet ayant son compteur à zéro est éliminé du réseau

  30. Etablissement d’une connexion • la troisième utilise un timestamp. Les routeurs vérifient la valeur pour chaque paquet avec leur horloge interne et éliminent les plus vieux • inconvénient : il faut que les horloges des routeurs soient synchronisées. Tâche très complexe (nécessite une source externe) • En pratique : • il ne suffit pas de s’assurer qu’un paquet est détruit. Il faut aussi que tous les accusés de réception le concernant le soient aussi.

  31. Etablissement d’une connexion • Pour se faire : • notion de T : • multiple (faible) de la durée maximale de vie d’un paquet (le multiple est fonction du protocole) • idée : • si on attend un temps T après qu’un paquet a été envoyé, on peut supposer que toutes traces de ce dernier a disparu • une fois la durée de vie des paquets limitée, une connexion fiable est possible

  32. Etablissement d’une connexion • Tomlinson : • a défini une méthode dont certains aspects ont été revus par Sunshine et Dalal. C’est une de ces variantes, dont TCP, qu’on utilise aujourd’hui • Perte de mémoire des machines : • Tomlinson a proposé d’équiper chaque hôte d’une horloge temps réel : • les horloges des hôtes étant synchronisées • chaque horloge est un compteur binaire qui s’incrémente à intervalles réguliers

  33. Etablissement d’une connexion • de plus, le nombre de bits du compteur doit être supérieur (ou égal) au nombre de bits des numéros de séquence • enfin, et fondamental, l’horloge doit continuer de fonctionner même si l’hôte est en panne • Idée de base : • deux unités en transit ne peuvent avoir la même référence. Comment ? • lorsqu’une connexion est établie, les k bits de poids faible de l’horloge compose la référence initiale

  34. Etablissement d’une connexion • par opposition à la couche 2 : • cfr. numérotation et fenêtre coulissante • chaque connexion numérote ses TPDU avec des références différentes • la capacité du compteur est telle que lorsqu’il repasse par zéro, toutes les données qui pourraient avoir reçu une de ces références ont disparu depuis longtemps

  35. Message interdit Vrais numéros de séquence utilisés T T Zone interdite Numéro de séquence 0 30 60 90 120 Numéro de séquence 2K-1 Reprise après incident à 70 0 30 60 90 120 150 180 Temps Temps Etablissement d’une connexion • Relation entre le temps et la référence :

  36. Etablissement d’une connexion • Déroulement : • une fois que les deux entités se sont misent d’accord sur les références initiales : • utilisation de n’importe quel protocole de fenêtre dynamique : • anticipation • … • reste un problème : • quid en cas de panne d’un hôte : • à son « réveil », il a oublié la référence courante

  37. Etablissement d’une connexion • Solution : • on laisse passer un temps T : • pour laisser mourir toutes les TPDU • mais dans un interréseau, T peut-être très grand : • inadéquat • on adapte les exigences sur les références : • ex : • soit T = 60 s. et l’horloge incrémentée chaque seconde • selon notre graphe, une connexion au temps x aura la référence x • supposons qu’à t=30, une TPDU ait été envoyée à la connexion 5 avec la référence 80. Soit X cette TPDU

  38. Etablissement d’une connexion • juste après l’envoi de X, l’hôte tombe en panne. Toutefois, il redémarre immédiatement • à t=70, il ouvre à nouveau la connexion 5 avec la référence initiale … 70 (logique). • pendant 15 s. il envoie les unités de données 70 à 80 : • nb : une TPDU peut prendre plus qu’une seconde • à t=85, une nouvelle TPDU ayant la référence 80 est affectée à la connexion 5 • Catastrophe : • la TPDU X existe toujours • si elle est reçue avant la TPDU 80, elle sera considérée comme la bonne et le système est en échec • de plus, l’unité correcte sera rejetée comme … doublon

  39. Etablissement d’une connexion • pour éviter cela : • il faut interdire que des références déjà utilisées (affectées à des TPDU) soient à nouveau utilisées pendant un temps T : • ceci matérialise la zone interdite • avant d’envoyer une TPDU, l’entité de transport vérifie son horloge afin de constater qu’elle n’est pas dans la zone interdite : • si c’est le cas, il faut : • attendre • resynchroniser les références

  40. Etablissement d’une connexion • Mauvaise nouvelle : • cette méthode résout le problème des duplicatas retardés pour les TPDU de données (connexion existante à priori) • Mais quid des TPDU de contrôle ? • en fait, il peut être extrêmement complexe d’établir la négociation initiale

  41. Etablissement d’une connexion • ex : • l’hôte 1 envoi une TPDU Connection Request contenant une proposition de référence initiale et un port destinataire à l’hôte 2 • ce dernier doit répondre au moyen d’une TPDU Connection Accepted. Si la TPDU request se perd mais qu’un doublon égaré apparaît en 1, la connexion est réellement établie MAIS sur des bases incorrectes • Tomlinson propose une procédure en trois étapes : • three ways handshake

  42. Etablissement d’une connexion • Dans cette procédure : • les deux entités démarrent avec la référence qu’elles souhaitent (indépendamment). L’utilisation de l’horloge globale n’est pas nécessaire • fonctionnement : • l’hôte 1 choisit une référence (x) et l’envoie à l’hôte 2 via une Connection Request • l’hôte 2 accuse réception de x et propose sa propre référence initiale y • enfin, 1 confirme le choix de 2 en lui signifiant y au cours de l’envoi de la première TPDU de données

  43. Ancien doublon Ancien doublon hôte 1 hôte 1 hôte 2 hôte 2 hôte 1 hôte 2 CR (séq = x) CR (séq = x) CR (séq = x) ACK (séq = y, ACK = x) ACK (séq = y, ACK = x) ACK (séq = y, ACK = x) Temps Temps Temps DONNEES (séq = x, ACK = z) REJECT (ACK = y) DATA (séq = x, ACK = y) REJECT (ACK = y) Ancien doublon (a) (b) (c) Etablissement d’une connexion

  44. Etablissement d’une connexion • tenue au problème : • la figure (b) illustre le fait que la présence d’un doublon retardé d’une Connexion Request provenant d’une ancienne connexion est détectée : • 2 la reçoit correctement, en avise 1 avec un numéro de référence. 1 détecte l’erreur et en averti 2 • la figure (c) illustre le pire des cas. Une CR et un accusé de réception d’une CA errent dans le sous-réseau : • 2 reçoit une CR retardée et y répond. Notons que 2 propose une valeur y comme numéro initial • lorsque la seconde TPDU arrive en 2, le fait qu’elle contienne la confirmation pour z au lieu de y indique à 2 qu’il s’agit d’un doublon • heureusement, il n’y a pas de combinaison d’anciennes TPDU qui peuvent faire faillir le protocole et initialiser par erreur une connexion

  45. Libération d’une connexion • Libérer une connexion : • plus facile que de l’établir • quoique …deux méthodes : • libération asymétrique : • brutale  risque de perte de données (cfr. illustration) • libération symétrique : • considère qu’il y a non pas une mais deux connexions • problème des deux armées

  46. Libération d’une connexion • après établissement de la connexion, l’hôte 1 envoie une TPDU qui arrive correctement à l’hôte 2 • l’hôte 1 envoie une autre TPDU • malheureusement, l’hôte 2 envoi un DISCONNECT avant l’arrivée de cette seconde TPDU • la connexion est alors brutalement rompue et les données sont perdues hôte 1 hôte 2 CR ACK Temps DATA DATA DR Aucune donnée n’est livrée après la requête de déconnexion

  47. Libération d’une connexion • Il faut clairement : • un protocole plus élaborer pour éviter ce genre de pertes  libération symétrique : • dans ce cas, un hôte peut continuer à recevoir des données même après avoir envoyé un Disconnect • ce protocole fonctionne parfaitement quand les deux processus ont une quantité de données fixée à transmettre et savent quand libérer la connexion • l’ennui est que cela ne fonctionne pas toujours

  48. Libération d’une connexion Armée des blancs n° 1 Armée des blancs n° 2 Armée des verts

  49. Libération d’une connexion • Les deux armées : • l’armée des verts campe dans la vallée • les deux armées des blancs ont pris position sur les collines • l’armée des verts est plus forte que chaque armée des blancs prisent individuellement, mais est plus faible que les deux réunies • Le problème est donc la coordination

  50. Libération d’une connexion • Comment faire pour attaquer ensemble ? • supposons que l’armé 1 des blancs souhaite attaquer. Elle envoi un éclaireur vers la 2ème armée (il doit passer par la vallée). Le commandant de l’armée 2 reçoit le message et envoie un éclaireur pour confirmer. Est-ce concluant ? • NON : • car le commandant de l’armée 2 ne saura pas si le commandant de l’armée 1 à reçu son message. Donc, dans le doute, il ne lancera pas l’attaque • solution : • le commandant 1 envoie une confirmation. OK, mais cette fois, c’est le commandant 1 qui est dans le doute que le commandant 2, ayant bien reçu la confirmation, va attaquer comme prévu • … et ainsi de suite • en fait, il n’y a pas de limites. Aucun protocole ne peut résoudre le problème. Retenons qu’il n’est pas simple de libérer une connexion

More Related