Modèles réseau
Modèle OSI et modèle TCP/IP Par Quentin SCHUELLER Publié le 24/09/2015 à 00:15:56 Noter cet article: (9 votes)
https://www.supinfo.com/articles/single/365-modele-osi-modele-tcp-ip
Quentin SCHUELLER
Le modèle OSI Le modèle TCP/IP Comparaison entre les deux modèles de référence Conclusions
La plupart des réseaux sont organisés en différentes couches de niveaux. Chaque niveau supérieur est construit suivant les bases du niveau inférieur. Le nombre de niveaux ainsi que leurs contenus est propre à chaque réseaux.
Le but principal d'un niveau est d'offrir ses services au niveau supérieur. Imaginons que le niveau X d'une machine à une conversation avec le niveau X d'une autre machine. Les règles et conventions utilisées pour leur conversation sont ce qu'on appelle le protocole. Un protocole est donc un agrément de communication entre deux ou plusieurs parties.
Dans ce papier nous allons parler de deux modèles assez connus : le modèle OSI ainsi que le modèle TCP/IP.
Les protocoles présents dans le modèle OSI ne sont presque plus utilisés mais ce qui est intéressant est l'architecture présente dans le modèle. Dans le modèle TCP/IP, c'est l'inverse, les protocoles sont très utilisés mais le modèle peu utilisé. Le modèle OSI se veut très théorique mais est nécessaire pour une meilleure compréhension du modèle TCP/IP. Le modèle OSI
Le modèle OSI est basé sur une proposition de l'International Standards Organization (ISO) dans le but de standardiser les protocoles utilisés dans les différents niveaux. Le modèle a été révisé en 1995 et s'appelle désormais l'ISO OSI. OSI signifie Open Systems Interconnection car il fonctionne avec les systèmes ouverts.
Le modèle OSI est composé de 7 couches d'abstractions qui répondent aux critères suivants:
Un nouveau niveau est nécessaire quand une différente couche d'abstraction est nécessaire.
Chaque niveau a une fonction bien définie.
La fonction de chaque niveau doit se faire dans l'optique d'une standardisation des protocoles.
Les limites du niveau doivent être choisies de manière à minimiser les flots d'informations entre les interfaces.
Le nombre de niveaux doit être assez important pour accueillir plusieurs fonctions sans devenir trop imposant pour autant. De la même manière il faut limiter le nombre de niveaux finaux.
Note: le modèle OSI n'est pas une architecture réseau car on ne spécifie pas exactement les services et les protocoles utilisés dans les différentes couches. Seule une définition générale des niveaux est donnée. De plus on parle bien de couches d'abstraction, il ne faut pas prendre au pied de la lettre les noms des couches. Ces noms ne sont pas représentatifs des processus implémentés dans les différentes couches!
Les couches 1 à 3 sont des couches chaînées. Les couches 4 à 7 sont des couches end-to-end. La couche Physique (Physical)
La couche physique (L1) ne transmet que des bits. Elle a été conçue pour interagir directement avec la partie électrique/mécanique et le moyen de transmission physique (physical transmission medium) qui est présent directement en-dessous de la couche Physique. La couche liaison de Données (Data link)
La couche de liaison de données (L2) transforme une transmission brute en une ligne sans erreurs de transmission jusqu'à la couche réseau (L3). Pour cela les données brutes sont découpées en trames (Frames en anglais) comprises entre 100 et 1000 octets. Puis elles sont envoyées de manière séquentielles.
Dans le cas où la connexion est fiable, le destinataire reçoit une confirmation de la bonne réception de chaque trames en envoyant des trames d'Acknowledgement, c'est à dire de bonne réception.
C'est également dans cette couche que se passe une partie de la régulation du trafic. En effet, pour éviter que le destinataire ne soit inondés, il est important que l'expéditeur soit au courant du buffer du destinataire. Enfin c'est dans cette même couche que la gestion des erreurs est gérée pour les trames. La couche Réseau (Network)
La couche réseau est en charge des opérations du sous-réseau. C'est ici que va se dérouler le routage des paquets (packets) : quel route vont emprunter les paquets pour aller de la source à la destination et surtout par quel chemin. Le routage peut être statique ou alors dynamique.
Si trop de paquets sont présents sur le réseau, il se forme des bouchons (bottlenecks). Pour éviter ce genre de cas de congestion, cette couche dispose de mécanismes bien spécifiques.
C'est également dans cette couche que la Qualité de Service (Quality of Service, QoS) est gérée. La couche Transport (Transport)
Le but principal de la couche de transport est de prendre en charge les données qui viennent des couches supérieures, de les découper en plus petits morceaux puis de les faire transiter jusqu'à la couche réseau (L3).
La couche de transport détermine également le type de services qu'il faudra pour la couche Session. Le type de transport de connexion le plus classique est l'envoi des messages ou des octets dans le sens d'envoi. Mais il est possible d'envoyer des messages isolés sans garantie de l'ordre de réception. C'est également dans cette couche que l'envoi des messages de broadcast est fait. De manière générale le type de services proposés est déterminé quand la connexion est établie.
La couche de transport de la source, à la différence des couches inférieures, communique directement avec la couche de transport de la machine de destination. On parle de couche end-to-end. Dans les couches inférieures (1 à 3), des protocoles font la liaison entre les machines et leurs voisins immédiats. La couche Session (Session)
La principale fonction de cette couche est de permettre d'établir des sessions entre les utilisateurs de machines différentes. C'est dans ce niveau que les tokens sont gérés ainsi que la synchronisation. En effet la synchronisation permet de reprendre où la session s'était arrêtée en cas de crash... La couche Présentation (Presentation)
A la différence des autres niveaux, la couche de présentation ne touche qu'à la sémantique et la syntaxe des informations transmises. Ce ne sont plus des bits qui sont manipulés. Ce sont avant tout des représentations de données qui sont communiqués. La couche Application (Application)
C'est dans cette couche que vous retrouverez la plupart des protocoles utilisés par les utilisateurs. On peut citer notamment le protocole HTTP lors de l'accès à une page web, le protocole SMTP pour les mails, le FTP pour le transfert de fichiers... Le modèle TCP/IP
Le modèle TCP/IP est dérivé de l'ARPANET et deviendra plus tard connus sous le nom de worldwide internet. L'ARPANET était à la base un projet militaire de l'armée américaine dont le but était de connecter, via les lignes téléphoniques, une centaines d'universités et d'installations gouvernementales entre elles. L'objectif était de maintenir les communications coûte que coûte après une attaque nucléaire. Pour vous remettre dans le contexte, cette problématique à pris place pendant la guerre froide.
Il en découle un réseau basé sur le routage de paquets à travers une couche appelée Internet. La connexion de cette couche est de type connectionless (sans connexion préalable) : tous les paquets transitent indépendamment les uns des autres et sont routés suivant leur contenu.
Le modèle TCP/IP est donc le modèle utilisé pour Internet.
Le nom de modèle TCP/IP est étroitement lié à deux protocoles : le protocole TCP (Transmission Control Protocol) et le protocole IP (Internet Protocol). Ceci est en partie dû au fait que sont les deux protocoles les plus utilisés pour Internet.
Voici une figure qui illustre la différence entre le modèle TCP/IP et le modèle OSI :
Différences flagrantes : 4 couches pour le modèle TCP/IP et fusion des couches Presentation et Session en une grosse couche Application. La couche Host-to-Network
Couche assez sombre, le modèle TCP/IP en dit peu sur cette couche excepté que l'hôte doit se connecter au réseau depuis certains protocoles de sorte à pouvoir envoyer des paquets IP à travers le réseau. La couche Internet
Le but de cette couche est de permettre d'injecter des paquets dans n'importe quel réseau et de faire en sorte qu'ils arrivent à destination. Tous les paquets ne prendront pas le même chemin pour arriver à bon port, mais ceci n'est pas un problème. S'ils arrivent dans le désordre, un protocole, placé dans une couche supérieur, se chargera de les ordonner.
C'est dans la couche internet qu'est défini le format officiel des paquets et son protocole : le protocole IP pour Internet Protocol. La fonction de la couche internet est de délivrer les paquets IP au bon endroit. Vous l'aurez compris, le routage des paquets est ici très critique et on souhaite éviter une éventuelle congestion.
On peut faire l'analogie avec la couche network du modèle OSI. La couche Transport
Tout comme pour le modèle OSI, la couche de transport permet aux hôtes source et destination de faire une conversation. C'est dans cette couche-ci que sont définis deux protocoles end-to-end pour le transport :
TCP (Transmission Control Protocol), protocole fiable qui nécessite une connexion entre la source et la destination. Le protocole permet de délivrer un flux d'octets, le tout sans erreurs. Le flux d'octets est d'abord découpé en messages, puis les passe les uns après les autres à la couche Internet. Le destinataire réassemble ensuite les messages reçus. Le protocole TCP dispose également de mécanismes de contrôle pour éviter qu'un émetteur trop rapide n'inonde un receveur trop lent.
UDP (User Datagram Protocol), protocole non-fiable qui ne nécessite pas de connexion préalable (sans négociation). Ce protocole ne dispose pas de mécanisme de contrôle de flux. Ce protocole est surtout utilisé dans une architecture de clients-serveur voir de requête-réponse, pour la VOIP, les jeux en ligne, les appels vidéos. En effet on peut envoyer des plus grosses quantités de données d'un seul coup par rapport au TCP et on part du principe, lors de l'usage de l'UDP, que si on perd quelques paquets ce n'est pas trop grave. On préfère par exemple avoir une conversation téléphonique hachurée qu'avec du délai.
La couche Application
Le modèle TCP/IP n'a pas besoin des couches Session ni Presentation. La couche application contient des protocoles haut-niveaux : FTP pour le transfert de fichiers, SMTP pour les mails, HTTP pour le WWW, DNS pour les noms de domaine...
Comparaison entre les deux modèles de référence
Le modèle TCP/IP et le modèle OSI ont beaucoup de points communs. Tous les deux sont basés sur le concept d'empilement de protocoles indépendants. De plus les différentes couches ont des systèmes de fonctionnement similaires. Similitudes
Les couches au-dessous de la couche de Transport sont des couches orientées vers les applications utilisateurs.
Les couches au-dessus et y compris la couche de Transport sont là pour fournir un service de transport end-to-end et ce de manière indépendante de la manière de communiquer.
Note: des conclusions différentes seraient émises si nous comparions la stack de protocoles...
Différences
La chose la plus flagrante est le nombre de couches entre les deux modèles. Pour le modèle OSI, il y a 7 couches ; alors que pour le modèle TCP/IP nous sommes à seulement 4 couches.
L'autre point est le type de connexion supporté. Le modèle OSI supporte à la fois les communications connectionless (communications sans connexion préalable) et les communications connection-oriented (connexion préalable) dans la couche réseau ; mais seulement une communication connection-oriented dans la couche de transport. Le modèle TCP/IP à contrario ne dispose que d'une communication connectionless dans la couche réseau mais des communications connection-oriented et connectionless dans la couche de transport...
Conclusions OSI
Ce qu'on retiendra pour le modèle OSI est sa très bonne organisation et sa bonne répartition entre Protocoles, Services et Interfaces :
Chaque couche effectue certains services pour la couche du dessus. Le service définit la fonction de la couche.
L'interface d'une couche définit comment les processus du dessus y ont accès.
Les protocoles d'une couche correspondent aux processus métier de la couche.
On peut faire l'analogie à la programmation orientée objet :
Un objet est comme une couche, il a ses méthodes qui peuvent être appelées à l'extérieur. Les méthodes permettent de définir les services offerts par l'objet. Les paramètres des méthodes et leurs résultats forment l'interface de l'objet. Le code de l'objet est le protocole et n'est visible qu'à l'intérieur de l'objet.
Le modèle OSI est un modèle complexe et difficile à implémenter. De plus le modèle OSI dispose de certaines fonctions comme l'adressage, le contrôle de flot et le contrôle d'erreurs qui apparaissent dans plusieurs couches. TCP/IP
Le modèle TCP/IP quant à lui n'essaye pas de délimiter clairement les services, interface et protocoles.
Si vous utilisez le modèle TCP/IP pour décrire un autre stack de protocoles que le TCP/IP, le modèle s'effrondre et ne veut plus rien dire. Il est impossible de décrire le Bluetooth avec...
La couche host-to-network n'est pas du tout une couche mais plus une interface.
Enfin le modèle TCP/IP ne distingue pas du tout la couche physique de la couche liaison de données Modèle Hybride
Vous serez peut être amenés à rencontrer le modèle hybride, cela correspond a un mélange du modèle OSI et du modèle TCP/IP qui est de cette sorte :
5. Application
4. Transport
3. Réseau
2. Liaison de données
1. Physique
Pour finir le modèle OSI est avant tout utilisé pour expliquer les réseaux. Les protocoles propres au modèle OSI sont souvent laissés à l'écart et peu mis en avant. A l'inverse, le modèle TCP/IP est presque inexistant mais les protocoles sont très utilisés.