Provided by: manpages-fr_3.65d1p1-1_all bug

NOM

       udp - Protocole UDP pour IPv4

SYNOPSIS

       #include <sys/socket.h>
       #include <netinet/in.h>
       #include <netinet/udp.h>

       udp_socket = socket(AF_INET, SOCK_DGRAM, 0);

DESCRIPTION

       Il  s'agit  d'une  implémentation  de l'User Datagram Protocol décrit dans la RFC 768. Elle implémente un
       service de paquets datagrammes non fiable,  sans  connexion.  Les  paquets  peuvent  être  réordonnés  ou
       dupliqués  avant  leur  arrivée.  UDP crée et vérifie des sommes de contrôle pour détecter les erreurs de
       transmission.

       Lorsqu'une socket UDP est créée, ses adresses locales et distantes sont  indéterminées.  Les  datagrammes
       peuvent  être  envoyés immédiatement en utilisant sendto(2) ou sendmsg(2) avec une adresse de destination
       valable en argument. Lorsque connect(2) est appelé sur une socket, l'adresse de  destination  par  défaut
       est définie, et les datagrammes pourront être envoyés avec send(2) ou write(2) sans indiquer d'adresse de
       destination.  Il  restera  possible  d'envoyer des données à d'autres destinations en passant l'adresse à
       sendto(2) ou sendmsg(2). Afin de recevoir les paquets, une socket doit être attachée à une adresse locale
       en utilisant bind(2). Sinon la couche socket affectera automatiquement  un  port  local  libre,  hors  de
       l'intervalle  défini  par  /proc/sys/net/ipv4/ip_local_port_range  et  attacher  la  socket  à  l'adresse
       INADDR_ANY.

       Les opérations de réception ne renvoient qu'un seul paquet à la fois. Si le paquet est plus petit que  le
       tampon  transmis,  il n'y aura pas plus de données renvoyées. S'il est plus grand, le paquet sera tronqué
       et le drapeau MSG_TRUNC sera activé. MSG_WAITALL n'est pas pris en charge.

       Les options IP peuvent être envoyées ou lues en utilisant les options des sockets  décrites  dans  ip(7).
       Elles  ne sont traitées par le noyau que lorsque le paramètre /proc approprié est activé (mais sont quand
       même fournies à l'utilisateur quant il est inhibé). Consultez ip(7).

       Quand l'attribut MSG_DONTROUTE est actif à l'émission, l'adresse  de  destination  doit  représenter  une
       adresse d'interface locale, et le paquet n'est envoyé qu'à cette interface.

       Par défaut, l'UDP sous Linux utilise la détection de MTU (« Maximum Transmission Unit ») par chemin. Cela
       signifie  que  le  noyau  garde  en  mémoire le MTU vers une adresse IP particulière, et renvoie EMSGSIZE
       lorsqu'une écriture sur une socket UDP dépasse cette taille. Dans ce cas, l'application doit  réduire  la
       taille  du  paquet.  La  détection  de  MTU  par  chemin  peut  être  désactivée  avec l'option de socket
       IP_MTU_DISCOVER ou le fichier /proc/sys/net/ipv4/ip_no_pmtu_disc ; consultez ip(7) pour plus de  détails.
       Lorsque  cette option est désactivée, UDP fragmente les paquets sortants dont la taille dépasse le MTU de
       l'interface. C’est cependant découragé, pour des raisons de performance et de fiabilité.

   Format d'adresse
       UDP utilise le format d'adresse IPv4 sockaddr_in comme indiqué dans ip(7).

   Traitement des erreurs
       Toutes les erreurs fatales seront transmises à l'utilisateur comme un retour  d'erreur  même  lorsque  la
       socket  n'est  pas  connectée.  Ça  comprend  les erreurs asynchrones reçues du réseau. Vous pouvez ainsi
       recevoir une erreur due à un paquet précédemment envoyé sur la même socket. Ce  comportement  diffère  de
       celui de nombreuses autres implémentations des sockets BSD, qui ne transmettent pas d'erreur si la socket
       n'est pas connectée. Le comportement de Linux correspond à la RFC 1122.

       Pour  assurer  la  compatibilité  avec  du  code  ancien,  sous  Linux 2.0  et  2.2,  l'option SOL_SOCKET
       SO_BSDCOMPAT pouvait être définie pour ne recevoir les erreurs distantes que si la socket a été connectée
       (sauf pour EPROTO et EMSGSIZE). Les erreurs locales sont toujours transmises. La gestion de cette  option
       a été supprimée dans les noyaux plus récents ; consultez socket(7) pour plus d'informations.

       Lorsque  l'option  IP_RECVERR  est  active,  toutes les erreurs sont stockées dans la file d'erreur de la
       socket et peuvent être lues avec recvmsg(2) en activant son option MSG_ERRQUEUE.

   Interfaces /proc
       La configuration des  paramètres  système  pour  UDP  est  accessible  par  les  fichiers  du  répertoire
       /proc/sys/net/ipv4/.

       udp_mem (depuis Linux 2.6.25)
              C'est  un vecteur de trois entiers qui contrôle le nombre de pages permises pour la file d’attente
              de toutes les sockets UDP.

              min       En dessous de ce nombre de pages, UDP ne se soucie pas de son appétit en mémoire.  Quand
                        la  quantité de mémoire allouée par UDP dépasse cette valeur, UDP commence à limiter son
                        utilisation mémoire.

              pressure  Cette valeur a été introduite pour suivre le format de tcp_mem (voir tcp(7)).

              max       Nombre de pages permises pour la file d’attente de toutes les sockets UDP.

              Les valeurs par défaut pour ces trois éléments sont calculées au démarrage à partir de la quantité
              de mémoire disponible.

       udp_rmem_min (entier ; PAGE_SIZE par défaut ; depuis Linux 2.6.25)
              Taille minimale, en octets, des tampons de réception utilisés par les sockets UDP dans le mode  de
              modération.  Chaque  socket  UDP  peut utiliser cette taille pour recevoir des données, même si le
              nombre total de pages pour les sockets UDP dépasse le seuil udp_mem.

       udp_wmem_min (entier ; PAGE_SIZE par défaut ; depuis Linux 2.6.25)
              Taille minimale, en octets, du tampon d'émission utilisé par les  sockets  UDP  dans  le  mode  de
              modération.  Chaque  socket  UDP  peut  utiliser cette taille pour envoyer des données, même si le
              nombre total de pages pour les sockets UDP dépasse le seuil udp_mem.

   Options de sockets
       Pour lire ou écrire une option de socket UDP, appeler getsockopt(2) pour la lecture ou setsockopt(2) pour
       l'écriture, avec l'argument de niveau d'option valant IPPROTO_UDP. Sauf mention contraire, optval est  un
       pointeur vers un int.

       UDP_CORK (depuis Linux 2.5.44)
              Si  cette option est active, toutes les données en sortie sur cette socket sont accumulées dans un
              unique datagramme qui est émis dès que l'option est désactivée. Cette  option  ne  doit  pas  être
              utilisée dans des programmes destinés à être portables.

   Ioctls
       Ces ioctls sont accessibles à travers l'appel système ioctl(2). La syntaxe correcte est :

              int value;
              error = ioctl(udp_socket, ioctl_type, &value);

       FIONREAD (SIOCINQ)
              Prend en argument un pointeur sur un entier. Y écrit la taille en octets du prochain datagramme en
              attente,  ou  0  si  aucun datagramme  n'est disponible. Attention : en utilisant FIONREAD, il est
              impossible de distinguer le cas où aucun datagramme  n'est  en  attente  du  cas  où  le  prochain
              datagramme  en  attente  contient  0 octet  de  données.  Il  est préférable d'utiliser select(2),
              poll(2), ou epoll(7)  pour différencier ces cas.

       TIOCOUTQ (SIOCOUTQ)
              Renvoie le nombre d'octets de données dans la file d'émission locale. Seulement sur  Linux 2.4  et
              ultérieurs.

       De plus, les ioctls documentés dans ip(7) et socket(7) sont pris en charge.

ERREURS

       Toutes  les  erreurs  documentées  pour  socket(7) ou ip(7) peuvent être renvoyées lors d'une émission ou
       d'une réception sur une socket UDP.

       ECONNREFUSED
              Aucun correspondant sur l'adresse destination associée  à  la  socket.  Ça  peut  être  causé  par
              l'émission antérieure d'un paquet sur la socket.

VERSIONS

       IP_RECVERR est une nouveauté de Linux 2.2.

VOIR AUSSI

       ip(7), raw(7), socket(7), udplite(7)

       RFC 768 pour le protocole UDP.
       RFC 1122 pour les nécessités de l'hôte.
       RFC 1191 pour une description de la recherche du MTU du chemin.

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de  traduction de
       Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

Linux                                            31 juillet 2013                                          UDP(7)