Chapitre suivantIndex des CoursChapitre précedentChapitre 11

Le modele de reference OSI

LA COUCHE SESSION : NIVEAU 5

 

11. 1. Rôles de la couche de session

La couche session est la première dans la hiérarchie de l'ISO qui ne concerne plus la transmission des données proprement dite. Ce protocole ne prévoit pas de contrôle ni de reprise en cas d'erreur. C’est l’interface privilégiée entre les systèmes d’exploitation des ordinateurs et les réseaux de transmission des données. C’est une couche au contact des applications qui est très souvent intégrée dans le logiciel de base des machines. La philosophie de l'enchaînement des couches ISO veut que chaque couche apporte une augmentation de la qualité de service (de transmission) fournie à l'utilisateur final. Ici le gain obtenu est un gain en outils de synchronisation de dialogue. Ce mot synchronisation est en effet la clé du fonctionnement du protocole de session. Nous détaillerons dans la suite comment cette synchronisation peut être obtenue sans avoir recours à des asservissements rigides de part et d'autre d'une communication. Le deuxième rôle de cette couche session est d’établir et de maintenir des connexions de session entre entités de présentation. Ceci veut dire que des techniques d’adressage sont supportées par cette couche mais aussi un système de repérage des connexions établies dans un cadre beaucoup plus large que la vie de la connexion proprement dite. Cela veut dire que le protocole de session supprime les risques d'interférences entre deux connexions sur une très longue période de temps et éventuellement même dans un contexte plus large que le réseau où elle a été établie. Le dernier rôle est bien sûr, d'échanger des données avec en plus ici une notion de structuration des informations échangées. On peut ainsi transférer des données «normales» mais aussi des données express, des données typées, ou des données d'exception que gèrera le protocole de session. Cet ensemble important de fonctionnalités est organisé en un noyau minimum de fonctions plus un ensemble d'extensions adaptées aux besoins de chaque utilisateur. La combinaison de ce noyau et de ces extensions constitue ce qu'on appelle un profil de session. Des profils standards de session sont définis dans la norme ISO de description du service de session et dans les normes CCITT X215 et X225 ; nous les présenterons plus loin.

11. 2. Les services

Le fil directeur de tous les services session est d'organiser et de synchroniser les échanges de données entre les utilisateurs de ce service. Pour faciliter ces opérations, le protocole de session gère un ensemble de jetons qui représentent des droits exclusifs acquis sur demande par l'un ou l'autre des communicants pour utiliser des services critiques. Quatre jetons définis dans la norme :

- Le jeton de données.

- Le jeton de terminaison

- Le jeton de synchronisation mineure.

- Le jeton de synchronisation majeure et de gestion d'activité.


Un jeton quelconque est pour une connexion donnée, dans l'un des états suivants (en supposant une connexion entre deux utilisateurs A et B) :

Disponible      assigné à A et pas à B : A possède alors l'accès exclusif au service lié à ce jeton.

assigné à B et pas à A : c'est B qui possède cette fois l'accès au service.

Indisponible : ni A ni B n'ont l'usage exclusif du service associé à ce jeton.

