.\" -*- coding: UTF-8 -*- .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" $Id: udp.7,v 1.7 2000/01/22 01:55:05 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UDP 7 "11 Abril 2020" Linux "Manual del Programador de Linux" .SH NOMBRE udp \- Protocolo UDP sobre IPv4 .SH SINOPSIS \fB#include \fP .br \fB#include \fP .br \fB#include \fP .PP \fBudp_socket = socket(AF_INET, SOCK_DGRAM, 0);\fP .SH DESCRIPCIÓN Ésta es una implementación del protocolo UDP (User Datagram Protocol) descrito en RFC\ 768. Implementa un servicio de paquetes de datagramas no fiable y sin conexión. Los paquetes pueden ser reordenados o duplicados antes de que lleguen. UDP genera y comprueba sumas de verificación (checksums) para detectar errores de transmisión. .PP Cuando se crea un conector (socket) UDP, sus direcciones local y remota están sin especificar. Se pueden enviar datagramas inmediatamente usando \fBsendto\fP(2) o \fBsendmsg\fP(2) con una dirección de destino válida como argumento. Cuando se llama a \fBconnect\fP(2) sobre el conector, se envía la dirección de destino por defecto y a partir de ese momento se pueden enviar datagramas usando \fBsend\fP(2) o \fBwrite\fP(2) sin especificar una dirección de destino. Todavía es posible realizar envíos a otros destinos pasando una dirección a \fBsendto\fP(2) o \fBsendmsg\fP(2). Para poder recibir paquetes, se debe ligar primero el conector a una dirección local usando \fBbind\fP(2). De otra manera la capa de conector asignará automáticamente un puerto local libre fuera del rango definido por \fI/proc/sys/net/ipv4/ip_local_port_range\fP y ligará el conector a \fBINADDR_ANY\fP. .PP Todas las operaciones de recepción sólo devuelven un paquete. Cuando el paquete es más pequeño que el buffer pasado, sólo se devuelven los datos del paquete y, cuando es mayor, el paquete se trunca y la bandera \fBMSG_TRUNC\fP se activa. \fBMSG_WAITALL\fP no está soportada. .PP Se pueden enviar o recibir opciones IP usando las opciones de conectores descritas en \fBip\fP(7). Estas son procesadas por el núcleo sólo cuando está activado el parámetro adecuado de \fI/proc\fP (pero todavía se pasan al usuario incluso cuando está desactivada). Vea \fBip\fP(7). .PP Cuando en un envío está activa la opción \fBMSG_DONTROUTE\fP, la dirección de destino debe referirse a la dirección de una interfaz local y el paquete sólo se envía a esa interfaz. .PP Por defecto, la implementación UDP de Linux averigua el MTU (siglas en inglés de 'unidad máxima de transmisión') de la ruta. Por lo tanto, el núcleo hace un seguimiento del MTU para una IP concreta emitiendo \fBEMSGSIZE\fP cuando un paquete UDP lo sobrepasa, en cuyo caso la aplicación debería reducir el tamaño de sus paquetes. Es posible deshabilitar esta opción mediante la opción \fBIP_MTU_DISCOVER\fP en el archivo \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP , consulte \fBip\fP(7), en cuyo caso UDP fragmentará los paquetes emitidos si sobrepasan el MTU de la interfaz. No es recomendable deshabilitarlo ya que podría afectar negativamente al rendimiento y a la fiabilidad. .SS "Formato de las direcciones" UDP usa el formato de dirección \fIsockaddr_in\fP de IPv4 descrito en \fBip\fP(7). .SS "Gestión de errores" Todos los errores fatales serán pasados al usuario como un resultado de error incluso cuando el conector no esté conectado. Ésto incluye errores asíncronos recibidos de la red. Puede obtenerse un error por un paquete anterior que fue enviado por el mismo conector. Este comportamiento difiere de muchas otras implementaciones de BSD que no pasan ningún error al menos que el conector esté conectado. El comportamiento de Linux viene dado por el \fBRFC\ 1122\fP. .PP Por compatibilidad con código anterior es posible activar la opción \fBSO_BSDCOMPAT\fP de \fBSOL_SOCKET\fP para recibir errores remotos (excepto \fBEPROTO\fP y \fBEMSGSIZE\fP) sólo cuando el conector se ha conectado. Siempre se obvian los errores generados localmente. En versiones posteriores del núcleo se quitó esta opción del conector. Consulte \fBsocket\fP(7). .PP Cuando se activa la opción \fBIP_RECVERR\fP todos los errores se almacenan en la cola de errores de conector y se pueden recibir mediante \fBrecvmsg\fP(2) con la opción \fBMSG_ERRQUEUE\fP activa. .SS "Interfaces /proc" Los parámetros de configuración de UDP en un equipo pueden verse en los archivos del directorio \fI/proc/sys/net/ipv4/\fP. .TP \fIudp_mem\fP (desde Linux 2.6.25) Es un vector con tres valores que gestiona la cantidad de páginas que los conectores UDP pueden tener a la cola. .RS .TP \fImin\fP Por debajo de esa cantidad de páginas, UDP no se preocupa de la cantidad de memoria que necesita. Si se sobrepasa, UDP comenzará a limitar su uso. .TP \fIpressure\fP Este valor se introdujo para seguir el formato de \fItcp_mem\fP. Consulte \fItcp\fP(7). .TP \fImax\fP Cantidad de paǵinas que pueden tener en cola todos los conectores UDP. .RE .IP Los valores por defecto se calculan durante el inicio del equipo en base a la cantidad de memoria disponible. .TP \fIudp_rmem_min\fP (número entero; valor por defecto: TAMAÑO_PÁGINA; desde la versión 2.6.25 de Linux) Tamaño minimo, en bytes, de los buffers de recepción empleados por los conectores UDP en la moderación. Cada uno de los conectores podrá emplear este tamaño para recibir datos, aunque el total de páginas de los conectores UDP exceda el valor 'pressure' de \fIudp_mem\fP. .TP \fIudp_wmem_min\fP (número entero; por defecto: TAMAÑO_PÁGINA; a partir de la versión 2.6.25 de Linux) Tamaño mínimo, en bytes, del buffer de envío empleado por los conectores UDP en la moderación. Cada conector puede emplear este tamaño para enviar datos aunque la cantidad total de páginas de los conectores UDP sobrepase el valor de 'pressure' para \fIudp_mem\fP. .SS "Opciones de los conectores" Para definir u obtener la opción de un conector UDP deberá invocar \fBgetsockopt\fP(2) para obtenerla o \fBsetsockopt\fP(2) para definir la opción con el argumento de la opción definido como \fBIPPROTO_UDP\fP. Salvo que se indique lo contrario, \fIoptval\fP es un puntero a un número \fIint\fP. .PP A continuación se incluye una lista con las opciones de los conectores específicas para UDP. Si desea ver otras opciones de los conectores también aplicables a UDP: consulte \fBsocket\fP(7). .TP \fBUDP_CORK\fP (desde Linux 2.5.44) .\" FIXME document UDP_ENCAP (new in kernel 2.5.67) .\" From include/linux/udp.h: .\" UDP_ENCAP_ESPINUDP_NON_IKE draft-ietf-ipsec-nat-t-ike-00/01 .\" UDP_ENCAP_ESPINUDP draft-ietf-ipsec-udp-encaps-06 .\" UDP_ENCAP_L2TPINUDP rfc2661 .\" FIXME Document UDP_NO_CHECK6_TX and UDP_NO_CHECK6_RX, added in Linux 3.16 Si se activa esta opción, todos los datos de salida de ese conector se juntan en un único datagrama que se tansmite cuando la opción está deshabilitado. No debe emplearse esta opción si desea que el código fuente sea portable. .SS Ioctls Estos ioctls pueden ser utilizados con \fBioctl\fP(2). La sintaxis correcta es: .PP .RS .nf \fBint\fP\fI value\fP\fB;\fP \fIerror\fP\fB = ioctl(\fP\fIudp_socket\fP\fB, \fP\fIioctl_type\fP\fB, &\fP\fIvalue\fP\fB);\fP .fi .RE .TP \fBFIONREAD\fP (\fBSIOCINQ\fP) .\" See http://www.securiteam.com/unixfocus/5KP0I15IKO.html .\" "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006 Obtiene un puntero hacia un entero como argumento. Devuelve el tamaño del siguiente datagrama, en bytes, pendiente del entero o el valor 0 si no hay ninguno pendiente. \fBAviso:\fP con \fBFIONREAD\fP no es posible saber si no hay ningún datagrama pendiente o si el siguiente datagrama contiene zero bytes de datos. Para distinguir ambos casos, es preferible el uso de \fBselect\fP(2), \fBpoll\fP(2) o \fBepoll\fP(7). .TP \fBTIOCOUTQ\fP (\fBSIOCOUTQ\fP) Devuelve el número de bytes de datos en la cola de envío local. Sólo disponible en Linux 2.4 o superior. .PP Además todos los ioctls documentados en \fBip\fP(7) y \fBsocket\fP(7) están soportados. .SH ERRORES Una operación de enviar o recibir sobre un conector UDP puede devolver cualquier error documentado en \fBsocket\fP(7) o \fBip\fP(7). .TP \fBECONNREFUSED\fP No se ha asociado un receptor a la dirección de destino. Esto podría ser provocado por un paquete anterior enviado por el conector. .SH VERSIONES .\" .SH CREDITS .\" This man page was written by Andi Kleen. \fBIP_RECVERR\fP es una nueva característica de la versión 2.2 de Linux. .SH "VÉASE TAMBIÉN" \fBip\fP(7), \fBraw\fP(7), \fBsocket\fP(7), \fBudplite\fP(7) .PP Documentación del código fuente del núcleo \fIDocumentation/networking/ip\-sysctl.txt\fP. .PP RFC\ 768 para el protocolo UDP. .br RFC\ 1122 para los requisitos del anfitrión (host). .br RFC\ 1191 para una descripción del descubrimiento de la MTU de la ruta. .SH COLOFÓN Esta página es parte de la versión 5.10 del proyecto Linux \fIman\-pages\fP. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en \%https://www.kernel.org/doc/man\-pages/. .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Juan Piernas , Miguel Pérez Ibars y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .