UDP qui signifie User Datagram Protocol est un protocole réseau important utilisé par de nombreuses applications.
C’est un protocole réseau très connu avec TCP et ICMP.
Dans ce tutoriel, je vous donne la définition d’UDP et le fonctionnement général de ce protocole avec notamment la structure d’un paquet UDP.
Table des matières
Qu’est ce que le protocole UDP
UDP est l’abréviation de User Datagram Protocol.
C’est un protocole de la couche transport (couche 4) du modèle OSI.
Il prend en charge un service de paquets sans connexion qui fournit une livraison non fiable “au mieux”.
Cela signifie que l’arrivée du paquet n’est pas protégée, pas plus que le séquençage correct des paquets acheminés. Une application qui n’a pas besoin d’un accusé de réception des données, comme la publicité audio ou vidéo, utilise UDP.
Il est spécifiquement choisi pour les applications sensibles au temps comme les jeux, la lecture de vidéos ou les consultations du système de nom de domaine (DNS). L’UDP permet une communication plus rapide car il ne prend pas le temps d’établir une connexion solide avec la destination avant de transférer les données. Comme l’établissement de la connexion prend du temps, l’élimination de cette étape permet d’accélérer le transfert des données.
Toutefois, le protocole UDP peut également entraîner la perte de paquets de données entre la source et la destination. Il peut également faciliter l’exécution d’une attaque par déni de service distribué (DDoS) par un pirate informatique.
Les propriétés UDP sont :
- Pas de poignée de main nécessaire lors de l’établissement de la connexion
- Les données sont envoyées à la cible, on appelle cela les datagrammes UDP
- Pas d’ordonnancement garanti des paquets. Rien n’est prévu pour indiquer l’ordre dans lequel les paquets doivent arriver
- Il n’existe pas non plus de processus permettant de vérifier si les datagrammes ont atteint leur destination
- UDP fournit toutefois une somme de contrôle pour vérifier l’intégrité des paquets individuels.
Quelle est la structure d’un paquet UDP (Datagramme)
Voici la structure complète d’un paquet UDP.
L’en-tête UDP (Header)
L’en-tête UDP est un en-tête fixe et simple de 8 octets, tandis que pour le TCP, il peut varier de 20 à 60 octets.
Les 8 premiers octets contiennent toutes les informations d’en-tête nécessaires et la partie restante est constituée de données. Les champs de numéro de port UDP ont chacun 16 bits de long, la plage des numéros de port est donc définie de 0 à 65535 ; le numéro de port 0 est réservé. Les numéros de port permettent de distinguer les différentes demandes ou processus des utilisateurs.
Chaque message UDP comprend à la fois un numéro de port de destination et un numéro de port source. Cela permet à l’application UDP de destination de produire le message au programme d’application approprié et au programme d’application d’envoyer une réponse.
L’en-tête UDP comprend les données suivantes :
- Port Source : Le champ Source Port est un champ de 2 octets de long utilisé pour identifier le numéro de port de la source
- Destination Port : C’est un champ de 2 octets de long, utilisé pour identifier le port du paquet destiné.
- Longueur : La longueur est la longueur de l’UDP, y compris l’en-tête et les données. Il s’agit d’un champ de 16 bits.
- Somme de contrôle : La somme de contrôle est un champ de 2 octets de long. Il s’agit du complément à un de 16 bits de la somme du complément à un de l’en-tête UDP, du pseudo-en-tête des informations de l’en-tête IP et des données, complété par des octets zéro à la fin (si nécessaire) pour obtenir un multiple de deux octets.
TCP VS UDP
Les informations contenues dans l’en-tête sont suffisantes pour amener les données là où elles doivent aller, et l’ordre chronologique d’envoi des datagrammes devrait les maintenir en ordre.
Le TCP est différent dans la mesure où il nécessite une poignée de main entre l’origine des données et leur destination. Cela rend le TCP plus fiable que l’UDP.
Au cours d’une communication TCP, les données ne peuvent être envoyées qu’après que la destination et la source ont été formellement liées. Avec UDP, comme aucun lien n’est nécessaire, les données peuvent être envoyées immédiatement.
Une autre différence entre les communications TCP et UDP est qu’avec TCP, l’ordre dans lequel les paquets doivent être reçus est confirmé avant le début de la transmission. En outre, le TCP permet de confirmer que les paquets sont arrivés comme prévu. Dans le cas où le paquet n’arrive pas, le TCP indique qu’il doit être envoyé à nouveau. L’UDP ne nécessite aucune confirmation, vérification ou nouvel envoi.
Quand utiliser UDP ?
UDP peut être utilisé lorsque les utilisateurs d’une application assument le risque d’erreurs, de données qui n’arrivent pas à destination ou qui sont dupliquées. La récompense pour avoir accepté ce compromis est une meilleure vitesse. L’UDP lui-même n’est pas nécessairement responsable de la perte de données.
On l’utilise dans les cas suivants :
- Aucun délai de retransmission – UDP convient aux applications sensibles au temps qui ne peuvent pas se permettre des délais de retransmission pour les paquets abandonnés. Il s’agit par exemple de la voix sur IP (VoIP), des jeux en ligne et du streaming multimédia.
- Vitesse – La vitesse de l’UDP le rend utile pour les protocoles de réponse aux requêtes tels que le DNS, dans lesquels les paquets de données sont petits et transactionnels.
- Adapté aux diffusions – L’absence de communication de bout en bout de l’UDP le rend adapté aux diffusions, dans lesquelles les paquets de données transmis sont adressés comme pouvant être reçus par tous les appareils sur Internet. Les diffusions UDP peuvent être reçues par un grand nombre de clients sans surcharge côté serveur.
Quelques exemples d’utilisation d’UDP
- Les jeux en ligne : La légèreté UDP face à UDP et son établissement de connexion plus simple est privilégiée par les jeux en ligne pour la vitesse
- Streaming vidéo : La vitesse et la légèreté d’UDP est idéale pour le streaming vidéo
- Les protocoles DNS et DHCP : DNS et DHCP privilégie UDP par rapport à TCP pour la vitesse
- Echange P2P avec Bittorrent : Pour les mêmes raisons certains protocoles de transfert de fichiers P2P utilisent UDP. C’est notamment le cas de Bittorrent
Liens
- Protocole TCP, UDP, ICMP : fonctionnement et différences
- Le protocole TCP/IP : définition, architecture et couches
- L’établissement d’une connexion TCP/IP
- ICMP (Internet message protocol) : définition, fonctionnement du protocole
- UDP (User Datagram Protocol) : définition, structure du protocole
- Qu’est-ce que l’adresse IP ?
- La fragmentation des paquets IP : tout savoir
- Qu’est-ce que le MTU et MSS et comment l’optimiser
- Qu’est-ce que le routage IP et les types de routage
- Les couches du modèle OSI pour les nuls
- Les réseaux informatiques – le dossier