📦 TCP/IP – Le Modèle Internet (Protocoles, Couches & Paquets)
Guide complet IDEO-Lab sur la suite de protocoles qui fait fonctionner Internet.
Modèle TCP/IP
La suite de protocoles d'Internet (4 Couches).
TCP/IP Modèlevs. Modèle OSI
Comparaison (Pratique vs Théorique).
OSI 7 CouchesEncapsulation (PDU)
Data, Segment, Paquet, Trame, Bit (PDU).
Encapsulation PDUAccès : Ethernet & MAC
Couche 2. Trame Ethernet, Adresse MAC (Physique).
Ethernet Couche 2 MACAccès : ARP
Address Resolution Protocol (IP -> MAC). Broadcast.
ARP IP-to-MACInternet (L3) : IP
Internet Protocol. Adressage logique, routage, best-effort.
IP Couche 3L3 : Adressage IPv4
32 bits, Classes, IP Privées (RFC1918), Masque/CIDR.
IPv4 SubnetL3 : Adressage IPv6
128 bits, Hexadécimal, SLAAC, Fin de NAT.
IPv6 128 bitsL3 : ICMP
Diagnostic. Ping (Echo), Tracert (TTL Exceeded).
ICMP Ping TracertTransport (L4) : TCP
Transmission Control Protocol. Fiable, Connecté.
TCP Couche 4 FiableTCP : 3-Way Handshake
Établissement de session (SYN, SYN-ACK, ACK).
Handshake SYN ACKTCP : Fiabilité
Contrôle de flux (Windowing), Séquençage (SEQ/ACK).
Flow Control Sliding WindowTransport (L4) : UDP
User Datagram Protocol. Non-fiable, Rapide.
UDP Couche 4 RapideTCP vs. UDP
Fiable (Web) vs. Rapide (VoIP, DNS).
Comparatif Fiable Non-fiablePorts & Sockets
Multiplexage (L4). Socket = IP + Port.
Ports SocketApplication (L7) : DNS
Domain Name System (Nom -> IP). Port 53.
DNS UDP 53Application (L7) : DHCP
Configuration IP auto (DORA). Port 67/68.
DHCP DORAApplication (L7) : HTTP/S
Hypertext Transfer Protocol. Port 80 / 443 (TLS).
HTTP HTTPS TCP 80La Suite de Protocoles d'Internet
TCP/IP (Transmission Control Protocol / Internet Protocol) n'est pas un seul protocole, mais une suite de protocoles. C'est le modèle pratique sur lequel Internet est construit.
Il fournit un cadre standardisé pour la communication de données, de bout en bout, à travers des réseaux hétérogènes. Il garantit que les données envoyées depuis un PC à Paris arrivent intactes sur un serveur à Tokyo.
Le Modèle TCP/IP (4 Couches)
Le modèle TCP/IP (ou "modèle DoD") est un modèle fonctionnel à 4 couches.
| N° | Couche | PDU | Exemples de Protocoles |
|---|---|---|---|
| 4 | Application | Data | HTTP, HTTPS, FTP, SMTP, DNS, DHCP |
| 3 | Transport | Segment (TCP) / Datagram (UDP) | TCP, UDP |
| 2 | Internet | Paquet (Packet) | IP (IPv4, IPv6), ICMP, ARP |
| 1 | Accès Réseau (Link) | Trame (Frame) | Ethernet, Wi-Fi, Adresses MAC |
L'OSI (Open Systems Interconnection) est un modèle théorique à 7 couches, utilisé comme référence académique. Le TCP/IP est le modèle pratique (4 couches) réellement implémenté.
Modèle OSI (7 Couches)
7. Application 6. Présentation (SSL, JPEG) 5. Session (NetBIOS) ------------------------------- 4. Transport (TCP, UDP) ------------------------------- 3. Réseau (IP) ------------------------------- 2. Liaison (MAC, Ethernet) 1. Physique (Câble, Bits)
Modèle TCP/IP (4 Couches)
4. Application (Couches 5-7 OSI) (HTTP, DNS, DHCP) ------------------------------- 3. Transport (Couche 4 OSI) (TCP, UDP) ------------------------------- 2. Internet (Couche 3 OSI) (IP, ICMP, ARP) ------------------------------- 1. Accès Réseau (Couches 1-2 OSI) (Ethernet, Wi-Fi, MAC)
L'encapsulation est le processus (descendant) où chaque couche "enveloppe" les données de la couche supérieure en y ajoutant son propre en-tête (header).
[ DONNÉES (HTTP) ] │ ▼ (Couche 4 : Transport) [ En-tête TCP | DONNÉES ] = SEGMENT │ ▼ (Couche 3 : Internet) [ En-tête IP | En-tête TCP | DONNÉES ] = PAQUET │ ▼ (Couche 2 : Accès Réseau) [ En-tête L2 (MAC) | En-tête IP | ... | DONNÉES | En-queue L2 (FCS) ] = TRAME │ ▼ (Couche 1 : Physique) (BITS) 01101001010111... (sur le câble)
PDU (Protocol Data Unit) : C'est le nom que l'on donne au "paquet" à chaque couche :
- L7 (Application) : Données (Data)
- L4 (Transport) : Segment (TCP) ou Datagram (UDP)
- L3 (Internet) : Paquet (Packet)
- L2 (Accès) : Trame (Frame)
- L1 (Physique) : Bit
La couche Accès Réseau (L1/L2) gère la communication physique sur un même réseau local (LAN). Le standard dominant est Ethernet.
Trame Ethernet (Frame)
C'est l'enveloppe L2 qui contient le paquet IP. Elle utilise les adresses MAC pour la livraison locale (de PC à Switch, de Switch à Routeur).
Adresse MAC (Couche 2)
L'adresse MAC (Media Access Control) est l'adresse physique (48 bits, 00:1A:2B:3C:4D:5E) unique, gravée sur la carte réseau (NIC). (Voir guide Commutation).
Analogie : L'Adresse IP (L3) est votre *adresse postale* (change si vous déménagez). L'Adresse MAC (L2) est votre *numéro de passeport* (ne change jamais).
ARP est le "traducteur" L3 -> L2, indispensable sur un LAN.
Problème : PC A (192.168.1.50) veut envoyer un paquet à PC B (192.168.1.60). Il connaît l'IP (L3), mais pour créer la trame Ethernet, il a besoin de l'adresse MAC (L2) de PC B.
Flux de Résolution ARP
1. [Cache ARP] : PC A regarde dans sa "cache ARP" (table locale). (Trouvé ? -> Va à l'étape 4. Non trouvé ? -> Étape 2) 2. [ARP Request (Broadcast)] : PC A envoie une trame (L2) à l'adresse MAC de broadcast (FF:FF:FF:FF:FF:FF). Message : "QUI A L'IP 192.168.1.60 ?" 3. [Réponse (Switch)] : Le Switch "flood" ce broadcast à tous les ports (sauf la source). 4. [ARP Reply (Unicast)] : Seul PC B (192.168.1.60) répond. Message : "C'EST MOI ! Mon MAC est 00:AA:BB:CC:DD:EE." (PC A stocke cette info dans son cache ARP).
PC A peut maintenant créer la trame : (Dest: 00:AA:BB...) [Paquet IP (Dest: 192.168.1.60)].
IP (Internet Protocol) est le protocole de Couche 3. C'est la "colle" d'Internet. Son seul travail est de "router" (acheminer) des paquets d'une source à une destination, à travers des réseaux multiples (WAN).
Caractéristiques Clés d'IP
- Sans Connexion (Connectionless) : N'établit pas de session (Handshake) avant d'envoyer.
- Non Fiable (Unreliable) : Ne garantit pas la livraison. Il n'y a pas d'ACK, de séquençage, ou de retransmission. (C'est le travail de TCP en Couche 4).
- Best-Effort (Au Mieux) : Le réseau "fait de son mieux" pour livrer le paquet, mais sans garantie.
En-tête (Header) IPv4 (Simplifié)
- Version : (4)
- TTL (Time To Live) : (ex: 64) Décrémenté à chaque routeur. Si 0, le paquet est détruit (évite les boucles).
- Protocol : (ex: 6 pour TCP, 17 pour UDP) Indique quoi faire du payload (L4).
- Source IP Address : (32 bits)
- Destination IP Address : (32 bits)
Adressage IPv4 (32 bits)
Adresse de 32 bits, 4 octets (0-255). ex: 172.217.22.14
Classes (Historique)
- Classe A (
1.à126.) : Masque /8 (255.0.0.0). (Très grands réseaux). - Classe B (
128.à191.) : Masque /16 (255.255.0.0). - Classe C (
192.à223.) : Masque /24 (255.255.255.0).
Adresses Spéciales
- Privées (RFC 1918) :
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. (Non routables sur Internet). - Loopback :
127.0.0.1(localhost). - APIPA :
169.254.0.0/16(Auto-configuration si DHCP échoue).
Masque de Sous-Réseau & CIDR
Le masque (Subnet Mask) sépare l'adresse IP en deux parties : Partie Réseau (Network) et Partie Hôte (Host).
Exemple : 192.168.1.50 /24
- Notation CIDR :
/24(24 bits pour le réseau). - Masque :
255.255.255.0(11111111.11111111.11111111.00000000) - ID Réseau :
192.168.1.0(Les 24 premiers bits). - ID Hôte :
50(Les 8 bits restants). - Plage :
192.168.1.1à192.168.1.254(.0= Réseau,.255= Broadcast).
IPv6 est le successeur d'IPv4, conçu pour résoudre le problème d'épuisement des adresses.
Caractéristiques
- Taille : 128 bits (contre 32). (
2^128adresses... un nombre astronomique). - Format : Hexadécimal (8 groupes de 16 bits, séparés par
:). - Exemple :
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Simplification
- Zeros de tête :
:0db8:->:db8: - Suite de zéros :
:0000:0000:->::(Une seule fois par adresse). - Exemple simplifié :
2001:db8:85a3::8a2e:370:7334
Fin du NAT
Avec 2^128 adresses, chaque appareil peut avoir sa propre IP publique unique. Le NAT n'est plus nécessaire (en théorie), restaurant la connectivité "end-to-end".
SLAAC : Auto-configuration (StateLess Address AutoConfiguration) où un client génère sa propre IP à partir du préfixe annoncé par le routeur (via ICMPv6).
ICMP est un protocole de Couche 3 utilisé pour le diagnostic et les messages d'erreur (il ne transporte pas de données utilisateur comme TCP/UDP).
Outil : ping
Utilise les messages ICMP Type 8 (Echo Request) et Type 0 (Echo Reply).
Objectif : Vérifier la disponibilité (Up/Down) et la latence (temps aller-retour) d'un hôte.
C:\> ping 8.8.8.8 Réponse de 8.8.8.8 : octets=32 temps=15 ms TTL=118
Outil : tracert / traceroute
Objectif : Découvrir le "chemin" (les "sauts" de routeurs) vers une destination.
Fonctionnement :
- Envoie un paquet (ICMP ou UDP) avec un TTL (Time To Live) de 1.
- Le 1er Routeur reçoit, décrémente TTL (-> 0), le paquet "meurt".
- Le 1er Routeur renvoie une erreur : ICMP Type 11 (TTL Exceeded). (L'attaquant connaît l'IP du 1er saut).
- Envoie un paquet avec TTL=2. Le 2e Routeur répond "TTL Exceeded".
- ... Répète jusqu'à atteindre la destination.
TCP est le protocole de Couche 4 (Transport) qui "répare" les défauts d'IP (L3). IP est "best-effort", TCP est fiable.
Caractéristiques Clés
- Orienté Connexion (Connection-oriented) : Établit une session (Handshake 3-Way) avant d'envoyer des données.
- Fiable (Reliable) : Garantit que les données arrivent, sans erreur, et dans le bon ordre.
- Séquençage (Sequence Numbers) : Numérote les segments.
- Accusés de Réception (ACK) : Le récepteur confirme la réception.
- Retransmission : Si un ACK n'est pas reçu, TCP renvoie le segment manquant.
- Contrôle de Flux (Flow Control) : Gère la vitesse d'envoi (Sliding Window) pour ne pas saturer le récepteur.
Usage : HTTP, HTTPS, FTP, SMTP, SSH (Toute application où chaque bit compte).
3-Way Handshake (Établissement)
Processus en 3 étapes pour ouvrir une connexion TCP (Flags : SYN, ACK).
[CLIENT] [SERVEUR]
(1) SYN (seq=X) ────────►
"Je veux me connecter. Mon N° de séquence est X."
(2) ◄──────── SYN/ACK (seq=Y, ack=X+1)
"OK. Mon N° est Y.
J'attends le N° X+1 de toi."
(3) ACK (seq=X+1, ack=Y+1) ────────►
"Reçu. J'envoie Y+1."
(Connexion ÉTABLIE)4-Way Close (Fermeture)
Processus en 4 étapes pour fermer la connexion (Flags : FIN, ACK). (Chaque côté doit fermer indépendamment).
[CLIENT] [SERVEUR]
(1) FIN ────────►
"J'ai fini d'envoyer."
(2) ◄──────── ACK
"OK, j'ai reçu ta demande de fin."
(Le serveur peut continuer d'envoyer
des données si besoin...)
(3) ◄──────── FIN
"OK, j'ai (aussi) fini d'envoyer."
(4) ACK ────────►
"Reçu."
(Connexion FERMÉE)Séquençage (SEQ/ACK)
TCP numérote chaque octet envoyé avec un Numéro de Séquence (SEQ).
Le récepteur utilise un Numéro d'Accusé de Réception (ACK) pour confirmer les données reçues. L'ACK indique le prochain octet qu'il s'attend à recevoir.
Client envoie 1000 octets (SEQ=1) [CLIENT] (SEQ=1, len=1000) ────────► [SERVEUR] Serveur a reçu 1000 octets. Il attend le 1001. [CLIENT] ◄──────── (ACK=1001) [SERVEUR] Si le client n'a pas reçu l'ACK=1001 (timeout), il REnvoie le paquet (SEQ=1).
Contrôle de Flux (Sliding Window)
Attendre un ACK pour *chaque* paquet est lent. Le Sliding Window (Fenêtre Glissante) permet à l'émetteur d'envoyer plusieurs segments (une "fenêtre") avant d'attendre un seul ACK cumulatif.
Le Récepteur (Serveur) "annonce" la taille de sa fenêtre (Window Size) (son buffer) dans l'en-tête TCP.
Client: "Ma Fenêtre est de 64 Ko."
Serveur: "OK, j'envoie 64 Ko de données (Segments 1 à 6)
sans attendre d'ACK."
Serveur (envoie 6 Ségments)
Client (reçoit tout)
Serveur ◄──────── (ACK=Segment 7)
Si le Client est saturé (buffer plein),
il annonce "Window Size = 0".
Le Serveur arrête d'envoyer.UDP est l'autre protocole de Couche 4 (Transport). C'est le "service minimum".
Caractéristiques Clés
- Sans Connexion (Connectionless) : Pas de Handshake (pas de SYN/ACK).
- Non Fiable (Unreliable) : "Fire and Forget" (Tire et oublie). Pas de séquençage, pas d'ACK, pas de retransmission.
- Best-Effort (L4) : (Comme IP, mais ajoute les Ports).
- Rapide : L'en-tête UDP est minuscule (8 octets) comparé à TCP (20+ octets). Très faible "overhead".
Usage : DNS, DHCP, VoIP, Jeux en ligne, Streaming (Où la vitesse est plus importante qu'un paquet perdu occasionnel, et où la retransmission (TCP) serait catastrophique pour le temps réel).
| Critère | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
|---|---|---|
| Fiabilité | Fiable (Reliable) | Non Fiable (Unreliable) |
| Connexion | Orienté Connexion (Handshake) | Sans Connexion ("Fire and Forget") |
| Séquençage | Oui (Garantit l'ordre) | Non (Désordre possible) |
| ACK / Retransmission | Oui | Non |
| Contrôle de Flux | Oui (Sliding Window) | Non |
| Vitesse (Overhead) | Lent (En-tête 20+ octets) | Rapide (En-tête 8 octets) |
| Cas d'Usage | Web (HTTP/S), Email (SMTP), Fichiers (FTP) | Streaming (VoIP, Vidéo), Jeux, DNS, DHCP |
Ports (Multiplexage)
L'IP (L3) amène le paquet au bon serveur. Le Port (L4) l'amène au bon service/application sur ce serveur.
C'est le multiplexage : un serveur (1 IP) peut héberger des dizaines de services (Ports).
Un port est un nombre de 16 bits (0 à 65535).
| Plage | Nom | Usage |
|---|---|---|
| 0 - 1023 | Well-Known Ports (Connus) | Services standards (HTTP 80, HTTPS 443, SSH 22...). |
| 1024 - 49151 | Registered Ports (Enregistrés) | Applications (ex: MySQL 3306). |
| 49152 - 65535 | Dynamic/Private Ports | Ports sources, assignés aléatoirement par le client (OS). |
Socket
Un Socket est le point de terminaison (endpoint) d'une connexion. C'est la combinaison d'une adresse IP et d'un numéro de Port.
Une connexion TCP/IP unique est définie par deux sockets (le "5-Tuple") :
Socket Client: [IP_Client]:[Port_Client] Socket Serveur: [IP_Serveur]:[Port_Serveur] Exemple (Connexion Web) : [192.168.1.50:51234] <-----> [142.250.179.196:443]
L'Annuaire d'Internet (Port 53)
Le DNS est le système (Couche 7) qui traduit les noms de domaine (google.com) en adresses IP (142.250.179.196). Il utilise UDP 53 (pour les requêtes rapides) et TCP 53 (pour les transferts de zone).
1. [Client] -> [Serveur DNS Récursif (ex: 8.8.8.8)] : "IP de www.google.com ?" 2. [Récursif] -> [Serveur Root (.)] : "Où est .com ?" 3. [Root] -> [Récursif] : "Demande au serveur GTLD." 4. [Récursif] -> [Serveur GTLD (.com)] : "Où est google.com ?" 5. [GTLD] -> [Récursif] : "Demande au serveur de Noms de Google (ex: ns1.google.com)." 6. [Récursif] -> [Serveur (NS Google)] : "Où est www.google.com ?" 7. [NS Google] -> [Récursif] : "C'est 142.250.179.196." (Réponse Autoritatives) 8. [Récursif] (Met en cache) -> [Client] : "C'est 142.250.179.196."
Types d'Enregistrements (Records)
| Type | Signification | Exemple de Valeur |
|---|---|---|
| A | Address (IPv4) | 142.250.179.196 |
| AAAA | Address (IPv6) | 2a00:1450:4007::200e |
| CNAME | Canonical Name (Alias) | www pointe vers serveur1.ideolab.com. |
| MX | Mail eXchanger | Serveur de messagerie (ex: 10 mail.google.com). |
| TXT | Texte | Utilisé pour la vérification (SPF, DKIM). |
| NS | Name Server | Serveurs de noms (autoritatifs) pour le domaine. |
DHCP est le protocole (L7, sur UDP 67/68) qui automatise l'assignation de la configuration IP (L3) aux clients d'un LAN.
Sans DHCP, vous devriez configurer manuellement l'IP, le Masque, la Passerelle et le DNS sur chaque appareil.
Processus DORA (Broadcast)
Le client (nouvel appareil) et le serveur DHCP (Routeur/Box) échangent 4 messages :
1. [Client] -> [Broadcast]
D - DISCOVER ("Je suis nouveau (MAC: AAAA), qui a une IP ?")
2. [Serveur DHCP] -> [Client]
O - OFFER ("Salut AAAA ! J'ai 192.168.1.50 pour toi,
avec Gateway 1.1 et DNS 8.8.8.8.")
3. [Client] -> [Broadcast]
R - REQUEST ("OK ! Je prends l'offre de ce serveur
(192.168.1.1) !")
4. [Serveur DHCP] -> [Client]
A - ACKNOWLEDGE ("C'est noté. L'adresse (Bail/Lease)
est à toi pour 24h.")HTTP (Hypertext Transfer Protocol) est le protocole applicatif (L7) du World Wide Web. C'est un protocole texte (Requête/Réponse) qui tourne au-dessus de TCP (Port 80).
Exemple de Requête/Réponse
(Connexion TCP établie sur le port 80...) [CLIENT] -> [SERVEUR] (Requête) GET /page.html HTTP/1.1 Host: www.example.com User-Agent: Chrome [CLIENT] <- [SERVEUR] (Réponse) HTTP/1.1 200 OK Content-Type: text/html <html><body>Hello</body></html>
HTTPS (HTTP Secure)
C'est du HTTP encapsulé dans un tunnel TLS (SSL). Il tourne sur TCP Port 443.
Le "Handshake TLS" (échange de certificats, négociation de la clé symétrique AES) se produit après le "Handshake TCP 3-Way", mais avant que la première requête HTTP ne soit envoyée. (Garantit la Confidentialité et l'Intégrité).
| Port | Protocole | Service |
|---|---|---|
| 20 | TCP | FTP (Data) |
| 21 | TCP | FTP (Contrôle) |
| 22 | TCP | SSH (Secure Shell) |
| 23 | TCP | Telnet (Non sécurisé) |
| 25 | TCP | SMTP (Envoi Email) |
| 53 | UDP/TCP | DNS |
| 67/68 | UDP | DHCP |
| 80 | TCP | HTTP (Web) |
| Port | Protocole | Service |
|---|---|---|
| 110 | TCP | POP3 (Email) |
| 123 | UDP | NTP (Time Protocol) |
| 143 | TCP | IMAP (Email) |
| 161/162 | UDP | SNMP |
| 443 | TCP | HTTPS (HTTP sur TLS) |
| 500/4500 | UDP | IPsec (IKE / NAT-T) |
| 1194 | UDP/TCP | OpenVPN |
| 3389 | TCP | RDP (Windows Remote) |
| Critère | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
|---|---|---|
| Fiabilité | Fiable (Reliable) | Non Fiable (Unreliable) |
| Connexion | Orienté Connexion (Handshake) | Sans Connexion ("Fire and Forget") |
| Séquençage | Oui (Garantit l'ordre) | Non (Désordre possible) |
| ACK / Retransmission | Oui | Non |
| Contrôle de Flux | Oui (Sliding Window) | Non |
| Vitesse (Overhead) | Lent (En-tête 20+ octets) | Rapide (En-tête 8 octets) |
| Cas d'Usage | Web (HTTP/S), Email (SMTP), Fichiers (FTP) | Streaming (VoIP, Vidéo), Jeux, DNS, DHCP |
