Adresse IP
NSI Première
Définition
Une adresse IP (Internet Protocol) est un identifiant numérique attribué à chaque machine connectée à un réseau utilisant le protocole IP, permettant de l'identifier et d'acheminer les données vers elle. En IPv4, elle est codée sur 32 bits, soit 4 octets séparés par des points (notation décimale pointée), chaque octet valant de $0$ à $255$. L'IPv6 la code sur 128 bits pour pallier la pénurie d'adresses IPv4. Une adresse se décompose en une partie *réseau* et une partie *hôte*, délimitées par le masque de sous-réseau.
Formule
$$\text{Nombre d'adresses IPv4} = 2^{32} \approx 4{,}29 \times 10^{9}$$
Exemple corrigé
Énoncé
Soit l'adresse IPv4 `192.168.1.10` avec un masque `255.255.255.0`. Donner l'adresse du réseau et le nombre d'hôtes adressables sur ce réseau.
Solution
Le masque `255.255.255.0` correspond à 24 bits à 1 : les 3 premiers octets désignent le réseau, le dernier octet désigne l'hôte.
L'adresse réseau s'obtient par un ET logique bit à bit entre l'adresse et le masque :
- $192 \text{ ET } 255 = 192$
- $168 \text{ ET } 255 = 168$
- $1 \text{ ET } 255 = 1$
- $10 \text{ ET } 0 = 0$
L'adresse réseau est donc `192.168.1.0`.
```python
def adresse_reseau(ip, masque):
octets_ip = [int(x) for x in ip.split('.')]
octets_masque = [int(x) for x in masque.split('.')]
reseau = [a & m for a, m in zip(octets_ip, octets_masque)]
return '.'.join(str(o) for o in reseau)
print(adresse_reseau('192.168.1.10', '255.255.255.0')) # 192.168.1.0
```
La partie hôte occupe 8 bits, soit $2^{8} = 256$ combinaisons. On retire l'adresse réseau (`.0`) et l'adresse de diffusion (`.255`), non attribuables à une machine :
$$2^{8} - 2 = \boxed{254 \text{ hôtes adressables}}$$
Erreurs classiques
- Croire qu'un octet peut dépasser 255 : chaque octet est codé sur 8 bits, donc varie de 0 à $2^8-1 = 255$.
- Oublier de retirer l'adresse réseau et l'adresse de diffusion (broadcast) dans le décompte des hôtes utilisables.
Pour aller plus loin : le chapitre « Architectures matérielles, réseaux et systèmes d'exploitation » (cours et exercices corrigés).