udp | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 une 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.
UDP fragmente un paquet quand sa longueur totale excède le MTU de l'interface (Maximum Transmission Unit). Une alternative plus efficace pour le réseau est d'utiliser la recherche du MTU du chemin, comme indiqué dans la section IP_MTU_DISCOVER de ip(7).
Par défaut, UDP Linux effectue la recherche MTU (Maximum Transmission Unit) des chemins. Cela signifie que le noyau conservera la trace du MTU d'une adresse IP cible spécifique et renverra EMSGSIZE lorsque l'écriture d'un paquet UDP excèdera cette valeur. Si cela se produit, l'application doit diminuer la taille du paquet. La recherche MTU des chemins peut être désactivée en utilisant l'option de socket IP_MTU_DISCOVER ou la requête sysctl ip_no_pmtu_disc, voir ip(7) pour plus de détails. Lorsqu'elle est désactivée, UDP fragmentera les paquets sortants dont la longueur totale dépasse le MTU de l'interface. Toutefois, il n'est pas conseillé de la désactiver pour des raisons de performances et de fiabilité. .
Format d'adresse | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Gestion d'erreur | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Pour assurer la compatibilité avec du code ancien dans Linux 2.0 et 2.2, on peut 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 prise en charge de cette option de socket a été retirée dans les derniers noyaux ; voir socket(7) pour plus d'information.
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.
Options de socket | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ioctls | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
int value; error = ioctl(ucp_socket, ioctl_type, &value);
De plus, les ioctls documentés dans ip(7) et socket(7) sont supportés.
ERREURS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 par chemin.
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 8 juin 2001 et révisée le 8 janvier 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 7 udp ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
FIONREAD (SIOCINQ) | Ioctls |
TIOCOUTQ (SIOCOUTQ) | Ioctls |
UDP_CORK (depuis Linux 2.5.44) | Options de socket |