Provided by: manpages-fr_4.27.0-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'un socket UDP est créé, 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 un 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, un socket doit être attaché à 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  le  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  un 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é.

   Formats 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 le
       socket n'est pas connecté. Ça comprend les erreurs  asynchrones  reçues  du  réseau.  Vous  pouvez  ainsi
       recevoir  une  erreur  due à un paquet précédemment envoyé sur le même socket. Ce comportement diffère de
       celui de nombreuses autres implémentations des sockets BSD, qui ne transmettent pas d'erreur si le socket
       n'est pas connecté. 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 le socket a été connecté
       (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 du socket
       et peuvent être lues avec recvmsg(2) en activant son option MSG_ERRQUEUE.

   /proc interfaces
       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 tous 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 tous 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 socket
       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.

       Voilà  une  liste  des options spécifiques à UDP. Pour des détails sur certaines autres options de socket
       qui sont aussi applicables sur les sockets UDP, voir socket(7).

       UDP_CORK (depuis Linux 2.5.44)
              Si cette option est active, toutes les données en sortie sur ce 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.

       UDP_SEGMENT (depuis Linux 4.18)
              Enables UDP segmentation offload.  Segmentation  offload  reduces  send(2)  cost  by  transferring
              multiple  datagrams  worth of data as a single large packet through the kernel transmit path, even
              when that exceeds MTU. As late as possible, the large packet is  split  by  segment  size  into  a
              series  of  datagrams.  This  segmentation offload step is deferred to hardware if supported, else
              performed in software. This option takes a value in the range [0, USHRT_MAX] that sets the segment
              size: the size of datagram payload, excluding the UDP header. The segment size must be chosen such
              that at most 64 datagrams are sent in a single call and that the datagrams after segmentation meet
              the same MTU rules that apply to datagrams sent without this option. Segmentation offload  depends
              on checksum offload, as datagram checksums are computed after segmentation. The option may also be
              set  for  individual  sendmsg(2)   calls  by passing it as a cmsg(3). A value of zero disables the
              feature. This option should not be used in code intended to be portable.

       UDP_GRO (depuis Linux 5.0)
              Enables UDP receive offload. If enabled, the socket may receive multiple datagrams worth  of  data
              as  a single large buffer, together with a cmsg(3) that holds the segment size. This option is the
              inverse of segmentation offload. It reduces receive cost by handling multiple datagrams  worth  of
              data  as a single large packet in the kernel receive path, even when that exceeds MTU. This option
              should not be used in code intended to be portable.

   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 un socket UDP.

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

VERSIONS

       IP_RECVERR est une nouveauté de Linux 2.2.

VOIR AUSSI

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

       Le fichier source du noyau Documentation/networking/ip-sysctl.txt.

       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.

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier   <barbier@debian.org>   et    David    Prévot
       <david@tilapin.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                             udp(7)