Aller au contenu principal

RFC 768 - Protocole de datagramme utilisateur (User Datagram Protocol)

Date de publication : 28 août 1980
Auteur : J. Postel (ISI - Information Sciences Institute)
Statut : Protocole standard (Standard Protocol)


Introduction

Ce protocole de datagramme utilisateur (User Datagram Protocol, UDP) est défini pour rendre disponible un mode datagramme (Datagram Mode) de communication informatique à commutation de paquets dans l'environnement d'un ensemble interconnecté de réseaux informatiques. Ce protocole suppose que le protocole Internet (Internet Protocol, IP) [1] est utilisé comme protocole sous-jacent.

Ce protocole fournit une procédure permettant aux programmes d'application d'envoyer des messages à d'autres programmes avec un minimum de mécanisme protocolaire. Le protocole est orienté transaction (Transaction Oriented), et la livraison ainsi que la protection contre les duplications ne sont pas garanties. Les applications nécessitant une livraison fiable et ordonnée de flux de données devraient utiliser le protocole de contrôle de transmission (Transmission Control Protocol, TCP) [2].


Format

                  0      7 8     15 16    23 24    31  
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| | |
| Length | Checksum |
+--------+--------+--------+--------+
|
| data octets ...
+---------------- ...

User Datagram Header Format

Champs (Fields)

Source Port (Port source)

Le port source (Source Port) est un champ optionnel ; lorsqu'il est significatif, il indique le port du processus d'envoi et peut être supposé être le port auquel une réponse devrait être adressée en l'absence de toute autre information. S'il n'est pas utilisé, une valeur de zéro est insérée.

Destination Port (Port de destination)

Le port de destination (Destination Port) a une signification dans le contexte d'une adresse de destination Internet particulière.

Length (Longueur)

La longueur (Length) est la longueur en octets de ce datagramme utilisateur, y compris cet en-tête et les données. (Cela signifie que la valeur minimale de la longueur est huit.)

Checksum (Somme de contrôle)

La somme de contrôle (Checksum) est le complément à un sur 16 bits de la somme en complément à un d'un pseudo-en-tête (Pseudo Header) d'informations provenant de l'en-tête IP, de l'en-tête UDP et des données, complété par des octets nuls à la fin (si nécessaire) pour former un multiple de deux octets.

Le pseudo-en-tête, conceptuellement préfixé à l'en-tête UDP, contient l'adresse source, l'adresse de destination, le protocole et la longueur UDP. Ces informations fournissent une protection contre les datagrammes mal acheminés. Cette procédure de somme de contrôle est la même que celle utilisée dans TCP.

                  0      7 8     15 16    23 24    31 
+--------+--------+--------+--------+
| source address |
+--------+--------+--------+--------+
| destination address |
+--------+--------+--------+--------+
| zero |protocol| UDP length |
+--------+--------+--------+--------+

Si la somme de contrôle calculée est zéro, elle est transmise comme tous uns (l'équivalent en arithmétique de complément à un). Une valeur de somme de contrôle transmise de tous zéros signifie que l'émetteur n'a pas généré de somme de contrôle (pour le débogage ou pour les protocoles de niveau supérieur qui ne s'en soucient pas).


Interface utilisateur (User Interface)

Une interface utilisateur devrait permettre :

  • la création de nouveaux ports de réception (Receive Ports),

  • des opérations de réception sur les ports de réception qui retournent les octets de données et une indication du port source et de l'adresse source,

  • et une opération qui permet d'envoyer un datagramme, en spécifiant les données, les ports source et de destination et les adresses à envoyer.


Interface IP (IP Interface)

Le module UDP doit (MUST) être capable de déterminer les adresses Internet source et de destination ainsi que le champ protocole à partir de l'en-tête Internet. Une interface UDP/IP possible retournerait le datagramme Internet complet, y compris tout l'en-tête Internet, en réponse à une opération de réception. Une telle interface permettrait également à l'UDP de transmettre un datagramme Internet complet avec en-tête à l'IP pour l'envoi. L'IP vérifierait la cohérence de certains champs et calculerait la somme de contrôle de l'en-tête Internet.


Application du protocole (Protocol Application)

Les principales utilisations de ce protocole sont le serveur de noms Internet (Internet Name Server) [3] et le transfert de fichiers trivial (Trivial File Transfer) [4].


Numéro de protocole (Protocol Number)

Il s'agit du protocole 17 (21 en octal) lorsqu'il est utilisé dans le protocole Internet. D'autres numéros de protocole sont répertoriés dans [5].


Références (References)

[1] Postel, J., « Internet Protocol », RFC 760, USC/Information Sciences Institute, janvier 1980.

[2] Postel, J., « Transmission Control Protocol », RFC 761, USC/Information Sciences Institute, janvier 1980.

[3] Postel, J., « Internet Name Server », USC/Information Sciences Institute, IEN 116, août 1979.

[4] Sollins, K., « The TFTP Protocol », Massachusetts Institute of Technology, IEN 133, janvier 1980.

[5] Postel, J., « Assigned Numbers », USC/Information Sciences Institute, RFC 762, janvier 1980.


Ressources associées

  • Texte officiel : https://www.rfc-editor.org/rfc/rfc768.txt
  • Page officielle : https://datatracker.ietf.org/doc/html/rfc768