Modèle OSI - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Présentation de la norme

L'objectif de cette norme est de spécifier un cadre général pour la création de normes ultérieures cohérentes. Le modèle lui-même ne définit pas de service particulier et encore moins de protocole.

Concepts et terminologie : services, protocoles et interfaces

Le modèle est essentiellement une architecture en couches définies et délimitées avec les notions de service, de protocole et d'interface.

  • Un service est une description abstraite de fonctionnalités à l'aide de primitives (commandes ou événements) telles que demande de connexion ou réception de données.
  • Un protocole est un ensemble de messages et de règles d'échanges réalisant un service.
  • Une interface (« point d'accès au service » dans la norme) est le moyen concret d'utiliser le service. Dans un programme, c'est typiquement un ensemble de fonctions de bibliothèque ou d'appels systèmes. Dans une réalisation matérielle, c'est par exemple un jeu de registres à l'entrée d'un circuit.

Les détails d'un service varient bien sûr d'une architecture de réseau à l'autre. La classification la plus grossière se fait selon que le service fonctionne en mode connecté ou non. Malgré cette variabilité, les fonctions communes ont des noms conventionnellement constants. Ces noms ne proviennent toutefois pas directement de ISO 7498-1.

connection.request 
est une demande de connexion sortante, i.e. à l'initiative d'une entité locale.
connection.indication 
correspond à l'événement « Une demande de connexion entrante a été reçue. »
connection.response 
est l'indication d'acceptation ou de rejet de la connexion
connection.confirmation 
correspond à l'événement « La réponse du demandé a été reçue. » C'est un acquittement.
data.request, data.indication et data.confirm 
sont le pendant pour les données.

Les données fournies à une primitive de service sont appelées (N)-SDU (« Service Data Unit ») où N est l'indication de la couche, son numéro dans la norme, parfois une lettre tirée du nom de la couche. Les messages d'un protocole sont appelés PDU (« Protocol Data Unit »).

Architecture en couches

Le modèle comporte 7 couches succinctement présentées ci-dessous de bas en haut et détaillées dans leur articles respectifs. Ces couches sont parfois réparties en 2 groupes.

Les 4 couches inférieures sont plutôt orientées communication et sont typiquement fournies par un système d'exploitation.

Les 3 couches supérieures sont plutôt orientées application et plutôt réalisées par des bibliothèques ou un programme spécifique. Dans le monde IP, ces 3 couches sont rarement distinguées. Dans ce cas, toutes les fonctions de ces couches sont considérées comme partie intégrante du protocole applicatif.

Par ailleurs, les couches basses sont normalement transparentes pour les données à transporter, alors que les couches supérieures ne le sont pas nécessairement, notamment au niveau présentation.

Dans une telle architecture, une « entité » de niveau (N+1) envoie des données avec la primitive « data.request » de l'entité de niveau (N) en lui fournissant comme données un (N+1)-PDU qui sera typiquement, à son tour encapsulé dans un (N)-PDU. Côté récepteur, chaque entité analyse l'enveloppe protocole correspondant à sa couche et transmet les données à la couche supérieure sous la forme d'une primitive « data.indication ».

Certaines fonctions comme la détection des erreurs de transmission et leur correction, le contrôle de flux peuvent être présentes dans plusieurs couches. Ces fonctions sont décrites globalement plus loin.

Caractérisation résumée des couches

La caractérisation donnée ici est tirée du chapitre 7 de ISO 7498-1. La description originelle donne en plus pour chaque couche les fonctions de manipulation de commandes ou de données significatives parmi celles décrites plus bas.

  1. La couche « physique » est chargée de la transmission effective des signaux entre les interlocuteurs. Son service est typiquement limité à l'émission et la réception d'un bit ou d'un train de bit continu (notamment pour les supports synchrones).
  2. La couche « liaison de données » gère les communications entre 2 machines adjacentes, directement reliées entre elles par un support physique.
  3. La couche « réseau » gère les communications de proche en proche, généralement entre machines : routage et adressage des paquets (cf. note ci-dessous).
  4. La couche « transport » gère les communications de bout en bout entre processus (programmes en cours d'exécution).
  5. La couche « session » gère la synchronisation des échanges et les « transactions », permet l'ouverture et la fermeture de session.
  6. La couche « présentation » est chargée du codage des données applicatives, précisément de la conversion entre données manipulées au niveau applicatif et chaînes d'octets effectivement transmises.
  7. La couche « application » est le point d'accès aux services réseaux, elle n'a pas de service propre spécifique et entrant dans la portée de la norme.

Quelques précisions

Lorsque les services réseau et transport fonctionnent tous les deux en mode connecté, il n'y a pas toujours de distinction claire entre ces deux services. Il y a toutefois deux cas ou cela est très simple :

  • Si le service réseau n'autorise qu'une seule connexion entre 2 machines : dans ce cas, les connexions de niveau transport sont nécessairement multiplexées sur une connexion de niveau réseau et la distinction est nette.
  • Les services des 2 couches relatifs à la correction des erreurs sont différents : Ces fonctions peuvent n'être présentes que dans une seule des 2 couches.

Les fonctions communes

Fiabilisation des communications

L'un des rôles majeurs des couches 2 à 4, i.e. présent dans nombre de piles protocolaires, est la construction d'une connexion exempte d'erreurs de transmission. Cela signifie que les données transmises sont reçues sans corruption, perte, réordonnancement et duplication. Cela implique qu'au moins une couche, et en pratique plusieurs, fasse de la détection d'erreur, de la correction d'erreur ou de la retransmission de données et du contrôle de flux.

Détection d'erreurs 
repérage des PDU dont au moins un bit a changé de valeur lors du transfert.
Correction des erreurs 
Compensation des erreurs soit par correction des données à l'aide de code correcteurs d'erreurs ou par destruction du PDU erroné et demande de retransmission.
Contrôle de flux 
Synchronisation des communications destinée à empêcher qu'un interlocuteur reçoive plus de PDU qu'il ne peut en traiter.

Les contrôles de flux des couches 2 et 3 peuvent sembler redondants, mais ce n'est pas nécessairement le cas. En effet, le contrôle de flux au niveau 2 garantit l'asservissement seulement sur une ligne. Mais si une machine est dotée de plusieurs interfaces, c'est le cas notamment de tous les routeurs, et qu'il n'y a pas de contrôle de flux sur au moins une des interfaces, il y a un risque de saturation dans l'entité de niveau réseau. Ce cas se présente en particulier dans les réseaux X.25 où le contrôle de flux est une option, négociée à l'ouverture de la connexion.

Fonctions de transformation

En plus de la structure en couche, le modèle définit aussi une série de mécanismes standards de manipulation de commandes ou de données, utilisées pour la réalisation d'un service. Cette section définit les plus courantes. Ces transformations sont décrites par paire d'opérations inverses l'une de l'autre.

Multiplexage et démultiplexage de connexion 
Utilisation d'une connexion de niveau N pour transporter les PDU de plusieurs connexions de niveau N+1. Symétriquement, démultiplexer consiste à séparer les (N+1)-PDU entrants par connexion. Par exemple, ce mécanisme est prévu dans les réseaux ATM par la « couche » AAL 3/4.
Éclatement et recombinaison 
Opérations similaires dans lesquelles les (N+1)-PDU sont répartis sur plusieurs connexions de niveau N. Cela est utilisé en particulier par les utilisateurs d'accès RNIS pour augmenter le débit disponible.
Segmentation et réassemblage 
Lorsque le service fourni par la couche (N) fixe une limite de taille sur les données trop petites par rapport au service de la couche (N+1), la couche (N+1) découpe les (N+1)-SDU en plusieurs fragments correspondant chacun à un (N+1)-PDU avant envoi. À la réception, la couche (N+1) concatène les fragments pour retrouver le (N+1)-SDU initial. Cela est massivement utilisé dans les réseaux ATM et dans SSL/TLS. Pour IP, cette fonction est traditionnellement appelée « fragmentation ».
Page générée en 0.119 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise