L'adressage TCP / IP.
Pré-requis.
Qu'est-ce que TCP / IP ?
Les adresses IP.
Pourquoi des classes ?
Les masques de sous-réseau.
Comment fonctionne un masque de sous-réseaux.
Quelques EXEMPLES
Qu'est-ce que TCP / IP ?
TCP/IP signifie "Transmission Control Protocol/Internet Protocol". C'est un des protocoles (langage de communication entre les ordinateurs) du monde informatique, et c'est en particulier le protocole de communication utilisé sur Internet.
TCP/IP signifie TCP sur IP. TCP et IP représentent chacun une couche du modèle OSI, plus particulièrement la couche 4 (transport) pour TCP et la couche 3 (réseau) pour IP. Le principe de la communication via TCP/IP est d'assigner à chaque réseau et à chaque équipement une adresse unique qui pourra l'identifier.Les adresses IP:Ainsi, une adresse IP que l'on peut assimiler à une adresse classique (n°, rue, ville, département, etc.), permet de localiser et d'identifier l'émetteur ou le destinataire d'une communication. Etant donné qu'internet fonctionne avec le protocole TCP/IP vous pouvez déjà noter que dès lors que vous circulez sur internet vous possédez une adresse IP qui vous identifie. RIEN N'EST DONC ANONYME SUR INTERNET...
Nous venons de voir que lorsque l'on utilisait le protocole TCP/IP, chaque équipement était identifié à l'aide d'une adresse IP. Nous allons à présent voir comment est définie cette adresse:
Exemple:
- Une adresse IP est composée de 4 nombres séparés par un point.
- Chacun de ces nombres est codé sur 1 octet et peut donc prendre une valeur comprise entre 0 et 255 inclu.
- Une partie gauche plus ou moins grande identifie un réseau.
- La partie restante à droite identifie une machine sur ce réseau.
135.240.0.1Les adresses IP sont découpées en classes:
- les deux premiers octets (les deux premiers nombres) identifient un réseau particulier
- les deux nombres suivants identifient un équipement sur ce réseau.
- Classe A:
- Le premier octet est reservé au réseau et son premier bit est à 0.
- Les 3 octets suivants sont destinés aux hôtes.
Le premier bit de l'octet réseau valant 0 nous avons normalement:NB: les hôtes étant codés sur les trois derniers octets, on y place des 0 pour indiquer que l'adresse est l'adresse d'un réseau et non d'un hôte.27 soit 128 codages de réseau possiblesLe réseau "0 0000000" est interdit.
de 0 0000000 à 0 1111111 soit de 0 à 127 en décimal
Nous disposons donc de 127 (128 - 1) réseaux possibles en classe A:
De 1.0.0.0 à 127.0.0.0
- Classe B:
- 2 octets reservés au réseau dont le premier commence par les bits 1 puis 0.
- 2 octets destinés aux hôtes.
Les premiers bits du premier octet réseau valant 1 puis 0, nous avons:214 soit 16 384 codages de réseau possibles
de 10 000000 00000000 à 10 111111 11111111De 128.0.0.0 à 191.255.0.0
- Classe C:
- 3 octets reservés au réseau dont le premier commence par les bits 1, 1 puis 0
- le dernier octet est reservé aux hôtes.
Pourquoi des classes ?
Les premiers bits du premier octet réseau valant 1, 1 puis 0, nous avons:221 soit 209 752 codages de réseau possibles
de 110 00000 00000000 00000000 à 110 11111 11111111 11111111
De 192.0.0.0 à 192.255.255.0- Classe D: les 4 premiers bits de la partie réseau sont 1, 1, 1 puis 0
- Classe E: les 5 premiers bits de la partie réseau sont 1, 1, 1,1 puis 0
- Etc.
Nous utilisons habituellement les classes A, B et C.
Nous venons de voir que les adresses IP étaient divisées en classes. Le rôle de ces classes est essentiellement de diviser l'adresse en deux parties: une partie dédiée au réseau, et une partie dédiée aux hôtes (équipements).L'augmentation du nombre d'hôtes se fait au détriment du nombre de réseaux et inversement.
- Dans la classe A nous avons seulement 127 réseaux possibles mais sur chacun de ces réseaux nous pouvons avoir jusqu'à 224 soit 16 777 216 hôtes possibles .
- Dans la classe B nous avons 16 384 réseaux possibles et sur chacun de ces réseaux nous pouvons avoir jusqu'à 216 soit 65 536 hôtes possibles.
- Dans la classe C nous avons 2 097 152 réseaux possibles mais nous n'avons plus que 256 hôtes possibles sur ces réseaux.
PLUS SIMPLEMENT
Si l'on assimile ce procédé aux adresses que l'on utilise tous les jours, nous pouvons dire qu'une adresse en classe A serait appropriée à un pays qui aurait peu de villes (assimilées aux réseaux) mais beaucoup d'habitants (assimilés aux hôtes) dans chacune de ces villes.
Une classe B serait appropriée à un pays ayant un bon nombre de villes et une quantité non négligeable d'habitants dans chacune de ces villes.
Enfin la classe C serait appropriée à un pays ayant énormément de villages contenant peu d'habitants.Les adresses IP sont donc réparties dans le monde en fonction des besoins réels de chacun.
On ne donnera ainsi pas d'adresses en classe A à une petite société qui ne possède qu'une centaine de postes...
Les masques de sous-réseau.
Rappels algébriques:
Ainsi:
Plus simplement: si une ville reçoit un certain nombre d'adresses pour identifier des individus, elle peut souhaiter créer en premier lieu des arrondissements puis distribuer des adresses. Elle souhaiterait donc prendre une partie des adresses données pour identifier des arrondissements.
Exemple:
Nous avons vu précédemment que dans une adresse IP, une partie était
reservée à l'identification du réseau, et l'autre partie à
l'identification de l'hôte. Nous avons de même vu que le masque de sous-réseau
permettait de détourner une partie des octets reservés aux hôtes de manière
à les utiliser pour identifier un réseau.
Ce détournement se fait à l'aide d'un "ET logique" entre la véritable
adresse IP et le masque de sous-réseau qui se présente aussi sous la forme
de 4 octets séparés par un point. Lorsque les bits des octets du masque sont
à 1, cela indique que les bits correspondant des octets de l'adresse IP
identifient un réseau. Lorsque les bits des octets du masque sont à 0, cela
indique que les bits correspondant des octets de l'adresse IP identifient un hôte.
Les masques standard sont:
EXEMPLE
132.90.114.1
(classe B) est normalement associé au masque de sous-réseau 255.255.0.0
10000100 . 01011010 .
01110010 . 00000001
11111111 . 11111111 . 00000000 . 00000000 (&)
10000100 . 01011010 . 00000000 . 00000000
soit 132.90.0.0
132.90.0.0 est bien
le réseau correspondant à l'adresse de la machine 132.90.114.1
Imaginons maintenant, sur le même exemple, que l'on veuille que les deux premiers bits du troisième octet (du premier octet des hôtes) permettent d'identifier non plus un hôte mais un réseau.
Il faut donc que le masque de sous-réseau ne soit plus:
11111111 . 11111111 . 00000000 . 00000000
(255.255.0.0)
mais
11111111 . 11111111 . 11000000 . 00000000
(255.255.192.0)
Ainsi, lorsque l'on effectue le "ET logique", on s'aperçoit que le réseau n'est plus 132.90.0.0
10000100 . 01011010 .
01110010 . 00000001
11111111 . 11111111 . 11000000 . 00000000
(&)
10000100 . 01011010 . 01000000 . 00000000
soit 132.90.64.0
On a maintenant 4 sous-réseaux créés:
132.90.0.0
correspondant à 10000100 . 01011010
. 00 000000 .
000000
132.90.64.0
correspondant à 10000100 . 01011010 .
01 000000 . 000000
132.90.128.0
correspondant à 10000100 . 01011010
. 10 000000 .
000000
132.90.192.0
correspondant à 10000100 . 01011010 .
11 000000 . 000000
Dans chacun de ces sous-réseaux, nous pouvons
identifier 214 soit 16 384 hôtes.
Nous remarquons que sans masque (ou avec un masque
standard de 255.255.0.0) nous avions 1 réseau unique avec 216
soit 65536 hôtes possibles, et qu'en ayant placé un masque de 255.255.192.0
nous obtenons 4 sous-réseaux de 16 384 hôtes.
Remarque:
1 * 65 536 = 65 536
4 * 16 384 = 65 536
Le découpage en sous-réseau ne diminue pas le nombre
final d'hôtes adressables.
11111111 . 11111111 . 11100000 . 00000000
11111111 . 11110000 . 00000000 . 00000000
11111111 . 11111111 . 11111110 . 00000000
11111111 . 11111110 . 00000000 . 00000000
Les différents octets d'un masque de sous-réseau ne peuvent donc prendre que les valeurs:
11001001 . 11011110 . 00001010
. 00111100 adresse IP en binaire.
11111111 . 11111111 . 11111111 . 11111000
masque en binaire.
11001001 . 11011110 . 00001010 . 00111000
(& logique).
Cette machine se trouve donc sur le réseau: 201.222.10.56
Sur ce réseau, on peut normalement placer 23 soit 8 hôtes différents
(car il nous reste 3 bits pour coder l'hôte).
Cependant, il faut savoir que l'on ne peut pas utiliser les octets composés
uniquement de 0 ou ceux composés uniquement de 1 car il sont réservés
(l'un pour identifier le réseau, et l'autre pour le boadcast). Nous pouvons
donc disposer de 6 hôtes.
..... 00111 000
interdit: reservé pour identifier le réseau.
..... 00111 001
identifie 1 hôte.
..... 00111 010
identifie 1 hôte.
..... 00111 011
identifie 1 hôte.
..... 00111 100
identifie 1 hôte.
..... 00111 101
identifie 1 hôte.
..... 00111 110
identifie 1 hôte.
..... 00111 111
interdit: reservé pour le broadcast.
Pour la même raison, on ne peut pas utiliser un masque de 128
(255.255.255.128) ni un masque de 254 (255.255.255.254) en classe C car
sinon il ne reste plus qu'un bit pour identifier le réseau ou l'hôte et
les octets composés uniquement de 0 ou de 1 étant reservés,
l'identification devient impossible.
Exemple:
Il ne reste plus qu'un bit pour
identifier l'hôte, bit qui ne peut prendre que la valeur 0 (reservée
à l'identification du réseau) ou 1 (reservée au broadcast). On ne
peut donc pas identifier d'hôte avec ce masque.
Il ne reste plus qu'un bit pour identifier le sous-réseau, bit qui ne peut prendre que la valeur 0 (reservée pour commencer l'identification de la partie reservée aux hôtes) ou la valeur 1 (reservée).
Cette machine se trouve donc sur le réseau: 15.16.192.0
Sur ce réseau, on peut normalement placer 211 soit 2 048 hôtes différents (car il nous reste 11 bits pour coder l'hôte). Cependant, comme on ne peut pas utiliser les octets composés uniquement de 0 ou ceux composés uniquement de 1 car ils sont réservés, nous ne disposons donc que de 2 046 hôtes.
Cette machine se trouve donc sur le réseau: 128.16.32.12
Sur ce réseau, on peut normalement placer 22 soit 4 hôtes différents (car il nous reste 2 bits pour coder l'hôte). Cependant, comme on ne peut pas utiliser les octets composés uniquement de 0 ou ceux composés uniquement de 1 car ils sont réservés, nous ne disposons donc que de 2 hôtes.
Cette machine se trouve donc sur le réseau: 153.50.6.0
Sur ce réseau, on peut normalement placer 27 soit 128 hôtes différents (car il nous reste 7 bits pour coder l'hôte). Cependant, comme on ne peut pas utiliser les octets composés uniquement de 0 ou ceux composés uniquement de 1 car ils sont réservés, nous ne disposons donc que de 126 hôtes.
Adresses IP privées :
10.0.0.0 => 10.255.255.255
172.16.0.0 => 172.31.255.255
192.168.0.0 => 192.168.255.255