home | help
UDP(4)			     Kernel Interfaces Manual			  UDP(4)

NAME
     udp -- Internet User Datagram Protocol

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <netinet/in.h>

     int
     socket(AF_INET, SOCK_DGRAM, 0);

DESCRIPTION
     UDP  is a simple, unreliable datagram protocol which is used to support the
     SOCK_DGRAM abstraction for the Internet protocol family.  UDP  sockets  are
     connectionless,  and  are	normally used with the sendto(2) and recvfrom(2)
     calls, though the connect(2) call may also be used to fix	the  destination
     for  future  packets  (in	which case the recv(2) or read(2) and send(2) or
     write(2) system calls may be used).

     UDP address formats are identical to those used by TCP.  In particular  UDP
     provides  a port identifier in addition to the normal Internet address for-
     mat.  Note that the UDP port space is separate  from  the	TCP  port  space
     (i.e.,  a	UDP  port  may	not  be "connected" to a TCP port).  In addition
     broadcast packets may be sent (assuming  the  underlying  network	supports
     this)  by using a reserved "broadcast address"; this address is network in-
     terface dependent.

     Options at the IP transport level may be used with UDP; see ip(4).

ERRORS
     A socket operation may fail with one of the following errors returned:

     [EISCONN]		when trying to establish a connection on a socket  which
			already  has one, or when trying to send a datagram with
			the destination address specified and the socket is  al-
			ready connected;

     [ENOTCONN] 	when  trying  to send a datagram, but no destination ad-
			dress is specified, and the socket  has  not  been  con-
			nected;

     [ENOBUFS]		when  the system runs out of memory for an internal data
			structure;

     [EADDRINUSE]	when an attempt is made to create a socket with  a  port
			which has already been allocated;

     [EADDRNOTAVAIL]	when  an  attempt is made to create a socket with a net-
			work address for which no network interface exists.

MIB VARIABLES
     The udp protocol implements a number of variables in the net.inet branch of
     the sysctl(3) MIB.

     UDPCTL_CHECKSUM	(udp.checksum) Enable  udp  checksums  (enabled  by  de-
			fault).

     UDPCTL_MAXDGRAM	(udp.maxdgram) Maximum outgoing UDP datagram size

     UDPCTL_RECVSPACE	(udp.recvspace) Maximum space for incoming UDP datagrams

     udp.log_in_vain	For  all  udp  datagrams,  to ports on which there is no
			socket listening, log the connection  attempt  (disabled
			by default).

     udp.blackhole	When  a datagram is received on a port where there is no
			socket listening, do not return an ICMP port unreachable
			message.  (Disabled by default.  See blackhole(4).)

SEE ALSO
     getsockopt(2), recv(2),  send(2),	socket(2),  blackhole(4),  inet(4),  in-
     tro(4), ip(4)

HISTORY
     The udp protocol appeared in 4.2BSD.

FreeBSD 9.0			  June 5, 1993				  UDP(4)

home | help