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


Introduction

Ce protocole de datagramme utilisateur (User Datagram Protocol, UDP) est défini afin de mettre à disposition un mode datagramme 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écanismes protocolaires. Le protocole est orienté transaction (Transaction Oriented), et la livraison ainsi que la protection contre les duplicatas 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)

Port source (Source Port)

Le port source (Source Port) est un champ optionnel ; lorsqu'il est significatif, il indique le port du processus émetteur 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.

Port de destination (Destination Port)

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

Longueur (Length)

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.)

Somme de contrôle (Checksum)

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 identique à 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 nulle, 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 s'en dispensent).


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 ainsi que 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 son 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 numéro de 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, January 1980.

[2] Postel, J., "Transmission Control Protocol," RFC 761, USC/Information Sciences Institute, January 1980.

[3] Postel, J., "Internet Name Server," USC/Information Sciences Institute, IEN 116, August 1979.

[4] Sollins, K., "The TFTP Protocol," Massachusetts Institute of Technology, IEN 133, January 1980.

[5] Postel, J., "Assigned Numbers," USC/Information Sciences Institute, RFC 762, January 1980.


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