Bandeau

Tcp/Ip 2 - Un réseau en couches

1 Introduction

Les applications Tcp/Ip utilisées par les intranets et l'Internet dépendent de plusieurs couches de protocoles. Le terme couche de protocole suggère qu'il y a interaction entre les différents protocoles. Chaque couche de protocoles interagit avec la couche suivante grâce à une interface spécifique.

Construire des systèmes, comme des protocoles, en les disposant en couches présente plusieurs avantages. Chaque couche peut-être définie précisément pour effectuer une fonction bien particulière. La couche représente en quelque sorte une boite noire à qui l'on fournit des données, qui les traite et les propose à la couche suivante. Ainsi, grâce à ses traitements, on peut présenter les données dans un format particulier, acheminer ces données de façon fiable à travers le réseau, choisir une route optimale pour ces données, etc.

En séparant les fonctions des couches de l'implémentation, on peut modifier certaines caractéristiques d'une couche sans toucher aux autres.

2 Principe des couches de protocoles

2.1 Le modèle OSI Open System Interconnexion

Développé en 1978 par l'ISO (Internationnal Organization of Standards) afin que soit défini un standard utilisé dans le développement de systèmes ouverts.

Chaque couche, excepté la 1ere et la dernière, utilise les services de la couche inférieure et propose des services à la couche supérieure.

Il est composé de 7 couches :

  1. Couche physique

    La couche physique s'occupe de la transmission des bits de façon brute sur un canal de communication. Cette couche doit garantir la parfaite transmission des données (un bit 1 envoyé doit bien être reçu comme bit valant 1). Concrètement, cette couche doit normaliser les caractéristiques électriques (un bit 1 doit être représenté par une tension de 5 V, par exemple), les caractéristiques mécaniques (forme des connecteurs, de la topologie...), les caractéristiques fonctionnelles des circuits de données et les procédures d'établissement, de maintien et de libération du circuit de données.

  2. Couche liaison de données

    Son rôle est un rôle de "liant". Elle va transformer la couche physique en une liaison à priori exempte d'erreurs de transmission pour la couche réseau. Elle fractionne les données d'entrée de l'émetteur en trames, transmet ces trames en séquence et gère les trames d'acquittement renvoyées par le récepteur. Rappelons que pour la couche physique, les données n'ont aucune signification particulière. La couche liaison de données doit donc être capable de reconnaître les frontières des trames. Cela peut poser quelques problèmes, puisque les séquences de bits utilisées pour cette reconnaissance peuvent apparaître dans les données.
    La couche liaison de données doit être capable de renvoyer une trame lorsqu'il y a eu un problème sur la ligne de transmission. De manière générale, un rôle important de cette couche est la détection et la correction d'erreurs intervenues sur la couche physique. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement du récepteur.
    L'unité d'information de la couche liaison de données est la trame qui est composées de quelques centaines à quelques milliers d'octets maximum.

  3. Couche réseau

    C'est la couche qui permet de gérer le sous-réseau, le routage des paquets sur ce sous-réseau et l'interconnexion des différents sous-réseaux entre eux. Au moment de sa conception, il faut bien déterminer le mécanisme de routage et de calcul des tables de routage (tables statiques ou dynamiques...).
    La couche réseau contrôle également l'engorgement du sous-réseau. On peut également y intégrer des fonctions de comptabilité pour la facturation au volume, mais cela peut être délicat.
    L'unité d'information de la couche réseau est le paquet.

  4. Couche transport

    Cette couche est responsable du bon acheminement des messages complets au destinataire. Le rôle principal de la couche transport est de prendre les messages de la couche session, de les découper s'il le faut en unités plus petites et de les passer à la couche réseau, tout en s'assurant que les morceaux arrivent correctement de l'autre côté. Cette couche effectue donc aussi le ré-assemblage du message à la réception des morceaux.
    Cette couche est responsable du type de service à fournir à la couche session, et finalement aux utilisateurs du réseau : service en mode connecté ou non, avec ou sans garantie d'ordre de délivrance, diffusion du message à plusieurs destinataires à la fois... Cette couche est donc également responsable de l'établissement et du relâchement des connexions sur le réseau.
    Un des tous derniers rôles à évoquer est le contrôle de flux.
    C'est l'une des couches les plus importantes, car c'est elle qui fournit le service de base à l'utilisateur, et c'est par ailleurs elle qui gère l'ensemble du processus de connexion, avec toutes les contraintes qui y sont liées.
    L'unité d'information de la couche réseau est le message.

  5. Couche session

    Cette couche organise et synchronise les échanges entre tâches distantes. Elle réalise le lien entre les adresses logiques et les adresses physiques des tâches réparties. Elle établit également une liaison entre deux programmes d'application devant coopérer et commande leur dialogue (qui doit parler, qui parle...). Dans ce dernier cas, ce service d'organisation s'appelle la gestion du jeton. La couche session permet aussi d'insérer des points de reprise dans le flot de données de manière à pouvoir reprendre le dialogue après une panne.

  6. Couche présentation

    Cette couche s'intéresse à la syntaxe et à la sémantique des données transmises : c'est elle qui traite l'information de manière à la rendre compatible entre tâches communicantes. Elle va assurer l'indépendance entre l'utilisateur et le transport de l'information.
    Typiquement, cette couche peut convertir les données, les reformater, les crypter et les compresser.

  7. Couche application

    Cette couche est le point de contact entre l'utilisateur et le réseau. C'est donc elle qui va apporter à l'utilisateur les services de base offerts par le réseau, comme par exemple le transfert de fichier, la messagerie...

