Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       udp - Protocole UDP pour IPv4

SYNOPSIS

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

       udp_socket = socket(AF_INET, SOCK_DGRAM, 0);

DESCRIPTION

       Il  s'agit d'une implementation de l'User Datagram Protocol decrit dans
       la  RFC 768.  Elle  implemente  un  service  de   paquets   datagrammes
       non-fiable,  sans  connexion.  Les  paquets  peuvent etre reordonnes ou
       dupliques avant leur  arrivee.  UDP  cree  et  verifie  des  sommes  de
       controle pour detecter les erreurs de transmission.

       Lorsqu'une socket UDP est creee, ses adresses locales et distantes sont
       indeterminees. Les datagrammes peuvent etre  envoyes  immediatement  en
       utilisant  sendto(2)  ou  sendmsg(2)  avec  une  adresse de destination
       valide en argument. Lorsque  connect(2)  est  appele  sur  une  socket,
       l'adresse  de  destination  par  defaut  est  fixee, et les datagrammes
       pourront etre envoyes avec send(2) ou write(2) sans specifier d'adresse
       de  destination.  Il  restera possible d'envoyer des donnees a d'autres
       destinations en passant l'adresse a sendto(2) ou  sendmsg(2).  Afin  de
       recevoir  les  paquets,  une  socket  doit  etre attachee a une adresse
       locale  en  utilisant  bind(2).  Sinon  la  couche   socket   affectera
       automatiquement  un  port  local libre, hors de l'intervalle defini par
       /proc/sys/net/ipv4/ip_local_port_range  et   attacher   la   socket   a
       l'adresse INADDR_ANY.

       Les  operations  de reception ne renvoient qu'un seul paquet a la fois.
       Si le paquet est plus petit que le tampon transmis,  il  n'y  aura  pas
       plus  de donnees renvoyees. S'il est plus grand, le paquet sera tronque
       et le drapeau MSG_TRUNC sera active.  MSG_WAITALL  n'est  pas  pris  en
       charge.

       Les options IP peuvent etre fixees ou lues en utilisant les options des
       sockets decrites dans ip(7). Elles ne sont traitees par  le  noyau  que
       lorsque  le  parametre /proc approprie est active (mais sont quand meme
       fournies a l'utilisateur quant il est inhibe). Consultez ip(7).

       Quand l'attribut MSG_DONTROUTE est actif  a  l'emission,  l'adresse  de
       destination  doit  representer  une  adresse  d'interface locale, et le
       paquet n'est envoye qu'a cette interface.

       Par defaut, l'UDP sous Linux utilise la detection  de  MTU  (<< Maximum
       Transmission  Unit >>)  par chemin. Cela signifie que le noyau garde en
       memoire le MTU vers une adresse IP particuliere,  et  renvoie  EMSGSIZE
       lorsqu'une  ecriture  sur  une socket UDP depasse cette taille. Dans ce
       cas, l'application doit reduire la taille du paquet.  La  detection  de
       MTU   par   chemin   peut  etre  desactivee  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  details.  Lorsque  cette  option  est
       desactivee, UDP fragmente les paquets sortants dont la  taille  depasse
       le  MTU  de l'interface. Ceci est cependant decourage, pour des raisons
       de performance et de fiabilite.

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

   Traitement des erreurs
       Toutes  les  erreurs fatales seront transmises a l'utilisateur comme un
       retour d'erreur meme lorsque la socket n'est pas connectee. Ceci inclut
       les  erreurs  asynchrones  recues du reseau. Vous pouvez ainsi recevoir
       une erreur due a un paquet precedemment envoye sur la meme  socket.  Ce
       comportement  differe de celui de nombreuses autres implementations des
       sockets BSD, qui ne transmettent pas d'erreur si la  socket  n'est  pas
       connectee. Le comportement de Linux correspond a la RFC 1122.

       Pour  assurer  la  compatibilite  avec  du code ancien, on pouvait sous
       Linux 2.0  et  2.2  fixer  l'option  SOL_SOCKET  SO_BSDCOMPAT  pour  ne
       recevoir  les  erreurs distantes que si la socket a ete connectee (sauf
       pour EPROTO et EMSGSIZE). Les erreurs locales sont toujours transmises.
       La  gestion  de  cette  option  a  ete  supprimee  dans les noyaux plus
       recents ; consultez socket(7) pour plus d'informations.

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

   Interfaces /proc
       La configuration des parametres systeme pour UDP  sont  accessible  par
       les fichiers du repertoire /proc/sys/net/ipv4/.

       udp_mem (depuis Linux 2.6.25)
              C'est  un  vecteur  de  trois  entiers qui controle le nombre de
              pages permises pour la queue de toutes les sockets UDP.

              min       En dessous de ce nombre de pages, UDP ne se soucie pas
                        de  son  appetit  en  memoire.  Quand  la  quantite de
                        memoire allouee par  UDP  depasse  cette  valeur,  UDP
                        commence a limiter son utilisation memoire.

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

              max       Nombre de pages permises pour la queue de  toutes  les
                        sockets UDP.

              Les valeurs par defaut pour ces trois elements sont calculees au
              demarrage a partir de la quantite de memoire disponible.

       udp_rmem_min (entier ; PAGE_SIZE par defaut ; depuis Linux 2.6.25)
              Taille minimale, en octets, des tampons  de  reception  utilises
              par  les  sockets  UDP dans le mode de moderation. Chaque socket
              UDP peut utiliser cette taille pour recevoir des  donnees,  meme
              si  le  nombre  total  de  pages pour les sockets UDP depasse le
              seuil udp_mem.

       udp_wmem_min (entier ; PAGE_SIZE par defaut ; depuis Linux 2.6.25)
              Taille minimale, en octets, du tampon d'emission utilise par les
              sockets  UDP  dans le mode de moderation. Chaque socket UDP peut
              utiliser cette taille pour  envoyer  des  donnees,  meme  si  le
              nombre  total  de  pages  pour  les sockets UDP depasse le seuil
              udp_mem.

   Options de sockets
       Pour lire ou ecrire une option de  socket  UDP,  appeler  getsockopt(2)
       pour  la  lecture  ou setsockopt(2) pour l'ecriture, avec l'argument de
       niveau d'option valant IPPROTO_UDP.

       UDP_CORK (depuis Linux 2.5.44)
              Si cette option est active, toutes les  donnees  en  sortie  sur
              cette  socket  sont accumulees dans un unique datagramme qui est
              emis des que l'option est desactivee. Cette option ne  doit  pas
              etre utilisee dans des programmes destines a etre portables.

   Ioctls
       Ces  ioctls  sont  accessibles  a  travers l'appel systeme 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 ecrit  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 ou aucun datagramme n'est
              en attente du cas ou le prochain datagramme en attente  contient
              0 octet  de  donnees.  Il  est  preferable d'utiliser select(2),
              poll(2), ou epoll(7)  pour differencier ces cas.

       TIOCOUTQ (SIOCOUTQ)
              Renvoie le nombre d'octets de donnees dans  la  file  d'emission
              locale. Seulement sur Linux 2.4 et ulterieurs.

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

ERREURS

       Toutes les erreurs documentees pour socket(7)  ou  ip(7)  peuvent  etre
       renvoyees lors d'une emission ou d'une reception sur une socket UDP.

       ECONNREFUSED
              Aucun  correspondant  sur  l'adresse  destination  associee a la
              socket. Ceci peut etre  cause  par  l'emission  anterieure  d'un
              paquet sur la socket.

VERSIONS

       IP_RECVERR est une nouveaute de Linux 2.2.

VOIR AUSSI

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

       RFC 768 pour le protocole UDP.
       RFC 1122 pour les necessites de l'hote.
       RFC 1191 pour une description de la recherche du MTU du chemin.

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

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

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.