udp

 


 
 
 
 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 destination 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 address (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 end-
      point when the first packet is sent. Broadcast  packets  may
      be  sent,  assuming the underlying network supports this, by
      using a reserved "broadcast address."  This address is  net-
      work 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.
 
 
 
 
 SunOS 5.8            Last change: 4 Nov 1999                    1
 
 
 
 
 
 
 Protocols                                                 udp(7P)
 
 
 
      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 communica-
      tion mechanism. UDP implements a checksum over the data por-
      tion  of the packet. If the checksum 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 provided
      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
      unreachable,"  "time  exceeded" and "parameter problem" mes-
      sages 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" notifications are similarly passed
      upstream. All other ICMP6 messages are ignored.
 
 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 Infor-
      mation Center, 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 connec-
                 tion.
 
           EISCONN
 
 
 
 SunOS 5.8            Last change: 4 Nov 1999                    2
 
 
 
 
 
 
 Protocols                                                 udp(7P)
 
 
 
                 A sendto() or sendmsg() operation  specifying  an
                 address  to  which the message should be sent was
                 attempted on a socket on which a connect() opera-
                 tion 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  attempted
                 on  a  socket  on which a connect() operation had
                 not already been performed.
 
           EADDRINUSE
                 A bind() operation was attempted on a socket with
                 a network address/port pair that has already been
                 bound to another socket.
 
           EADDRNOTAVAIL
                 A bind() operation was attempted on a socket with
                 a  network address for which no network interface
                 exists.
 
           EINVAL
                 A   sendmsg()   operation   with    a    non-NULL
                 msg_accrights was attempted.
 
           EACCES
                 A  bind()  operation   was   attempted   with   a
                 "reserved"  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.8            Last change: 4 Nov 1999                    3