Vous êtes sur la page 1sur 17

Chapitre4

Le Réseau Internet et les Protocoles TCP/IP

4.1. Introduction
4.1.1 Problématique de la communication réseau
La communication logique entre différents hôtes reliés par un réseau physique suppose que différents problèmes
soient résolus :

● Identification unique d’un hôte ;


● Résolution du nom en adresse ;
● Routage sur les réseaux maillés ;
● Communication normalisée entre tous les systèmes d’exploitation et logiciels impliqués.

Pour chacune des ces fonctions, des protocoles ont été développés et ce pour les différentes couches du modèle
OSI, à savoir des protocoles d’application, des protocoles de transport, des protocoles de routage (réseau), etc.
Lorsqu’on dispose d’au moins un protocole pour remplir chaque tâche, la communication en réseau devient
possible. Autrement dit, il est indispensable d’associer plusieurs protocoles pour obtenir la connectivité réseau. On
appelle souvent l’association de ces protocoles une suite ou une pile.
La pile de protocole la plus utilisée est TCP/IP.

4.1.2. Origine de TCP/IP


Comme son nom l’indique, le développement de TCP/IP (Transport Control Protocol / Internet Protocol) est
indissociable d’Internet et réciproquement.
D’origine militaire, le réseau ARPANET fut le premier à poser les problèmes de connectivité cités ci-dessus,
rendant impératif la mise en œuvre de protocoles fiables et efficaces, adaptés aux réseaux maillés.
L’ancêtre de TCP/IP se nommé NCP (Network Control Protocol) et a été utilisé sur ARPANET de 1970 à 1983,
année où TCP/IP, après 11 années de développement, l’a remplacé. Le system DNS (Domain Name Service) quant
à lui, a été mis en place une année après.
Les spécifications des protocoles TCP/IP sont élaborés par un groupe de volontaires nommé IETF (Internet
Engineering Task Force) et publié sous forme de RFC (Request For Comments) numérotés.

4.2. Architecture de la pile TCP/IP

Les logiciels TCP/IP sont structurés en quatre couches de protocoles qui s'appuient sur une couche matérielle
comme illustré dans la figure 4.1.

⮚ La couche de liens est l'interface avec le réseau et est constituée d'un driver du système d'exploitation et
d'une carte d'interface de l'ordinateur avec le réseau.
⮚ La couche réseau ou couche IP (Internet Protocol) gère la circulation des paquets à travers le réseau en
assurant leur routage. Elle comprend aussi les protocoles ICMP (Internet Control Message Protocol) et IGMP
(Internet Group Management Protocol).
⮚ La couche transport assure tout d'abord une communication de bout en bout, en faisant abstraction des
machines intermédiaires entre l'émetteur et le destinataire. Deux protocoles sont principalement fournis au niveau
de cette couche : TCP (Transmission Control Protocol) et UDP (User Datagram Protocol). Cette couche s'occupe
de réguler le flux de données et assure un transport fiable (données transmises sans erreur et reçues dans l'ordre de
leur émission) dans le cas de TCP, et non fiable dans le cas d’UDP. En effet, pour UDP, il n'est pas garanti qu'un
paquet (appelé dans ce cas datagramme) arrive à bon port, c'est à la couche application de s'en assurer.
⮚ La couche application est celle des programmes utilisateurs, tels que telnet (connexion à un ordinateur
distant), FTP (File Transfert Protocol), SMTP (Simple Mail Transfert Protocol), etc.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 1
Figure 4.1 : Architecture d’une pile TCP/IP

Cette architecture et ces différents protocoles permettent de faire fonctionner un réseau local configuré avec
TCP/IP.
L’avantage de la pile TCP/IP est d’interconnecter des réseaux éventuellement hétérogènes (et constituer ainsi un
internet), comme illustré dans la figure 4.2 : dans le réseau de la figure, un réseau Ethernet, sur lequel un ordinateur
client FTP A est connecté, est relié à un réseau Token Ring sur lequel est connecté un serveur FTP B. La liaison
entre les deux réseaux hétérogènes se fait à travers un dispositif routeur. Ici, les ordinateurs A et B sont des
systèmes terminaux et le routeur est un système intermédiaire. Comme on peut le voir, la remise du datagramme
nécessite l'utilisation de deux trames différentes, l'une (trame Ethernet) du réseau Ethernet entre la machine A et
le routeur, l'autre (trame Token Ring) du réseau Token-Ring entre le routeur et la machine B. Par opposition, le
principe de structuration en couches indique que le paquet reçu par la couche transport de la machine B est
identique à celui émis par la couche transport de la machine A.
Lorsqu'une application envoie des données à l'aide de TCP/IP, les données traversent de haut en bas chaque couche
jusqu'à aboutir au support physique où elles sont alors émises sous forme de suite de bits. L'encapsulation illustrée
dans la figure 4.3 consiste pour chaque couche à ajouter de l'information aux données en rajoutant une en-tête à
chaque paquet.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 2
Figure 4.2 : Interconnexion de deux réseaux hétérogènes

