La couche session cor­res­pond au cinquième niveau du modèle OSI. Elle prend en charge la connexion entre deux systèmes finaux, organise le transfert de données et s’occupe de sa syn­chro­ni­sa­tion. En cas d’in­ter­rup­tion inat­ten­due, elle permet donc de ne pas avoir à tout re­com­men­cer au niveau de la com­mu­ni­ca­tion.

Couche session : de quoi s’agit-il ?

La couche session est également connue sous le nom de « session layer ». Il s’agit du cinquième des sept niveaux du modèle OSI, dé­ve­lop­pée dans les années 1970 pour créer des normes régissant l’in­te­rac­tion entre les dif­fé­rents appareils et systèmes d’un même réseau.

Ces sept couches s’ac­quit­tent de tâches spé­ci­fiques, tout en s’appuyant les unes sur les autres. La couche session prend donc en charge l’or­ga­ni­sa­tion de la connexion entre deux systèmes finaux. Pour ce faire, la « session layer » crée des sessions proposant dif­fé­rents services. La couche session fonc­tionne en étroite col­la­bo­ra­tion avec les couches du modèle OSI qui l’entourent. Les couches ap­pa­rais­sent dans l’ordre suivant :

  1. Couche physique (« physical layer »)
  2. Couche liaison de données (« data link layer »)
  3. Couche réseau (« network layer »)
  4. Couche transport (« transport layer »)
  5. Couche session (« session layer »)
  6. Couche pré­sen­ta­tion (« pre­sen­ta­tion layer »)
  7. Couche ap­pli­ca­tion (« ap­pli­ca­tion layer »)

Couche session et contrôle des com­mu­ni­ca­tions

La prin­ci­pale mission de la couche session consiste à établir une connexion logique entre deux systèmes. Cette connexion porte le nom de « session ». Chaque fois, celle-ci est unique et explicite. La couche session assure également le contrôle de ces sessions. Cette couche peut par exemple accorder un accès tem­po­raire à un autre système tout en con­trô­lant la com­mu­ni­ca­tion à cet égard.

Celle-ci peut être bi­la­té­rale, parallèle ou di­rec­tion­nelle. Ce procédé porte le nom de « contrôle de boîte de dialogue » (Dialog Control), et il est pris en charge par la couche session OSI. Pour une com­mu­ni­ca­tion uni­la­té­rale, la « session layer » peut octroyer des jetons afin de contrôler l’ordre et d’éviter toute per­tur­ba­tion lors du dialogue.

Pour la couche session OSI ces jetons sont répartis selon quatre ca­té­go­ries :

  • Jetons de données (Data Token) : pendant une com­mu­ni­ca­tion uni­la­té­rale en mode « half-duplex », ils précisent quel in­ter­lo­cu­teur a l’au­to­ri­sa­tion d’émettre, et à quel moment.
  • Jetons d’activité (Activity Major Token) : ces jetons servent à diviser une connexion en dif­fé­rentes activités. Si l’une de ces activités est in­ter­rom­pue ou annulée, elle peut être reprise par la suite, que ce soit dans la session concernée ou dans une autre.
  • Jetons de syn­chro­ni­sa­tion (Syn­chro­nize Minor Token) : numérotés de 0 à 999 999, ces jetons sont utilisés pour dé­com­po­ser une com­mu­ni­ca­tion. Dans la suite de l’article, nous vous parlerons plus en détail de la syn­chro­ni­sa­tion de la couche session.
  • Jetons de clôture (Release Token) : ces jetons marquent la fin d’une session.

Couche session et syn­chro­ni­sa­tion

En plus de l’or­ga­ni­sa­tion et du contrôle des com­mu­ni­ca­tions, la syn­chro­ni­sa­tion de l’échange de données constitue un autre service essentiel assuré par la couche session. Celle-ci prend toute son im­por­tance dès lors qu’un transfert de données est in­ter­rompu de façon inat­ten­due et ac­ci­den­telle à l’un des quatre premiers niveaux.

