UDP signifie User Datagram Protocol, et il s'agit d'un protocole de communication sans connexion. Le protocole
UDP est une alternative au protocole TCP.
Il ne garantit pas l’arrivée de la donnée à bon port. C'est un courrier simple.
Lorsque le protocole UDP est utilisé pour transporter les données, il va envoyer les données d'un hôte source vers un
hôte de destination, sans chercher à savoir si l'hôte de destination a bien reçu l'ensemble des données. Autrement
dit, il n'y a pas de vérification des erreurs : si l'on envoie un fichier via UDP, on ne sait pas si l'hôte distant a reçu
entièrement ce fichier ou s'il l'a reçu partiellement (ou si il ne l'a pas reçu tou court).
Note : lorsque l'on parle du protocole UDP, on évoque le principe du "fire and forget" c'est-à-dire "tire et oublie"
puisqu'avec UDP on envoie les paquets puis on ne s'en occupe plus, comme si on avait oublié qu'un paquet avait
été envoyé.
Puisque l'on ne vérifie pas que l'hôte distant a bien reçu les données, on économise des ressources, mais aussi du temps,
donc le protocole UDP est plus rapide que le protocole TCP.
Les unités de transmission de base, sur lesquelles repose le protocole, sont des datagrames.
L'en-tête d'un segment UDP contient très peu de champ : le port source, le port de destination, la longueur totale du
datagrame, la somme de contrôle (pour vérifier l'intégrité du segment envoyé par le réseau) et les données.
Quelles applications utilisent UDP ?
Du fait de sa structure minimaliste et de l’absence de mécanismes visant à garantir une transmission complète et
réussie, le User Datagram Protocol n’est pas utilisé comme protocole de transport universel. Au départ, il a plutôt été
conçu pour les applications ne nécessitant pas (encore) de service de transmission fiable. Par conséquent, le domaine
d’application de l’UDP est plutôt limité, mais souligne son énorme valeur comme le prouvent les classes d’applications
suivantes pour UDP :
- Les applications « best effort delivery » (livraison des données best effort): le scénario d’utilisation classique de
l’UDP porte sur les applications basées sur une « livraison des données best effort ». Une transmission peu fiable des
informations suffit aux programmes utilisant l’User Datagram Protocol comme service « best effort », car ils
renouvellent régulièrement les informations quoiqu’il arrive. On peut citer comme exemple les applications qui
transmettent les valeurs mesurées ou qui exécutent toujours les mêmes tâches.
- Les applications légères : la faible surcharge de ce protocole de transport offre une aide optimale aux applications
construites de façon extrêmement simple. En association avec une absence d’établissement de connexion, ces
programmes profitent d’une performance particulièrement élevée dans le cadre du traitement et de la transmission de
paquets de données dans les réseaux.
- Les applications disposant de mécanismes propres pour une transmission fiable : l’UDP peut également s’avérer
intéressant pour les applications qui dépendent d’un échange d’informations fiable, mais disposent de mécanismes
propres pour répondre aux paquets. L’avantage de tels services est qu’ils ne sont pas tenus à des modèles fixes pour
garantir l’intégrité et l’exactitude des paquets de données envoyés. Ils peuvent décider de façon autonome comment et
quand réagir à des informations manquantes ou classées de façon arbitraire.
- Les applications multicast : tandis que les protocoles de transport fiables comme le TCP sont limités à l’utilisation
d’une communication de bout en bout, le protocole UDP supporte également les connexions IP multicast. Si une
application doit pouvoir envoyer simultanément des paquets IP de façon rapide et efficace à de nombreux destinataires,
l’UDP constitue une base adaptée.
- Applications en temps réel (real-time applications) : pour finir, l’UDP est également adapté comme protocole de
transport pour les services travaillant avec des exigences en temps réel – par exemple le streaming audio ou vidéo. Ces
derniers doivent pouvoir gérer de façon autonome l’envoi, la réception et la diffusion de flux de données, ce qui est
parfaitement possible avec la transmission UDP sans connexion.