Quand faut-il utiliser UDP au lieu de TCP?

Le TCP garantit la livraison des paquets et peut être considéré comme « fiable », alors que l’UDP ne garantit rien et que les paquets peuvent être perdus. Quel serait l’avantage de transmettre des données à l’aide d’UDP dans une application plutôt que sur un flux TCP ? Dans quel type de situation UDP serait-il le meilleur choix, et pourquoi ?

Je suppose que l’UDP est plus rapide puisqu’il n’a pas à gérer la création et le maintien d’un flux, mais cela ne serait-il pas inutile si certaines données n’atteignent jamais leur destination ?

Dans les situations où vous souhaitez vraiment obtenir rapidement une réponse simple à un autre serveur, c’est UDP qui fonctionne le mieux. En général, vous voulez que la réponse soit dans un seul paquet de réponse, et vous êtes prêt à mettre en œuvre votre propre protocole pour la fiabilité ou pour renvoyer. Le DNS est la description parfaite de ce cas d’utilisation. Les coûts d’établissement des connexions sont beaucoup trop élevés (pour l’instant), (DNS supporte également un mode TCP).

Un autre cas est celui où vous fournissez des données qui peuvent être perdues parce que les données plus récentes remplacent les données/états précédents.

Un autre cas est celui du trafic multicast. Le protocole UDP peut faire le multicast diffusion vers plusieurs hôtes, alors que le protocole TCP ne le peut pas du tout.

Je vous recommande de lire:

UDP est un protocole sans connexion et est utilisé dans des protocoles tels que SNMP et DNS dans lesquels les paquets de données arrivant dans le désordre sont acceptables et où la transmission immédiate du paquet de données est importante.

Il est utilisé dans SNMP car la gestion du réseau doit souvent être effectuée lorsque le réseau est sous pression, c’est-à-dire lorsque la transmission immédiate des paquets de données est importante. lorsque le réseau est sous tension, c’est-à-dire lorsqu’il est difficile d’obtenir un transfert de données fiable et contrôlé par l’encombrement.

Il est utilisé dans le DNS car il n’implique pas l’établissement d’une connexion, ce qui permet d’éviter les retards dans l’établissement de la connexion.