![]() |
Support de cours Réseaux EISTI |
![]() |
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 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'exploitaion) 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.
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).
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.
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.
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
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.
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).
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.
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,...).
![]() |
Support de cours Réseaux EISTI |
![]() |