Provided by: manpages-fr_2.45.1-1_all bug
 

NOM

        udp - Protocole UDP pour IPv4
 

SYNOPSIS

        #include <sys/socket.h>
        #include <netinet/in.h>
        udp_socket = socket(PF_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 pour‐
        ront ê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  automa‐
        tiquement  un  port  local  libre,  hors  de  l’intervalle  défini  par
        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 supporté.
 
        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 sysctl approprié est activé (mais sont quand même fournies à
        l’utilisateur quant il est inhibé). Voir 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_DIS     
        COVER  ou  le  sysctl ip_no_pmtu_disc, voir 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é.
        UDP utilise le format d’adresse IPv4  sockaddr_in  comme  indiqué  dans
        ip(7).
        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  trans‐
        mises.  La gestion de cette option a été supprimée dans les noyaux plus
        récents ; voir 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.
        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 conçus pour ê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 data‐
               gramme n’est disponible.
 
        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 sup‐
        portés.
 

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.
 

AUTEUR

        Cette page de manuel a été écrite par Andi Kleen.
        ip(7), raw(7), socket(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.
 

TRADUCTION

        Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
        Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
        Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
        disposition sur http://manpagesfr.free.fr/.
 
        Les mises à jour et corrections de la version présente dans Debian sont
        directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
        francophone de traduction de Debian.
 
        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> ».