Next: Le protocole TCP.
Up: Les protocoles TCP et
Previous: Les protocoles TCP et
Le protocole UDP (rfc 768)utilise IP pour acheminer, d'un ordinateur à un
autre, en mode non fiable des datagrammes qui lui sont transmis
par une application (voir la figure 2.3).
UDP n'utilise pas d'accusé de réception et ne peut donc pas garantir que les
données ont bien été reçues.
Il ne réordonne pas les messages si ceux-ci n'arrivent pas dans
l'ordre dans lequel ils ont été émis et il n'assure pas non plus de
contrôle de flux.
Il se peut donc que le récepteur ne soit pas apte à faire face au
flux de datagrammes qui lui arrivent.
C'est donc à l'application qui utilise UDP de gérer les problèmes
de perte de messages, duplications, retards, déséquencement, ...
Cependant, UDP fournit un service supplémentaire par rapport à IP, il
permet de distinguer plusieurs applications destinatrices sur la même
machine par l'intermédiaire des ports .
Un port est une destination abstraite sur une machine identifié par un
numéro qui sert d'interface à l'application pour recevoir et émettre
des données.
Par exemple,
...
tftp 69/udp
...
snmp 161/udp
...
est un court extrait du fichier /etc/services de la machine
vega.info.univ-angers.fr dans lequel sont enregistrés les numéros
de port utilisés par chaque application.
On y voit que l'application tftp utilise le port 69 et que
l'application snmp utilise le port 161
.
Chaque datagramme émis par UDP est encapsulé dans un datagramme IP en
y fixant à 17 la valeur du protocole (voir la
section 2.5.1).
Le format détaillé d'un datagramme UDP est donné dans la
figure 2.22.
Figure 2.22:
Structure d'un datagramme UDP.
 |
Les numéros de port (chacun sur 16 bits) identifient les processus
émetteur et récepteur.
Le champ longueur contient sur 2 octets la taille de l'en-tête et
des données transmises.
Puisqu'un datagramme UDP peut ne transmettre aucune donnée la valeur
minimale de la longueur est 8.
Le checksum est un total de contrôle qui est optionnel car il n'est
pas indispensable lorsque UDP est utilisé sur un réseau très fiable.
S'il est fixé à 0 c'est qu'en fait il n'a pas été calculé.
De manière précise, UDP utilise l'en-tête et les données mais
également une pseudo-entête pour aboutir à l'ensemble décrit
figure 2.23.
Figure:
Champs utilisés pour le calcul du checksum UDP.
 |
Cette pseudo en-tête comprend les adresses IP source
et destination du
datagramme ainsi qu'un éventuel octet de bourrage pour aboutir à un
nombre d'octets total pair.
À partir de cet ensemble, le total de contrôle est calculé de la même
manière que dans le cas du datagramme IP (voir
section 2.5.1).
Si le résultat donne un checksum nul, son complément à 1, c'est-à-dire
65535 (16 bits à 1), est en fait placé dans la zone de contrôle.
Ce détail permet d'éviter la confusion avec le checksum nul qui indique
qu'il n'a pas été calculé.
Précisons enfin que la pseudo en-tête et l'octet de bourrage ne sont pas
transmis et qu'ils n'interviennent pas dans le calcul du champ
longueur.
À la réception UDP utilise l'adresse IP de destination et l'adresse IP
émettrice inscrite dans l'en-tête du datagramme IP pour calculer, de la
même manière qu'à l'émission, une somme de contrôle qui permettra
d'assurer que le datagramme est délivré sans erreur et à la bonne machine.
Si une erreur de transmission est détectée, le datagramme UDP est
détruit <<en silence>>.
Sinon, UDP oriente les données du datagramme vers la file d'attente
associée au numéro de port destination pour que l'application associée
à celui-ci puisse les y lire.
Next: Le protocole TCP.
Up: Les protocoles TCP et
Previous: Les protocoles TCP et
Pascal Nicolas Université d'Angers
mardi, 2 novembre 1999, 09:20:50 MET