Figure 4.3 : Encapsulation des données par la pile des protocoles TCP/IP

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 3
4.3. L’adressage IP

Dans un réseau informatique, chaque ordinateur, ou plus généralement chaque périphérique réseau, dispose d'une
adresse IP unique (codée sur 32bits pour IPv4).

4.3.1. Définition d’une adresse IP


Une adresse IP est représentée dans une notation décimale pointée, constituée de 4 nombres compris chacun entre
0 et 255 et séparés par un point. Ainsi, ces deux adresses sont identiques :

197 . 75 . 200 . 22
11000101. 01001011. 11001000. 00010110

Une adresse IP se décompose en :


- une adresse de réseau dans les bits de poids forts (dont le nombre est à fixer par l'administrateur),
- une adresse de machine dans les bits de poids faibles.

Il y a 4 classes d'adresse utilisées (A, B, C, D ou E) qui instaurent une certaine hiérarchie. Une adresse IP
appartient à une classe donnée selon la valeur de son premier octet, comme détaillé dans la figure 4.4.

Figure 4.4 : Les cinq classes d’adresses IP.

Le tableau ci-après donne l'espace d'adresses possibles pour chaque classe.

Classe Adresses
A 0.0.0.0 à 127.255.255.255
B 128.0.0.0 à 191.255.255.255
C 192.0.0.0 à 223.255.255.255
D 224.0.0.0 à 239.255.255.255
E 240.0.0.0 à 247.255.255.255

Les adresses de réseaux sont affectées par un organisme international à but non lucratif : ICANN (Internet
Corporation for Assigned Names and Numbers). Les adresses de classe A sont maintenant très convoitées et il
n'en reste que peu. Elles ne sont, par ailleurs, que très rarement affectées.

● Si le premier bit est 0, l’adresse est de classe A. On dispose de 7 bits pour identifier le réseau et de 24 bits
pour identifier l’hôte. On a donc les réseaux de 1 `a 127 et 224 hôtes possibles, c’est à dire 16 777 216 machines
différentes (de 0 `a 16 777 215).

● Si les deux premiers bits sont 10, l’adresse est de classe B. Il reste 14 bits pour identifier le réseau et 16
bits pour identifier la machine. Ce qui fait 214 = 16 384 réseaux (128.0 `a 191.255) et 65 534 (65 536 − 2)
machines.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 4
● Si les trois premiers bits sont 110, l’adresse est de classe C. Il reste 21 bits pour identifier le réseau et 8
bits pour identifier la machine. Ce qui fait 221 = 2 097 152 réseaux (de 192.0.0 `a 223.255.255) et 254 (256−2)
machines.

