1NSI: Réseaux - Le Modèle OSI⚓︎
Introduction⚓︎
Qu'est-ce que le Modèle OSI?⚓︎
Définition⚓︎
Le est une
- La modélisation OSI se décompose en \(7\) couches (par opposition au modèle TCP/IP qui en contient seulement \(4\))
- C'est un Modèle Théorique, Académique
- Les couches sont aussi désignées par leur
numéro (de couche / de niveau) - On associera à chaque couche des rôles, des services, des protocoles et du matériel
- PDU est le nom générique donné à l’encapsulation correspondante à une couche
Il s'agit donc d'une manière de penser, d'organiser, de modéliser la communication entre systèmes informatiques interconnectés, en plusieurs niveaux d'abstraction.
Nom des \(7\) Couches⚓︎
Nom des PDU par Couche⚓︎
Nous avons dit que chaque couche de l'hôte source communique avec la même couche de l'hôte destination, en ayant pris soin de morceller les données en PDU ou Unités de Données de Protocole. Les PDU de chaque couche portent des noms différents :
Rôle de chaque couche⚓︎
La Couche \(7\). Application⚓︎
La Couche \(7\) - Couche Application, ou niveau Applicatif, est l'interface entre l'utilisateur et le réseau. C'est la couche la plus proche de l'utilisateur. Elle est gérée directement par les applications/logiciels.
La couche \(7\) est le point d'accès aux Services réseaux, qui implémentent les protocoles sur des (numéros de) ports associés spécifiques (à chaque service). Elle fournit par exemple, des services standards tels que le transfert, les opérations en Lignes de Commandes (CLI) de terminal virtuel (par ex. SSH, ..), de fichiers et de travaux (d'impression, etc..).
La couche \(7\) est en charge d'initier ou accepter une requête réseau.
Types de Logiciels | Services | Ports Non Sécurisés Associés (Déconseillés) |
Ports Sécurisés Associés (Conseillés) |
---|---|---|---|
Courrier électronique | SMTP (envoi) POP \(^{*}\) (réception) IMAP \(^{*}\) (réception) |
\(25\) \(110\) \(143\) |
\(465\) (SSL) ou \(587\) (STARTTLS) \(995\) (SSL) \(993\) (SSL) |
Transport de Fichiers | FTPSFTP | \(21\) | \(22\) |
Transport de Page Web Serveur Web (Apache, ..) |
HTTPHTTPS | \(80\) | \(443\) |
Communication en Ligne de Commande |
TelnetSSH | \(23\) | \(22\) |
Système de Noms de Domaine |
DNS DNSCrypt DNS over HTTPS DNS over TLS etc.. |
\(53\) | \(443\) \(443\) \(853\) etc.. |
Serveur de Base de Données |
MySQL PostgreSQL |
\(3306\) \(5432\) |
La Couche \(6\). Présentation⚓︎
La Couche \(6\) - Couche Présentation est chargée du codage des données applicatives en des formats compréhensibles par les applications, et réciproquement, en octets bruts (pour les transmettre aux couches inférieures).
La couche \(6\) est en charge de :
Encodage/Formattage des données (Présentation)⚓︎
L'Encodage/Formattage des données (Présentation) : Conversion entre formats de données manipulées au niveau applicatif et chaînes d'octets bruts effectivement transmises, dont notamment les normes:
- Les Normes des Textes/Caractères: ASCII, UTF-8, etc..
- Les Normes de Données : CR vs CR/LF
- Les Normes des Images: BMP, JPEG (/JPG), PNG, GIF, WEBP, etc..
- Les Normes des Audios/Vidéos: MPEG, AVI, MP3, etc..
Compression des données⚓︎
Cryptage/Chiffrement des données⚓︎
La Couche \(5\). Session⚓︎
La Couche \(5\) - Couche Session (norme ISO 7498-1) Contrôle la communication entre les divers hôtes. Une communication entre ordinateurs suppose de nombreuses conversations courtes (commutation de paquets) avec en plus, d’autres communications pour s’assurer de l’efficacité de la communication.
La couche \(5\) est en charge de:
Gèrer l'Authentification⚓︎
La couche \(5\) est en charge de gérer l'Authentification (garantir qui est qui?) de l'entité (individu ou hôte) qui souhaite communiquer. Authentifier, c'est garantir qu'il s'agit bien de cette entité. Ainsi, l' ou
, est un procédé permettant au système de s'assurer de l'identification d'une entité (individu ou hôte). En pratique, il existe plusieurs facteurs d'authentification (des mécanismes pouvant être utilisés pour authentifier). Lorsque deux (ou plusieurs..) facteurs d'authentification sont conjugés, on parle d'Authentification à 2 facteurs (ou forte)
, ou 2FA - Two Factor Authentication
.
Dans le cas d'un individu, par exemple, voici quelques facteurs d'authentification possibles/usuels:
- des identifiants (identifiant et mot de passe) mais on peut également utiliser
- des certificats électroniques (par exemple au format X.509), encore appelés des certificats numériques ou certificat à clé publique (sorte de carte d'identité numérique), qui est signé (par cryptographie) par un tiers de confiance (souvent une autorité de certification) qui atteste du lien entre identité physique et l'entité numérique.
- Mot de Passe à usage unique
ou OTP - One Time Password
qui peuvent être implémentées sous plusieurs formes:
- par email: lien magique envoyé par email
- des SMS: code envoyé via SMS
des clés OTP (sous forme de clé USB, ou petit dispositif matériel) qui génèrent des clés aléatoires à usage unique ou Token OTP, ou jeton d'authentification OTP, quelquefois à durée limitée.
- des empreintes biométriques: un résumé numérique de (certaines) caractéristiques biologiques d'un individu
Gérer les Sessions de Connexion⚓︎
La couche \(5\) est en charge de gérer (établir, maintenir et terminer) les Sessions de Connexion, après authentifications, entre les (processus des) applications distantes entre deux (ou plus) hôtes d'un réseau :
- Entre deux hôtes, la communication est de type point à point.
- Entre plus de deux hôtes, les communications sont dites multipoints
Session (de connexion)
Une
est une période délimitée pendant laquelle une entité (un individu ou un hôte) est en communication avec une autre entité. Usuellement, une session commence après avoir authentifié l'entité cliente (un individu ou un hôte) auprès de l'entité serveur.
Après une ouverture explicite de session (càd avec des facteurs d'authentification), on parle encore d'authentification ou de connexion (à la session), ou de session de connexion. Une Session est prévue pour être maintenue, mais il peut exister un mécanisme d'arrêt explicite de la session comme une déconnexion.
Gérer la Synchronisation⚓︎
La couche \(5\) est en charge de gérer la Synchronisation & la Récupération des échanges (en effet, n'importe quel intervenant peut émettre à tout moment) en proposant des points de synchronisation/contrôle dans le flux de données. S'il y a des erreurs dans la connexion, on peut reprendre (roll-back) à un endroit en utilisation les points de synchronisation.
Gérer les Autorisations des Transactions / Jetons / Tokens⚓︎
La couche \(5\) est en charge de gérer les Autorisations des Transactions ou Droit à la parole ou Jeton / Token
afin de gérer les conflits (et/ou les éviter) lors du partage d'un même canal de communication. Cela inclut la gestion des communications Half-Duplex (Dans un seul sens simultanément) et Full-Duplex (Dans les deux sens simultanément)
La couche \(5\) a donc quelque chose à voir avec la Sécurité des communications. Elle coordonne les applications qui communiquent au travers des différents hôtes. Une communication entre ordinateurs suppose de nombreuses conversations courtes (commutation de paquets) avec en plus de cela d’autres communications pour s’assurer de l’efficacité de la communication.
Exemples de Protocoles de niveau \(5\)⚓︎
Les protocoles suivants sont des implémentations correspondent au niveau \(5\) du modèle OSI:
- Cookies : À la première visite d'une page web, un serveur web demande au client de conserver un cookie de session, qui contient un simple identifiant. Lorsque l'utilisateur passe sur une autre page du site, le cookie est envoyé au serveur web en même temps que la nouvelle requête HTTP : le serveur web peut alors retrouver la session d'un utilisateur grâce à l'identifiant stocké dans le cookie.
- HTTP - HyperText Transfer Protocol(plusieurs RFC6) qui est un protocole fiable, orienté connexion (il est basé sur le protocole TCP de niveau \(4\)). Les clients HTTP sont les navigateurs internet.
La Couche \(4\). Transport⚓︎
La Couche \(4\) - Couche Transport gère les communications de bout en bout entre processus (programmes en cours d'exécution). Elle fragmente (et reconstitue) les messages en de petites Unités de Données de Protocoles (PDU) appelés
La couche \(4\) est en charge de:
Communications Point à Point entre processus (Transport)⚓︎
Fiabilité⚓︎
La couche \(4\) est en charge de la Fiabilité des communications: Si on perd des données, on demande une retransmission des données manquantes
- Détection et Correction d'Erreurs:
- Détection : Repérage des PDU dont au moins un bit a changé de valeur lors du transfert.
- Correction : 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
Segmentation et Réassemblage⚓︎
Multiplexage (MUX) et Démultiplexage (DEMUX) des Connexions⚓︎
Multiplexage (MUX) / Démultiplexage (DEMUX) des connexions
La couche \(4\) a certains (mais pas tous) objectifs et fonctions communs à ceux de la couche \(3\).
Exemples de Protocoles de niveau \(4\)⚓︎
Les protocoles suivants sont des implémentations correspondent au niveau \(4\) du modèle OSI:
- TCP - Transfer Control Protocol(RFC 7934) qui est un protocole fiable, orienté connexion (handshaking)
- UDP - User Datagram Protocol (RFC 7685) qui est un protocole non fiable, non orienté connexion
- Chacune de ces implémentations définit la notion de (numéro de)
port (TCP vs UDP). Cf Modèle TCP/IP.
La Couche \(3\). Réseau⚓︎
La Couche \(3\) - Couche Réseau est en charge de :
Fragmentation / Défragmentation⚓︎
La couche \(3\) est en charge de Fragmenter (hôte source) / Défragmenter (hôte destinataire) les messages en Unités de Données de Protocole (PDU) appelés
Adresser les interfaces réseau de manière globale⚓︎
Router les messages (les paquets) dans les inter-réseaux⚓︎
La couche \(3\) est en charge de Router/Acheminer les messages (les paquets) dans les inter-réseaux, de proche en proche (de routeur en routeur) jusqu'à leur destination finale, en utilisant les adresses logiques (les adresse IP) source et destination. Cette fonction est appelé le ou
, qui sont des systèmes intermédiaires sur la route qui va de la source à la destination.
Déterminer les meilleurs chemins pour les paquets⚓︎
Déterminer les
Exemples de Protocoles de niveau \(3\)⚓︎
Les protocoles suivants sont des implémentations correspondent au niveau \(3\) du modèle OSI:
- IP - Internet Protocol
- ARP - Address Résolution Protocol est un protocole de Résolution d'adresse IP d'un hôte à partir de son adresse MAC (unique) dans un réseau local. En pratique, dans un certain hôte donné, la table ARP est un tableau reliant les adresse IP des hôtes connus (à un instant donné) à leurs adresses MAC.
- DNS - Domain Name System est un
S ystème hiérarchique de résolution deN oms de Domaines, qui utilise sur un protocole du même nom.
Matériels Usuels de niveau \(3\)⚓︎
Les routeurs sont des exemples classiques de matériels opérant sur le niveau \(3\) Réseau du modèle OSI.
Certains switchs dits
La Couche \(2\). Liaison Données⚓︎
La Couche \(2\) - Couche Liaison de Données gère les communications entre deux machines connectées entre elles dans le même réseau (connectées directement, ou interconnectées via un hub / concentrateur
, ou même un switch
/ commutateur
, de niveau \(2\)) (mais pas un routeur qui est de niveau \(3\), et les hôtes ne sont pas le même réseau).
La couche Liaison de Données est usuellement subdivisée en deux sous-couches2 :
- la sous-couche Haute
Contrôle de la Liaison Logique ou
LLC - Logical Link Control (proche de la couche Réseau)
- la sous-couche Basse
Contrôle d'Accès au Media ou
MAC - Medium Access Control (proche de la couche Physique)
La sous-couche haute LLC - Logical Link Control⚓︎
La sous-couche (moitié haute)
- Multiplexer (MUX) les protocoles supérieurs à la couche \(2\) (liaison de données): cela se traduit en pratique par la segmentation des données en Trames (les PDU de niveau \(2\)) pour faciliter leur envoi mélangé avec celles d'autres protocoles. Sur la figure ci-dessous, les boules de couleur représentent les Trames pour chaque protocole. et Démultiplexer (DEMUX) dans le sens contraire.. (regrouper les trames selon leur protocole initial)
-
Fiabiliser le protocole MAC en y ajoutant:
-
un Contrôle d'Erreur orienté caractère: des pertes, des doublons, des inversions d'ordre des trames, des erreurs dans la transmission d'une trame (support imparfait. Il peut se rompre ou générer des erreurs de transmission). Plusieurs technologies peuvent être utilisées pour le Contrôle d'Erreur:
- Avec un Bit de Parité ou Contrôle de Parité Verticale
, ou VRC - Vertical Redundancy Check
. Par exemple, tous les \(7\) bits on ajoute un bit de parité/ bit de contrôle)
Données émises + Bit de Contrôle Données reçues
+Bit de Contrôle Contrôle d'erreurs 1101101 1 1101101 1 Pas d'erreurs 1101101 1 1100101 1 Erreur: car parité calculée par
le récepteur: 0
\(\ne\) Bit de Contrôle (1 )-
avec des Checksums
ou Sommes de Contrôle
ou fonctions de Hashages
(quelquefois appelées Hashs) ou Empreintes (numériques)
. Ce sont une suite de plusieurs caractères (calculés grâce à une fonction de Hashage de même nom) utilisés fréquemment pour caractériser de manière unique des fichiers/données (en général et en pratique, pour "résumer" de grandes quantités de données/de très gros fichiers) de manière à pouvoir vérifier d'un simple coup d'oeil si les données reçues sont conformes à ce qu'elles devraient être. Ou pas. Il s'agit d'une généralisation des bits de parité. Il existe de nombreuses Checksums/Sommes de Contrôle (ou fonctions de Hashage). Parmi les plus connues ou les plus évoluées, on peut citer: MD5 (daté), SHA-2 dont notamment Sha-256 et Sha-512), etc.. (elles sont très nombreuses)
Exemple:
-
CRC - Cyclic Redundancy Check ou Code de Redondance Cyclique (le plus classique), permet de détecter et corriger les Erreurs et demander leur retransmission (ARQ - Automatic Repeat Request)
- Avec un Bit de Parité ou Contrôle de Parité Verticale
-
un Contrôle de Flux. Le contrôle de flux est un asservissement du débit binaire de l'émetteur vers le récepteur, pour éviter les congestions. La plus simple et connue étant le Stop & Wait:
- Émetteur: Transmet un segment à la fois
- Récepteur: transmet un
acquittement (ACK) pour signaler la bonne réception (segment perdu ou erreur de transmission), pour chaque segment envoyé, afin de s'assurer de la bonne réception, - Émetteur: Reçoit le ACK au plus tard après une certaine période de temps, appelée
Time Out . - En cas de mauvaise réception du segment, il doit être retransmis, selon une procédure appelée
ARQ (Automatic Repeat reQuest)
un Contrôle de congestion qui est la manière de gérer le flux de données après que la congestion ait eu lieu.
-
La couche Liaison de Données est commune à Tous les sous-réseaux Physiques de type IEEE 8022. Concrètement, la couche LLC peut être par exemple un driver d'un périphérique matériel.
La sous-couche basse MAC - Medium Access Control⚓︎
La sous-couche (moitié basse)
- Reconnaître le début et la fin des trames, on parle de
cadrage des Trames , dans le flux binaire reçu de la couche physique - Délimiter les trames envoyées en insérant des informations (comme des bits supplémentaires) dans ou entre celles-ci, afin que leur destinataire puisse en déterminer le début et la fin ;
- Détecter les erreurs de transmission, par exemple à l'aide d'une somme de contrôle (
checksum ) insérée par l'émetteur et vérifiée par le récepteur - Insérer les
adresses MAC \(^{*}\) de la source et de la destination dans chaque trame transmise, - Filtrer les trames reçues en ne gardant que celles qui lui sont destinées, en vérifiant leur adresse MAC de destination
- Contrôler l'accès au média physique lorsque celui-ci est partagé, en particulier de définir le protocole d'accès au support.
Adresses MAC⚓︎
Adresse MAC - Media Access Control
- Une
adresse MAC - Media Access Control ouadresse de Contrôle d'Accès au Media , parfois nomméeadresse physique , est un identifiant unique stocké dans une carte réseau ou une interface réseau. Elle identifie donc de manière unique ce matériel, c'est pourquoi elle est quelquefois appelée uneadresse physique . - En pratique, Une
adresse MAC est constituée de \(6\) octets, soit \(48\) bitset est généralement représentée sous la forme hexadécimale en séparant les octets par un double point. Par exemple5E:FF:56:A2:AF:15
Comment connaître l'adresse MAC d'une carte réseau sur un OS?
- Sur Windows:
C:> ipconfig/all
- Sur Mac OS:
$ networksetup -listallhardwareports
- Sur Linux:
$ ip address
Adresse MAC Constructeur
Les \(6\) octets d'une adresse MAC sont classiquement divisées en deux parties égales:
- Les \(3\) premiers octets (24 bits) sont des octets correspondent au constructeur de la carte réseau/interface réseau.
- Cette première partie (préfixe) contructeur est attribuée par l'IEEE à chaque constructeur.
- Un Constructeur peut avoir plusieurs préfixes
- la page maclookup, par exemple, est un annuaire renversé:
Constructeur | Adresse réservée (\(3\) Octets) |
---|---|
Cisco | \(00000C\) |
Intel | \(00AA00\), \(001111\), etc.. |
Gigabyte | \(001485\), \(0013F3\), etc.. |
IBM | \(00AA00\), \(0002B3\), etc.. |
3Com | \(0000D8\), \(0020AF\), etc.. |
- les \(3\) derniers octets sont caractéristiques de la carte réseau/interface réseau
La couche MAC interface LLC avec le type de sous-réseau physique, elle est différente d'un sous-réseau physique à l'autre. On assure ainsi l'indépendance des logiciels des couches supérieures vis à vis des caractéristiques physiques du sous-réseau.
Exemples de Protocoles de niveau \(2\)⚓︎
Les protocoles suivants sont des implémentations correspondent au niveau \(2\) du modèle OSI:
- PPP - Point to Point Protocol : Protocole non ISO, mais défini par l’IETF sous une RFC, permettant l’acheminement du protocole IP (et d’autres) sur un lien série en communication synchrone ou asynchrone, équilibrée ou non, et offrant nombre de services tels que l’authentification d’accès.
- Le Protocole Ethernet (IEEE \(802.3\)) & le Wi-Fi (IEEE \(802.11b\)), pour le raccordement au réseau avec ou sans fil
Matériels Usuels de niveau \(2\)⚓︎
Les switchs ou Commutateurs
sont des exemples classiques de matériels opérant sur le niveau \(2\) Liaison de Données. (attention: il existe néanmoins des switchs dits administrables, ou de niveau 3)
La Couche \(1\). Physique⚓︎
La Couche \(1\) - Couche Physique est chargée de la transmission effective et brute des signaux (bits) sur un canal de communication:
- sur une paire de cuivre, c’est :
- un signal électrique qui définit le \(0\) et
- un autre signal électrique qui définit le \(1\)
- sur une fibre optique, c’est la lumière envoyée dans la silice qui s’en occupe
- sur du sans-fil, c’est la modulation
- etc..
La définition de connecteurs, des câbles ou antennes font partie de cette couche. En général on considère que les cartes réseau, les modems et les concentrateurs (hubs) en font aussi partie.
Une autre fonction de cette couche est de sérialiser l'information, càd de transformer les octets en éléments binaires (bits) et vice versa pour pouvoir émettre ou recevoir sur les canaux de communication. Cette transformation doit être effectué à un rythme qui est imposé par la vitesse (débit binaire) de l'interface. L’un des objectifs de conception de ce niveau est de s’assurer qu’un bit à \(1\) envoyé sur une extrémité arrive aussi à \(1\) de l’autre côté et non à \(0\) Les questions que l’on se pose portent généralement sur :
- les signaux électriques à utiliser pour représenter un \(1\) et un \(0\)
- le nombre de nanosecondes que doit durer un bit,
- la possibilité de transmission bidirectionnelle simultanée (Full Duplex), ou pas (Half Duplex)
- la façon dont une connexion initiale est établie (avec connexion, ou sans) puis libérée lorsque les deux extrémités ont fini, ou encore
- le nombre de broches d’un connecteur et
- le rôle de chacune des broches
Les problèmes de conception concernent principalement les interfaces mécaniques et électriques et la synchronisation, ainsi que le support physique de transmission sous-jacent à la couche physique.
Résumé⚓︎
N° Couche | En charge de |
---|---|
\(7.\) Application | C'est l'Interface visible par l'Utilisateur. Fournit des Services (Applicatifs) pour les Protocoles (Applicatifs) sur des Numéros de Ports. Ex: Protocoles : SMTP, HTTP, SSH, ... sur les Ports: 25, 80, 22, .. |
\(6.\) Présentation |
|
\(5.\) Session | Décide d'établir ou de terminer la session de connexion (socket), le "droit à la parole" ou jeton , la Synchronisation, etc.. |
\(4.\) Transport | Segmente et reconstitue le message en segments numérotés et vérifie la fiabilité de la transmission (TCP, UDP) |
\(3.\) Réseau | S'occupe du routage des paquets, du trajet entre source et destination, donne une adresse logique (IP) |
\(2.\) Liaison de données |
S'occupe des adresses physiques (MAC, LLC), des trames au niveau local (LAN) |
\(1.\) Physique | Transmet de manière effective les bits (Ethernet, Wifi, etc..) |
Avantages / Désavantages du Modèle OSI⚓︎
Quelques avantages de ce modèle sont :
- Modularité: Une division de la communication réseau en éléments plus petits et plus simples (les couches) pour une meilleure compréhension. Chaque protocole opérant sur chaque couche pourra ainsi, si besoin, être simplement remplacé relativement aisément. On peut aussi modifier un aspect de la communication réseau sans modifier le reste (par ex. : un nouveau média).
- Abstraction Constructeur: L’approche et l'uniformisation purement théorique des éléments du modèle permet le développement multi-constructeur, sans être biaisé envers une technologie particulière. C'est une qualité malgré l'absence d'implémentation pratique.
- Modèle de Référence, International: Il s'agit d'une norme internationale, qui est un modèle de Référence très détaillé qui s'est avéré très utile, bien qu'académique. Il couvre de vastes sujets.
- Séparation Fonctionnelle: Un avantage majeur du modèle OSI1 est qu'il différencie très clairement les notions de:
- Services
- Protocoles
- Interfaces
Quelques inconvénients/imperfections seraient:
- Des catégorisations (quelquefois) arbitraires : L'une des conséquences de manque d'implémentation sont les décisions quelquefois arbitraires qui ont dû être prises quant à l'appartenance à une couche ou une autre, pour une certaine fonctionnalité.
- Une inégalité dans la description et l'importance des couches:
- Les couches Présentation et Session du modèle OSI, par exemple, ne font pas grand chose, tandis que
- la couche Liaison de Données a dû être sub-divisée en deux sous-couches (LLC et MAC).
- Un Manque d'Implémentation... : L' insuccès du modèle OSI, par comparaison au succès de l'implémentaion TCP/IP. Les imperfections du modèle OSI, cumulés au succès de la Pile de Protocoles TCP/IP, ont contribué au manque de succès des tentatives suivantes d'implémentation d'une Pile de protocoles basés sur le modèle OSI.
Notes et Références⚓︎
-
En fait, l'implémentation de la couche \(2\) se fera plus précisément dans certains réseaux: les réseaux MAN - réseaux métropolitains , et les réseaux LAN - réseaux locaux. Cf le cours sur le Modèle TCP/IP) :
cf. Normes LAN et MAN, IEEE 802, wikipedia ↩↩