2.2 Le modèle DoD Department of Defence

Tcp/Ip a été historiquement créé à la demande du ministère de la Défense des états-Unis, c'est pourquoi le modèle garde ce nom.

  1. Couche accès réseau

    La couche la plus basse représente la connexion physique avec les câbles, les circuits d'interface électrique, les cartes réseau, les protocoles d'accès au réseau (Carrier Sense Multiple Access / Collision Detection pour les réseaux éthernet et le jeton pour les réseaux Token Ring). La couche accès réseau est utilisée par la couche Internet.

  2. Couche Internet

    La couche Internet doit fournir une adresse logique pour l'interface physique. C'est la couche Ip qui assure ce travail. Elle fournit un mappage entre l'adresse logique et l'adresse physique fournit par la couche accès réseau grâce aux protocoles Arp (Address Resolution Protocol) et Rarp. Les incidents et les diagnostics associées au protocole Ip relèvent du protocole Icmp (Internet Control Message Protocol), qui opère aussi au niveau de la couche internet.

    Elle est aussi responsable du routage des paquets entre les hôtes. (Routing Information Protocol et Open Shortest Path First).

  3. Couche Transport de hôte à hôte

    La couche hôte à hôte définit les connexions entre 2 hôtes sur le réseau. Le modèle DoD comprend 2 protocoles TCP, Transmission Control Protocol et UDP, User Datagram Protocol. Le protocole Tcp est responsable du service de transmission fiable de données avec détection et correction d'erreurs. Il permet des connexion full-duplex dans une seule connexion. Udp est employé quand le volume de données est très faible. En cas de non réponse, on ré-émet tout simplement le paquet.

  4. Couche Application

    Elle permet aux applications d'utiliser les protocoles de la couche transport. On trouve les mêmes application que dans le modèle Osi.

3 Hiérarchie de l'implémentation de Tcp/Ip

Couches Réseau

La suite de protocoles Tcp/Ip comprend un ensemble performant de services qui peuvent utiliser un grande variété de technologies réseau comme les réseaux étendus, les réseaux locaux, les ondes radio, les satellites ou les lignes numéris. Les modules du protocole Tcp/Ip et les relations entre ces modules forment la hiérarchie de l'implémentation Tcp/Ip.

4 Multiplexage et démultiplexage de protocoles

Multiplexage des protocoles

Plusieurs sessions existent entre les hôtes A et B. Comment les logiciels sur chaque hôtes arrivent-ils à différencier les divers protocoles ou applications au niveau d'une couche donnée ?

Le réseau ci-dessus montre un environnement supportant Ip et Icmp. Comment savoir si un paquet sortant du réseau est destiné à Ip ou Icmp ? Pour résoudre ce problème, la trame éthernet contient un champ de 2 octets : Ethertype utilisé par les protocoles de la couche réseau.

Le champ Ethertype de la couche liaison de données autorise le multiplexage de plusieurs protocoles réseau au niveau de la source, et le démultiplexage au niveau de la destination.

Quand la couche Ip reçoit un paquet éthernet, elle doit distinguer les paquets pour Tcp ou Udp grâce à un champ d'identification du protocole de 8 bits situé dans le paquet. Plusieurs implémentations de Tcp/Ip stockent ces valeurs dans un fichier : /etc/protocols.

De la même manière, quand un module Tcp ou Udp reçoit un paquet de la couche Ip, il doit distinguer l'application qui traitera ce paquet. Chaque paquet contient un champ de 16 bits indiquant le numéro du port correspondant à l'application.
Fichier : /etc/services.

Couches Réseau

6 Tcp/Ip et système d'exploitation

Les performances de Tcp/Ip, sa configuration et sa facilité de maintenance dépendent du système d'exploitation sur lequel il est implémenté. En théorie, le système n'est pas nécessaire pour faire tourner Tcp/Ip : il peut être implémenté en Rom. Toutefois, la plupart des implémentations commerciales de Tcp/Ip interagissent avec le système.

Ces interactions entre Tcp/Ip et système peuvent être classés de la façon suivante :

comme faisant partie du noyau (kernel)
comme un pilote de périphérique
comme un processus d'application

Dans un système comme Unix ou Netware, Tcp/Ip est implémenté dans le kernel du système. Cette implémentation permet d'obtenir des fonctions de communication très rapides.

Les systèmes dont l'implémentation de Tcp/Ip est faite sous forme de pilote de périphérique comprennent Windows Nt et Windows 3.11, 95, 98, et Me, Vms, Os/2 et Ms-Dos.

Les systèmes qui implémentent Tcp/Ip sous forme de processus comprennent les systèmes des mainframes Ibm, Mvs.


© 2005/2017 - Pep - Pour m'envoyer un mail - Connecté en ipv4