Réseaux
OSI, TCP/IP, adressage, routage, chiffrement
🎯 Introduction
Un réseau informatique permet à des machines de communiquer et partager des ressources. Internet est un réseau mondial de réseaux interconnectés. Ce chapitre couvre les protocoles et mécanismes qui permettent cette communication.
✅ Ce qu'il faut savoir
- Modèle en couches OSI et TCP/IP : rôle de chaque couche
- Adresse IP (IPv4/IPv6), masque de sous-réseau, CIDR
- Protocoles TCP vs UDP : différences et usages
- DNS : traduction nom de domaine → adresse IP
- DHCP : attribution automatique d'adresses IP
- Routage : tables de routage, algorithmes (Dijkstra)
- Chiffrement symétrique / asymétrique, HTTPS/TLS
🏛️ Modèles OSI et TCP/IP
Les communications réseau sont organisées en couches. Chaque couche fournit des services à la couche supérieure et utilise les services de la couche inférieure.
| Couche OSI | Couche TCP/IP | Rôle | Protocoles |
|---|---|---|---|
| 7 – Application | Application | Interface avec l'utilisateur | HTTP, FTP, DNS, SMTP |
| 6 – Présentation | Encodage, chiffrement | TLS/SSL | |
| 5 – Session | Gestion de sessions | — | |
| 4 – Transport | Transport | Fiabilité, segmentation | TCP, UDP |
| 3 – Réseau | Internet | Routage entre réseaux | IP, ICMP |
| 2 – Liaison | Accès réseau | Transmission sur lien local | Ethernet, Wi-Fi |
| 1 – Physique | Signaux électriques/optiques | Câbles, fibres, radio |
TCP vs UDP
| Critère | TCP | UDP |
|---|---|---|
| Connexion | Orienté connexion (handshake 3 voies) | Sans connexion |
| Fiabilité | ✅ Accusés de réception, retransmission | ❌ Pas de garantie |
| Ordre | ✅ Paquets reordonnés si besoin | ❌ Ordre non garanti |
| Vitesse | Plus lent (overhead) | Plus rapide |
| Usages | HTTP, FTP, email, SSH | DNS, streaming, jeux, VoIP |
Handshake TCP (3 voies)
Client ──── SYN ────────────────────► Serveur
Client ◄─── SYN-ACK ──────────────── Serveur
Client ──── ACK ────────────────────► Serveur
(connexion établie)
SYN : demande de synchronisation
ACK : accusé de réception
SYN-ACK : accepte la connexion ET demande synchro en retour
📍 Adressage IP
IPv4
# Adresse IPv4 : 4 octets séparés par des points
# Exemple : 192.168.1.42
# ↑ ↑ ↑
# réseau sous hôte
# Masque de sous-réseau : indique la partie réseau
# 192.168.1.42 / 255.255.255.0
# En CIDR : 192.168.1.42/24 (24 bits pour le réseau)
# Adresse réseau = adresse & masque
# 192.168.1.42 & 255.255.255.0 = 192.168.1.0
# Calcul Python
import ipaddress
net = ipaddress.ip_network('192.168.1.0/24')
print(net.num_addresses) # → 256 (dont réseau et broadcast)
print(net.network_address) # → 192.168.1.0
print(net.broadcast_address)# → 192.168.1.255
Adresses spéciales
| Adresse | Rôle |
|---|---|
| 127.0.0.1 | Loopback (la machine elle-même) |
| 192.168.x.x | Réseau privé (LAN) |
| 10.x.x.x | Réseau privé (LAN) |
| 172.16.x.x – 172.31.x.x | Réseau privé (LAN) |
| 255.255.255.255 | Broadcast limité |
| 0.0.0.0 | Toutes les interfaces (écoute) |
IPv6
# IPv6 : 128 bits, notation hexadécimale séparée par ':'
# Exemple : 2001:0db8:85a3:0000:0000:8a2e:0370:7334
# Forme abrégée : 2001:db8:85a3::8a2e:370:7334
# (:: remplace des groupes de zéros consécutifs)
🔌 Protocoles clés
Le DNS (Domain Name System) traduit les noms de domaine (www.google.com) en adresses IP (142.250.74.36).
# Fonctionnement d'une requête DNS :
1. L'utilisateur tape "www.example.com"
2. Le navigateur vérifie son cache local
3. Si absent → interroge le résolveur DNS du FAI
4. Le résolveur interroge les serveurs racine (.)
5. Puis les serveurs TLD (.com)
6. Puis les serveurs autoritaires (example.com)
7. Réponse : 93.184.216.34
# En Python
import socket
print(socket.gethostbyname('www.google.com'))
# → '142.250.74.36' (varie selon le réseau)
Le DHCP (Dynamic Host Configuration Protocol) attribue automatiquement des adresses IP aux machines sur un réseau local.
# Échange DHCP (DORA) :
Client ── DISCOVER ──────────────────► (broadcast)
Client ◄─ OFFER ───────────────────── Serveur DHCP
(propose IP 192.168.1.50)
Client ── REQUEST ───────────────────► Serveur DHCP
(accepte l'offre)
Client ◄─ ACK ─────────────────────── Serveur DHCP
(confirme, bail de 24h)
# Le serveur DHCP fournit aussi :
# - Masque de sous-réseau
# - Passerelle par défaut (gateway)
# - Adresses DNS
HTTP (HyperText Transfer Protocol) est le protocole du Web. HTTPS = HTTP + TLS (chiffré).
# Requête HTTP
GET /index.html HTTP/1.1
Host: www.example.com
Accept: text/html
# Réponse HTTP
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
# Codes de statut importants :
# 200 OK → succès
# 301 Moved → redirection permanente
# 404 Not Found → ressource introuvable
# 500 Server Error → erreur côté serveur
🗺️ Routage
Le routage consiste à déterminer le chemin qu'un paquet doit emprunter pour aller d'une source à une destination à travers plusieurs réseaux.
Table de routage
# Exemple de table de routage (commande 'route' ou 'ip route')
Destination Masque Passerelle Interface
0.0.0.0 0.0.0.0 192.168.1.1 eth0 ← route par défaut
192.168.1.0 255.255.255.0 0.0.0.0 eth0 ← réseau local direct
10.0.0.0 255.0.0.0 192.168.1.254 eth0 ← via routeur
# Algorithme de sélection :
# 1. Chercher la route la plus spécifique (longest prefix match)
# 2. Si plusieurs routes, choisir par métrique (coût)
# 3. Sinon, utiliser la route par défaut (0.0.0.0/0)
Protocoles de routage
| Protocole | Type | Algorithme | Usage |
|---|---|---|---|
| RIP | Vecteur de distance | Bellman-Ford | Petits réseaux (max 15 sauts) |
| OSPF | État de liens | Dijkstra | Grands réseaux d'entreprise |
| BGP | Vecteur de chemin | Propriétaire | Internet (entre FAI) |
🔐 Sécurité et chiffrement
Chiffrement symétrique
# Une seule clé pour chiffrer ET déchiffrer
# Exemples : AES, DES, ChaCha20
# Avantage : rapide
# Inconvénient : comment partager la clé de façon sécurisée ?
from cryptography.fernet import Fernet
cle = Fernet.generate_key()
f = Fernet(cle)
message_chiffre = f.encrypt(b"message secret")
message_clair = f.decrypt(message_chiffre)
Chiffrement asymétrique
# Deux clés : publique (partageable) et privée (secrète)
# Ce qui est chiffré avec la publique → déchiffré par la privée
# Exemples : RSA, ECDSA
# Principe RSA simplifié :
# 1. Alice génère (clé_publique, clé_privée)
# 2. Elle publie sa clé publique
# 3. Bob chiffre son message avec la clé publique d'Alice
# 4. Seule Alice peut déchiffrer avec sa clé privée
# Avantage : pas besoin d'échanger une clé secrète
# Inconvénient : lent (1000× plus lent que symétrique)
HTTPS et TLS
HTTPS = HTTP + TLS (Transport Layer Security)
Handshake TLS (simplifié) :
1. Client → Serveur : ClientHello (versions TLS, algos supportés)
2. Serveur → Client : ServerHello + Certificat (clé publique)
3. Client vérifie le certificat (signé par une CA de confiance)
4. Échange de clé de session (via RSA ou DH)
→ À partir de là, tout est chiffré avec AES (symétrique)
Pourquoi les deux ? RSA pour l'échange de clé (sécurité),
AES pour les données (performance).
Autres concepts sécurité
| Concept | Description |
|---|---|
| Hachage (hash) | Fonction à sens unique : SHA-256, MD5. Pas de déchiffrement possible. Utilisé pour les mots de passe. |
| Signature numérique | Chiffrement du hash avec clé privée. Prouve l'authenticité et l'intégrité. |
| Certificat SSL/TLS | Document signé par une Autorité de Certification (CA) qui lie une clé publique à un domaine. |
| Pare-feu (firewall) | Filtre le trafic réseau selon des règles (ports, IP, protocoles). |
| VPN | Tunnel chiffré entre deux réseaux sur Internet. |
🚨 Pièges classiques au bac
L'adresse MAC (48 bits, ex: AA:BB:CC:DD:EE:FF) identifie une carte réseau physique (couche 2). L'adresse IP identifie un hôte sur le réseau logique (couche 3). ARP fait la correspondance entre les deux.
IP gère le routage des paquets (couche 3). TCP gère la fiabilité de la transmission (couche 4). On parle de la suite "TCP/IP" car ils sont souvent utilisés ensemble, mais ce sont des protocoles distincts.
HTTPS signifie que la communication est chiffrée, pas que le site est honnête. Un site de phishing peut très bien avoir HTTPS.
Les requêtes DNS standard ne sont pas chiffrées (UDP port 53). DNS over HTTPS (DoH) ou DNS over TLS (DoT) sont des alternatives sécurisées.
📝 Exercices
Exo 1 — Adressage réseau
Un hôte a l'adresse 172.16.5.130/20.
- Quel est le masque de sous-réseau en notation décimale ?
- Quelle est l'adresse réseau ?
- Combien d'hôtes ce réseau peut-il accueillir ?
1. /20 = 20 bits à 1 puis 12 bits à 0
11111111.11111111.11110000.00000000
→ 255.255.240.0
2. Adresse réseau = 172.16.5.130 AND 255.255.240.0
172 = 10101100
16 = 00010000 AND 11111111 = 00010000 → 16
5 = 00000101 AND 11110000 = 00000000 → 0
130 = 10000010 AND 00000000 = 00000000 → 0
→ Adresse réseau : 172.16.0.0
3. /20 laisse 32-20 = 12 bits pour les hôtes
2^12 = 4096 adresses, dont réseau (172.16.0.0)
et broadcast (172.16.15.255)
→ 4094 hôtes utilisables
Exo 2 — Protocoles et couches
Pour chaque scénario, indiquer le ou les protocoles mis en jeu et la couche OSI correspondante :
- Un navigateur charge la page
https://monsite.fr - Votre ordinateur rejoint un réseau Wi-Fi et obtient une IP automatiquement
- Un paquet est routé de Paris à Tokyo
- Vous vous connectez à un serveur en SSH
- HTTPS/TLS/HTTP (couche 7/6/4) + DNS pour résoudre le nom + TCP pour le transport fiable
- DHCP (couche Application) par-dessus UDP/IP pour attribuer l'adresse, puis Wi-Fi (couche Liaison) pour la connexion physique
- IP + protocoles de routage (OSPF, BGP) → couche 3 (Réseau). Les routeurs lisent les en-têtes IP et consultent leurs tables de routage
- SSH (couche 7) sur TCP (couche 4) sur IP (couche 3). SSH chiffre avec AES + échange de clés RSA/Ed25519
Exo 3 — Routage par table
Un routeur R possède la table de routage suivante. Pour chaque destination, indiquer quelle règle s'applique :
| Réseau dest. | Masque | Passerelle |
|---|---|---|
| 10.0.0.0 | 255.0.0.0 | eth1 |
| 10.1.0.0 | 255.255.0.0 | eth2 |
| 0.0.0.0 | 0.0.0.0 | eth0 |
Destinations à router : a) 10.1.5.3 b) 10.2.0.1 c) 8.8.8.8
Principe : On applique la règle la plus spécifique (masque le plus long = longest prefix match).
a) 10.1.5.3 : Correspond à 10.0.0.0/8 (eth1) ET à 10.1.0.0/16 (eth2). Le /16 est plus spécifique → eth2
b) 10.2.0.1 : Correspond uniquement à 10.0.0.0/8 → eth1
c) 8.8.8.8 : Aucune règle spécifique → route par défaut 0.0.0.0/0 → eth0
📌 Fiche synthèse
Modèle TCP/IP
- Application (HTTP, DNS, FTP…)
- Transport (TCP fiable / UDP rapide)
- Internet (IP + routage)
- Accès réseau (Ethernet, Wi-Fi)
Adressage
- IPv4 : 4 octets, ex: 192.168.1.1
- CIDR : /24 = 256 adresses
- Privé : 10.x, 172.16-31.x, 192.168.x
- DHCP : attribution automatique
TCP vs UDP
- TCP : fiable, ordonné, handshake 3 voies
- UDP : rapide, pas de garantie
- DNS = UDP ; HTTP = TCP
Chiffrement
- Symétrique (AES) : rapide, une clé
- Asymétrique (RSA) : deux clés, lent
- TLS : asymétrique pour l'échange de clé, symétrique pour les données
🧠 QCM
Choisissez le nombre de questions et le niveau, puis lancez.