● Si les quatre premiers bits de l’adresse sont 1110, il s’agit d’une classe d’adressage speciale, la classe D.
Cette classe est prévue pour faire du “ multicast ”, ou multipoint. (RFC 1112 [S. Deering, 1989]), contrairement
aux trois premières classes qui sont dédiées `a l’unicast ou point à point.

● Si les quatre premiers bits de l’adresse sont 1111, il s’agit d’une classe expérimentale, la classe E. La
RFC 1700 précise “ Class E addresses are reserved for future use ”.

Toutes les combinaisons mathématiquement possibles pour identifier un réseau ou une machine ne sont pas
permises car certaines adresses ont des significations particulières :

⮚ <id. de réseau nul>.<id. de machine> est utilisée pour désigner une machine sur son réseau lors d'un boot
(processus d’amorçage).

⮚ <id. de réseau>.<id. de machine nul> n'est jamais affectée à une machine car elle permet de désigner le
réseau lui-même.

⮚ <id. de réseau>.<id. de machine avec tous ses bits à 1> est une adresse de diffusion ou de broadcast, c'est-
à-dire qu'elle désigne toutes les machines du réseau concerné. Un datagramme adressé à cette adresse sera ainsi
envoyé à toutes les machines du réseau.

⮚ 255.255.255.255 est une adresse de diffusion locale, car elle désigne toutes les machines du réseau auquel
appartient l'ordinateur qui utilise cette adresse. L'avantage par rapport à l'adresse précédente est que l'émetteur
n'est pas obligé de connaître l'adresse du réseau auquel il appartient.

⮚ 127.0.0.1 est une adresse de bouclage qui est utilisée pour permettre les communications interprocessus
sur un même ordinateur ou réaliser des tests de logiciels, car tout logiciel de communication recevant des données
pour cette adresse les retourne simplement à l'émetteur.

⮚ Les adresses de classe A de 10.0.0.0 à 10.255.255.255, de classe B de 172.16.0.0 à 172.31.255.255 et de


classe C de 192.168.0.0 à 192.168.255.255 sont réservées à la constitution de réseaux privés autrement appelés
intranet.

4.3.1. Sous réseaux


Le système des adresses IP permet également la définition d'adresses de sous-réseaux en découpant la partie
réservée à l'adresse des machines sur un réseau en deux parties dont la première sera un identificateur de sous-
réseau. Ainsi, un seul réseau de classe B, sur lequel on pourrait nommer 65 534 machines pourra être décomposé
en 254 sous-réseaux de 254 machines, de la manière décrite ci-dessous :

<id. de réseau sur 16 bits>.<id. de sous-réseau sur 8 bits>.<id. de machine sur 8 bits>

L'administrateur d'un réseau peut décider de découper où il veut la zone des identificateurs de machines, ce
découpage facilite le travail des routeurs. On peut également adopter le même principe pour un réseau de classe
C. Cette technique a pour effet de provoquer un routage hiérarchique.

La figure 4.5 illustre le cas d'un réseau X.Y.0.0 découpé en deux sous-réseaux X.Y.1.0 et X.Y.2.0. Pour tout le
reste d'Internet, il n'existe qu'un seul réseau X.Y.0.0 et tous les routeurs traitent les datagrammes à destination de
ce réseau de la même façon. Par contre, le routeur R se sert du troisième octet (égal à 1 ou 2) de l'adresse contenue
dans les datagrammes qui lui proviennent pour les diriger vers le sous-réseau auquel ils sont destinés assurant ainsi
un routage hiérarchique.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 5
Figure 4.5 : Adressage de sous réseau

4.3.2. Le masque de sous réseau (subnet netmask)


Nous avons déjà vu plusieurs aspects importants des masques qu'il faudra toujours essayer de garder à l'esprit :

- Codés sur 4 octets, soit 32 bits,


- Ils permettent de faire la séparation entre la partie réseau et la partie machine de l'adresse IP,
- La partie réseau est représentée par des bits à 1, et la partie machine par des bits à 0,
- Le masque ne représente rien sans l'adresse IP à laquelle il est associé.

Par exemple, dans le cadre du réseau de la figure 4.5, le masque de sous réseau est :

__________Sous Réseau______. Machine

11111111.11111111.11111111.00000000

Ce qui s'écrit en décimal 255.255.255.0. Mais, à quoi sert un masque de sous réseau ?

1) Identifier le sous réseau de la destination


Supposons que notre machine est celle identifiée par l’adresse IP X.Y.1.2. Si l'adresse de destination est X.Y.1.1,
un et logique entre la représentation binaire de cette adresse est celle du masque de sous-réseau donne X.Y.1.0 à
savoir l'adresse du sous-réseau de notre machine, donc le datagramme est destiné à une machine de ce même sous-
réseau.

X. Y. 1. 1
255.255.255.0 ET

X .Y .1 .0

2) Déterminer le nombre de machine par sous réseau


Toujours en effectuant un ET logique entre l’adresse IP et le masque de sous réseau, on peut déterminer le nombre
d’hôte par sous réseau. Dans le sous-réseau X.Y.1.0 dont le masque est de 255.255.255.0, le dernier octet est
réservé pour les hôtes. Ce qui nous donne 2^8 = 256 adresses disponibles pour les machines sur le sous-
réseau X.Y.1.0 Les adresses disponibles pour les machines seront donc :
X.Y.1.0 ----------- réservé pour le sous réseau
X.Y.1.1
X.Y.1.2
….
….
X.Y.1.254
X.Y.1.255 ----------- réservé pour le broadcast

On observe donc que c'est le masque qui détermine le nombre de machines d'un réseau. Ainsi, on verra par la suite
qu'on choisira le masque en fonction du nombre de machines que l'on veut installer.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 6
Autre notation
Une autre notation est souvent utilisée pour représenter les masques. On la rencontre souvent car elle est plus
rapide à écrire. Dans celle-ci, on note directement le nombre de bits significatifs en décimal. Ainsi, pour notre
exemple 192.168.25.0/255.255.255.0, on peut aussi écrire 192.168.25.0/24, car 24 bits sont significatifs de la partie
réseau de l'adresse. De même les écritures suivantes sont équivalentes :

10.0.0.0/255.0.0.0 = 10.0.0.0/8
192.168.25.32 /255.255.255.248 = 192.168.25.32/29

Car 248 en binaire = 11111000


29 = 24 bit à 1 des 255.255.255 + 5 bits à 1 de 248.

Comment bien choisir son masque ?


Etant donné que le masque détermine le nombre de machines qu'il pourra y avoir sur un réseau, c'est souvent de
cette information que l'on part pour choisir le masque. Etant donné que l'on travail en binaire, le nombre de
machines possible au sein d'un réseau sera une puissance de 2. Pour un nombre de machines donné, il faudra donc
choisir la puissance de 2 supérieures pour pouvoir adresser les machines. De plus, il faudra prévoir un certain
nombre d'adresses supplémentaires pour accueillir de nouvelles machines.
Ainsi, disons que l'on possède le réseau 190.3.0.0/255.255.0.0 et que l'on veut faire des réseaux de 2000 machines
au sein chaque sous réseau. La puissance de 2 supérieure à 2000 est 211= 2048. Pour identifier 2048-2=2046
adresses, il nous faut 11 bits. Donc, dans notre masque, 11 bits seront à 0 pour identifier la partie machine et les 5
bits restants seront à 1, ce qui donne :

11111111.11111111.11111000.00000000 = en décimal 255. 255.248.0

4.4. Le protocole IP
Comme on a pu le voir dans la figure 4.1 le protocole IP (Internet Protocol, RFC 791) est au cœur du
fonctionnement d'un internet. Il assure sans connexion un service non fiable de délivrance de datagrammes IP. Le
service est non fiable car il n'existe aucune garantie pour que les datagrammes IP arrivent à destination. Certains
peuvent être perdus, dupliqués, retardés, altérés ou remis dans le désordre. On parle de remise au mieux (best effort
delivery) et ni l'émetteur ni le récepteur ne sont informés directement par IP des problèmes rencontrés. Le mode
de transmission est non connecté car IP traite chaque datagramme indépendamment de ceux qui le précèdent et le
suivent. Ainsi en théorie, au moins, deux datagrammes IP issus de la même machine et ayant la même destination
peuvent ne pas suivre obligatoirement le même chemin. Le rôle du protocole IP est centré autour des trois
fonctionnalités suivantes :

1. définir le format du datagramme IP qui est l'unité de base des données circulant sur Internet
2. définir le routage dans Internet
3. définir la gestion de la remise non fiable des datagrammes.

4.4.1 Le datagramme IP

Un datagramme IP est constitué d’un en-tête suivi d'un champ de données. Sa structure précise
est détaillée dans la figure 4.7 et comporte les champs suivants :

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 7
Figure 4.7 : Structure d’un datagramme IP.

▪ Le champ version codé sur 4 bits : permet d’identifier la version du protocole IP utilisé
(la version courante est la 4, d'où son nom d'IPv4). Tout logiciel IP doit d'abord vérifier que le
numéro de version du datagramme qu'il reçoit est en accord avec lui-même. Si ce n'est pas le
cas, le datagramme est tout simplement rejeté. Ceci permet de tester des nouveaux protocoles
sans interférer avec la bonne marche du réseau.

▪ Le champ longueur d'en-tête codé sur 4 bits : indique la longueur de l'en-tête du


datagramme IP, en multiple de 32 bits. Ce champ est nécessaire car un en-tête peut avoir une
taille supérieure à 20 octets (taille de l'en-tête classique) à cause des options que l'on peut y
ajouter. la taille maximale fait : (23 + 22 + 21 + 20) × 4 = 60 octets

▪ Le champ TOS (Type Of Service) codé sur 8 bits (4 utiles) : indique la façon dont le
datagramme doit être traité et se décompose en six sous champs comme suit :

Le champ priorité varie de 0 (000) priorité normale (valeur par défaut) à 7 (111) priorité
maximale pour la supervision du réseau et permet d'indiquer l'importance de chaque
datagramme. Même si ce champ n'est pas pris en compte par tous les routeurs, il permettrait
d'envisager des méthodes de contrôle de congestion du réseau qui ne soient pas affectées par le
problème qu'elles cherchent à résoudre. Les 4 bits D, T, R, C indiquent au routeur l’attitude à
avoir vis à vis de ce datagramme. Suivant les valeurs de ce champ, le routeur peut privilégier
un datagramme par rapport à un autre. D est mis à 1 pour essayer de minimiser le délai
d'acheminement (par exemple choisir un câble sous-marin plutôt qu'une liaison satellite), T est
mis à 1 pour maximiser le débit de transmission, R est mis à 1 pour assurer une plus grande
fiabilité et C est mis à 1 pour minimiser les coûts de transmission. Si les quatre bits sont à 1,
Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 8
alors c'est la sécurité de la transmission qui doit être maximisée. Les valeurs recommandées
pour ces 4 bits sont données dans la table 4.8. Ces 4 bits servent à améliorer la qualité du routage
et ne sont pas des exigences incontournables. Simplement, si un routeur connaît plusieurs voies
de sortie pour une même destination il pourra choisir celle qui correspond le mieux à la
demande.

Tableau 4.8 : Type de service pour les applications standards.

▪ Le champ longueur totale contient la taille totale en octets du datagramme, et comme ce


champ est de 2 octets on en déduit que la taille complète d'un datagramme ne peut dépasser
65535 octets. Utilisée avec la longueur de l'en-tête elle permet de déterminer où commencent
exactement les données transportées.

▪ Les champs identification (16 bits), drapeaux (3bits) et déplacement de fragment (13
bits) interviennent dans le processus de fragmentation des datagrammes IP et sont décrits dans
la sous-section.

▪ Le champ durée de vie (TTL) codé sur 8 bits indique le nombre maximal de routeurs
que peut traverser le datagramme. il est initialisé à N (souvent 32 ou 64) par la station émettrice
et décrémenté de 1 (il perd une vie) par chaque routeur qui le reçoit et le réexpédie. Lorsqu'un
routeur reçoit un datagramme dont la durée de vie est nulle (TTL = 0), il le détruit et de ce fait,
il est impossible qu'un datagramme tourne indéfiniment dans un internet.

▪ Le champ protocole codé sur 8 bits identifie le protocole de plus haut niveau qui a servi
a créé ce datagramme. Les valeurs sont 1 pour ICMP, 2 pour IGMP, 6 pour TCP et 17 pour
UDP. Ainsi, la station destinatrice qui reçoit un datagramme IP pourra diriger les données qu'il
contient vers le protocole adéquat.

▪ Le champ Total de contrôle d’en tête (HEADER CHECKSUM) : codé sur 16 bits pour
s’assurer de l’intégrité de l’en-tête. Lors du calcul de ce “ checksum ” ce champ est à 0. A la
réception de chaque paquet, la couche calcule cette valeur, si elle ne correspond pas à celle
trouvée dans l’en-tête, le datagramme est oublié (“ discard ”) sans message d’erreur.

▪ Les adresses IP source et destination codées sur 32 bits les adresses de la machine
émettrice et destinataire finale du datagramme.

▪ Le champ options est une liste de longueur variable, mais toujours complétée par des
bits de bourrage pour atteindre une taille multiple de 32 bits pour être en conformité avec la
convention qui définit le champ longueur de l'en-tête. Ces options sont très peu utilisées car peu
de machines sont aptes à les gérer. Parmi elles, on trouve des options de sécurité et de gestion
(domaine militaire), d'enregistrement de la route, d'estampille horaire, routage strict, etc...

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 9
4.4.2. La fragmentation des datagrammes IP

En fait, il existe d'autres limites à la taille d'un datagramme que celle fixée par la valeur
maximale de 65535 octets. Notamment, pour optimiser le débit il est préférable qu'un
datagramme IP soit encapsulé dans une seule trame de niveau 2 (Ethernet par exemple). Mais,
comme un datagramme IP peut transiter à travers Internet sur un ensemble de réseaux aux
technologies différentes il est impossible de définir, a priori (lors de la définition du RFC), une
taille maximale des datagrammes IP qui permette de les encapsuler dans une seule trame quel
que soit le réseau (1500 octets pour Ethernet et 4470 pour FDDI par exemple). On appelle la
taille maximale d'une trame d'un réseau le MTU (Maximum Transfert Unit) et elle va servir à
fragmenter les datagrammes trop grands pour le réseau qu'ils traversent. Mais, si le MTU d'un
réseau traversé est suffisamment grand pour accepter un datagramme, évidemment il sera
encapsulé tel quel dans la trame du réseau concerné.

Figure 4.9 : Fragmentation d’un datagramme IP.

Comme on peut le voir dans la figure 4.9, la fragmentation se situe au niveau d'un routeur qui
reçoit des datagrammes issus d'un réseau à grand MTU et qui doit les réexpédier vers un réseau
à plus petit MTU. Dans cet exemple, si la station A, reliée à un réseau Ethernet, envoie un
datagramme de 1320 octets à destination de la station B, reliée également à un réseau Ethernet,
le routeur R1 va devoir fragmenter ce datagramme de la manière suivante.

La taille d'un fragment est choisie la plus grande possible tout en étant un multiple de 8 octets
(sauf pour le dernier fragment). Un datagramme fragmenté n'est réassemblé que lorsqu'il arrive

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 10
à destination finale, même s'ils traversent des réseaux avec un plus grand MTU les routeurs ne
réassemblent pas les petits fragments. De plus chaque fragment est routé de manière totalement
indépendante des autres fragments du datagramme d'où il provient. Le destinataire final qui
reçoit un premier fragment d'un datagramme arme un temporisateur de réassemblage, c'est-à-
dire un délai maximal d'attente de tous les fragments. Si, passé ce délai, tous les fragments ne
sont pas arrivés il détruit les fragments reçus et ne traite pas le datagramme.
Le processus de fragmentation-réassemblage est rendu possible grâce aux différents champs
suivants. Le champ déplacement de fragment précise la localisation du début du fragment dans
le datagramme initial. À part cela, les fragments sont des datagrammes dont l'en-tête est
quasiment identique à celle du datagramme original. Par exemple, le champ identification est
un entier qui identifie de manière unique chaque datagramme émis et qui est recopié dans le
champ identification de chacun des fragments si ce datagramme est fragmenté. Par contre, le
champ longueur total est recalculé pour chaque fragment. Chaque fragment est un datagramme
indépendant, susceptible d’être à son tour fragmenté.

Le champ drapeaux comprend trois bits dont deux qui contrôlent la fragmentation. S'il est
positionné à 1 le premier bit indique que l'on ne doit pas fragmenter le datagramme et si un
routeur doit fragmenter un tel datagramme alors il le rejette et envoie un message d'erreur à
l'expéditeur. Un autre bit appelé fragments à suivre est mis systématiquement à 1 pour tous les
fragments qui composent un datagramme sauf le dernier. Ainsi, quand le destinataire reçoit le
fragment dont le bit fragment à suivre est à 0 il est apte à déterminer s'il a reçu tous les fragments
du datagramme initial grâce notamment aux champs offset et longueur totale de ce dernier
fragment.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 11
4.4.3 Le routage IP

Le routage est l'une des fonctionnalités principales de la couche IP et consiste à choisir la


manière de transmettre un datagramme IP à travers les divers réseaux d'un internet. On appellera
ordinateur un équipement relié à un seul réseau et routeur un équipement relié à au moins deux
réseaux (cet équipement pouvant être un ordinateur, au sens classique du terme, qui assure les
fonctionnalités de routage). Ainsi un routeur réémettra des datagrammes venus d'une de ses
interfaces vers une autre, alors qu'un ordinateur sera soit l'expéditeur initial, soit le destinataire
final d'un datagramme. D'une manière générale on distingue la remise directe, qui correspond
au transfert d'un datagramme entre deux ordinateurs du même réseau, et la remise indirecte qui
est mise en oeuvre dans tous les autres cas, c'est-à-dire quand au moins un routeur sépare
l'expéditeur initial et le destinataire final.

Par exemple, dans le cas d'un réseau Ethernet, la remise directe consiste à encapsuler le
datagramme dans une trame Ethernet après avoir utilisé le protocole ARP pour faire la
correspondance adresse IP, adresse physique et à émettre cette trame sur le réseau. L'expéditeur
peut savoir que le destinataire final partage le même réseau que lui-même en utilisant
simplement l'adresse IP de destination du datagramme (et logique entre l’adresse de destination
et le masque de sous réseau). Il en extrait l'identificateur de réseau et si c'est le même que celui
de sa propre adresse IP alors la remise directe est suffisante.

Pour sa part, la remise indirecte nécessite de déterminer vers quel routeur envoyer un
datagramme IP en fonction de sa destination finale. Ceci est rendu possible par l'utilisation
d'une table de routage spécifique à chaque routeur qui permet de déterminer vers quelle voie de
sortie envoyer un datagramme destiné à un réseau quelconque. Évidemment, à cause de la
structure localement arborescente d'Internet la plupart des tables de routage ne sont pas très
grandes. Par contre, les tables des routeurs interconnectant les grands réseaux peuvent atteindre
des tailles très grandes ralentissant d'autant le trafic sur ces réseaux. D'un point de vue
fonctionnel une table de routage contient des paires d'adresses du type (D;R) où D est l'adresse
IP d'une machine ou d'un réseau de destination et R l'adresse IP du routeur suivant sur la route
menant à cette destination. Tous les routeurs mentionnés dans une table de routage doivent bien
sûr être directement accessibles à partir du routeur considéré. Cette technique, dans laquelle un
routeur ne connaît pas le chemin complet menant à une destination, mais simplement la
première étape de ce chemin, est appelée routage par sauts successifs (next-hop routing).Une
table de routage contient aussi une route par défaut qui spécifie un routeur par défaut vers lequel
sont envoyés tous les datagrammes pour lesquels il n'existe pas de route dans la table.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 12
La figure 4.11 donne un exemple d'interconnexion d'un réseau de classe B 140.252.0.0
subdivisé en 3 sous-réseaux de masques respectifs 255.255.255.0 pour l'Ethernet du haut,
255.255.255.224 (En binaire, ce masque est 11111111.11111111.11111111.11100000) pour
l'Ethernet du bas et le sous-réseau SLIP. Les masques de sous-réseau sont associés par défaut à
chaque interface d'une machine ou sont éventuellement spécifié sur chaque ligne des tables de
routage. Dans l'exemple donné ici, la table de routage simple de l'ordinateur R3 (sous système
unix Sun) est la suivante :

Les flags ont la signification suivante :

U La route est en service.


G La route est un routeur (gateway). Si ce flag n'est pas positionné la destination est directement
connectée au routeur, c'est donc un cas de remise directe vers l'adresse IP de destination.
H La route est un ordinateur (host), la destination est une adresse d'ordinateur. Dans ce cas, la
correspondance entre l'adresse de destination du paquet à router et l'entrée destination de la
table de routage doit être totale. Si ce flag n'est pas positionné, la route désigne un autre réseau
et la destination est une adresse de réseau ou de sous réseau. Ici, la correspondance des
identificateurs de réseaux est suffisante.
D La route a été créée par une redirection.
M La route a été modifiée par une redirection.
La colonne compteur de référence (refcnt indique le nombre de fois où la route est utilisée à
l'instant de la consultation. Par exemple, TCP conserve la même route tant qu'il l'utilise pour la
connexion sous-jacente à une application(telnet, ftp, ...). La colonne use affiche le nombre de
paquets envoyés à travers l'interface de cette route qui est spécifiée dans la dernière colonne de
la même ligne.
L'adresse 127.0.0.1 est celle de lo0, l'interface de loopback, qui sert à pouvoir faire
communiquer une machine avec elle-même.
La destination default sert à indiquer la destination de tous les datagrammes qui ne peuvent être
routés par l'une des autres routes.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 13
L'utilisation d'une table de routage se fait suivant l'algorithme de routage IP donné ci-dessous.

Procédure RoutageIP(données Dat : datagramme, Tab : Table de routage)


début
D := adresse IP de destination de Dat
N := identificateur du réseau de D
si N est une adresse de réseau directement accessible
alors
envoyer Dat vers l'adresse D sur ce réseau
{ il y a résolution de l'adresse IP, en adresse physique,
encapsulation de Dat dans une trame physique et émission de la trame}
sinon
pour chaque entrée de Tab faire
N:=résultat du et logique de D et du masque de sous réseau
si N=l'adresse réseau ou sous réseau de la destination de l'entrée
alors
router Dat vers cette destination
sortir
finsi
finpour
si aucune correspondance n'est trouvée
alors
retourner à l'application d'origine du datagramme une erreur de routage
host unreachable ou unreachable network
finsi
finsi
Fin.

L'établissement d'une table de routage est statique lorsqu'elle résulte de la configuration par
défaut d'une interface, ou de la commande route à partir d'un fichier de démarrage, ou grâce à
une redirection ICMP. Mais dès que le réseau devient non trivial, on utilise le routage
dynamique qui consiste en un protocole de communication entre routeurs qui informent chacun
de leurs voisins des réseaux auxquels ils sont connectés. Grâce à ce protocole, les tables de
routage évoluent dans le temps en fonction de l'évolution des routes.

RIP (Routing Information Protocol)

RIP est apparu avec la version BSD d’Unix, il est documenté dans la RFC 1058 (1988 - Version
1 du protocole) et la RFC 1723 (1994 - Version 2 du protocole). Ce protocole est basé sur des
travaux plus anciens menés par la firme Xerox.
RIP utilise le concept de “ vecteur de distance ”, qui s’appuie sur un algorithme de calcul du
chemin le plus court dans un graphe. Le graphe est celui des routeurs, la longueur du chemin
est établie en nombre de sauts (“ hop ”), ou métrique, entre la source et la destination, c’est `a
dire en comptant toutes les liaisons. Cette distance est exprimée comme un nombre entier
variant entre 1 et 15 ; la valeur 16 est considérée comme l’infini et indique une mise à l’écart
de la route.
Chaque routeur émet dans un datagramme portant une adresse IP de broadcast, à fréquence fixe
(environ 30 secondes), le contenu de sa table de routage et écoute celle des autres routeurs pour
compléter sa propre table.
Ainsi se propagent les tables de routes d’un bout `a l’autre du réseau. Pour éviter une “ tempêtes
de mises à jours ”, le délais de 30 secondes est augmente d’une valeur aléatoire comprise entre
1 et 5 secondes. Si une route n’est pas annoncée au moins une fois en trois minutes, la distance

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 14
devient “ infinie ”, et la route sera retirée un peu plus tard de la table (elle est propagée avec
cette métrique).
L’adresse IP utilisée est une adresse de multipoint (“ multicast ”). Depuis la définition de RIPv2
(RFC 1723) les routes peuvent être accompagnées du masque de sous réseau qui les caractérise.
Ainsi on peut avoir la situation suivante :

ARP
ARP est l’acronyme de “ Address
Resolution Protocol ”, il est définie dans la
RFC 826.

– Le problème à résoudre est issu de la


constatation qu’une adresse IP n’a de sens
que pour la suite de protocole TCP/IP ; celle-ci étant indépendante de la partie matérielle il faut
avoir un moyen d’établir un lien entre ces deux constituants.

– La norme Ethernet (vs IEEE) suppose l’identification unique de chaque carte réseau construite
et vendue.

– Sur une même liaison physique, Ethernet par exemple, deux machines peuvent communiquer
SSI elles connaissent leurs adresses physiques respectives.

On suppose qu’une machine connaît sa propre adresse physique par un moyen qui n’est pas
décrit ici (ne fait pas partie du protocole).

– Lors du premier échange entre 2 machines d’un même LAN, si les adresses physiques ne sont
pas déjà connues, la solution a ce problème passe par l’usage du protocole ARP.

– L’usage de ARP est complètement transparent pour l’utilisateur.

la station
Ethernet A (IA,
PA) a besoin
de connaître
l’adresse
physique de la
station
Ethernet B (IB,
PB), pour ce faire elle envoie un datagramme de format spécial, dédie à ARP, qui
lui permet de poser la question (“ Arp question ”) à l’ensemble des machines actives. L’adresse
de la machine qui doit répondre étant l’objet de la question, son adresse (champ destinataire)
est donc remplacée par une adresse de “ broadcast ” (48 bits `a 1).
Toutes les machines du LAN écoutent cet échange et peuvent mettre à jour leur table de
conversion (adresse IP adresse Ethernet) pour la machine A.
Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 15
Le “ broadcast ”, coûteux en bande passante, est ainsi utilise au maximum de ses possibilités.
la réponse de B est du type “ unicast ”.

