Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ udp(7) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

read(2)

write(2)

bind(3N)

connect(3N)

recv(3N)

send(3N)

icmp(7)

inet(7)

ip(7)

tcp(7)



UDP(7)                 DEVICES AND MODULES                 UDP(7)



NAME
     UDP - Internet User Datagram Protocol

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

     s = socket(AFINET, SOCKDGRAM, 0);

     t = topen("/dev/udp", ORDWR);

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

     Within the socket interface, UDP is normally used  with  the
     sendto(),  sendmsg(),  recvfrom(),  and recvmsg() calls [see
     send(2) and recv(2)].  If the connect(2) call is used to fix
     the  destination  for  future  packets,  then the recv(2) or
     read(2) and send(2) 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 IP address to  identify  the  end-
     point  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(2) call can
     be used to set the local address and port number  of  a  UDP
     socket.  The local IP address may be left unspecified in the
     bind() call by using the special value INADDRANY.   If  the
     bind()  call is not done, a local IP address and port number
     will be assigned to the endpoint when the  first  packet  is
     sent.   Broadcast packets may be sent (assuming the underly-
     ing network supports this) by  using  a  reserved  broadcast
     address;   This  address  is  network  interface  dependent.
     Broadcasts may only be sent by the privileged user.

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

     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
     portion 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.




                                                                1





UDP(7)                 DEVICES AND MODULES                 UDP(7)



     UDP processes Internet Control Message Protocol (ICMP) error
     messages  received  in  response to UDP packets it has sent.
     See icmp(7).  ICMP source quench messages are ignored.  ICMP
     destination unreachable, time exceeded and parameter problem
     messages disconnect the socket from its peer so that  subse-
     quent 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.

SEE ALSO
     read(2),   write(2),   bind(3N),   connect(3N),    recv(3N),
     send(3N), icmp(7), inet(7), ip(7), tcp(7).

     Postel, Jon, User Datagram Protocol, RFC 768, 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 successfully discon-
                         nected before making the new connection.

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

     ENOTCONN            A send()  or  write()  operation,  or  a
                         sendto()   or  sendmsg()  operation  not
                         specifying an address to which the  mes-
                         sage  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
                         msgaccrights was attempted.




                                                                2





UDP(7)                 DEVICES AND MODULES                 UDP(7)



     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  inter-
                         nal data structures.
















































                                                                3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026