La Couche 3
Présentation
Le rôle de la couche 3 est de trouver un chemin pour faire communiquer 2 machines qui sont situées sur des réseaux différents interconnectés.
Ils existent plusieurs protocoles de couche 3 normalisés. Cependant ces derniers ne sont pas très utilisés, nous allons donc continuer l'étude sur TCP/IP qui ne suit pas le modèle OSI mais qui est très répandu.
TCP/IP présentation
TCP/IP est né de la réflexion de chercheurs américains suite à un problème posé par l'armée américaine. L'armée américaine disposait (et dispose encore) de plusieurs bases sur le territoire. Chacune de ces bases dispose de sa propre logistique informatique. Les machines des différents centres pouvaient être de types différents et reliées entre elles à l'intérieur de ces centres par des réseaux locaux différents. Cependant ces centres informatiques doivent échanger des informations. Les bases sont reliées les unes aux autres par des câbles. La question était de trouver un moyen pour que l'information puisse circuler entre ces bases même si certains des chemins empruntables étaient détruits. Il fallut donc trouver un système permettant de retrouver des chemins (routes) qui se reconfigureraient automatiquement en cas de coupures des liaisons.
De cette recherche est née IP (Internet Protocol ou Interconnected Network Protocol). IP comme nous le verrons, est un protocole qui permet d'envoyer des informations élémentaires de machine à machine. Cependant l'information ne part pas d'une machine mais d'une application fonctionnant sur une machine pour aboutir à une application fonctionnant sur une machine. Pour résoudre ce problème les chercheurs ont développé un autre protocole de nom TCP (Transport Control Protocol).
Le nom de TCP/IP a donc été choisi en référence à ces deux principaux protocoles qui le caractérisent.
Aujourd'hui TCP/IP intègre beaucoup d'autres protocoles (ICMP, IGP, FTP, SMTP, HTTP, ...).
TCP/IP est un protocole qui nécessite une coopération des OS des machines dans pratiquement toutes les couches. Dans un réseau qui suit le modèle OSI, l OS (Operating System : système d'exploitation) de la machine n'intervient que dans les couches 4 et supérieures.
TCP/IP est très répandu, car sa robustesse a été prouvée (quelques millions de machines interconnectées dans le monde). Il est également très répandu, car dès son origine il a été implémenté sur des systèmes Unix. Beaucoup de chercheurs ayant contribué à l'évolution de TCP/IP à son origine sont issus de l'université de Berkeley qui a très largement diffusé son système Unix avec l'interface des sockets pour manipuler des connexions TCP/IP.
Vue en couches de TCP/IP
TCP/IP ne suit pas directement le modèle OSI parce que la normalisation OSI lui est postérieure. Cependant cette famille de protocole suit également un schéma en couche.
|
|
La couche Matérielle correspond aux couches 1 et 2 du modèle OSI.
Les couches matérielles et Interface avec le réseau correspondent à la couche 3 du modèle OSI.
La couche Transport correspond aux couches 4 et 5 du modèle OSI.
Cette comparaison au modèle OSI n'est que relative, car chaque couche du modèle OSI doit vérifier que la couche équivalente sur la machine destinataire va recevoir toutes les données émises sans erreur. Le protocole des couches Interface avec le réseau et Interconnexion ne garantit pas ceci. Ces protocoles sont de type Best Effort. Le problème de traitement des erreurs est remonté dans les couches supérieures (Couche transport en utilisant TCP ou couche application en utilisant UDP).
Identification des machines
Sur un réseau utilisant TCP/IP chaque machine est identifiée par une adresse IP. Chaque identifiant IP appelé numéro ou adresse IP doit être unique sur l'ensemble du réseau. Chaque machine ne dispose que d'une adresse IP par réseau sur lequel elle est connectée. Les machines (routeurs, passerelles)qui sont multi-domiciliées c'est-à-dire qui possèdent plusieurs adresses IP sont des cas spéciaux que nous étudierons plus tard.
Format d'une adresse IP
Une adresse IP est un nombre codé sur 4 octets. Par habitude, cette adresse est représentée sous la forme décimale pointée w.x.y.z où w,x,y,z sont quatre chiffres décimaux allant de 0 à 255. Cette adresse peut être vue de 2 façons différentes:
La machine d'adresse w.x.y.z .
La machine d'adresse z du réseau w.x.y.0 .
La machine d'adresse y.z du réseau w.x.0.0 .
La machine d'adresse x.y.z du réseau w.0.0.0 .
Ces différentes façons de lire une adresse IP permettent d'optimiser la façon de calculer les routes (routing, ou routage ). La décomposition d'une adresse IP en adresse de réseau plus une adresse de machine sur un réseau ne se fait pas au hasard.
Les différentes classes d'adresses.
Pour voir si l'adresse du réseau d'une machine est codée sur 1,2 ou 3 octets, il suffit de regarder la valeur du premier. La valeur de l'octet x permet également de distinguer la classe du réseau.
Classe
|
Valeur de w
|
Lg Adresse Réseau
|
Nb de réseaux
|
nb max de machines
|
A
|
0 à 127
|
1 octe
|
127
|
16777216
|
B
|
128 à 191
|
2 octets
|
16384
|
65536
|
C
|
192 à 223
|
3 octets
|
2097152
|
255
|
D
|
224 à 239
|
|
E
|
240 à 255
|
Pour l'instant que la machine est une adresse de classe A,B,C ne change rien au raisonnement que nous allons tenir. Ceci interviendra que lorsque nous verrons les problèmes de routage. Cependant il faut noter que dans une adresse IP, une partie de cette dernière sert également à identifier le réseau.
La classe E est réservée pour des extensions futures.
La classe D est la classe de diffusion de groupe. L'étude de ces adresses ne sera pas faite durant ce cours.
Dans cette partie du cours, nous supposerons que les machines qui échangent des informations via TCP/IP sont toutes situées sur le même réseau physique (éventuellement prolongé via des appareils actifs qui ne travail qu'en couche 1 et 2 du modèle OSI).
Passage des adresses IP aux adresses physiques.
Dans un réseau TCP/IP, nous avons dit que chaque machine était identifiée par une adresse IP. Cette adresse est logique, elle ne dépend pas du matériel utilisé pour relier les machines ensemble. Ces adresses IP peuvent être modifiées relativement rapidement par les administrateurs pour diverses raisons. Nous avons vu jusqu'à présent (couche 2 du modèle OSI) que chaque machine disposait d'une adresse physique différente. Cette adresse physique dépend du matériel réseau utilisé. Il faut trouver un système qui permette de convertir l'adresse logique IP en une adresse physique de la machine. Pour ce faire plusieurs méthodes sont utilisables
La table
On peut imaginer que sur chaque machine travaillant avec TCP/IP on dispose d'une table qui fait la conversion entre une adresse logique IP et une adresse matérielle type Pronet, Ethernet, ou ... . Cette méthode, quoi que très efficace, devient lourde à gérer. A chaque ajout, suppression ou modification d'une adresse IP pour une machine, il faut remettre à jour la table de correspondance sur toutes les machines.
La conversion directe
Avec des réseaux physiques dont les adresses doivent être paramétrées par l'administrateur, on peut supposer que ce dernier peut faire coïncider tout ou partie de l'adresse physique à l'adresse IP. Cette technique est très facile à mettre en œuvre sur un réseau Pronet, on peut par exemple décider que le dernier octet de l'adresse IP sera égal à l'adresse physique. Cette méthode ne peut cependant pas toujours être mise en œuvre (c'est le cas avec Ethernet).
La conversion dynamique (ARP)
Cette méthode de résolution d'adresses physiques est basée sur le principe suivant : chaque machine connaît son adresse IP et son adresse physique. Il faut donc trouver le moyen de demander à une machine dont on ne connaît que l'adresse IP de bien vouloir nous donner son adresse physique pour que l'on puisse lui envoyer les informations.
A première vue nous retombons sur le même problème : obtenir une adresse physique pour demander cette adresse physique.
Pour résoudre ce problème il faut que le réseau (couche 2) supporte la diffusion c'est à dire qu'il existe une "adresse physique" qui corresponde à toutes les machines.
Pour obtenir l'information, la machine qui veut émettre une information sur une machine distante va regarder si elle connaît l'adresse physique du destinataire. Si oui elle va directement lui envoyer cette information.
Sinon, elle va émettre en diffusion sur le réseau une demande de résolution d'adresse. Toutes les stations du réseau vont donc recevoir cette information. Dans cette demande, on trouve l'adresse IP dont on veut connaître l'adresse physique. La machine qui a l'adresse IP correspondante pourra envoyer une réponse contenant son adresse physique.
La correspondance Adresse physique / adresse IP sera gardée par la machine émettrice pendant un certain temps, de façon à ne pas reposer la question trop souvent. Cette information doit expirer au bout d'un moment, car la carte d'interface réseau du destinataire peut être changée donc probablement son adresse physique (c'est le cas avec Ethernet). Ce mécanisme est connu sous le nom d'ARP (Adresse Resolution Protocol). ARP peut être utilisé avec tous types de réseaux supportant la diffusion. Il peut également être utilisé par n'importe quelles familles de protocoles en particulier avec TCP/IP.
La résolution inverse (RARP)
Connaître l'adresse physique d'une machine connaissant son adresse IP, permet de communiquer. Il y a cependant des cas où la machine ne connaît que sa propre adresse physique et souhaite obtenir son adresse IP.
Prenons le cas d'une machine qui démarre. Si cette machine démarre sur un disque, elle peut aller lire des fichiers de configurations et donc trouver son adresse IP. Dans ce cas, cette machine n'a pas de problème.
Si cette machine va chercher son OS sur le réseau, au démarrage elle ne connaît que son adresse physique. Pour obtenir un fichier image de son boot, elle doit utiliser des protocoles de transfert de fichiers qui sont souvent basés sur TCP/IP. Cette machine doit donc travailler avec TCP/IP et par conséquent connaître son adresse IP. Pour connaître son adresse IP en ne connaissant que son adresse physique, la machine peut utiliser RARP(Reverse Addresse Resolution Protocol).
Le principe est le suivant:
Sur le réseau, on doit avoir une ou plusieurs machines (serveur RARP) contenant des tables (mises à jour à la main) associant des adresses physiques à des adresses IP. La machine qui veut connaître son adresse IP envoie en diffusion sur le réseau une demande RARP. Les machines serveurs RARP vont donc recevoir cette demande et pouvoir donner l'adresse à la machine.
Cette dernière peut ainsi demander une image de son OS qui pourra être transférée avec des protocoles de hauts niveaux (tftp, bootp,...).