Chapitre suivantIndex des CoursChapitre précedentChapitre 10

Le modele de reference OSI

LA COUCHE TRANSPORT : NIVEAU 4

 

10. 1. Introduction

Le niveau transport (4ème couche dans le modèle de l'ISO) est le premier à prendre en charge des connexions directes entre les systèmes à l’extrémité des liaisons. On parle de liaison de bout en bout (ou de relation système à système) pour toutes les connexions établies à ce niveau ainsi que pour celles situées au-dessus d'elles dans la hiérarchie de l’ISO. Cette notion de bout en bout indique que les entités de transport offrent des services au niveau session qui sont complètement indépendants du ou des réseaux (au sens service de réseau, niveau 3, ISO) physiquement utilisés pour réaliser la connexion. En ce sens, les services ainsi mis en oeuvre au niveau 4 deviennent indépendants des couches de protocoles inférieurs et par là même des réseaux de communication utilisés. Cette couche de protocole est donc particulièrement utile et indispensable chaque fois que se bâtit un réseau d’ordinateurs qui nécessite des liaisons complexes. On a l'habitude de dire de cette couche 4 qu’elle est une couche charnière entre les systèmes d’exploitation des ordinateurs et les supports physiques de transmission des données. En effet il est souhaitable qu’un système d’exploitation soit le plus indépendant possible de l'appareillage physique qu'il dirige et coordonne. Dans le domaine des réseaux informatiques, c'est la couche transport qui réalise cette indépendance. La suite de ce chapitre va détailler les rôles exacts du service de transport puis décrire le protocole normalisé par l'ISO pour réaliser ce service dans le cadre de l'architecture OSI.

10. 2. Le rôle de la couche transport

10. 2. 1. Essai de définition

Le rôle de la couche transport peut être défini assez formellement sous forme des quatre propriétés suivantes :

a) Transport de bout en bout

Le service de transport permet la communication de deux utilisateurs situés         dans différents systèmes indépendamment des caractéristiques du ou des réseaux sur lequel s'effectue réellement le transfert des données. En particulier, il sera impossible de savoir à un utilisateur du service de transport si un ou plusieurs réseaux publics sont utilisés ou si des liaisons téléphoniques directes sont mises en jeu dans la communication qui l'intéresse. La figure 10.1 montre un exemple de connexion de transport mettant en jeu plusieurs réseaux mis bout à bout (on dit concaténés) ; ce sera le rôle de la couche transport que de réaliser l'exploitation de la liaison de transport établie entre X et Y. Les problèmes inhérents au routage et à la concaténation des liaisons de réseau seront pris en compte par la couche 3. De plus, dans une connexion de transport, les informations devront être délivrées dans l'ordre, sans perte ni duplication.

b) Sélection d'une qualité de service

Le protocole de transport doit optimiser les ressources réseaux disponibles pour atteindre à la qualité de service souhaitée par les utilisateurs du service de transport et ceci au moindre coût. La notion de qualité de service est définie par la valeur de certains paramètres dont l'ISO a établi une liste exhaustive :

·           délai d’établissement d'une connexion de transport

·           probabilité d'échec de l'établissement d'une connexion

·           débit des informations sur une connexion de transport

·           temps de traversée de la connexion c'est-à-dire le temps qui s'écoule entre l'émission de données et leur réception à l'autre extrémité de la connexion

·           taux d'erreur résiduel, c'est-à-dire le taux des erreurs non détectées ni corrigées qu’il sera possible de rencontrer sur une connexion

·           probabilité de panne, c'est-à-dire la probabilité d'arrêt d'une connexion de transport non souhaitée par les utilisateurs

·           délai de déconnexion, c'est le temps maximum acceptable nécessaire pour terminer proprement une connexion de transport

·           probabilité d’échec de déconnexion, c’est la probabilité d'apparence d'une déconnexion non coordonnée entre les utilisateurs qui aboutit souvent à des pertes d'information

·           protection des connexions de transport au sens de maintien d'une sécurité pour éviter les manipulations non autorisées de données circulant sur une connexion de transport

