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 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
       valide en argument. Lorsque  connect(2)  est  appelé  sur  une  socket,
       l'adresse  de  destination  par  défaut  est  fixée, et les datagrammes
       pourront être envoyés avec send(2) ou write(2) sans spécifier 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 fixé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. Ceci 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. Ceci inclut
       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, 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 é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  sont  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 queue 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 queue 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.

       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. Ceci 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.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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'é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> ».