Le modèle OSI, "la scène"


Cet article inaugure la série "La danse des protocoles", où nous explorons comment les protocoles réseau collaborent pour créer nos infrastructures modernes.

Diviser pour mieux régner

Connaissez-vous le dicton « diviser pour mieux régner » ?

Bon, si vous avez eu des cours d’histoire, vous l’avez probablement déjà entendu. Mais saviez-vous que ce principe est vrai pour beaucoup d’autres aspects de la vie, notamment dans les réseaux.

Là vous vous demandez surement ce que j’ai fumé avant d'écrire l'article, et la réponse est « absolument rien » (oui je sais, c’est surprenant). La séparation du réseau en plusieurs couches, vous en faites l’expérience tous les jours, et cela sans même le réaliser. C’est d’ailleurs elle qui fait que votre téléphone fonctionne tout aussi bien en Wi-Fi qu’en 5G (ou 4G si votre portable n’est pas compatible).

Mais alors, à quoi est-ce que cela sert de séparer le réseau en couche ?

Cela sert à pouvoir garantir l’indépendance des protocoles vis-à-vis des couches inférieures. Ce que je viens de vous dire, c’est un principe de base, normalement inviolable, du modèle que je vais vous présenter.

Pour comprendre ce principe d’indépendance des couches, prenons un exemple assez simple.

Une petite analogie

Supposons que j’ai des amis au Canada et que je veuille leur envoyer une lettre (parce qu’apparemment on est dans les années 30). Quelles seront les étapes ? Les étapes sont les suivantes : j’écris la lettre, je la poste, la lettre est transportée jusqu’au siège des envois internationaux, la lettre traverse l’Atlantique en bateau, elle est transportée jusqu’à la poste locale, puis livrée et enfin lue par mes amis. Facile, non ?

L'indépendance des couches

L'indépendance des couches

Maintenant, si je change le transport par bateau par un service aéropostal, est-ce que les autres étapes changent ? Pas du tout, j’aurais toujours à écrire ma lettre, j’aurais toujours à la poster, etc.... Et tout ça, c’est grâce au principe d’indépendance de ces fameuses couches.

Bon, on verra que ce principe n’est pas toujours vrai, dans notre cas, le fait de passer par le télégramme aurait changé certaines étapes intermédiaires mais pas celles des extrémités.

Bon, assez parlé de sujets connexes, passons au réseau.

Les sept couches

Le modèle dont on va parler date de 1984 (oui c’est vieux) et a été amendé en 1994. C’est le modèle OSI pour Open Systems Interconnection et il a été développé par une agence (pas très connue...) appelée ISO. Il est divisé en 7 couches, chacune ayant une ou plusieurs fonctions propres et des protocoles associés. Le nom de la donnée transitant sur chaque couche est aussi différent suivant celle que l’on considère.

En termes de vocabulaire, une couche rend service aux couches supérieures et s’appuie sur les services des couches inférieures. De plus, les données passées par les couches supérieures sont dites encapsulées et les données des couches inférieures sont désencapsulées.

Les 7 couches sont, de bas en haut, « Physique », « Liaison de données », « Réseau », « Transport », « Session », « Présentation » et « Application ».

Le modèle OSI

Le modèle OSI avec les principes d'encapsulation et de désencapsulation

Couches réseau (1-4)

La couche physique a pour responsabilité d’assurer la transmission fiable de bits sur un médium physique (un câble, une fibre optique, des ondes dans le cas du Wi-Fi ou de la 5G, ...).

La couche liaison de données à deux fonctions : elle gère l’accès au médium, notamment les problèmes de collisions d’informations, et est aussi responsable du contrôle de l’intégrité de la transmission des trames grâce à des codes détecteurs et correcteurs d’erreurs.

La couche réseau est responsable de la détermination des chemins empruntés par les paquets entre leur source et leur destination. Cela inclut le contrôle de congestion, qui vise à éviter les embouteillages, à prévenir la saturation des tampons d’entrée des nœuds réseau, et à prendre en compte l’indisponibilité temporaire de certains liens.

La couche transport est responsable de la fiabilité de la transmission entre l’émetteur et le récepteur. C’est notamment elle qui prend en charge la segmentation des paquets en segments de dimension inférieure et la retransmission de segment en cas d’erreur.

Couches applicatives (5-7)

Je serais bien tenté de vous présenter les 3 restantes, mais elles ne font pas partie à proprement parler du domaine des réseaux. Elles se classifieraient plus comme des couches "applicatives" qui permettent de traiter les données arrivant depuis ou vers la couche 7 pour les transformer de manière adaptée.

Les protocoles associés

Comme je vous l’avais dit, chaque couche possède aussi une myriade de protocoles propres, dont certains qui débordent même sur d’autres couches...

Pour la couche 1, on va retrouver des protocoles désuets comme le SDH ou le PDH et des protocoles plus modernes comme le Wi-Fi (oui, on dit le et pas la) ou les xDSL.

Dans la couche 2, on va trouver le mythique protocole Ethernet, dont vous avez surement entendu parler quand on vous a présenté une box avec n ports Ethernet 2.5Gbit/s dessus (sigh...). Là aussi, on trouve des protocoles plus vieux, comme le X.25 qui était utilisé notamment par le Minitel (R.I.P).

En couche 3, on trouve le plus souvent un protocole universel aujourd’hui : l’IP (v4 ou v6, on s’en fout pour le moment). On trouve aussi certains protocoles de routage qui opèrent directement au niveau réseau, comme le RIP pour Routing Information Protocol ou l’OSPF pour Open Shortest Path First. Le RIP est un protocole obsolète qui n’est plus vraiment utilisé de nos jours, sauf en cours de réseau puisqu’il est très simple à comprendre et manipuler.

Et enfin, pour la couche 4, les protocoles les plus connus sont le TCP et l’UDP. Pour le moment, je ne vous détaille pas la différence entre les deux, cela fera l’objet d’un futur article.

Sachez aussi que certains protocoles peuvent s’étaler sur plusieurs couches, comme le MPLS (pour Multi-Protocol Label Switching) qui opère à la couche trois tout en utilisant les mécanismes de commutation de la couche 2. On dit que le MPLS est un protocole de couche 2.5, ce qui est assez douloureux puisque cela veut dire que les deux couches ne sont pas indépendantes dans ce cas.

Quelques exceptions

Et justement, cela nous ramène à une remarque que j’avais faite tout à l’heure à propos des exceptions à ce grand principe d’indépendance. On vient de voir que le MPLS viole le principe, mais l’Ethernet aussi puisqu’il comporte un champ dit Ethertype dans son entête permettant de détailler la nature du protocole de couche supérieure contenue dans la trame. En réalité, il existe une myriade de protocoles qui le viole, cependant, nous n‘avons pas le temps de tous les détailler si je veux que l'article ne fasse pas 10 000 lignes.

L'exception du MPLS

L'exception du MPLS

Conclusion

Le modèle OSI nous donne le vocabulaire commun pour comprendre comment les protocoles réseau interagissent. Même si certains protocoles violent le principe d'indépendance (MPLS, Ethernet, ...), ce modèle reste l'une des références (avec le modèle TCP/IP) pour structurer notre compréhension des réseaux.

Maintenant que la "scène" est plantée, nous pouvons explorer comment chaque protocole y joue son rôle. Dans le prochain article de la série "La danse des protocoles", nous découvrirons l'Ethernet, le rythme de base qui fait danser nos réseaux locaux modernes.


Prochain épisode : Ethernet : "le métronome" - Comment ce protocole de couche 2 orchestre nos communications locales.

Add a comment