> Chaque appareil connecté à un réseau possède une adresse unique qui permet de l'identifier : c'est l'adresse IP.
---------
## Qu'est-ce qu'une adresse IP ?
Une **adresse IP** (Internet Protocol) est un identifiant numérique attribué à chaque appareil connecté à un réseau utilisant le protocole IP.
Elle permet :
- D'**identifier** de manière unique chaque machine sur le réseau
- De **localiser** cette machine pour lui envoyer des données
- De **router** les paquets de données à travers Internet
### Analogie
Tout comme votre adresse postale permet au facteur de vous livrer votre courrier, l'adresse IP permet aux données de trouver leur destinataire sur le réseau.
---------
## IPv4 : Structure d'une adresse
Une adresse IPv4 est composée de **4 octets** (32 bits), séparés par des points.
Chaque octet peut prendre une valeur comprise entre **0 et 255**.
```
Exemple : 192.168.1.25
```
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
|:-------:|:-------:|:-------:|:-------:|
| 192 | 168 | 1 | 25 |
| 11000000 | 10101000 | 00000001 | 00011001 |
### Nombre d'adresses possibles
Avec 32 bits, on peut théoriquement avoir $`2^{32}`$ = **4 294 967 296** adresses différentes.
> **Problème** : Ce nombre est aujourd'hui insuffisant ! C'est pourquoi IPv6 a été créé (128 bits).
---------
## Adresses publiques et privées
### Adresses publiques
Une adresse **publique** est unique sur Internet. Elle est attribuée par votre fournisseur d'accès (FAI) et permet à votre box d'être identifiée sur le réseau mondial.
### Adresses privées
Les adresses **privées** sont réservées aux réseaux locaux (LAN). Elles ne sont pas routables sur Internet.
| Classe | Plage d'adresses | Nombre d'adresses |
|--------|------------------|-------------------|
| A | 10.0.0.0 → 10.255.255.255 | 16 millions |
| B | 172.16.0.0 → 172.31.255.255 | 1 million |
| C | 192.168.0.0 → 192.168.255.255 | 65 536 |
> **Remarque** : Chez vous, vos appareils ont probablement une adresse en 192.168.x.x
---------
## Le masque de sous-réseau
Le **masque de sous-réseau** permet de distinguer deux parties dans une adresse IP :
- La partie **réseau** (commune à toutes les machines du même réseau)
- La partie **hôte** (unique pour chaque machine)
### Notation
Le masque s'écrit comme une adresse IP, avec des bits à 1 pour la partie réseau et des bits à 0 pour la partie hôte.
Le masque de sous-réseau ne sert pas uniquement à visualiser les parties réseau et hôte : il permet aussi de **calculer précisément** les adresses grâce aux opérations logiques appliquées bit à bit.
### Rappel : ET logique et OU logique
| A | B | A ET B | A OU B |
|---|---|--------|--------|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Ces opérations s'appliquent **bit par bit** sur les 32 bits de l'adresse IP.
### Première adresse du réseau — opération ET (AND)
Pour obtenir l'**adresse réseau** (première adresse), on applique un ET logique bit à bit entre l'adresse IP et le masque.
**Exemple** avec 192.168.1.25 / 255.255.255.0 :
```
Adresse IP : 11000000.10101000.00000001.00011001 (192.168.1.25)
> Les bits à **1** du masque "conservent" les bits de l'IP, les bits à **0** les "effacent".
### Dernière adresse du réseau — opération OU (OR)
Pour obtenir l'**adresse de broadcast** (dernière adresse), on applique un OU logique entre l'adresse réseau et le **complément du masque** (tous les bits sont inversés : les 1 deviennent 0 et inversement).
Avec seulement ~4,3 milliards d'adresses disponibles, IPv4 est aujourd'hui saturé. L'explosion des smartphones, objets connectés (IoT) et serveurs a épuisé le stock d'adresses disponibles dès **2011** pour les grandes régions du monde.
> En 2024, on compte plus de **17 milliards** d'appareils connectés à Internet. IPv4 ne pouvait pas suffire.
#### Structure d'une adresse IPv6
Une adresse IPv6 est codée sur **128 bits**, soit 4 fois plus qu'IPv4. Elle s'écrit en **hexadécimal**, sous la forme de 8 groupes de 4 chiffres séparés par des `:`.
```
Exemple : 2001:0db8:85a3:0000:0000:8a2e:0370:7334
```
Pour simplifier l'écriture, on peut :
- Supprimer les zéros en tête dans chaque groupe : `0db8` → `db8`
- Remplacer une suite de groupes nuls consécutifs par `::` (une seule fois)
```
2001:db8:85a3::8a2e:370:7334
```
#### Comparaison IPv4 / IPv6
| Caractéristique | IPv4 | IPv6 |
|----------------|------|------|
| Taille | 32 bits | 128 bits |
| Notation | Décimale pointée | Hexadécimale avec `:` |
En avril 2026, un chercheur a soumis à l'IETF (l'organisme qui standardise les protocoles Internet) un document proposant un **IPv8**. Il s'agit pour l'instant d'un brouillon très préliminaire, loin d'être adopté - IPv6 lui-même n'est pas encore universellement déployé.
- **NAT** : Network Address Translation, permet à plusieurs machines de partager une seule IP publique
- **DHCP** : Attribution automatique des adresses IP
---------
Auteur : Florian Mathieu
Licence CC BY NC
<arel="license"href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><imgalt="Licence Creative Commons"style="border-width:0"src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"/></a><br/>Ce cours est mis à disposition selon les termes de la <arel="license"href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.