Le modèle OSI et TCP/IP

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


Sur le réseau, des ordinateurs communiquent avec des routeurs et des switch. Ces mêmes routeurs communiquent avec d’autres routeurs qui eux même communiquent avec des bornes d’accès Wi-Fi ou encore des smartphone. Là où je veux en venir c’est que tout ces matériels différents arrivent à communiquer les uns avec les autres. Pour un non informaticien c’est une notion qui est acceptée et qui paraît simple. En revanche pour nous c’est plus compliqué.

La raison pour laquelle tout ça fonctionne c’est parce que toutes les machines utilisent les mêmes protocoles et respectent un modèle : le modèle OSI !

Qu’on soit clair, le modèle OSI est un modèle théorique. Dans la réalité nos machines utilisent des implémentations du modèle OSI comme par exemple le modèle TCP/IP qui sera décrit en deuxième partie.

I/ Le modèle OSI

Le modèle OSI est constitué de sept couches : application, présentation, session, transport, réseau, liaison de données et physique. Chacune de ces couches peut communiquer avec celle qui est au dessus ou en dessous d’elle.

La couche présentation peut donc communiquer avec la couche application et la couche session.

modeleosi

Lorsqu’un message est envoyé sur Internet il va passer par ces sept couches en commençant par la couche application. Puis il va descendre dans les six autres couches et lorsqu’il atteindra la couche physique il sera envoyé sur le réseau.  Le message va arriver chez le destinataire et repasser par ces sept couches en commençant par la couche physique puis en remontant vers la couche application. A chaque fois que le message passera dans une couche il récupérera des informations supplémentaires.

La septième couche est la couche application. C’est le service applicatif qui est au plus proche de l’utilisateur. Lorsque l’on écrit un mail on se sert d’un client mail. Le client mail est donc le service applicatif le plus proche de nous. Quand on navigue sur Internet, le service applicatif le plus proche de nous est le navigateur web.

Un mail, c’est un ensemble de lettres qui forment des mots. Parfois dans les mails on a la possibilité d’éditer du code HTML. Or encore une fois le HTML c’est des lettres qui forment des mots. Il faut donc que quelque part, quelque chose fasse la différence entre le texte, le code HTML et potentiellement les images etc… Ça c’est la couche présentation qui s’en charge. Concrètement elle s’occupe de gérer la mise en page ainsi que de compresser/chiffrer/déchiffrer les données.

La couche session, comme son nom l’indique, gère la synchronisation des communications ainsi que la gestion des transactions entre deux clients. Le bon déroulement des communications au cours de la session donc.

Une fois passé dans ces trois couches on obtient nos données auxquelles ont été ajouté quelques informations superficielles (d’un point de vue réseau) :

donnees

La couche transport est la quatrième couche du modèle OSI. C’est elle qui va s’occuper de la fragmentation des données en paquets et vérifier si ces paquets ont été transmis et reçus par le destinataire. Deux protocoles majoritaires sont utilisés par la couche transport : TCP et UDP.

TCP est un protocole de transport beaucoup plus fiable que UDP pour la simple est bonne raison qu’il s’assure que le destinataire a reçu la totalité des paquets envoyés. Dans le cas contraire il renverra les paquets manquants.

UDP lui est beaucoup moins stricte sur la gestion des paquets. Mais il est du coup bien plus rapide que TCP.

Donc si vous avez besoin d’envoyer un rapport super important à votre chef vous allez utiliser TCP (pour être sur que votre fichier arrivera intact). Par contre si vous regardez un live vous allez utiliser UDP (en effet si vous perdez une image du stream sur les 24 par seconde ce n’est pas grave).

La couche transport va donc ajouter une entête TCP ou UDP à vos données. Ces entêtes ressemblent à ça :

Pour les deux protocoles on retrouve le port source ainsi que le port destination, la taille du paquet et le checksum qui permet de vérifier l’intégrité du paquet. Pour TCP on a par contre quelques champs supplémentaires qui sont très bien détaillés sur Wikipédia 😉 !

Nos données sont donc encapsulés et on y ajoute le Transport Header :

segment

Ensuite le segment passe dans la couche suivante, c’est à dire la couche réseau. Ici va être ajouter une entête IP (Network Header) dans laquelle on trouvera notamment l’adresse IP de l’émetteur et du destinataire. On y trouvera aussi d’autres informations telles que le TTL (Time To Live) qui indique la durée de vie du paquet sur le réseau.

enteteip.png

Le détail de l’entête IP est disponible ici.

Après son passage dans la couche réseau notre paquet ressemblera à ça  :

paquet

Puis le paquet passe dans la couche liaison de données ou il va être encapsuler et où on va y ajouter les adresses MAC des émetteurs/destinataires (entres autres).

On obtient une trame fonctionnelle :

trame

Petit subtilité ici, la couche liaison de données est divisée en deux sous-couches :
-La couche Logical Link Control (LCC)  qui place dans la trame les informations qui indiquent quel protocole de couche réseau est utilisé (IPv4 ou IPv6 par exemple).
-La couche Media Access Control (MAC) qui grossièrement sert d’intermédiaire entre la couche physique et la sous-couche LCC, elle indique à la couche physique si les trames seront envoyées sans fil (Bluetooth, Wi-Fi) ou avec fils par exemple.

Il n’y a plus qu’à traduire la trame en binaire puis la convertir en signal électronique et l’envoyer sur le réseau (via un câble ou des ondes hertziennes). Et ça c’est la couche physique qui le fait !

Voilà pour le modèle OSI ! Bon, comme je vous l’ai dit plus haut, le modèle OSI est un modèle théorique. Il y a plusieurs implémentations du modèle OSI dont le fameux modèle TCP/IP.

II/ Le modèle TCP/IP

Le modèle TCP/IP comme je l’ai dit dans l’introduction est une implémentation du modèle OSI. La grosse différence entre OSI et TCP/IP c’est qu’avec OSI il y a sept couches alors qu’avec TCP/IP il n’y en a que quatre !

tcpip

En fait les couches application, présentation et session d’OSI sont regroupées en une seule couche sur TCP/IP  : la couche application. Les couches transport et réseau sont identiques sur les deux modèles. Les couches liaisons de données et physique du modèle OSI sont regroupées dans la couche réseau sur le modèle TCP/IP.

Alors concrètement qu’est ce que ça change ? Rien du tout. Bah ouais, le modèle TCP/IP c’est une implémentation du modèle OSI donc au final les deux fonctionnent presque identiquement. Le modèle TCP/IP est juste plus simple à comprendre.

2 commentaires

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s