Par exemple, lorsque le jeton de données est disponible, la connexion de session est exploitée (du point de vue de l'échange des données) à l'alternat (half duplex). Le possesseur du jeton est dans ce cas celui qui a droit à la parole. L'indisponibilité de ce jeton de données indique une utilisation de la connexion en mode bidirectionnel simultané (full duplex).

11. 2. 1. La synchronisation et les activités

Les utilisateurs du service de session peuvent insérer dans leurs échanges de données des points de synchronisation qui sont identifiés de manière unique par le prestataire du service de session à l'aide d’un numéro d'ordre. Le sens attribué à ces points de synchronisation n'est pas du ressort de la couche session mais des utilisateurs. C’est-à-dire que ces mécanismes de synchronisation constituent un outil pour, par exemple, réaliser à un niveau supérieur des points de reprise dans une application de gestion de bases de données. Le service fourni ici est uniquement un service d’identification d’instants significatifs des synchronisations non pas temporelles mais structurelles et de s’affranchir ainsi des problèmes liés aux délais de propagation à travers les différentes couches de protocoles du réseau. Il existe deux types de points de synchronisation :

- la synchronisation mineure

- la synchronisation majeure.

Les points de synchronisation mineure permettent de structurer un échange de données en unités appelées dialogues (intervalle entre deux points de synchronisation majeure). Ces points de synchronisation majeure sont toujours confirmés explicitement et émettent ainsi de rendre des dialogues successifs. Les points de synchronisation mineure peuvent être posés à l'intérieur d'un dialogue et ne sont pas obligatoirement confirmés un à un. La confirmation d'un tel point de synchronisation confirme alors tous ceux qui lui sont antérieurs. L'élément de structuration du dialogue offert par le service de session est l'activité qui est un ensemble d'un, ou plusieurs dialogues. Une activité est un découpage logique des informations qui peut utiliser, pour se dérouler, une ou plusieurs connexions de session (de façon étalée dans le temps). De plus, une connexion de session peut acheminer successivement plusieurs activités distinctes. La figure 11.1. montre un exemple d’activité.

Figure 11.1 : Une activité.

11. 2. 2. La resynchronisation

Lorsqu'une activité est interrompue, il faut la reprendre dans un état cohérent. C’est le rôle du service de resynchronisation qui permet de remettre une connexion de session dans un état connu et identifié (ce qui implique la réallocation des jetons et la fixation d’un nouveau numéro d’ordre pour les points de synchronisation futurs). Ce service peut être demandé par l'un quelconque des participants. Lorsqu'il prend effe4 toutes les données non encore délivrées sont abandonnées et ne seront plus traitées.

Trois options existent pour ce service, il s'agit de :

-  Abandon qui positionne le prochain numéro de point de synchronisation à une valeur non encore utilisée.

-  Reprise qui positionne la connexion sur un point de synchronisation existant dans le dialogue courant.

-  Position qui positionne le prochain point de synchronisation n'importe où (à un endroit négocié) de cette connexion ou d'une autre.

La figure 11.2. schématise le comportement d'une connexion de session en cas de resynchronisation dans les options ci-dessus.

Fig. 11. 2. : La resynchronisation et ses options.


11. 2. 3. Les phases d'une connexion de session

Comme pour tout type de connexion, il y a trois phase dans une connexion de session qui sont : établissement, transfert de donné et terminaison. Dans la phase d'établissement se déroule la négociation des différents services qui vont être utilisés dans la suite de la connexion ainsi que la valeur initiale des différents paramètres utiles (localisation initiale des jetons par exemple). Les services utilisés dans la phase de transfert de données sont regroupés en cinq familles qui sont :

- Transfert des données.

- Gestion des jetons.

- Gestion de la synchronisation.

- Gestion des erreurs,

- Gestion des activités.

Ces services vont être examinés plus en détail ci-dessous. Enfin la phase de terminaison de la connexion permet l'utilisation de trois services qui sont :

- Terminaison ordonnée.

- Abandon utilisateur.

- Abandon réseau.

La terminaison ordonnée est une terminaison négociée qui arrête une connexion de façon à ne perdre aucune information en cours de traitement. L'abandon utilisateur termine une connexion de façon unilatérale sans aucune certitude quant à l'acheminement des données en cours. Enfin, l'abandon réseau est lié à un incident non récupérable subi par le réseau et que la couche transport n'a pas pu corriger. Dans ce cas également les données en cours sont perdues.

11.2.4. Les services de transfert de données

Le service de transfert de données normales permet l’acheminement de données sur la connexion de session sous le contrôle éventuel du jeton de données si le mode de fonctionnement a l’alternat a été choisi. Le service de transfert de données exprès permet l’échange de données rapide sans contrôle du jeton et sans contrainte vis-à-vis d’un éventuel contrôle de flux. Ce flot de données est acheminer par les couches inférieures à travers les services de communication express. Le service de transfert de données typées permet de transporter des données typées sans le contrôle du jeton. Le service de transfert de données avec confirmation permet le transfert d'un petit nombre de données sans contrôle du jeton mais avec confirmation explicite par le service de session de l'arrivée correcte de ces données au destinataire. Les données acheminées sans le contrôle du jeton sont limitées en taille. Ainsi, la taille maximale des données exprès est de 14 octets. Le service de transfert de données confirmées permet d'envoyer jusqu'à 512 octets en dehors de toute activité éventuellement en cours.


11. 2. 5. Les services de gestion des jetons

La demande de jeton permet à un utilisateur du service de session de demander un jeton particulier à l'autre participant auquel ce jeton est actuellement assigné. Le don de jeton permet de céder spontanément ou sur demande un jeton dont on souhaite faire partager l'usage. La demande de contrôle de jeton demande l'allocation de tous les jetons à un utilisateur. Ce service ne peut être demandé que lorsque la gestion des activités est effective et qu’aucune activité n'est en cours. La figure 11.3 montre un enchaînement possible de demandes de service dans cette gestion des jetons.

Figure 11. 3. : Un enchaînement de services pour la gestion des jetons.

11. 2. 6. Les autres services de la phase de transfert de données

Des services de gestion des points de synchronisation permettent de demander la transmission de ces informations de synchronisation. Le service de resynchronisation permet de remettre une connexion de session dans un état cohérent après un incident. Ce dernier service peut avoir pour conséquence la perte d'unités de données. Cinq services sont associés à la gestion des activités. Le premier est le démarrage d'activité qui permet de commencer une activité. Ce service est contrôlé par le jeton de synchronisation majeure. Il ne peut être demandé que si aucune autre activité n’est en cours sur cette connexion de session. Une activité est identifiée par un nom qui est codé sur un maximum de six octets. Ce nom permettra aux deux participants de repérer cette activité en dehors de la connexion de session présente. Lorsqu’une activité est ainsi lancée, le numérotage des points de synchronisation recommence à partir de un. Lorsqu’une activité est interrompue, elle peut être reprise ultérieurement à l'aide du service de reprise d'activité. Comme le précédent ce service est contrôlé par le jeton de synchronisation majeure. Une activité peut être interrompue par le service d'interruption qui indique que le travail effectué jusque-là ne doit pas être détruit car l'activité est à même de reprendre ultérieurement. Au contraire, on peut abandonner une activité par le service d’abandon qui lui implique que le travail ne sera jamais repris et que donc aucune trace de ce qui a été fait ne doit être conservée. La fin normale une activité est indiquée par le service de fin d'activité qui termine normalement un travail en posant en plus un point de synchronisation majeure. Enfin, il existe deux services permettant la gestion des erreurs aussi bien issues des utilisateurs qu’en provenance du réseau. Le service de compte-rendu d'erreur utilisateur est utilisé par un participant lorsqu’un jeton est disponible mais non assigné. De façon duale un service de compte-rendu d'erreur réseau permet aux utilisateurs de recevoir une indication d'erreur de protocole en provenance du prestataire de service session.


11. 2. 7. La phase de terminaison

Le service de base est le service de terminaison négociée contrôlé par le jeton de terminaison. Ce service permet la fin normale d'une connexion de session sans perte d'informations. Les ressources mobilisées par la connexion sont alors libérées. Deux services de déconnexion non négociée existent et correspondent aux déconnexions pour cause d'incident réseau ou pour cause d’incident utilisateur. Dans les deux cas des pertes peuvent intervenir. Là encore, les ressources de la connexion sont libérées.

11. 3. Les profils

Trois profils principaux sont définis par la normalisation :

- Le profil de base (Basic Combined Subset BCS).

- Le profil synchronisé (Basic Synchronized Subset BSS).

- Le profil avec activités (Basic Activity Subset BAS).

Le tableau de la Figure 11.4. montre les services associés à chaque fonction de base ainsi que la définition des profils en fonction des services qui y sont présents. Les jetons impliqués par ces profils sont également indiqués.

11. 4. Conclusion

Il faut noter que les normes X215, X225 prennent complètement en compte les éléments de protocole de session déjà développés dans l'avis S62 du CCITT élaboré à propos du TELETEX. Les travaux de l'ECMA ont également abouti à la fin de 1981 au standard ECMA 75 qui est une des contributions de départ de la norme actuelle. Il faut également indiquer le travail du groupe français ARCHITEL qui a apporté des idées intéressantes dans la définition de ces protocoles. En particulier, dans les propositions de ce groupe figuraient des services de mise en quarantaine des données pour garantir que des informations réparties dans plusieurs unités de données seraient délivrées ensemble ou pas du tout. Cette idée était particulièrement bien adaptée à la mise à jour distante de bases de données. Cependant la gestion de ce service était difficile à dimensionner du point de vue d’un prestataire de service de session. Dans l'optique actuelle de l'ISO et du CCITT, la couche session doit fournir des moyens de structuration et de synchronisation sans prendre en charge la mise en utilisation de ces outils, utilisation qui doit être et rester à la charge des utilisateurs dans leurs applications particulières.

Unités fonctionnelles

Jetons

BCS

BSS

BAS

Noyau (non négociable)

 

X

X

X

Terminaison négociée

termin.

 

X

 

Alternat

données

X

 

X

Simultané

 

X

   

Données express

       

Données typées

   

X

X

Données de capacité

     

X

Synchronisation mineure

synchmin

 

X

X

Synchronisation majeure

synchmaj

 

X

 

Resynchronisation

   

X

 

Compte rendu

     

X

Gestion d'activité

synchmaj

   

X

Figure 11.4. : Services et profits standards.

Chapitre précedentIndex des CoursChapitre suivant

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