Aller au contenu principal

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).
remarque

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


Quel protocole garantit la livraison des paquets dans l'ordre ?


Quel protocole est généralement utilisé pour le streaming vidéo ?


Lequel des protocoles est connexion orientée ?


Quel protocole est plus adapté pour les jeux en ligne ?


Quel protocole ajuste le taux de transmission pour éviter la congestion ?


Quelle affirmation est vraie concernant TCP ?


Dans quel cas UDP serait-il préférable à TCP ?


Quelle caractéristique n'est PAS associée à UDP ?


Que signifie 'orienté connexion' dans le contexte de TCP ?


Pourquoi TCP est-il généralement plus lent que UDP ?


Quelle affirmation est vraie concernant TCP ?


Dans quel cas UDP serait-il préférable à TCP ?


Quelle caractéristique n'est PAS associée à UDP ?


Que signifie 'orienté connexion' dans le contexte de TCP ?


Pourquoi TCP est-il généralement plus lent que UDP ?



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

  1. 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
  2. Configurez les adresses IP :

    • Serveur A : 192.168.1.10
    • Client B : 192.168.1.20
    • Routeur : 192.168.1.1
  3. Sur Serveur A, installez et configurez un serveur TCP sur le port 8080 et un serveur UDP sur le port 8081.

  4. Sur Client B, installez un client TCP et un client UDP.

  5. 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).
  6. 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)
  7. 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

Questions de réflexion

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.