Sur Internet, les ordinateurs
communiquent entre eux grâce au protocole TCP/IP qui
utilise des numéros de 32 bits, que
l'on écrit sous forme de 4 numéros allant de 0 à 255 (4 fois 8 bits), on les
note donc sous la forme xxx.xxx.xxx.xxx où chaque xxx représente un entier de 0
à 255.
Ces numéros servent aux ordinateurs du réseau pour se reconnaître, ainsi il ne doit
pas exister deux ordinateurs sur le réseau ayant la même adresse IP.
Par exemple, 194.153.205.26 est une adresse TCP/IP donnée sous une forme technique. Ce sont
ces adresses que connaîssent les ordinateurs qui communiquent entre eux.
C'est l'IANA (Internet Assigned Numbers Agency) qui est chargée d'attribuer ces numéros.
Comme nous l'avons vu une adresse IP est une adresse 32 bits 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 (on l'appelle netID)
- Les nombres de droite désignent les ordinateurs de ce réseau (on l'appelle host-ID)
Prenons un exemple:
Internet est représenté ci-dessus par deux petits réseaux.
Notons le réseau de gauche 194.28.12. Il contient alors les ordinateurs
suivants:
- 194.28.12.1 à 194.28.12.4
Notons celui de droite 178.12.77. Il comprendra les ordinateurs suivants:
- 178.12.77.1 à 178.12.77.6
Les réseaux sont donc notés 194.28.12 et 178.12.77, puis on numérote incrémentalement
chacun des ordinateurs le constituant.
Imaginons un gros réseau noté 58.24: on donnera généralement aux ordinateurs reliés
à lui les adresses IP allant de 58.24.0.1 à 58.24.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 peut contenir des ordinateurs dont l'adresse IP peut
aller de 102.0.0.1 à 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.
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, on obtient ce que l'on appelle l'adresse réseau.
Ainsi, 194.28.12.0 est une adresse réseau et on ne peut donc pas l'attribuer à un des ordinateurs du réseau
Lorsque l'on annule la partie netid, c'est-à-dire lorsque l'on remplace les bits
réservés au réseau, on obtient ce que l'on appelle 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,
on obtient ce que l'on appelle l'adresse de diffusion (en anglais broadcast), c'est-à-dire
une adresse qui permettra d'envoyer le message à toutes les machines situées
sur le réseau spécifié par le netID.
Lorsque tous les bits de la partie netid sont à 1,
on obtient ce que l'on appelle l'adresse de diffusion limitée (multicast).
L'adresse 127.0.0.1 est appelée adresse de boucle locale (en anglais loopback), car
elle désigne la machine locale (en anglais localhost).
Les adresses IP sont donc réparties en classes, c'est-à-dire selon le nombre d'octets qui
représentent le réseau.
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 27 (00000000 à 01111111) possibilités de réseaux,
c'est-à-dire 128. Toutefois le réseau 0 (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 (lorsque les
derniers octets sont des zéros cela indique qu'il s'agit d'un réseau et non d'un ordinateur!)
Les trois octets de droite représentent les ordinateurs du réseaux, le réseau peut donc
contenir: 224-2 = 16777214 ordinateurs.
Une adresse IP de classe A, en binaire, ressemble à ceci:
0 | xxxxxxx | xxxxxxxx | xxxxxxxx | xxxxxxxx |
Réseau | Ordinateurs |
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 214 (10 000000 00000000 à 10 111111 11111111) possibilités de réseaux,
c'est-à-dire 16384. 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: 216-21 = 65534 ordinateurs.
Une adresse IP de classe B, en binaire, ressemble à ceci:
10 | xxxxxx | xxxxxxxx | xxxxxxxx | xxxxxxxx |
Réseau | Ordinateurs |
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 221 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: 28-21 = 254 ordinateurs.
Une adresse IP de classe C, en binaire, ressemble à ceci:
110 | xxxxx | xxxxxxxx | xxxxxxxx | xxxxxxxx |
Réseau | Ordinateurs |
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
Il arrive fréquemment dans une entreprise 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).
Dans ce cas, seul l'ordinateur relié à Internet a besoin de réserver une adresse IP auprès de l'INTERNIC.
Toutefois, les autres ordinateurs ont tout de même besoin d'une adresse IP pour pouvoir communiquer
ensemble de façon interne.
Ainsi, l'INTERNIC 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 de conflits d'adresses IP sur le réseau. Il s'agit des adresses suivantes:
- 10.0.0.1 à 10.255.255.254
- 172.16.0.1 à 172.31.255.254
- 192.168.0.1 à 192.168.255.254
Pour comprendre ce qu'est un masque, il peut-être intéressant de jeter un
oeil à 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 rendre égaux à zéro.
Une fois ce masque créé, il suffit de faire un ET 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).
Il y en a en fait plusieurs. Un d'entre-eux est de pouvoir connaître le réseau associé à
une adresse IP. En effet, comme nous l'avons vu précédemment, 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). De plus, nous avons vu que l'on note un réseau en prenant le nombre d'octets qui le caractérise,
puis en complétant avec des 0.
Ainsi, le réseau associé à l'adresse 34.56.123.12 est 34.0.0.0 (puisqu'il s'agit d'une adresse de classe A).
Il suffit donc pour connaître l'adresse du réseau associé à l'adresse IP 34.56.123.12 d'appliquer un masque
dont le premier octet ne comporte que des 1 (ce qui donne 255), puis des 0 sur les octets suivants (ce qui donne 0..).
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 entre
00100010.11010000.01111011.00001100
ET
11111111.00000000.00000000.00000000
donne 00100010.00000000.00000000.00000000
C'est-à-dire 34.0.0.0, c'est bien le réseau associé à l'adresse 34.208.123.12
En généralisant, on obtient les masques suivants pour chaque classe:
- Pour une adresse de Classe A, seul le premier octet nous intéresse, on a donc un
masque de la forme 11111111.00000000.00000000.00000000, c'est-à-dire en notation décimale:
255.0.0.0
- Pour une adresse de Classe B, les deux premiers octets nous intéresse, on a donc un
masque de la forme 11111111.11111111.00000000.00000000, c'est-à-dire en notation décimale:
255.255.0.0
- Pour une adresse de Classe C on s'intéresse aux trois premiers octets, on a donc un
masque de la forme 11111111.11111111.11111111.00000000, c'est-à-dire en notation décimale:
255.255.255.0
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 255.0.0.0
- Soit les deux premiers bits du deuxième octet sont 01,
auquel cas le résultat du masquage est 255.64.0.0
- Soit les deux premiers bits du deuxième octet sont 10,
auquel cas le résultat du masquage est 255.128.0.0
- Soit les deux premiers bits du deuxième octet sont 11,
auquel cas le résultat du masquage est 255.192.0.0
Ce masquage divise donc un réseau de classe A (pouvant admettre 16777214 ordinateurs) en 4 sous-réseaux
(d'où le nom de masque de sous-réseau) pouvant admettre 222 ordinateurs, c'est-à-dire
4194304 ordinateurs.
Au passage on remarque que le nombre d'ordinateurs possibles dans les deux cas est au total de 16777214 ordinateurs (4 x 4194304 - 2 = 16777214)
Le nombre de sous-réseaux dépend du nombre de bits que l'on attribue 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 |
|