·           priorité des connexions, c'est-à-dire l'importance relative pour l'utilisateur de différentes connexions s'il est nécessaire de dégrader la qualité de service (ou même de terminer) d’une liaison en cas de problème majeur

·           «solidité» d’une connexion c'est-à-dire la probabilité de coupure accidentelle d'une connexion de transport déjà établie.

Figure 10 .1. : Un exemple de connexion de bout en bout.

c) Transparence

Les informations échangées sur une connexion de transport le sont indépendamment de leur format,        codage ou signification.

Ainsi donc, toute configuration binaire doit être acceptée par le protocole de transport pour être délivrée sans modification.

d) Adressage

La couche transport s'appuie sur une méthode d'adressage indépendante des conventions utilisées dans les couches inférieures. Son rôle sera donc ici de réaliser une correspondance entre l'adresse de transport d'un utilisateur donné et l'adresse de réseau correspondante pour pouvoir initialiser la communication. Il faut noter qu'aucune précision n'est actuellement apportée par les organismes de normalisation sur ce que doit être réellement cette adresse de transport. La seule restriction provient de l'existence de l'avis X121 du CCITT. En effet aujourd'hui il y a généralement correspondance entre les adresses réseaux et les adresses transport.

10. 2. 2. Quelques remarques pratiques

10. 2. 2. 1. Niveau transport et niveau liaison

Il est intéressant de remarquer le parallèle qui existe entre les spécifications du niveau transport et du niveau liaison. En un certain sens ces deux niveaux doivent réaliser des connexions de bout en bout sûres et performantes. Ainsi la réalisation d'un protocole de niveau 4 aura quelques points communs avec celle d'un niveau 2. Cependant il faut noter des différences fondamentales :

·           les problèmes d'adressage au niveau 2 sont plus simples qu’au niveau 4

·           la notion d'établissement d'une connexion au niveau 2 a un sens très pratique : «il suffit souvent de réaliser un branchement électrique»

·           la connexion établie au niveau transport possède souvent la propriété d'avoir une grande mémoire; c'est-à-dire qu'il est possible savoir beaucoup d'informations en cours de transmission à un instant donné. Ceci est dû à la mise en oeuvre (parfois complexe) de la connexion de transport avec un ou plusieurs intermédiaires de niveau 3 (voir l'exemple de la fig. 1). Au niveau 2, cette mémoire de support de transmission est souvent très faible (sauf dans le cas des réseaux satellites). Cette propriété de mémorisation va rendre difficile le contrôle des erreurs ainsi que le contrôle des flux dans la connexion de transport.

10. 2. 2. 2. Les informations échangées au niveau 4

La notion de transparence énoncée plus haut en tant que propriété de la couche transport implique ici la possibilité d'acheminer des informations (que l'on appelle souvent messages) de taille quelconque (transparence vis-à-vis du format des données). En pratique, cela signifie que la réalisation d'une entité de transport nécessitera une gestion complexe des mémoires de stockage des informations. Il faudra en particulier, être capable de gérer des tampons de tailles variables pour stocker des informations dont la taille n'est pas connue à l'avance.

10. 2. 2. 3. Les adresses et les chemins des données

La figure 10.2 présente un exemple de connexions entre plusieurs utilisateurs situés sur deux machines distantes. Nous supposerons également que le réseau de communication utilisé est le réseau TRANSPAC.

Figure 10.2 : Adressage et chemin de données.

Les adresses de transport indiquées sur ce schéma sont les points d'accès au service de transport visibles par les couches supérieures de protocole. Les points d’accès au réseau Transpac qui sont les numéros de voies logiques sont en fait, les adresses de réseau. Dans cet exemple, nous voyons également un aspect de l'optimisation que prend en charge le niveau 4 : le multiplexage et l'éclatement. Le multiplexage est le partage d'une connexion de réseau (le cv 1) par plusieurs connexions de transport (I ® II et III ® IV). L'éclatement est l'utilisation de plusieurs connexions de réseau (cv 2, cv 3, cv 4) par une seule connexion de transport (V ® VI). Ces deux mécanismes sont des outils pour l'optimisation des coûts et des performances d’une connexion. On a recours au multiplexage si par exemple des connexions de transport de faible débit sont nécessaires en grand nombre, alors qu'on utilise l'éclatement pour maximiser le débit d'une connexion de transport qui doit s'établir sur un réseau aux faibles performances. Les termes de multiplexage et éclatement sont les termes retenus par les instances de normalisation internationale.

