Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
udp(7P)				   Protocols			       udp(7P)

NAME
       udp, UDP	- Internet User	Datagram Protocol

SYNOPSIS
       #include	<sys/socket.h>

       #include	<netinet/in.h>

       s = socket(AF_INET, SOCK_DGRAM, 0);

       s = socket(AF_INET6, SOCK_DGRAM,	0);

       t = t_open("/dev/udp", O_RDWR);

       t = t_open("/dev/udp6", O_RDWR);

DESCRIPTION
       UDP  is	a simple datagram protocol which is layered directly above the
       Internet	Protocol ("IP")	or the Internet	Protocol Version  6  ("IPv6").
       Programs	 may access  UDP using the socket interface, where it supports
       the SOCK_DGRAM socket type, or  using  the  Transport  Level  Interface
       ("TLI"),	where it supports the connectionless (T_CLTS) service type.

       Within  the  socket  interface, UDP is normally used with the sendto(),
       sendmsg(), recvfrom(),  and  recvmsg()  calls  (see  send(3SOCKET)  and
       recv(3SOCKET)).	If the connect(3SOCKET)	call is	used to	fix the	desti-
       nation for future  packets,  then  the  recv(3SOCKET)  or  read(2)  and
       send(3SOCKET) or	write(2) calls may be used.

       UDP  address  formats  are  identical to	those used by the Transmission
       Control Protocol	("TCP"). Like TCP, UDP uses a port number  along  with
       an IPor IPv6 address to identify	the endpoint of	communication. The UDP
       port number space is separate from the TCP port number space, that  is,
       a UDP port may not be "connected" to a TCP port.	The bind(3SOCKET) call
       can be used to set the local address and	port number of a  UDP  socket.
       The local IP or IPv6 address may	be left	unspecified in the bind() call
       by using	the special value INADDR_ANY for IP, or	 the  unspecified  ad-
       dress (all zeroes) for IPv6. If the bind() call is not done, a local IP
       or IPv6 address and port	number will be assigned	to  the	endpoint  when
       the  first  packet is sent. Broadcast packets may be sent, assuming the
       underlying network supports this, by using a  reserved  "broadcast  ad-
       dress."	This  address  is  network interface dependent.	Broadcasts may
       only be sent by the privileged user.

       IPv6 does not support broadcast addresses; their	function is  supported
       by IPv6 multicast addresses.

       Options at the IP level may be used with	UDP; see ip(7P)	or ip6(7p).

       There are a variety of ways that	a UDP packet can be lost or corrupted,
       including a failure of the underlying communication mechanism. UDP  im-
       plements	 a checksum over the data portion of the packet. If the	check-
       sum of a	received packet	is in error, the packet	will be	 dropped  with
       no  indication  given  to the user. A queue of received packets is pro-
       vided for each UDP socket. This queue has a limited capacity.  Arriving
       datagrams  which	 will  not  fit	 within	 its  high-water  capacity are
       silently	discarded.

       UDP processes Internet Control Message Protocol ("ICMP")	 and  Internet
       Control Message Protocol	Version	6 ("ICMP6") error messages received in
       response	to UDP packets it has sent. See	icmp(7P) and icmp6(7p).

       ICMP "source quench" messages are ignored. ICMP	"destination  unreach-
       able,"  "time exceeded" and "parameter problem" messages	disconnect the
       socket from its peer so that subsequent attempts	to send	packets	 using
       that  socket  will return an error. UDP will not	guarantee that packets
       are delivered in	the order they were sent. As well,  duplicate  packets
       may be generated	in the communication process.

       ICMP6 "destination unreachable" packets are ignored unless the enclosed
       code indicates that the port is not in use on the target	host, in which
       case,  the application is notified. ICMP6 "parameter problem" notifica-
       tions are similarly passed upstream. All	other ICMP6 messages  are  ig-
       nored.

SEE ALSO
       read(2),	  write(2),  bind(3SOCKET),  connect(3SOCKET),	recv(3SOCKET),
       send(3SOCKET),  icmp(7P),  icmp6(7P),  inet(7P),	  inet6(7P),   ip(7P),
       ip6(7P),	tcp(7P)

       Postel,	Jon, RFC 768, User Datagram Protocol, Network Information Cen-
       ter, SRI	International, Menlo Park, Calif., August 1980

DIAGNOSTICS
       A socket	operation may fail if:

       EISCONN		       A connect() operation was attempted on a	socket
			       on which	a connect() operation had already been
			       performed, and the socket could not be success-
			       fully  disconnected  before making the new con-
			       nection.

       EISCONN		       A sendto() or sendmsg() operation specifying an
			       address to which	the message should be sent was
			       attempted on a socket on	which a	connect()  op-
			       eration had already been	performed.

       ENOTCONN		       A send()	or write() operation, or a sendto() or
			       sendmsg() operation not specifying  an  address
			       to  which  the  message should be sent, was at-
			       tempted on a socket on which a connect()	opera-
			       tion had	not already been performed.

       EADDRINUSE	       A  bind()  operation  was attempted on a	socket
			       with a network address/port pair	that  has  al-
			       ready been bound	to another socket.

       EADDRNOTAVAIL	       A  bind()  operation  was attempted on a	socket
			       with a network address for which	no network in-
			       terface exists.

       EINVAL		       A  sendmsg()  operation with a non-NULL msg_ac-
			       crights was attempted.

       EACCES		       A bind()	operation was attempted	 with  a  "re-
			       served"	port  number and the effective user ID
			       of the process was not the privileged user.

       ENOBUFS		       The system ran out of memory for	internal  data
			       structures.

SunOS 5.10			  4 Nov	1999			       udp(7P)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | DIAGNOSTICS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=udp&sektion=7p&manpath=SunOS+5.10>

home | help