Ce chapitre complète la section d'introduction à TCP/IP; je vous recommande de la lire avant de lire ce qui suit si vous n'êtes pas familiers avec TCP/IP.
Le but des lignes qui suivent est plus, dans un premier temps, d'approfondir le protocole IP, dont le rôle est "l'organisation" et la structure des réseaux, que le protocole TCP qui s'intéresse plus à la manière dont les paquets IP cirulent sur Internet et dont la complexité technique m'échappe encore !
Mais revenons sur le protocole IP. En quelques mots, résumons ce qui a déjà été dit :
D'une manière plus conceptuelle, une adresse IP se sépare en 2 zones, le netID et le hostID.
Concrètement (je sens qu'il faut rapidement du concret !), vous pouvez voir désormais les classes IP de la façon suivante (N = bit constituant le netID, H = bit constituant le hostID).
classe A : NNNNNNNN HHHHHHHH HHHHHHHH HHHHHHHH classe B : NNNNNNNN NNNNNNNN HHHHHHHH HHHHHHHH classe C : NNNNNNNN NNNNNNNN NNNNNNNN HHHHHHHH
En rappelant que si vous vous portez acquéreur d'une classe IP, l'Internic vous impose tous les bits N, et vous laisse maître des bits H. En d'autres termes, vous achetez un netID, et vous gérez les hostID.
Les classes IP sont bien définies :
Ce qui "crée" des adresses IP de type 0-126.h.h.h
Possibilités : 127 classes A possibles de 16'177'216 hôtes chacune
Créant des adresses de type 128-191.n.h.h
Possibilités : 16'384 classes B possibles de 65'536 hôtes chacune
Créant des adresses de type 192-223.n.n.h
Possibilités : 2'097'152 classes C possibles de 254 hôtes chacune
Créant des adresses de type >224.n.n.h
Les classes D et E (dites adresses de multidiffusion (multicast)) sont réservées à des fins expérimentales.
Je rappelle en passant les plages d'adresses réservées par l'Internic à des fins privées (les adresses que vous pouvez utilisez sans problème sur votre réseau local, car elles ne sont pas routées sur Internet). Les trois plages correspondent en fait aux trois types de réseaux (A, B et C).
de 10.0.0.0 à 10.255.255.255 (classe A, masque 255.0.0.0)
de 172.16.0.0 à 172.31.255.255 (classe B, masque 255.255.0.0)
de 192.168.0.0 à 192.168.255.255 (classe C, masque 255.255.255.0)
Les masques de sous-réseau sont des filtres qui indiquent à l'ordinateur ce qu'il est capable de "voir" ou "ne pas voir". Conceptuellement, les masques de sous-réseaux (par exemple 255.255.0.0) sont des masques qui permettent de séparer le netID du hostID.
Si on superpose une adresse IP avec un masque de sous-réseau, les bits de l'adresse IP superposés aux bits 1 du masque définissent le netID, alors que les bits superposés aux bits 0 du masque définissent le hostID.
Prenons par exemple l'adresse IP 175.147.247.163
En binaire : 10101111 10010011 11110111 10100011
Appliquons à cette adresse le masque de classe B 255.255.0.0
En binaire : 11111111 11111111 00000000 00000000
La superposition sépare le partie netID de la partie hostID :
IP : 175.147.247.163 = 10101111 10010011 11110111 10100011 Masque : 255.255.0.0 = 11111111 11111111 00000000 00000000 -------------------------------------------------------------------- netID : 175.147.0.0 = 10101111 10010011 00000000 00000000 hostID : 247.163 = 00000000 00000000 11110111 10100011
Le netID est donc 175.147.0.0 et le hostID 247.163.
Cela paraît trivial. Vous constatez que les masques de sous-réseau rendent plus facile et plus rapide pour le protocole IP l'identification des parties netID et hostID de l'adresse IP. Mais les masques ont un autre avantage : ils permettent de sous-allouer des adresses réseaux.
Regardez comme le problème devient plus intéressant avec une adresse IP de classe C utilisant un masque 255.255.255.224.
IP : 205.101.55.91 = 11001101 01100101 00110111 01011011 Masque : 255.255.255.224 = 11111111 11111111 11111111 11100000 -------------------------------------------------------------------- netID : 205.101.55.64 = 11001101 01100101 00110111 01000000 hostID : 27 = 00000000 00000000 00000000 00011011
Ici, le netID est donc 205.101.55.64 et le hostID 27.
Allons plus loin et regardons les différentes possibilités qu'offre un tel masque de sous-réseau.
Les 3 bits verts peuvent, en principe, prendre toutes les combinaisons de 0 ou de 1 comprises entre 000 et 111. Les 5 bits rouges peuvent, de la même façon, prendre toutes les combinaisons comprises entre 00000 et 11111.
Je m'interromps deux minutes pour préciser qu'une RFC (Request For Comments) déclare que ni un hostID ni la partie sous-réseau d'un netID ne peuvent comporter que des 0 ou que des 1. Cette limitation théorique ne trouve pas souvent écho...
Corrigeons donc : les 3 bits verts peuvent prendre des valeurs de 001 à 110 (car 000 et 111 ne sont pas autorisés selon la RFC) :
-> 001, 010, 100, 011, 110, 101, ce qui fait 6 sous-réseaux
Les 5 bits rouges montrent des hostID pouvant prendre des valeurs de 00001 à 11110 (car 00000 et 11111 ne sont pas autorisés), ce qui donne des adresses décimales de 1 à 30 (0 et 31 ont été exclus par la RFC), donc 30 adresses par sous-réseau.
De cette façon, la classe C peut être sous-divisée en 6 sous-réseaux :
205.101.55.033 - 062
205.101.55.065 - 094
205.101.55.097 - 126
205.101.55.129 - 158
205.101.55.161 - 190
205.101.55.193 - 222
Vous constatez qu'il "manque" toujours deux adresses à chaque sous-réseau. La première, issue du hostID 00000 définit tout le sous-réseau, par exemple 205.101.55.32; la deuxième, issue du hostID 11111 donne l'adresse de diffusion du sous-réseau, par exemple 205.101.55.63.
Une petite polémique vient de ce que, sans la RFC, des adresses 205.101.55.1 - 30 (provenant du sous-réseau 000) et des adresses 205.101.55.225 - 254 (provenant du sous-réseau 111) seraient possibles.
De telles adresses sont d'ailleurs utilisées sans problèmes sur les réseaux Microsoft. De cette manière un masque de sous-réseau 255.255.255.224 segmente une classe C non pas en 6, mais en 8 sous-réseaux de 30 adresses chacuns.
(C) 02/02/2008 - Dernière modification : 02/02/2008 - F4CVM / Pascal