10. 2. 2. 4. Localisation dans un système informatique

Il est intéressant de situer dès maintenant la localisation des différentes couches de protocole de communication dans un système informatique en contexte réseau. La figure 10.3 montre comment se répartissent souvent les couches de protocole entre un ordinateur et son frontal chargé des communications. Cette découpe des fonctions entre ces deux machines montre bien la séparation entre les couches hautes (5, 6, 7) et les couches basses (1, 2, 3) de l'ISO (les premières sont orientées traitement les secondes orientées communication), ainsi que le rôle charnière joué par la couche transport

Figure 10 .3 : Une machine hôte d'un réseau.

10. 2. 2. 5. La notion de négociation

Nous avons vu précédemment que parmi les possibilités de la couche transport figurait la sélection d'une qualité de service. On peut se demander alors qui sélectionne cette qualité de service. La réponse est relativement simple : l'utilisateur du service de transport exprime son souhait en terme de qualité de service et le prestataire de service lui indique en réponse si oui ou non il peut satisfaire les exigences du client s'il ne le peut pas, il indique le mieux qu'il puisse faire par rapport aux demandes initiales. Ce processus s'appelle la négociation. Elle s'applique à chaque paramètre négociable d'une connexion de transport. La Figure 10.4 montre un exemple du déroulement «une telle négociation pour le choix du débit effectif d'information sur une connexion en cours Rétablissement. Dans une situation réelle tous les paramètres sont négociés de cette façon, soit successivement soit simultanément. De plus, dans certains cas des explications peuvent être fournies par le prestataire du service de transport indiquant les raisons du choix final. Nous verrons plus loin dans le cas d’un protocole réel comment se déroule la négociation des paramètres de qualité de service.

Figure 10 .4 : Négociation d'un paramètre d'une connexion.

10. 2. 2. 6. La vie d'une connexion de transport

Ainsi qu’il se produit pour les connexions de niveau inférieur, la vie d’une connexion de transport peut être divisée en 3 phases : phase Rétablissement, phase de transfert de données, phase de libération. La phase d'établissement va permettre la négociation des différents paramètres de qualité de service puis l'ouverture des connexions de réseau nécessaires. La phase de libération va devoir garantir une fin de connexion reconnue aux deux extrémités de la liaison. Les deux participants à une connexion doivent savoir s'il y a eu perte de données ou pas lors de la déconnexion.

10. 3. Le protocole de transport ISO et CCITT (X214, X224)

Nous avons vu que le rôle de la couche transport peut être résumé par l'amélioration de la qualité des connexions de réseaux. Pour mieux identifier ces améliorations, l’ISO a proposé une classification des qualités des réseaux disponibles et en fonction de cela et des besoins des utilisateurs du transport, cinq classes de transport. Ces classes sont normalisées par l’ISO et le CCITT (norme X214, X224).

10. 3. 1. Types de réseaux et classes de protocoles de transport

La classification proposée pour les types de services de réseaux repose sur la mesure des erreurs résiduelles dans les transmissions au niveau 3. Deux sortes d'erreurs sont identifiées : les erreurs signalées et les erreurs non signalées. Le premier type correspond, par exemple, aux possibilités de déconnexion autoritaire du service de réseau (ré-initialisation d'un circuit virtuel dans Transpac) avec indication de l'erreur aux utilisateurs. Un exemple du deuxième type est l'erreur de transmission non détectée ni corrigée par les mécanismes adéquats du niveau réseau. Sur cette base, trois types de réseaux existent :

