TCP vs UDP
Notions théoriques
Dans cette séance, nous allons explorer 2 des protocoles les plus fondamentaux du réseau :
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol).
Ces protocoles sont essentiels pour comprendre comment les données sont transmises sur Internet.
Caractéristiques de TCP
- Fiabilité : TCP garantit la livraison des paquets dans l'ordre et sans erreurs. Si un paquet est perdu, il est retransmis.
- Contrôle de flux : TCP ajuste le taux de transmission en fonction de la capacité du réseau pour éviter la congestion.
- Connexion orientée : TCP établit une connexion entre l'expéditeur et le récepteur avant de commencer la transmission des données.
Caractéristiques de UDP
- Non-fiabilité : UDP n'assure pas la livraison des paquets. Les paquets peuvent être perdus ou reçus dans le désordre.
- Pas de contrôle de flux : UDP envoie les paquets sans ajustement dynamique du taux de transmission.
- Connexion non orientée : UDP n'établit pas de connexion préalable, ce qui le rend plus rapide et plus léger.
Cas d'usage
-
TCP : Utilisé pour des applications nécessitant une fiabilité élevée, comme le web (HTTP/HTTPS), les emails (SMTP), et le transfert de fichiers (FTP).
-
UDP : Préféré pour des applications où la rapidité prime sur la fiabilité, comme le streaming vidéo, les jeux en ligne, et la VoIP.
Exemple pratique
Imaginons que vous regardez une vidéo en streaming.
-
Le protocole UDP est utilisé pour ce type de service car il est plus rapide et la perte occasionnelle de paquets n'affecte pas trop la qualité perçue.
-
En revanche, lors du téléchargement d'un fichier, TCP est utilisé pour garantir que chaque partie du fichier arrive intacte et dans l'ordre.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif
Comparer le comportement de TCP et UDP dans différentes conditions réseau en utilisant Filius.
Instructions
-
Créez un réseau dans Filius avec :
- 2 ordinateurs clients (Serveur A et Client B)
- 1 routeur
- 1 switch connectant les clients au routeur
-
Configurez les adresses IP :
- Serveur A : 192.168.1.10
- Client B : 192.168.1.20
- Routeur : 192.168.1.1
-
Sur Serveur A, installez et configurez un serveur TCP sur le port 8080 et un serveur UDP sur le port 8081.
-
Sur Client B, installez un client TCP et un client UDP.
-
Effectuez les tests suivants :
- Envoyez un message "Bonjour" via TCP et via UDP. Observez les échanges.
- Envoyez un fichier texte de 1 Mo via TCP et via UDP. Comparez les temps de transfert.
- Simulez une perte de paquets de 10% sur le routeur. Répétez les tests a) et b).
- Augmentez la perte de paquets à 30%. Répétez les tests a) et b).
-
Pour chaque test, notez :
- Le temps de transfert
- Le nombre de paquets envoyés
- Le nombre de paquets reçus
- La qualité de la transmission (données complètes ou non)
-
Analysez les résultats et rédigez un résumé d'analyse qui compare les performances de TCP et UDP dans ces différentes conditions.
Une solution
Vous devez être connecté pour voir le contenu.
Questions de réflexion
- Dans quelles situations TCP a-t-il montré un avantage sur UDP ?
Proposition de réponse
TCP a montré un avantage dans les situations nécessitant une transmission fiable et complète des données, particulièrement lors de pertes de paquets élevées.
- Pourquoi UDP pourrait-il être préférable malgré la perte de paquets dans certains scénarios ?
Proposition de réponse
UDP pourrait être préférable dans des scénarios où la rapidité est cruciale et où des pertes occasionnelles sont acceptables, comme dans les jeux en ligne ou le streaming en direct.
- Comment pourriez-vous améliorer la fiabilité d'une application utilisant UDP sans perdre totalement son avantage de rapidité ?
Proposition de réponse
Pour améliorer la fiabilité d'une application UDP sans perdre en rapidité, on pourrait :
- Implémenter un système de numérotation des paquets pour détecter les pertes.
- Utiliser un mécanisme de retransmission sélective pour les données critiques.
- Mettre en place une correction d'erreur avancée pour reconstruire les données perdues.
- Dans quelles situations TCP a-t-il montré un avantage sur UDP ?
Proposition de réponse
TCP a montré un avantage dans les situations nécessitant une transmission fiable et complète des données, particulièrement lors de pertes de paquets élevées.
- Pourquoi UDP pourrait-il être préférable malgré la perte de paquets dans certains scénarios ?
Proposition de réponse
UDP pourrait être préférable dans des scénarios où la rapidité est cruciale et où des pertes occasionnelles sont acceptables, comme dans les jeux en ligne ou le streaming en direct.
- Comment pourriez-vous améliorer la fiabilité d'une application utilisant UDP sans perdre totalement son avantage de rapidité ?
Proposition de réponse
Pour améliorer la fiabilité d'une application UDP sans perdre en rapidité, on pourrait :
- Implémenter un système de numérotation des paquets pour détecter les pertes.
- Utiliser un mécanisme de retransmission sélective pour les données critiques.
- Mettre en place une correction d'erreur avancée pour reconstruire les données perdues.