Pour parer à toute éven­tua­lité, la couche session OSI crée donc des points de syn­chro­ni­sa­tion spéciaux. Si la com­mu­ni­ca­tion vient à être in­ter­rom­pue, le transfert peut donc reprendre à l’un de ces points, ce qui évite d’avoir à tout re­com­men­cer. Ce service peut s’avérer par­ti­cu­liè­re­ment dans le cadre de com­mu­ni­ca­tions où les con­nexions sont lentes et instables, ou dont les fichiers sont par­ti­cu­liè­re­ment vo­lu­mi­neux.

Les points de syn­chro­ni­sa­tion prévus par la couche session peuvent se ranger dans deux grandes ca­té­go­ries.

  • Les points de syn­chro­ni­sa­tion majeurs per­met­tent de frac­tion­ner en unités in­di­vi­duelles les données devant faire l’objet d’un transfert. Une con­fir­ma­tion explicite est requise pour ces points de syn­chro­ni­sa­tion.
  • Les points de syn­chro­ni­sa­tion mineurs, quant à eux, ga­ran­tis­sent l’aspect logique et pratique au sein de ces unités ; leur con­fir­ma­tion est fa­cul­ta­tive.

Couche session OSI : quels services prend-elle en charge ?

Les services proposés par la couche session, notamment ceux que nous avons déjà men­tion­nés, sont mis à dis­po­si­tion des processus d’ap­pli­ca­tion. Ils ont pour but d’optimiser l’or­ga­ni­sa­tion et la syn­chro­ni­sa­tion des com­mu­ni­ca­tions et sont utilisés dès que la couche session demande une connexion à un deuxième or­di­na­teur auprès de la couche transport (soit le quatrième niveau). Les services sont ras­sem­blés sous forme d’unités fonc­tion­nelles. L’Or­ga­ni­sa­tion in­ter­na­tio­nale de nor­ma­li­sa­tion (In­ter­na­tio­nal Or­ga­ni­za­tion for Stan­dar­di­za­tion, ISO), qui a participé au dé­ve­lop­pe­ment du modèle OSI, propose un système de clas­si­fi­ca­tion pour les unités fonc­tion­nelles. Les deux in­ter­lo­cu­teurs concernés choi­sis­sent leur com­bi­nai­son avant la session.

  • Basic Combined Subset (BCS) : com­pa­tible avec le noyau et les com­mu­ni­ca­tions en mode « half-duplex » et « duplex »
  • Basic Syn­chro­ni­zed Subset (BSS) : com­pa­tible avec le noyau, les com­mu­ni­ca­tions en mode « half-duplex », la clôture négociée, les points de syn­chro­ni­sa­tion mineurs et majeurs et la re­syn­chro­ni­sa­tion
  • Basic Activity Subset (BAS) : com­pa­tible avec le noyau, les com­mu­ni­ca­tions en mode « half-duplex », les points de syn­chro­ni­sa­tion mineurs, les ex­cep­tions et la gestion des activités

Couche session : quels pro­to­coles l’utilisent ?

Nombreux sont les pro­to­coles qui font appel à la couche session OSI. Par l’in­ter­mé­diaire d’in­ter­faces de pro­gram­ma­tion, la couche session met en effet ses pro­to­coles et services à dis­po­si­tion des couches qui lui succèdent. Il convient de préciser que les pa­ra­mètres et les pro­prié­tés des couches qui la précèdent sont sans im­por­tance pour les liaisons de com­mu­ni­ca­tion ré­si­lientes. La couche session est, entre autres, utilisée par les pro­to­coles suivants :

  • ADSP
  • ASP
  • FTP
  • H.245
  • HTTP
  • ISO-SP
  • iSNS
  • L2F
  • L2TP
  • NetBIOS
  • NNTP
  • PAP
  • PPTP
  • RPC
  • RTCP
  • SCP
  • SDP
  • SMPP
  • SMTP
  • SOCKS
  • Telnet
  • TFTP
  • ZIP
Aller au menu principal