Qu'est-ce que UDP (User Datagram Protocol) ?

Protocole de la couche transport sans connexion. Son en-tête fait 8 octets et ne contient que des numéros de port, une longueur et une somme de contrôle. Il n'a ni établissement de connexion, ni accusé de réception ou retransmission, ni contrôle de l'ordre, si bien qu'il ajoute peu de délai. Il sert notamment aux requêtes DNS, aux appels vocaux et vidéo, aux jeux en ligne, à DHCP et à QUIC.

Nom japonais: UDP

« UDP (User Datagram Protocol) » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Bases des réseaux informatiques, Bases des technologies web.

Domaine: Bases des réseaux informatiques

En-tête et datagrammes

L'en-tête UDP se compose de quatre champs de 16 bits, le numéro de port source, le numéro de port destination, la longueur et la somme de contrôle, soit 8 octets au total. Chaque bloc de données envoyé par l'application devient un datagramme, que le récepteur reçoit avec les mêmes limites, contrairement au flux d'octets de TCP. La somme de contrôle est facultative sur IPv4 mais obligatoire sur IPv6. Les grands datagrammes sont fragmentés au niveau IP et se perdent plus facilement : les applications les gardent donc généralement assez petits pour tenir dans la MTU.

Quand UDP est le bon choix

Dans les appels et la diffusion en direct, des données qui arrivent en retard sont inutiles, et attendre les retransmissions fait hacher le son et l'image. Pour les échanges composés d'une seule question et d'une seule réponse, comme les requêtes DNS, se passer de l'établissement de connexion réduit l'attente. UDP peut aussi servir à la diffusion générale (broadcast) et à la multidiffusion (multicast), de un vers plusieurs : c'est pourquoi DHCP, utilisé par des appareils qui n'ont pas encore d'adresse IP, fonctionne sur UDP. Les applications qui ont besoin de fiabilité construisent elles-mêmes la retransmission et le contrôle de l'ordre au-dessus d'UDP, comme le fait QUIC.

Points de vigilance

Les datagrammes UDP peuvent être perdus, dupliqués ou désordonnés : l'application doit s'en accommoder, par exemple en numérotant ses données. UDP n'a lui-même aucun contrôle de congestion : une application qui envoie beaucoup de données doit donc régler elle-même son rythme. Les correspondances NAT disparaissent après une période sans trafic : les applications envoient donc parfois de petits paquets de maintien (keepalive) pour les conserver. Comme il n'y a pas d'échange préalable et que l'adresse source est facile à falsifier, des services UDP comme DNS, qui renvoient de grandes réponses à de petites requêtes, sont détournés pour des attaques DDoS par réflexion et amplification.

S'entraîner : questions sur UDP (User Datagram Protocol)

Dans le modèle TCP/IP à 4 couches, à quelle couche appartiennent TCP et UDP ?

  1. ACouche application
  2. BCouche Internet
  3. CCouche transport
Afficher la réponse et l'explication

Réponse : C. Couche transport

Le modèle TCP/IP se décrit en 4 couches, de bas en haut : la couche liaison (couche d'accès réseau), la couche Internet, la couche transport et la couche application. TCP et UDP sont des protocoles de la couche transport ; ils utilisent les numéros de port pour distinguer à quelle application du terminal une communication est destinée. IP, dans la couche Internet, se charge d'acheminer les paquets d'un terminal à un autre. HTTP et DNS sont des protocoles de la couche application. Rapportée au modèle OSI, la couche transport correspond à la couche 4 et la couche Internet à la couche 3.

Quelle description d'UDP est correcte ?

  1. AIl n'établit pas de connexion et ne gère ni les retransmissions ni l'ordre des données ; son en-tête est donc petit et il n'y a aucune attente avant l'envoi
  2. BIl établit une connexion, retransmet les données qui ne sont pas arrivées et remet les données dans l'ordre côté récepteur
  3. CIl remet les données au terminal destinataire uniquement à l'aide des adresses MAC, sans adresses IP
Afficher la réponse et l'explication

Réponse : A. Il n'établit pas de connexion et ne gère ni les retransmissions ni l'ordre des données ; son en-tête est donc petit et il n'y a aucune attente avant l'envoi

UDP est un protocole léger qui ajoute seulement des numéros de port et une détection d'erreurs simple (somme de contrôle) au-dessus d'IP ; son en-tête fait 8 octets (celui de TCP, 20 octets sans options). Sans procédure de connexion, sans confirmation de réception ni retransmission, il sert aux appels vocaux et à la vidéo en direct, où une petite perte vaut mieux qu'un retard, ainsi qu'à DNS, qui se contente d'une seule requête et d'une seule réponse. Si la fiabilité est nécessaire, c'est l'application qui la fournit : QUIC, utilisé par HTTP/3, implémente par exemple les retransmissions et le chiffrement au-dessus d'UDP. L'établissement de connexion, les retransmissions et le contrôle de l'ordre relèvent de TCP.

Questions fréquentes

Pourquoi utiliser UDP s'il n'est pas fiable ?

Il n'attend ni l'établissement de connexion ni les retransmissions, si bien qu'il ajoute peu de délai, et son en-tête est petit. Cela convient aux appels et aux jeux, où un faible délai importe plus que quelques données manquantes, et aux requêtes DNS, qui se terminent en un seul aller-retour. Quand la fiabilité est nécessaire, des protocoles comme QUIC mettent en œuvre la retransmission au-dessus d'UDP.

Les données UDP arrivent-elles dans l'ordre d'envoi ?

Ce n'est pas garanti. Les datagrammes peuvent arriver dans le désordre, par exemple parce qu'ils empruntent des chemins différents, et peuvent aussi être perdus ou dupliqués. Si l'ordre compte, l'application numérote ses données et les remet dans l'ordre.

« UDP (User Datagram Protocol) » dans les explications

Questions mentionnant « UDP (User Datagram Protocol) » (4)

  1. Dans le modèle TCP/IP à 4 couches, à quelle couche appartiennent TCP et UDP ?
  2. Quelle description d'UDP est correcte ?
  3. Quel est le rôle principal de DNS ?
  4. Quelle description de HTTP/2 et HTTP/3 est correcte ?

Comparatifs incluant ce terme

Termes associés

TCP (Transmission Control Protocol) HTTP (Hypertext Transfer Protocol) DNS (Domain Name System) IP (protocole Internet) Numéro de port Paquet (packet) QUIC Modèle OSI (modèle de référence OSI) ARQ (demande de répétition automatique) Adresse IP

Retour au glossaire