UDP (User Datagram Protocol)
UDP (User Datagram Protocol) est un protocole de communication qui est principalement utilisé pour établir des connexions à faible latence et à tolérance de perte entre les applications sur l’internet. Il accélère les transmissions en permettant le transfert de données avant qu’un accord ne soit fourni par la partie destinataire. L’UDP est donc utile pour les communications sensibles au temps, notamment la voix sur IP (VoIP), la consultation du domain name system (DNS) et la lecture vidéo ou audio. L’UDP est une alternative au protocole de contrôle de transmission (TCP).
L’UDP et le TCP fonctionnent tous deux en plus du protocole IP et sont parfois appelés UDP/IP ou TCP/IP ; il existe toutefois des différences importantes entre les deux. Par exemple, UDP permet une communication de processus à processus, tandis que TCP prend en charge la communication d’hôte à hôte. En outre, TCP envoie des paquets individuels et est considéré comme un moyen de transport fiable. D’autre part, l’UDP envoie des messages, appelés datagrammes, et est considéré comme un mode de communication « best effort » – ce qui signifie que le service ne fournit aucune garantie que les données seront livrées ou n’offre pas de fonctions spéciales pour retransmettre des messages perdus ou corrompus.
L’UDP fournit deux services qui ne sont pas fournis par la couche IP. Il fournit des numéros de port pour aider à distinguer les différentes demandes des utilisateurs et, en option, une capacité de contrôle pour vérifier que les données sont arrivées intactes.
Le TCP est devenu le protocole dominant utilisé pour la majeure partie de la connectivité internet en raison de sa capacité à diviser de grands ensembles de données en paquets individuels, à vérifier et à renvoyer les paquets perdus, et à réassembler les paquets dans le bon ordre. Mais ces services supplémentaires ont un coût en termes de surcharge de données et de latence.
En revanche, l’UDP est considéré comme un protocole sans connexion car il ne nécessite pas l’établissement d’un circuit virtuel avant tout transfert de données. Le protocole de communication se contente d’envoyer les paquets, ce qui signifie qu’il a une surcharge de bande passante et une latence beaucoup plus faibles. Avec UDP, les paquets peuvent prendre des chemins différents entre l’émetteur et le récepteur, et par conséquent, certains paquets peuvent être perdus ou reçus hors service.
Caractéristiques du User Datagram Protocol
Le User Datagram Protocol possède des attributs qui le rendent avantageux pour les applications qui peuvent tolérer la perte de données. Par exemple :
- Il permet aux paquets d’être déposés et reçus dans un ordre différent de celui dans lequel ils ont été transmis, ce qui le rend adapté aux applications en temps réel où la latence peut être un problème.
- Il peut être utilisé pour les protocoles basés sur les transactions, tels que le DNS ou le Network Time Protocol (NTP).
- Il peut être utilisé lorsqu’un grand nombre de clients sont connectés et lorsqu’il n’est pas nécessaire de corriger les erreurs en temps réel, comme dans le cas des jeux, des conférences vocales ou vidéo et des médias en continu.
Composition de l’en-tête UDP
L’UDP utilise des en-têtes lorsqu’elle regroupe les données des messages pour les transférer sur des connexions réseau. Les en-têtes UDP contiennent un ensemble de paramètres — appelés champs — définis par les spécifications techniques du protocole.
L’en-tête User Datagram Protocol comporte quatre champs, chacun d’eux étant de 2 octets. Ils sont les suivants :
- numéro du port source, qui est le numéro de l’expéditeur ;
- numéro du port de destination, qui est le port auquel le datagramme est adressé ;
l - ongueur, la longueur en octets de l’en-tête UDP et de toute donnée encapsulée ; et
qui est utilisé dans la vérification des erreurs — son utilisation est obligatoire en IPv6 et facultative en IPv4.
Format de l’en-tête UDP
La composition des quatre champs de l’en-tête UDP : port source, port de destination, longueur UDP et somme de contrôle
Comment fonctionne l’UDP
L’UDP utilise l’IP pour faire passer un datagramme d’un ordinateur à un autre. L’UDP fonctionne en rassemblant les données dans un paquet UDP et en ajoutant ses propres informations d’en-tête au paquet. Ces données comprennent les ports source et destination sur lesquels communiquer, la longueur du paquet et une somme de contrôle. Une fois que les paquets UDP sont encapsulés dans un paquet IP, ils sont envoyés à leur destination.
Contrairement à TCP, UDP ne garantit pas que les paquets arriveront aux bonnes destinations. Cela signifie que l’UDP ne se connecte pas directement à l’ordinateur récepteur, ce que fait le TCP. Il envoie plutôt les données et s’appuie sur les dispositifs situés entre les ordinateurs émetteur et récepteur pour que les données arrivent correctement là où elles sont censées aller.
La plupart des applications qui utilisent l’UDP attendent les réponses qui sont attendues suite à l’envoi de paquets par le protocole de communication. Si une application ne reçoit pas de réponse dans un certain délai, elle envoie à nouveau le paquet, ou elle cesse d’essayer.
L’UDP utilise un modèle de transmission simple qui n’inclut pas de dialogues de poignée de main pour assurer la fiabilité, l’ordre ou l’intégrité des données. Par conséquent, le service d’UDP n’est pas fiable et les paquets peuvent arriver en mauvais état, sembler avoir des doublons ou disparaître sans avertissement.
Bien que cette méthode de transmission ne garantisse pas que les données envoyées parviendront à leur destination, elle a un faible coût d’exploitation et elle est populaire pour les services qui ne doivent pas absolument fonctionner du premier coup.
Applications de l’UDP
L’UDP peut être utilisé dans des applications qui nécessitent une transmission de données sans perte lorsque l’application est configurée pour gérer le processus de retransmission des paquets perdus et de disposition correcte des paquets reçus. Cette approche peut contribuer à améliorer le taux de transfert de données des fichiers volumineux par rapport au TCP.
Dans le modèle de communication OSI (Open Systems Interconnection), l’UDP, comme le TCP, se trouve dans la couche 4, la couche de transport. L’UDP fonctionne en conjonction avec des protocoles de niveau supérieur pour aider à gérer les services de transmission de données, notamment le protocole de transfert de fichiers trivial (TFTP), le protocole de diffusion en temps réel (RTSP) et le protocole de gestion de réseau simple (SNMP).
L’UDP est un protocole idéal pour les applications réseau dans lesquelles la latence perçue est essentielle, comme dans les jeux et les communications vocales et vidéo, qui peuvent subir des pertes de données sans nuire à la qualité perçue. Dans certains cas, des techniques de correction d’erreur directe sont utilisées pour améliorer la qualité audio et vidéo, malgré certaines pertes.
L’UDP peut également être utilisé pour des applications qui dépendent de l’échange fiable d’informations, mais qui doivent avoir leurs propres méthodes pour répondre aux paquets. Ces services sont avantageux car ils ne sont pas liés à des modèles fixes pour garantir l’exhaustivité et l’exactitude des paquets de données envoyés. Les utilisateurs peuvent décider comment et quand répondre à des informations qui ne sont pas correctes ou triées.
L’UDP peut également être utilisé pour la multidiffusion car il prend en charge la commutation de paquets. En outre, l’UDP est utilisé pour certains protocoles de mise à jour du routage, tels que le Routing Information Protocol (RIP).
L’UDP peut être utilisé dans des applications où la vitesse plutôt que la fiabilité est essentielle. Par exemple, il peut être prudent d’utiliser UDP dans une application envoyant des données à partir d’une acquisition rapide où il est normal de perdre certains points de données.
TCP vs. UDP
TCP et UDP font partie de la suite de protocoles TCP/IP, qui comprend un certain nombre de protocoles permettant d’effectuer des communications sur le réseau.
Un tableau présentant les différences entre UDP et TCP
Les caractéristiques de l’UDP sont les suivantes :
- Il s’agit d’un protocole sans connexion.
- Il est utilisé pour la VoIP, le streaming vidéo, les jeux et les diffusions en direct.
- Il est plus rapide et nécessite moins de ressources.
- Les paquets n’arrivent pas nécessairement dans l’ordre.
- Il permet les paquets manquants — l’expéditeur est incapable de savoir si un paquet a été reçu.
- Il est mieux adapté aux applications qui nécessitent une transmission rapide et efficace, comme les jeux.
Les caractéristiques du TCP sont les suivantes :
- Il s’agit d’un protocole orienté connexion.
- C’est le protocole le plus utilisé sur l’internet.
- Il garantit qu’aucun paquet ne manque et que toutes les données envoyées parviennent au destinataire prévu.
- Il envoie les paquets dans l’ordre afin qu’ils puissent être facilement recollés.
- Il est plus lent et nécessite plus de ressources.
- Il a un en-tête plus gros que l’UDP.
Il est mieux adapté aux applications qui ont besoin d’une grande fiabilité, et le temps de transmission est relativement moins critique.