·      Type A : taux acceptable (donc faible) d'erreurs résiduelles non signalées; taux acceptable Terreurs signalées.

·      Type B : taux acceptable d'erreurs non signalées,

     taux inacceptable d'erreurs signalées.

·      Type C : taux inacceptable des deux types d'erreurs.

Pour s'adapter à ces différents types de réseaux en fonction des besoins des utilisateurs, les classes définies pour les protocoles de transport sont :

·      Classe 0 : la classe la plus simple qui autorise les liaisons de transport sans amélioration propre de qualité de service. Cette classe est entièrement compatible avec l'avis T70 (S70) du CCITT pour l'interconnexion de machines Teletex. La classe 0 s'adapte mieux sur des réseaux de type A. Il faut noter que dans certains cas un protocole de cette classe peut se charger d'une optimisation des coûts de communication (par choix de réseaux à structures de coût différentes par exemple Téléphone vis-à-vis de Transpac).

·      Classe 1 : cette classe comprend les fonctionnalités de la classe 0. En outre elle fournit la reprise sur erreurs signalées par la couche réseau. En ce sens, elle s'adapte bien aux réseaux de type B.

·      Classe 2 : cette classe offre une possibilité de multiplëxage de plusieurs connexions de transport sur une connexion de réseau Lors de l'établissement d'une connexion de cette classe, il est possible de recourir ou non à un contrôle de flux explicite pour éviter les problèmes de congestion sur la connexion réseau Cette classe sans contrôle d'erreurs est adaptée aux réseaux de type A.

·      Classe 3 : cette classe conjugue les propriétés de la classe 2 pour ce qui concerne le multiplexage et de la classe 1 pour ce qui concerne les reprises sur erreurs. Elle s'adapte donc plus particulièrement aux réseaux de type R

·      Classe 4 : cette classe reprend les propriétés de la classe 3 avec en plus, la reprise sur erreurs non signalées par le réseau. Elle s'adapte donc parfaitement au réseau de type C.

