Je maîtrise la numération
Pourquoi le binaire avant l'adressage IP
Steel+ vous confie la remise à plat du réseau de son atelier de production, mais l'aciérie ne dispose d'aucun plan : ni schéma, ni découpage en zones, ni trace des adresses distribuées aux automates, aux postes de supervision ou aux switches. Avant de dessiner quoi que ce soit, vous devez maîtriser un point technique incontournable : une adresse IP n'est, au fond, qu'une suite de bits. Chaque masque de sous-réseau, chaque plage d'adresses, chaque calcul de VLSM que vous ferez au chapitre suivant repose sur la capacité à jongler entre décimal, binaire et hexadécimal. C'est l'objet de ce chapitre.
Le bit et le mot binaire
Un élément binaire, un bit (binary digit), ne prend que deux valeurs possibles : 0 ou 1. Un mot binaire de n bits est un assemblage de n bits : 0111 est un mot de 4 bits, 01111001 est un mot de 8 bits — ce que l'on appelle un octet. Une adresse IPv4 est composée de 4 octets, donc de 32 bits au total : c'est la raison pour laquelle vous devez savoir manipuler des groupes de 8 bits sans hésiter.
Avec n bits, on peut coder un nombre de combinaisons égal à 2ⁿ :
| Nombre de bits | Combinaisons possibles |
|---|---|
| 1 bit | 2¹ = 2 |
| 2 bits | 2² = 4 |
| 4 bits | 2⁴ = 16 |
| 8 bits (1 octet) | 2⁸ = 256 |
Cette relation entre nombre de bits et nombre de combinaisons est la base de tout le calcul d'adressage : au chapitre 2, déterminer combien de bits emprunter pour créer des sous-réseaux ou des hôtes reviendra toujours à résoudre une puissance de 2.
Dans un mot binaire, on distingue deux bits particuliers, illustrés sur 1011 1100 :
- le bit de poids fort (MSB, Most Significant Bit) : le bit le plus à gauche, celui qui a la plus grande valeur ;
- le bit de poids faible (LSB, Least Significant Bit) : le bit le plus à droite.
Les bases de numération usuelles
Un TSSR manipule couramment trois bases :
- la base décimale (base 10) : chiffres
0à9, celle des humains ; - la base binaire (base 2) : chiffres
0et1, celle des machines ; - la base hexadécimale (base 16) : chiffres
0à9puisAàF, utilisée pour représenter le binaire de façon plus compacte (adresses MAC, adresses IPv6).
Ce tableau de correspondance est à connaître par cœur, car vous le reconstruirez mentalement à chaque conversion :
| Décimal | Binaire (4 bits) | Hexadécimal |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Convertir du décimal vers le binaire
Deux méthodes sont utilisables ; maîtrisez au moins la première, la plus rapide à la main.
Méthode des poids forts
On pose les 8 poids d'un octet (128 64 32 16 8 4 2 1), et on soustrait successivement le plus grand poids possible.
L'administrateur réseau de Steel+ vous communique le deuxième octet du bloc d'adresses de l'atelier : 50. Convertissons-le :
128 64 32 16 8 4 2 1
0 1 1 1 0 0 0 0
50 - 32 = 18
18 - 16 = 2
2 - 2 = 050 s'écrit donc 00110010 en binaire sur 8 bits.
Reprenons l'exemple du support de cours avec 214 :
214 - 128 = 86
86 - 64 = 22
22 - 16 = 6
6 - 4 = 2
2 - 2 = 0
128 64 32 16 8 4 2 1
1 1 0 1 0 1 1 0214 s'écrit 11010110.
Méthode des divisions successives par 2
On divise par 2 en conservant les restes, puis on les relit du dernier vers le premier.
134 / 2 = 67 reste 0
67 / 2 = 33 reste 1
33 / 2 = 16 reste 1
16 / 2 = 8 reste 0
8 / 2 = 4 reste 0
4 / 2 = 2 reste 0
2 / 2 = 1 reste 0
1 / 2 = 0 reste 1En relisant les restes de bas en haut : 134 = 10000110.
Convertir du binaire vers le décimal
Il suffit d'additionner les poids des bits positionnés à 1. Reprenons le troisième octet du bloc Steel+, 10000110 (rencontré ci-dessus) :
1 0 0 0 0 1 1 0
128 64 32 16 8 4 2 1
128 + 4 + 2 = 134Autre exemple, avec 10010110 :
1 0 0 1 0 1 1 0
128 64 32 16 8 4 2 1
128 + 16 + 4 + 2 = 150Convertir entre binaire et hexadécimal
Le passage binaire ↔ hexadécimal repose sur un découpage en groupes de 4 bits, puisque 2⁴ = 16 : chaque groupe de 4 bits correspond exactement à un chiffre hexadécimal.
Du binaire vers l'hexadécimal, groupez l'octet en deux quartets et traduisez chacun séparément :
1001 0101
8421 8421
9 5
(10010101)2 = (95)16, soit 0x95Autre exemple, avec 11011001 :
1101 1001
D 9
(11011001)2 = (D9)16, soit 0xD9De l'hexadécimal vers le binaire, on inverse la démarche : chaque chiffre hexadécimal redevient un quartet de 4 bits.
0x1B2
1 -> 0001
B -> 1011
2 -> 0010
0x1B2 = (0001 1011 0010)2Ce qui vous attend au chapitre suivant
Un octet d'adresse IP est un nombre décimal compris entre 0 et 255, c'est-à-dire un mot binaire de 8 bits (11111111 = 255, le maximum). Un masque de sous-réseau n'est jamais qu'une suite de 1 contigus suivie d'une suite de 0 contigus sur ces mêmes 32 bits. Déterminer une adresse réseau, une adresse de broadcast ou un découpage VLSM reviendra systématiquement à manipuler ces bits par groupes de 8 — ce que vous savez désormais faire.
Ce qu'il faut retenir
La numération n'est pas un exercice académique isolé : c'est l'outil qui permet de comprendre pourquoi un masque 255.255.255.192 limite un sous-réseau à 64 adresses, ou pourquoi une adresse IPv6 s'écrit en hexadécimal. Retenez la relation combinaisons = 2ⁿ, la conversion décimal-binaire par soustraction des poids forts, et le découpage en quartets pour l'hexadécimal : ce sont les trois réflexes que vous emploierez à chaque calcul d'adressage sur le dossier Steel+.