Modèle TCP/IP
#Modèle TCP/IP
Le modèle TCP/IP est un ensemble de protocoles de communication qui permet l'interconnexion de réseaux hétérogènes. Il est organisé en quatre couches principales.
#Couches du modèle TCP/IP
#1. Couche Application
- Protocoles : HTTP, FTP, SMTP, DNS, etc.
- Responsabilités : Fournir des services réseau aux applications utilisateur.
#2. Couche Transport
- Protocoles : TCP (fiable) et UDP (rapide).
- Responsabilités :
- TCP : Contrôle de flux, correction d'erreurs, segmentation.
- UDP : Transmission rapide sans garantie.
#3. Couche Internet (IP)
- Protocole principal : IP (IPv4/IPv6).
- Responsabilités : Routage des paquets entre réseaux, adressage logique.
#4. Couche Lien (ou Accès réseau)
- Protocoles : Ethernet, WiFi, PPP, etc.
- Responsabilités : Transmission physique, adressage matériel (MAC).
#Encapsulation
L'encapsulation est le processus par lequel chaque couche ajoute ses propres en-têtes (et parfois une queue) aux données reçues de la couche supérieure.
- Données applicatives (message)
- Couche Transport : Ajout en-tête TCP/UDP → Segment
- Couche Internet : Ajout en-tête IP → Paquet
- Couche Lien : Ajout en-tête Ethernet → Trame
- Transmission sur le support physique → Bits
#Exercice : Simulation d'encapsulation/décapsulation
Simulez le processus d'encapsulation et de décapsulation d'un message à travers les couches TCP/IP.
#Instructions
- Créez une classe pour chaque couche du modèle TCP/IP.
- Implémentez la méthode
encapsuler(donnees)
qui ajoute l'en-tête approprié. - Implémentez la méthode
decapsuler(trame)
qui extrait les données et l'en-tête. - Simulez l'envoi d'un message simple à travers toutes les couches.
#Exemple de code
pythonpython
1class CoucheApplication:2 def encapsuler(self, message):3 print("Couche Application: Message original")4 return f"[DONNEES]{message}[/DONNEES]"5 6 def decapsuler(self, donnees):7 # Extraction simplifiée8 contenu = donnees.replace("[DONNEES]", "").replace("[/DONNEES]", "")9 print("Couche Application: Message extrait")10 return contenu11 12class CoucheTransport:13 def encapsuler(self, donnees):14 print("Couche Transport: Ajout en-tête TCP")