Le tableau de la Figure 10.5 résume les caractéristiques principales de chaque classe de protocole ainsi que les types de réseau auxquels elle s'adresse. Il est cependant bien clair que ces affectations transport-réseau sont les affectations « naturelles » mais que rien n'empêche d'utiliser un protocole de transport de classe 4 avec un réseau de type A. Ceci peut avoir lieu chaque fois qu'une qualité de service (pour ce qui concerne le taux d'erreur) élevée sera nécessaire à l'utilisateur du service de transport.

Figure 10.5 : Classes de transports et types de réseaux.

10. 3. 2. Les primitives du service de transport

L'utilisateur du service de transport dispose d'un certain nombre de primitives pour chacune des phases de la connexion. Le tableau de la figure 10.6 résume l'ensemble de ces primitives dont les noms (en majuscules) sont les noms retenus par l'ISO. On peut, sur ce tableau, faire quelques remarques :

·      dans la phase de connexion apparaît la négociation de la qualité de service désirée; la possibilité est offerte dans ce protocole d’échanger deux types de données : les données normales et les données express. Ces dernières sont de taille limitée et échappent au contrôle de flux.

·      la possibilité d'utiliser ces données express est négociée à couverture de la connexion de transport.

Figure 10.6 : Les primitives du service de transport.

La figure 10.7 montre l'enchaînement temporel normal de chacune de ces primitives aux deux extrémités d'une connexion. La figure 10.8, quant à elle, traduit l'effet de ces primitives sur l'état d'une extrémité de la connexion en fonction des différentes primitives activées.

10. 3. 3. Structure des unités de données

Les messages échangés entre entités de transport sont acheminés à l'intérieur de TPDU (Transport Protocol Data Unit : unité de données du protocole de transport) qui contiennent chacune un nombre entier d'octets. Leur structure générale est représentée à la figure 10.9. Un indicateur de longueur (de valeur comprise entre 0 et 254) mesure le nombre d'octets contenu dans l'en-tête sans tenir compte de l'indicateur lui-même (i.e. si l'indicateur de longueur vaut 200, l'en-tête se compose de 201 octets). La partie fixe contient un code caractéristique (sur 1 octet) du type de TPDU puis des paramètres fréquemment utilisés en nombre variable dépendant du type de TPDU. La partie variable contient des paramètres moins fréquents structurés comme indiqué à la figure 10.10.

Figure 10.7 : Enchaînement temporel des primitives du service de transport.

Figure 10 .8 : Etat d'une extrémité de connexion de transport.

Le code du paramètre identifie celui-ci. L'octet de longueur indique le nombre d'octets de valeur du paramètre. A titre d'exemple, il existe un paramètre de contrôle d'erreur qui peut figurer dans n'importe quelle TPDU de classe 4. Sa structure est conforme à la figure 10.10 avec :

Figure 10.9 : Structure d'une TPDU.

Figure 10.10 : Structure d'un paramètre de la partie variable.

La partie Données d’une TPDU contient les données transparentes de l'utilisateur. Dix TPDUs ont été à présent définies dont la liste des noms et des codes est donnée dans le tableau de la figure 10.11. Nous allons maintenant examiner quelques TPDUs en détail après avoir indiqué le mécanisme de contrôle de flux explicite mis en jeu dans ce protocole.

Figure 10.11 : Les TPDU et leurs codes.

10. 3. 4. Le contrôle de flux

Le mécanisme de contrôle de flux est un système à fenêtre de largeur variable dit système à crédit. Pour expliquer le fonctionnement de ce système, la figure 10.12. schématise une suite de transmissions de TPDU DT et AK où ne sont représentés que les champs numéro de séquence et crédit (i.e. DT (3, 5) indique la TPDU n° 3 avec un crédit de 5). Ce mécanisme est valable dans chaque sens de la transmission. D'autre part, la réduction d'une fenêtre précédemment accordée est illicite et doit donc être considérée comme une erreur de protocole.

Figure 10.12 : Le contrôle de flux par crédit.

10. 3. 5. Quelques TPDUs

10. 3. 5. 1. La TPDU CR

La figure 10.13. montre la structure de la TPDU CR. Cette TPDU est utilisée pour demander l'ouverture d’une connexion de transport. Cette connexion sera, par la suite, identifiée par le numéro SRC-REF qui est une référence de cette connexion pour l'initiateur de l'appel. Ce numéro est un peu analogue au numéro de voie logique de X25. Cependant il sert ici à repérer une connexion de transport pendant une période dépassant très largement sa durée de vie propre. Ceci a pour but d'éviter de confondre des TPDUs en cours d'acheminement lors d'une déconnexion imprévue, avec d'autres correspondant à une connexion correcte en cours. De même DST-REF est une référence choisie par l'appelé de la même manière et pour les mêmes raisons. Aussi, ce champ DST-REF étant inconnu lors de l'émission de la TPDU CR est conventionnellement fixé à 0. La partie variable de cette TPDU va contenir les paramètres suivants :

Figure 10.13 : Format de la TPDU CR.

Figure 11.14 : Format de la TPD U DT.

Ce paramètre définit la taille maximum des TPDUs à utiliser. Elle est donnée en octets. Les valeurs possibles sont :

            00001101        pour     8192 octets

            00001100        …..      4096                interdit en classe 0

            00001011        …..      2048

            00001010        …..      1024

            00001001        …..      512

            00001000        …..      256

            00000111        …..      128                  (valeur par défaut)

-          numéro de version

-          total de contrôle (voir plus haut)

-          autres classes de protocoles (code de paramètre 1100 0111 longueur n) n est le nombre de choix de replis possibles par ordre de préférence chacun de ces octets est codé comme l'octet 7 avec les bits 1 à 4 à 0

-          débits souhaités

-          taux d'erreur résiduel souhaité

-          priorité (voir plus haut)

-          temps d'acheminement souhaité

-          etc...

La partie données de cette TPDU est interdite en classe 0, optionnelle ailleurs et ne peut en aucun cas, excéder 32 octets.

10. 3. 5. 2. Les TPDUs DT

Il y a plusieurs formats valides pour les TPDUs DT suivant la classe de protocole en activité : un format pour les classes 0 et 1, un autre pour les classes 2, 3 et 4. La figure 10.14 rend compte de ces deux formats. Le champ DST-REF a la même signification que pour la TPDU CR. L'indication EOT signifiant la fin d'une suite de TPDUs représentant un message unique est signifiée par la mise à 1 des bits du champ TPDU-NR et EOT. Les bits 1 à 7 de ce champ représentent le numéro de séquence de la TPDU. Ils sont à 0 en classe 0. La partie variable de cette TPDU ne peut que contenir le paramètre de total de contrôle.

10. 3. 6. Eléments de protocole

La figure 10.15 représente le fonctionnement d'un système conforme au modèle OSI lors de l'établissement d'une connexion de transport. Cette figure représente le cas idéal où il n'y a pas d'erreur de fonctionnement (saturation du réseau par exemple).

Figure 10.15 : L'établissement d'une connexion de transport.

L'activation par le niveau 5 de la primitive du service de transport T-CONNECT-REQUEST a pour effet l'activation par le niveau 4 (après choix de l'adresse réseau du destinataire) d'une primitive du niveau 3 demandant une connexion réseau. Lorsque cette connexion est établie, l'entité de transport peut envoyer la TPDU CR correspondant à rappel en cours. Ce n'est qu’à réception if une TPDU CC que l’activation de la primitive transport T-CONNECT-CONFIRM pourra avoir lieu vers le niveau 5 permettant alors le transfert de données. Il faut remarquer qu'il est parfois possible de passer directement de l'étape 1 à l’étape 2 de la figure 10.15 lorsque le multiplexage est possible et qu’il existe déjà une connexion de réseau satisfaisante.

10. 3. 7. Réalisation du protocole ISO

Pour réaliser un tel protocole il faut satisfaire aux exigences de formats de messages mais aussi se comporter correctement lors de chaque événement extérieur influant sur la communication. Pour cela, la façon la plus simple de procéder est d’implémenter directement les automates d'état fournis par l'ISO comme description la plus fine du protocole considéré.

10. 4. Conclusion

A travers ce chapitre sur les fonctions de la couche transport dans le modèle OSI de l'ISO nous avons montré le rôle très important de séparation entre les applications (couches 5 à 7) et les communications (couches 1 à 3) qui est celui de cette couche 4. Il est intéressant de constater maintenant combien simple est le modèle de transmission de données dont nous disposons pour les couches supérieures : un canal de transmission que l'on peut considérer comme «parfait», c'est-à-dire sans perte ni duplication de données. C’est sur ce modèle que reposeront les descriptions des couches session et présentation qui sont abordées dans les chapitres suivants.

10. 5. Annexe algorithmique de calcul du total de contrôle

L'entité de transport envoyant des TPDUs avec total de contrôle s'arrange pour que

                       

et                    

où        i est la position d’un octet de la TPDU

ai est la valeur du ième octet

L est la longueur de la TPDU.

Algorithme de calcul

Soient C0 et C1 deux variables

i la position d'un octet de la TPDU de valeur ai

n la position du ler octet du paramètre de contrôle

L la longueur de la TPDU

x la valeur du 1er octet de contrôle

y la valeur du 2e octet de contrôle.

Tous les calculs sont faits modulo 255.

a) initialisation C0      :=         0

C1       :=         0

x         :=         0

y         :=         0;

b) for i = 1 to L do

            begin

            C0 := C0 + ai

            C1 = C1 + C0

            end;

c) résultat :      x = - C1 + (L - n) C0

                        y = C1 - (L - n + 1) C0.

Algorithme de vérification

C'est le même algorithme que le calcul restreint aux points a) et b). A ce moment, si C0 et C1 ne sont pas tous deux nuls, une erreur s'est produite.

Chapitre précedentIndex des CoursChapitre suivant

Révisé le :23-Sep-2007| ©2007 www.technologuepro.com