Sur Internet, les ordinateurs
communiquent entre eux grâce au protocole IP
(Internet Protocol), qui utilise des adresses numériques,
appelées adresses IP, composées de 4 nombres entiers (4 octets)
entre 0 et 255 et notées sous la forme xxx.xxx.xxx.xxx. Par exemple, 194.153.205.26
est une adresse IP donnée sous une forme technique.
Ces adresses servent aux ordinateurs du réseau
pour communiquer entre-eux, ainsi chaque ordinateur d'un réseau possède
une adresse IP unique sur ce réseau.
C'est l'ICANN (Internet Corporation for
Assigned Names and Numbers, remplaçant l'IANA, Internet Assigned
Numbers Agency, depuis 1998) qui est chargée d'attribuer des
adresses IP publiques, c'est-à-dire les adresses IP des ordinateurs
directement connectés sur le réseau public internet.
Déchiffrement d'une
adresse IP
Une adresse IP est une adresse 32 bits,
généralement notée sous forme de 4 nombres entiers séparés par des
points. On distingue en fait deux parties dans l'adresse IP :
- une partie des nombres à gauche désigne le réseau est est
appelée ID de réseau (en anglais netID), - Les nombres de droite désignent les ordinateurs de ce réseau
est est appelée ID d'hôte (en anglais host-ID).
Soit l'exemple ci-dessous :
Notons le réseau de gauche 194.28.12.0. Il
contient les ordinateurs suivants :
- 194.28.12.1 à 194.28.12.4
Notons celui de droite 178.12.0.0. Il
comprend les ordinateurs suivants :
- 178.12.77.1 à 178.12.77.6
Dans le cas ci-dessus, les réseaux sont notés 194.28.12
et 178.12.77, puis on numérote incrémentalement chacun des
ordinateurs le constituant.
Imaginons un réseau noté 58.0.0.0. Les
ordinateurs de ce réseau pourront avoir les adresses IP allant de 58.0.0.1
à 58.255.255.254. Il s'agit donc d'attribuer les numéros de
telle façon qu'il y ait une organisation dans la hiérarchie des
ordinateurs et des serveurs.
Ainsi, plus le nombre de bits réservé au réseau
est petit, plus celui-ci peut contenir d'ordinateurs.
En effet, un réseau noté 102.0.0.0 peut
contenir des ordinateurs dont l'adresse IP peut varier entre 102.0.0.1
et 102.255.255.254 (256*256*256-2=16777214 possibilités), tandis qu'un
réseau noté 194.26 ne pourra contenir que des ordinateurs dont
l'adresse IP sera comprise entre 194.26.0.1 et 194.26.255.254
(256*256-2=65534 possibilités), c'est la notion de classe d'adresse
IP.
Adresses particulières
Lorsque l'on annule la partie host-id, c'est-à-dire
lorsque l'on remplace les bits réservés aux machines du réseau par des
zéros (par exemple 194.28.12.0), on obtient ce que l'on appelle
l'adresse réseau. Cette adresse ne peut être attribuée à aucun
des ordinateurs du réseau.
Lorsque la partie netid est annulée,
c'est-à-dire lorsque les bits réservés au réseau sont remplacés par des
zéros, on obtient l'adresse machine. Cette adresse représente la
machine spécifiée par le host-ID qui se trouve sur le réseau courant.
Lorsque tous les bits de la partie host-id sont à
1, l'adresse obtenue est appellée l'adresse de diffusion (en
anglais broadcast). Il s'agit d'une adresse spécifique,
permettant d'envoyer un message à toutes les machines situées sur le
réseau spécifié par le netID.
Enfin, l'adresse 127.0.0.1 est appelée adresse
de rebouclage (en anglais loopback), car elle désigne la machine
locale (en anglais localhost).
Les classes de
réseaux (obsolète)
Dans le système de définition des réseau ip originel les
adresses IP étaient réparties en classes, selon le nombre d'octets qui
représentent le réseau, lui même déterminé par les premiers bits de
l'adresse ip:
Aujourd'hui ce système a été remplacé par le CIDR
au milieu des années 90 .
On avait à cette époque 3 classes pour les adresses unicast, une
classe pour les adresses multidestinataires (multicast), la classe D et
une classe E non utilisée:
Classe A
Dans une adresse IP de classe A, le premier octet
représente le réseau.
Le bit de poids fort (le premier bit, celui de
gauche) est à zéro, ce qui signifie qu'il y a 2^7 (00000000 à 01111111)
possibilités de réseaux, soit 128 possibilités. Toutefois, le réseau 0
(bits valant 00000000) n'existe pas et le nombre 127 est réservé pour
désigner votre machine.
Les réseaux disponibles en classe A sont donc
les réseaux allant de 1.0.0.0 à 126.0.0.0 (les derniers
octets sont des zéros ce qui indique qu'il s'agit bien de réseaux et non
d'ordinateurs !)
Les trois octets de droite représentent les
ordinateurs du réseaux, le réseau peut donc contenir un nombre
d'ordinateur égal à :
2^24-2^1 = 16777214 ordinateurs.
Une adresse IP de classe A, en binaire,
ressemble à ceci :
0 | xxxxxxx | xxxxxxxx | xxxxxxxx | xxxxxxxx |
Réseau | Ordinateurs | |||
Classe B
Dans une adresse IP de classe B, les deux premiers
octets représentent le réseau.
Les deux premiers bits sont 1 et 0, ce qui
signifie qu'il y a 2^14 (10 000000 00000000 à 10 111111 11111111)
possibilités de réseaux, soit 16384 réseaux possibles. Les réseaux
disponibles en classe B sont donc les réseaux allant de 128.0.0.0
à 191.255.0.0
Les deux octets de droite représentent les
ordinateurs du réseau. Le réseau peut donc contenir un nombre
d'ordinateurs égal à :
2^16-2^1 = 65534 ordinateurs.
Une adresse IP de classe B, en binaire,
ressemble à ceci :
10 | xxxxxx | xxxxxxxx | xxxxxxxx | xxxxxxxx |
Réseau | Ordinateurs | |||
Classe C
Dans une adresse IP de classe C, les trois premiers
octets représentent le réseau. Les trois premiers bits sont 1,1 et 0, ce
qui signifie qu'il y a 2^21 possibilités de réseaux, c'est-à-dire
2097152. Les réseaux disponibles en classe C sont donc les réseaux
allant de 192.0.0.0 à 223.255.255.0
L'octet de droite représente les ordinateurs du
réseau, le réseau peut donc contenir:
2^8-2^1 = 254 ordinateurs.
Une adresse IP de classe C, en binaire,
ressemble à ceci :
110 | xxxxx | xxxxxxxx | xxxxxxxx | xxxxxxxx |
Réseau | Ordinateurs | |||
Attribution des adresses
IP
Le but de la division des adresses IP en trois classes
A,B et C est de faciliter la recherche d'un ordinateur sur le réseau. En
effet avec cette notation il est possible de rechercher dans un premier
temps le réseau que l'on désire atteindre puis de chercher un
ordinateur sur celui-ci. Ainsi, l'attribution des adresses IP se fait
selon la taille du réseau.
Classe | Nombre de réseaux possibles | Nombre d'ordinateurs maxi sur chacun |
---|---|---|
A | 126 | 16777214 |
B | 16384 | 65534 |
C | 2097152 | 254 |
Les adresses de classe A sont réservées aux très
grands réseaux, tandis que l'on attribuera les adresses de classe C à
des petits réseaux d'entreprise par exemple
Adresses IP réservées
Il arrive fréquemment dans une entreprise ou une
organisation qu'un seul ordinateur soit relié à internet, c'est par son
intermédiaire que les autres ordinateurs du réseau accèdent à internet
(on parle généralement de proxy
ou de passerelle).
Dans ce cas de figure, seul l'ordinateur relié à
internet a besoin de réserver une adresse IP auprès de l'ICANN.
Toutefois, les autres ordinateurs ont tout de même besoin d'une adresse
IP pour pouvoir communiquer ensemble en interne.
Ainsi, l'ICANN a réservé une poignée d'adresses
dans chaque classe pour permettre d'affecter une adresse IP aux
ordinateurs d'un réseau local relié à internet sans risquer de créer des
conflits d'adresses IP sur le réseau des réseaux. Il s'agit des
adresses suivantes :
- Adresses IP privées de classe A : 10.0.0.1 à 10.255.255.254,
permettant la création de vastes réseaux privés comprenant des milliers
d'ordinateurs. - Adresses IP privées de classe B : 172.16.0.1 à 172.31.255.254,
permettant de créer des réseaux privés de taille moyenne. - Adresses IP privées de classe C : 192.168.0.1 à
192.168.255.254, pour la mise en place de petits réseaux privés.
Masques de sous-réseau
Pour comprendre ce qu'est un masque, il peut-être
intéressant de consulter la section « assembleur » qui parle du masquage
en binaire
En résumé, on fabrique un masque contenant des 1
aux emplacements des bits que l'on désire conserver, et des 0 pour ceux
que l'on veut annuler. Une fois ce masque créé, il suffit de faire un
ET logique entre la valeur que l'on désire masquer et le masque afin de
garder intacte la partie que l'on désire et annuler le reste.
Ainsi, un masque réseau (en anglais netmask)
se présente sous la forme de 4 octets séparés par des points (comme une
adresse IP), il comprend (dans sa notation binaire) des zéros aux
niveau des bits de l'adresse IP que l'on veut annuler (et des 1 au
niveau de ceux que l'on désire conserver).
Interet d'un
masque de sous-réseau
Le premier intérêt d'un masque de sous-réseau est de
permettre d'identifier simplement le réseau associé à une adresse IP.
En effet, le réseau est déterminé par un certain
nombre d'octets de l'adresse IP (1 octet pour les adresses de classe A,
2 pour les adresses de classe B, et 3 octets pour la classe C). Or, un
réseau est noté en prenant le nombre d'octets qui le caractérise, puis
en complétant avec des 0. Le réseau associé à l'adresse 34.56.123.12
est par exemple 34.0.0.0, car il s'agit d'une adresse IP de
classe A.
Pour connaître l'adresse du réseau associé à
l'adresse IP 34.56.123.12, il suffit donc d'appliquer un masque
dont le premier octet ne comporte que des 1 (soit 255 en notation
décimale), puis des 0 sur les octets suivants.
Le masque est: 11111111.00000000.00000000.00000000
Le masque associé à l'adresse IP 34.208.123.12 est donc 255.0.0.0.
La valeur binaire de 34.208.123.12 est: 00100010.11010000.01111011.00001100
Un ET logique entre l'adresse IP et le masque donne ainsi le
résultat suivant :
00100010.11010000.01111011.00001100
ET
11111111.00000000.00000000.00000000
=
00100010.00000000.00000000.00000000
Soit 34.0.0.0. Il s'agit bien du réseau associé à l'adresse 34.208.123.12
En généralisant, il est possible d'obtenir les
masques correspondant à chaque classe d'adresse :
- Pour une adresse de Classe A, seul le premier octet
doit être conservé. Le masque possède la forme suivante 11111111.00000000.00000000.00000000,
c'est-à-dire 255.0.0.0 en notation décimale ; - Pour une adresse de Classe B, les deux premiers octets
doivent être conservé, ce qui donne le masque suivant 11111111.11111111.00000000.00000000,
correspondant à 255.255.0.0 en notation décimale ; - Pour une adresse de Classe C, avec le même raisonnement,
le masque possédera la forme suivante 11111111.11111111.11111111.00000000,
c'est-à-dire 255.255.255.0 en notation décimale
Création de sous-réseaux
Reprenons l'exemple du réseau 34.0.0.0, et supposons que
l'on désire que les deux premiers bits du deuxième octet permettent de
désigner le réseau.
Le masque à appliquer sera alors :
11111111.11000000.00000000.00000000
C'est-à-dire 255.192.0.0
Si on applique ce masque, à l'adresse 34.208.123.12
on obtient :
34.192.0.0
En réalité il y a 4 cas de figures possibles pour le
résultat du masquage d'une adresse IP d'un ordinateur du réseau
34.0.0.0
- Soit les deux premiers bits du deuxième octet sont 00,
auquel cas le résultat du masquage est 34.0.0.0 - Soit les deux premiers bits du deuxième octet sont 01,
auquel cas le résultat du masquage est 34.64.0.0 - Soit les deux premiers bits du deuxième octet sont 10,
auquel cas le résultat du masquage est 34.128.0.0 - Soit les deux premiers bits du deuxième octet sont 11,
auquel cas le résultat du masquage est 34.192.0.0
Ce masquage divise donc un réseau de classe A
(pouvant admettre 16 777 214 ordinateurs) en 4 sous-réseaux - d'où le
nom de masque de sous-réseau - pouvant admettre 2^22 ordinateurs,
c'est-à-dire 4 194 304 ordinateurs.
Le nombre de sous-réseaux dépend du nombre de
bits attribués en plus au réseau (ici 2). Le nombre de sous-réseaux est
donc :
Nombre de bits | Nombre de sous-réseaux |
---|---|
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
8 (impossible pour une classe C) | 256 |