Le modèle OSI () est une norme de communication de tous les systèmes informatiques en réseau. C'est un modèle de communications entre ordinateurs proposé par l'ISO (Organisation internationale de normalisation) qui décrit les fonctionnalités nécessaires à la communication et l'organisation de ces fonctions.
Histoire Le modèle OSI est conçu dans les années 1970, sur fond de rivalités entre trois architectures de conceptions différentes : la DSA lancée par CII-Honeywell-Bull innove dans l'informatique distribuée en mettant en avant les mini-ordinateurs Mitra 15 puis Mini 6, tandis que Decnet, de DEC, et SNA d'IBM donnent une plus grande place au site central, qui contrôle l’ensemble des ressources matérielles et logicielles, tandis que les utilisateurs accèdent aux ressources du réseau à travers une via des terminaux passifs.
Hubert Zimmermann est recruté en 1971 à l'INRIA par Louis Pouzin pour développer le datagramme qui est une technologie suscitant un enthousiasme international"D’une informatique centralisée aux réseaux généraux : le tournant des années 1970", par Valérie Schafer, historienne, le 10 février 2009 sur Interstices et qui est appuyée par la CIIEntretien avec Louis Pouzin, par Isabelle Bellin, sur Interstices . Responsable et secrétaire"Le réseau CYCLADES et Internet : quelles opportunités pour la France des années 1970 ?" Séminaire Haute Technologie du 14 mars 2007 du Comité d'histoire du Ministère des finances du groupe de travail , au sein de l'Organisation internationale de normalisation, Hubert Zimmermann est le concepteur de la première version de l’architecture OSI, selon Vinton Cerf; il est épaulé par le spécialiste des bases de données, Charles Bachman.Interview de Charles Bachman sur "Oral History". Les PTT français refusent le datagramme et le réseau Cyclades"De Paul OTLET à INTERNET en passant par HYPERTEXTE" uhb.fr, septembre 1997, pour lui préférer Transpac"La France en réseaux (1960-1980)", par Valérie Schafer.
C'est en que Charles Bachman présente son modèle de communication en 7 couches dans le document ISO/TC97/SC16/N34.
Les opérateurs télécoms européens, tous nationalisés, le combattent. C'est ce retard, sa résilience moindre et sa relative fermeture qui conduisent la norme OSI à être supplantée par TCP/IP dans le domaine de l'Internet naissant, adopté par le réseau Arpanet le (en remplacement du protocole NCP.).
L'OSI devient une norme en 1984 : la norme ISO 7498:1984norme ISO 7498:1984 du ; elle-même sera révisée en 1994 devenant la norme ISO/IEC 7498-1:1994norme ISO/IEC 7498-1:1994."Des logiciels partagés aux licences échangées", sous la direction de : Camille Paloque-Berges et Christophe Masutti, dans "Histoires et cultures du Libre" ;
Aperçu La norme complète, de référence ISO 7498, est globalement intitulée « Modèle basique de référence pour l'interconnexion des systèmes ouverts (OSI) » et est composée de quatre parties : Le modèle de base (ref. 7498-1) Architecture de sécurité (ref. 7498-2) Dénomination et adressage (ref. 7498-3) Cadre général de gestion (ref. 7498-4)
La version de cet article ainsi que les articles consacrés à chacune des couches du modèle se concentrent sur la partie 1, révision de 1994. L'UIT-T en a approuvé le texte à l'identique sous le numéro de recommandation X.200. en 1994.
Le texte de la norme proprement dite est très abstrait car il se veut applicable à de nombreux types de réseaux. Pour la rendre plus compréhensible, en plus de présenter la norme, cet article fait des liens avec les réalisations concrètes telles qu'on les trouve dans un ordinateur, c’est-à-dire des piles protocolaires concrètes (un « système réel » au sens de la section 4). De plus, la norme n'indique pas de mécanismes propres à assurer les fonctions définies alors que cet article le fait. Les exemples de services et surtout de protocoles sont pris dans le monde dit "IP" (probablement le plus connu mais aussi le plus éloigné de l'esprit de la norme), le monde RNIS (y compris la seconde génération, plus connue sous le nom ATM) et parfois le monde OSI (qui ne fait pas que des modèles).
Les combinaisons offertes par le modèle sont beaucoup plus nombreuses que celles réalisées dans des piles de protocoles existantes, on ne peut donc pas donner d'exemple réel pour toutes les fonctions.
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 ni 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'échange 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.
est une demande de connexion sortante, i.e. à l'initiative d'une entité locale. correspond à l'événement « Une demande de connexion entrante a été reçue. » est l'indication d'acceptation ou de rejet de la connexion correspond à l'événement « La réponse du demandé a été reçue. » C'est un acquittement. , et sont le pendant pour les données.
Les données fournies à une primitive de service sont appelées (N)-SDU (« ») 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 (« »).
Architecture en couches
+ Modèle OSI PDU Couche Fonction Couches hautes Donnée 7 Application Point d'accès aux services réseau 6 Présentation Gère le chiffrement et le déchiffrement des données, convertit les données machine en données exploitables par n'importe quelle autre machine 5 Session Communication Interhost, gère les sessions entre les différentes applications Segment / Datagramme 4 Transport Connexion de bout en bout, connectabilité et contrôle de flux ; notion de port (TCP et UDP) Couches matérielles Paquet 3 Réseau Détermine le parcours des données et l'adressage logique (adresse IP) Trame 2 Liaison Adressage physique (adresse MAC) Bit / Symbole 1 PhysiqueTransmission des signaux sous forme numérique ou analogique
Le modèle comporte sept couches succinctement présentées ci-dessus de bas en haut et détaillées dans leurs articles respectifs. Ces couches sont parfois réparties en deux groupes.
Les trois couches inférieures sont plutôt orientées communication et sont souvent fournies par un système d'exploitation et par le matériel.
Les quatre 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 quatre couches sont rarement distinguées. Dans ce cas, toutes les fonctions de ces couches sont considérées comme faisant 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 « » à l'entité de niveau (N) en lui fournissant comme données un (N+1)-PDU qui sera à 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 « ».
Certaines fonctions comme la détection des erreurs de transmission, leur correction et 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.
La couche « physique » est chargée de la transmission effective des signaux entre les interlocuteurs. Son service est limité à l'émission et la réception d'un bit ou d'un train de bits continu (notamment pour les supports synchrones (concentrateur)). La couche « liaison de données » gère les communications entre deux machines directement connectées entre elles, ou connectées à un équipement qui émule une connexion directe (commutateur). 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). La couche « transport » gère les communications de bout en bout entre processus (programmes en cours d'exécution). La couche « session » gère la synchronisation des échanges et les « transactions », permet l'ouverture et la fermeture de session. 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. 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.
Il existe différents moyens mnémotechniques pour les retenir plus facilement.
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 où cela est très simple : Si le service réseau n'autorise qu'une seule connexion entre deux 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. Si les services des deux couches relatifs à la correction des erreurs sont différents : ces fonctions peuvent n'être présentes que dans une seule des deux couches.
Les fonctions communes Fiabilisation des communications
L'un des rôles majeurs des couches 2 à 4, présentes 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 ni 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.