Si la station B ne répond pas, la station continuera à poser la question à intervals réguliers pendant un
temps infini. Il n’est pas besoin d’utiliser ARP préalablement à chaque échange, car heureusement le
résultat est mémorisé.

4.5. Le service de nommage DNS (Domain Name Service)

Lorsque vous vous adressez à une machine de l’Internet, il est souvent plus pratique de mémoriser un nom
symbolique plutôt que son adresse IP. Toutefois, on peut utiliser indifféremment l’une ou l’autre des deux formes
d’adresse. Ceci est possible grâce au service DNS (Domain Name Service), qui est chargé de convertir si besoin
les adresses IP en noms symboliques ou les noms symboliques en adresses IP.

Figure 4.6 : Arborescence du système DNS

Lorsqu’on recherche l’adresse IP associée à un nom d’une machine du réseau, ou bien le nom associé à une adresse
IP, on émet une requête au serveur DNS, dont l’adresse a été fournie par l’administrateur réseau. C’est ensuite lui
qui s’occupera de demander à qui de droit de résoudre l’adresse ou le nom fourni, puis retournera l’information.
Chaque serveur DNS gère les noms d’hôtes correspondants à une plage d’adresses IP. C’est ce que l’on appelle
une zone. Le DNS qui contrôle cette zone est appelé serveur primaire de la zone DNS.
Une zone contient un ou plusieurs domaines et chaque domaine contient des sous-domaines.
Lorsqu'un serveur de noms reçoit une demande, il vérifie si le nom appartient à l'un des sous domaines qu'il gère.
Si c'est le cas, il traduit le nom en une adresse en fonction de sa base de données et renvoie la réponse au
demandeur. Sinon, il s'adresse à un serveur de nom racine qui connaît le nom et l'adresse IP de chaque serveur de
noms pour les domaines de second niveau. Ce serveur de nom racine lui renvoie alors l'adresse d'un serveur de
noms à contacter, et ainsi de suite, par interrogations successives de serveurs de noms, il sera capable de fournir
l'adresse demandée. Pour éviter de faire trop souvent de telles requêtes, tout serveur de noms stocke dans une

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 16
mémoire cache les correspondances (numéro IP, nom de machine) de manière à pouvoir fournir la réponse
immédiatement si une même demande lui parvient ultérieurement.

Cours sur les réseaux – USTHB. Faculté d’Informatique & d’Electronique. 2021 Page 17

Vous aimerez peut-être aussi