Qu'est-ce que TCP/IP ?
TCP/IP (Transmission Control Protocol/Internet Protocol) est une suite de protocoles de communication utilisée pour connecter des appareils sur Internet et sur la plupart des réseaux informatiques modernes. Cette suite de protocoles constitue le fondement de la communication sur Internet et détermine comment les données doivent être formatées, adressées, transmises, routées et reçues.
Points clés :
- Ensemble de protocoles de communication
- Fondement d'Internet et des réseaux modernes
- Modèle en couches permettant une indépendance entre les niveaux
- Fonctionne avec une grande variété de matériels et de systèmes d'exploitation
Le modèle en couches de TCP/IP
Le modèle à 4 couches
TCP/IP est traditionnellement représenté comme un modèle à 4 couches, où chaque couche a une fonction spécifique et communique avec les couches adjacentes.
- Couche Application : Protocoles de haut niveau utilisés par les applications (HTTP, FTP, SMTP, DNS, etc.)
- Couche Transport : Protocoles qui gèrent les connexions entre hôtes (TCP, UDP)
- Couche Internet : Protocoles pour le routage et l'adressage (IP, ICMP)
- Couche Accès Réseau : Protocoles qui interagissent avec le matériel physique (Ethernet, Wi-Fi)
Comparaison avec le modèle OSI
Bien que TCP/IP soit le modèle utilisé en pratique, il est souvent comparé au modèle OSI (Open Systems Interconnection) qui comporte 7 couches.
- Le modèle OSI est plus détaillé, avec 7 couches au lieu de 4
- La couche Application de TCP/IP correspond aux couches 5, 6 et 7 du modèle OSI
- La couche Transport correspond à la couche 4 du modèle OSI
- La couche Internet correspond à la couche 3 du modèle OSI
- La couche Accès Réseau correspond aux couches 1 et 2 du modèle OSI
Principe d'encapsulation
L'encapsulation est un processus fondamental dans TCP/IP où chaque couche ajoute ses propres informations de contrôle (en-têtes) aux données reçues de la couche supérieure.
- Les données de l'application sont d'abord encapsulées avec un en-tête de la couche transport
- Puis avec un en-tête de la couche Internet
- Et enfin avec un en-tête et un en-queue de la couche Accès Réseau
- À la réception, le processus inverse (désencapsulation) est effectué
- Ce processus permet à chaque couche de fonctionner indépendamment des autres
Modèle en couches de TCP/IP
Les protocoles clés de TCP/IP
Couche Transport : TCP et UDP
Les protocoles de la couche Transport gèrent la communication entre les applications sur différents hôtes.
- TCP (Transmission Control Protocol) :
- Orienté connexion et fiable
- Garantit la livraison des données dans l'ordre
- Gère le contrôle de flux et la congestion
- Utilise un mécanisme de poignée de main (3-way handshake)
- Plus lent mais plus fiable que UDP
- UDP (User Datagram Protocol) :
- Sans connexion et non fiable
- Ne garantit pas la livraison ou l'ordre des paquets
- Ne gère pas le contrôle de flux ou la congestion
- Plus rapide mais moins fiable que TCP
- Utilisé pour les applications où la vitesse est plus importante que la fiabilité (streaming, jeux)
Couche Internet : IP, ICMP, ARP
Les protocoles de la couche Internet gèrent l'adressage et le routage des paquets dans le réseau.
- IP (Internet Protocol) :
- Responsable de l'adressage et du routage des paquets
- IPv4 (adresses sur 32 bits) et IPv6 (adresses sur 128 bits)
- Sans connexion et avec livraison au mieux (best-effort)
- Fragmente les grands paquets si nécessaire
- ICMP (Internet Control Message Protocol) :
- Utilisé pour la gestion d'erreurs et les diagnostics
- Permet le ping (test de connectivité) et traceroute
- Transmet les messages d'erreur (hôte inaccessible, temps dépassé, etc.)
- ARP (Address Resolution Protocol) :
- Fait correspondre une adresse IP à une adresse MAC
- Essentiel pour la communication sur un réseau local
- Maintient une table de correspondance (cache ARP)
Couche Application : HTTP, FTP, DNS, SMTP, etc.
Les protocoles de la couche Application permettent aux applications de communiquer via le réseau.
- HTTP/HTTPS (Hypertext Transfer Protocol) :
- Protocole de transfert pour le Web
- HTTPS ajoute une couche de sécurité (chiffrement SSL/TLS)
- FTP (File Transfer Protocol) :
- Transfert de fichiers entre un client et un serveur
- DNS (Domain Name System) :
- Traduit les noms de domaine en adresses IP
- SMTP (Simple Mail Transfer Protocol) :
- Envoi d'emails entre serveurs
- POP3/IMAP (Post Office Protocol/Internet Message Access Protocol) :
- Récupération d'emails depuis un serveur
- SSH (Secure Shell) :
- Connexion sécurisée à distance à un serveur
Principaux protocoles par couche
Adressage IP
Adresses IPv4
L'IPv4 utilise des adresses de 32 bits représentées sous forme de quatre nombres séparés par des points, chacun allant de 0 à 255.
- Format : xxx.xxx.xxx.xxx (exemple : 192.168.1.1)
- Limite théorique d'environ 4,3 milliards d'adresses
- Divisées en classes (A, B, C, D, E) historiquement
- Adresses privées (non routables sur Internet) :
- Classe A : 10.0.0.0 à 10.255.255.255
- Classe B : 172.16.0.0 à 172.31.255.255
- Classe C : 192.168.0.0 à 192.168.255.255
- Adresses spéciales :
- 127.0.0.1 : localhost (loopback)
- 0.0.0.0 : adresse indéfinie
- 255.255.255.255 : broadcast
Masques de sous-réseau
Le masque de sous-réseau détermine quelle partie d'une adresse IP identifie le réseau et quelle partie identifie l'hôte.
- Format traditionnel : xxx.xxx.xxx.xxx (exemple : 255.255.255.0)
- Notation CIDR : /xx (exemple : 192.168.1.0/24)
- Masques courants :
- /8 (255.0.0.0) : 16 777 214 hôtes par réseau
- /16 (255.255.0.0) : 65 534 hôtes par réseau
- /24 (255.255.255.0) : 254 hôtes par réseau
- Permet la division d'un réseau en sous-réseaux (subnetting)
- Détermine si deux adresses IP sont sur le même sous-réseau
Adresses IPv6
IPv6 a été développé pour faire face à l'épuisement des adresses IPv4, utilisant des adresses de 128 bits représentées en hexadécimal.
- Format : xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx (exemple : 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
- Règles de simplification :
- Les zéros en tête dans chaque groupe peuvent être omis
- Un ou plusieurs groupes consécutifs de zéros peuvent être remplacés par "::"
- Exemple simplifié : 2001:db8:85a3::8a2e:370:7334
- Adresses spéciales :
- ::1 : localhost (équivalent à 127.0.0.1 en IPv4)
- :: : adresse indéfinie
- fe80:: : adresses de lien local
- Avantages :
- Espace d'adressage énorme (2^128 adresses)
- Configuration automatique
- Sécurité intégrée (IPsec)
- Simplification du routage
Communication TCP/IP en pratique
Établissement d'une connexion TCP
TCP établit une connexion fiable via un processus appelé "poignée de main à trois voies" (three-way handshake).
- Étape 1 : Le client envoie un segment SYN avec un numéro de séquence initial aléatoire (x)
- Étape 2 : Le serveur répond avec un segment SYN-ACK, confirmant la réception du SYN (ACK x+1) et envoyant son propre numéro de séquence (y)
- Étape 3 : Le client envoie un segment ACK, confirmant la réception du SYN-ACK (ACK y+1)
- La connexion est alors établie et les données peuvent être échangées
- Ce processus garantit que les deux parties sont prêtes à communiquer
Transfert de données
Une fois la connexion établie, TCP assure un transfert de données fiable avec plusieurs mécanismes.
- Numéros de séquence : Permettent de remettre les paquets dans le bon ordre
- Accusés de réception (ACK) : Confirment la réception des données
- Retransmission : Les paquets perdus sont renvoyés après un délai d'attente
- Fenêtre coulissante : Optimise le débit en envoyant plusieurs paquets sans attendre d'ACK
- Contrôle de flux : Évite la surcharge du récepteur (via la taille de fenêtre)
- Contrôle de congestion : Évite la surcharge du réseau (algorithmes comme Slow Start, Congestion Avoidance)
Fermeture d'une connexion TCP
La fermeture d'une connexion TCP est généralement réalisée via un processus à quatre voies.
- Étape 1 : Un côté envoie un segment FIN
- Étape 2 : L'autre côté répond avec un segment ACK
- Étape 3 : L'autre côté envoie son propre segment FIN quand il a terminé
- Étape 4 : Le premier côté répond avec un segment ACK
- Après un délai d'attente, la connexion est complètement fermée
- Ce processus permet une fermeture propre où les deux parties peuvent terminer d'envoyer leurs données
Communication UDP
Contrairement à TCP, UDP est un protocole simple sans établissement de connexion.
- Pas de poignée de main : les données sont simplement envoyées
- Pas de confirmation de réception : aucun mécanisme ne garantit que les données arrivent
- Pas de contrôle de flux ou de congestion
- Les datagrammes peuvent arriver dans un ordre différent ou être perdus
- Avantages : faible latence, peu de surcharge (overhead), utile pour les applications temps réel
Routage et structure des réseaux
Principes de routage
Le routage est le processus de sélection des chemins dans un réseau pour envoyer des paquets d'un point à un autre.
- Routage direct : Communication entre hôtes sur le même réseau
- Routage indirect : Communication via un ou plusieurs routeurs
- Tables de routage : Stockent les informations sur les chemins possibles
- Route par défaut : Utilisée quand aucune route spécifique n'est trouvée
- Métrique : Valeur utilisée pour déterminer le meilleur chemin (hops, délai, bande passante)
Types de réseaux
Les réseaux peuvent être classés selon leur taille, leur portée et leur structure.
- LAN (Local Area Network) : Réseau limité à un petit périmètre géographique
- WAN (Wide Area Network) : Réseau couvrant une grande zone géographique
- MAN (Metropolitan Area Network) : Réseau à l'échelle d'une ville
- PAN (Personal Area Network) : Réseau personnel à très courte portée (Bluetooth)
- VPN (Virtual Private Network) : Extension sécurisée d'un réseau privé sur un réseau public
NAT (Network Address Translation)
Le NAT permet à plusieurs appareils d'un réseau privé de partager une seule adresse IP publique.
- NAT de base : Modifie les adresses IP source/destination dans les paquets
- PAT (Port Address Translation) : Utilise des ports différents pour distinguer les connexions
- Avantages :
- Conservation des adresses IPv4
- Sécurité accrue (masquage de la structure interne)
- Isolement des réseaux privés d'Internet
- Inconvénients :
- Complexifie certains protocoles (FTP, SIP, etc.)
- Difficultés avec certaines applications P2P
- Limite la traçabilité
Sécurité et performance TCP/IP
Vulnérabilités et attaques TCP/IP
TCP/IP n'a pas été conçu initialement avec la sécurité comme priorité, ce qui entraîne diverses vulnérabilités.
- Scan de ports : Détection des services disponibles sur un hôte
- Attaques DoS/DDoS : Saturation d'un serveur ou d'un réseau
- Usurpation d'IP (IP Spoofing) : Falsification de l'adresse IP source
- ARP Poisoning : Falsification des tables ARP pour intercepter le trafic
- SYN Flood : Exploitation