Couche session : tout savoir sur le cinquième niveau du modèle OSI

La couche session correspond 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 synchronisation. En cas d’interruption inattendue, elle permet donc de ne pas avoir à tout recommencer au niveau de la communication.

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éveloppée dans les années 1970 pour créer des normes régissant l’interaction entre les différents appareils et systèmes d’un même réseau.

Ces sept couches s’acquittent de tâches spécifiques, tout en s’appuyant les unes sur les autres. La couche session prend donc en charge l’organisation de la connexion entre deux systèmes finaux. Pour ce faire, la « session layer » crée des sessions proposant différents services. La couche session fonctionne en étroite collaboration avec les couches du modèle OSI qui l’entourent. Les couches apparaissent 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ésentation (« presentation layer »)
  7. Couche application (« application layer »)

Couche session et contrôle des communications

La principale 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 temporaire à un autre système tout en contrôlant la communication à cet égard.

Celle-ci peut être bilatérale, parallèle ou directionnelle. 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 communication unilatérale, la « session layer » peut octroyer des jetons afin de contrôler l’ordre et d’éviter toute perturbation lors du dialogue.

Pour la couche session OSI ces jetons sont répartis selon quatre catégories :

  • Jetons de données (Data Token) : pendant une communication unilatérale en mode « half-duplex », ils précisent quel interlocuteur a l’autorisation d’émettre, et à quel moment.
  • Jetons d’activité (Activity Major Token) : ces jetons servent à diviser une connexion en différentes activités. Si l’une de ces activités est interrompue ou annulée, elle peut être reprise par la suite, que ce soit dans la session concernée ou dans une autre.
  • Jetons de synchronisation (Synchronize Minor Token) : numérotés de 0 à 999 999, ces jetons sont utilisés pour décomposer une communication. Dans la suite de l’article, nous vous parlerons plus en détail de la synchronisation de la couche session.
  • Jetons de clôture (Release Token) : ces jetons marquent la fin d’une session.

Couche session et synchronisation

En plus de l’organisation et du contrôle des communications, la synchronisation de l’échange de données constitue un autre service essentiel assuré par la couche session. Celle-ci prend toute son importance dès lors qu’un transfert de données est interrompu de façon inattendue et accidentelle à l’un des quatre premiers niveaux.

Pour parer à toute éventualité, la couche session OSI crée donc des points de synchronisation spéciaux. Si la communication vient à être interrompue, le transfert peut donc reprendre à l’un de ces points, ce qui évite d’avoir à tout recommencer. Ce service peut s’avérer particulièrement dans le cadre de communications où les connexions sont lentes et instables, ou dont les fichiers sont particulièrement volumineux.

Les points de synchronisation prévus par la couche session peuvent se ranger dans deux grandes catégories.

  • Les points de synchronisation majeurs permettent de fractionner en unités individuelles les données devant faire l’objet d’un transfert. Une confirmation explicite est requise pour ces points de synchronisation.
  • Les points de synchronisation mineurs, quant à eux, garantissent l’aspect logique et pratique au sein de ces unités ; leur confirmation est facultative.

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

Les services proposés par la couche session, notamment ceux que nous avons déjà mentionnés, sont mis à disposition des processus d’application. Ils ont pour but d’optimiser l’organisation et la synchronisation des communications et sont utilisés dès que la couche session demande une connexion à un deuxième ordinateur auprès de la couche transport (soit le quatrième niveau). Les services sont rassemblés sous forme d’unités fonctionnelles. L’Organisation internationale de normalisation (International Organization for Standardization, ISO), qui a participé au développement du modèle OSI, propose un système de classification pour les unités fonctionnelles. Les deux interlocuteurs concernés choisissent leur combinaison avant la session.

  • Basic Combined Subset (BCS) : compatible avec le noyau et les communications en mode « half-duplex » et « duplex »
  • Basic Synchronized Subset (BSS) : compatible avec le noyau, les communications en mode « half-duplex », la clôture négociée, les points de synchronisation mineurs et majeurs et la resynchronisation
  • Basic Activity Subset (BAS) : compatible avec le noyau, les communications en mode « half-duplex », les points de synchronisation mineurs, les exceptions et la gestion des activités

Couche session : quels protocoles l’utilisent ?

Nombreux sont les protocoles qui font appel à la couche session OSI. Par l’intermédiaire d’interfaces de programmation, la couche session met en effet ses protocoles et services à disposition des couches qui lui succèdent. Il convient de préciser que les paramètres et les propriétés des couches qui la précèdent sont sans importance pour les liaisons de communication résilientes. La couche session est, entre autres, utilisée par les protocoles 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