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