1.x Architecture réseau OSI

Architecture des réseaux: notion de composant, de couche, et de protocole.

Pour faire face à la complexification croissante des systèmes et des codes (codes de représentation, codes de comportement) on introduit la notion de couche et de composant.

Composant :
Un composant est une unité fonctionnellement bien identifiée et dont on peut caractériser les interfaces.
Interface :
On appelle interface l'ensemble des actions qu'un composant donné peut réaliser sur un autre composant et subir de la part de ce composant.
Protocole :
On appelle protocole la définition d'un ensemble de règles de conversation (ou suite d'actions) entre composants que ce soit au niveau physique, ou au niveau logique. Un protocole définit donc les relations des composants, au travers de leurs interfaces.

Pour diminuer la complexité, on définit les relations des composants deux à deux, et on limite le nombre d'interfaces:

A l'intérieur d'un système on découpe les traitements en couches superposées. Une couche possède une interface directe avec les couches immédiatement adjacentes, et une interface indirecte avec les couches de même niveau:

Les couches d'un type donné sont décrites de manière indépendante et sont supposées ne dialoguer qu'avec des couches du même type.

L'empilement des couches réalise donc une hiérarchie des protocoles de communication entre couches de même niveau.



Architecture de réseau: le modèle OSI

On a vu au § 1.2 que l'agencement d'un système en couches permettait de réduire sa complexité. Le modèle ISO OSI (Open Systems Interconnection) définit une structure de référence en 7 couches individualisées pour les systèmes de communication de données. (en Français: OSI - ISO !!)

Deux normes sont définies pour chaque couche:

La normalisation des interfaces de service libère l'utilisateur du besoin de connaître les protocoles utilisés:

Ceci permet de prédire et contrôler les conséquences des changements effectués dans un réseau, notamment lors d'une réorganisation des couches inférieures qui se fait ainsi de manière transparente pour les couches supérieures (par ex. changement de site d'un serveur, changement de la technologie du réseau, ...).

Le modèle OSI permet également de fournir un langage et un cadre facilitant la description et l'interconnexion des systèmes hétérogènes.

Ce modèle est contraignant et souvent plus coûteux dans les traitements spécialisés, mais il a l'énorme avantage de diminuer la tendance "spécifique constructeur" et donc de permettre une meilleure compatibilité et interopérabilité des systèmes.

Les protocoles des systèmes actuels tendent à converger vers le modèle OSI, mais pour des raisons historiques ils recouvrent parfois plusieurs couches et sont donc dans ce cas incomplètement décrits par le modèle.

Exemple de normalisation: communication inter-processus par socket sous UNIX est remplacé par le service de transport ISO 8072 indépendant du système et du réseau.

Schéma du modèle OSI à 7 niveaux



x.x. Les sept couches du modèle ISO

Le modèle ISO (Interconnexion des Systèmes Ouverts) d'architecture des réseaux informatiques définit les 7 couches suivantes:

1. Physique
Cette couche définit les caractéristiques physiques des signaux et des supports utilisés pour l'interconnexion des systèmes. Elle est également responsable de l'activation, du maintien, et de la désactivation des circuits de l'ETCD, ainsi que des signaux d'horloge.
Il existe une myriade de normes pour ce niveau (par exemple EIA-232, V22bis et IEEE 802.3 sont des protocoles au niveau physique).
2. Liaison de données
Cette couche est responsable de l'échange de blocs d'information sur une ligne (détection, correction d'erreurs, adressage). Elle est subdivisée en deux sous-couches dans la norme IEEE 802 (sous-couches MAC et LLC).
3. Réseau
Cette couche réalise l'interface utilisateur avec le réseau, et gère l'adressage et le transfert des données vers la machine destinataire à travers le ou les réseaux connectés.
4. Transport
Ce niveau est responsable du contrôle du transport de bout en bout (réordonancement des paquets, demande de réémission,...). Elle fournit l'interface permettant à l'utilisateur de paramétrer la qualité (et donc le coût) de l'acheminement des données. C'est le premier niveau permettant de gérer les errreurs dues au passage à travers plusieurs liens (réseaux).
Elle fournit 2 principaux types de service: avec connexion (circuit virtuel) ou sans connexion (paquets indépendants).
5. Session
Cette couche fournit une interface permettant de gérer la synchronisation de la communication entre processus distants (rendez-vous, point de reprise, resynchronisation de l'échange de données).
6. Présentation
Ce niveau est responsable de la présentation des données sous un format (une syntaxe) lisible par l'application. Par exemple:
- passage du code ASCII au code EBCDIC ou VIDEOTEXTE,
- passage de la représentation binaire BIG ENDIAN à LITTLE ENDIAN,
- mappage d'un format de commande terminal virtuel à celui du terminal,
- compression décompression de données.
7. Application
Cette couche comprend les programmes d'application avec leurs conventions d'échange et de coopération. C'est la seule couche qui s'occupe de la sémantique des données transférées. On y trouvera des protocoles spécifiques à certains types d'applications (par exemple: applications bancaires, réservation de places, messagerie électronique, terminal virtuel, prises de commande, ...).

Dans un système donné, certaines couches peuvent être vides si elles n'ont pas d'utilité (par exemple la couche présentation pour des communications entre machines toutes identiques).

La couche application est la couche la plus haute d'un Processus, mais pas forcément d'une application: un serveur NFS se situe au niveau application, mais ses services peuvent être utilisés par des applications de plus haut niveau à travers des appels interprocessus.

La suite de protocoles Internet, plus ancienne et plus répandue, utilise une subdivision en 4 couches moins bien individualisées:

Ethernet est un protocole de Digital-Intel-Xerox

TCP/IP est une suite de protocoles ARPANET

RPC, NFS et XDR sont des protocoles de SUN Microsystem

X window est un protocole de fenêtrage graphique conçu par le MIT pouvant fonctionner à travers un réseau.



x.x. Les services, terminologie OSI

Chaque couche du modèle OSI a pour but de fournir des services à la couche située au dessus d'elle. La couche N est le fournisseur de service pour la couche N+1 qui est l'utilisateur de service.

Les éléments actifs d'une couche sont appelés des entités. Les entités de la même couche situées sur différentes machines sont appelées entités paires.
Dans une communication, les entités paires de la couche N communiquent entre elles en suivant un protocole de niveau N.

Les services sont accessibles par des points d'accès appelés SAP (Service Access Point). Chaque point d'accès est identifié par une adresse unique (analogie: prise téléphonique et adresse associée, boîte aux lettres et adresse postale).

Dans une interface entre deux couches, la couche N+1 passe par le SAP une unité de données d'interface IDU (Interface Data Unit) à la couche inférieure N.

Le IDU est composé de deux parties:

1. ICI (Interface Control Information) :
les informations de contrôle servant à paramétrer la demande de service (par ex. nb d'octets de données).
2. SDU (Service Data Unit) :
les données concernées par la demande de service .

Note: Dans les fonctions bibliothèques, ces deux unités sont souvent représentées par des paramètres séparés de la fonction d'appel de service.

Pour transmettre une SDU venant de la couche N+1, la couche N peut devoir la fragmenter et/ou y associer de l'information. Chaque morceau est donc préfixé d'un en-tête d'information PCI (Protocol Control Information, protocol header) lié au protocole de la couche N pour former l'unité de donnée du protocole N PDU (Protocol Data Unit) qui est envoyée à l'entité paire par l'intermédiaire des services de la couche sous-jacente.

 

Les données d'une couche supérieure sont opaques pour les couches inférieures: chaque couche ne fait qu'encapsuler (respectivement décapsuler) ces données dans un message où elle inclut ses propres données de contrôle.



x.x. Classification OSI des primitives de service

Ces primitives permettent de demander la réalisation d'une action ou de rendre compte d'une action réalisée par l'entité paire. Dans le modèle OSI les primitives de service peuvent être réparties en quatre classes:

Primitive Origine et signification
Request L'utilisateur de service invoque une fonction.
Indication Le fournisseur de service informe d'un évènement (par ex. demande externe d'établissement d'une connexion).
Response L'utilisateur de service complète une fonction précédemment invoquée par une indication.
Confirm Le fournisseur de service informe de l'accomplissement d'une requête faite à ce point d'accès.

Exemple d'une demande de service de connexion à la couche Transport: