Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ UDP(4p) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bind(2)

connect(2)

read(2)

recv(2)

send(2)

write(2)

intro(3N)

inet(4F)

icmp(4P)

ip(4P)

tcp(4P)



udp(4P)                                                   udp(4P)



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(4P).

     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.




Page 1                                           CX/UX Networking





udp(4P)                                                   udp(4P)



     UDP processes Internet Control Message Protocol (ICMP) error
     messages received in response to UDP packets it has sent.
     See icmp(4P).  ICMP source quench messages are ignored.
     ICMP destination unreachable, 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.

SEE ALSO
     bind(2), connect(2), read(2), recv(2), send(2), write(2),
     intro(3N), inet(4F), icmp(4P), ip(4P), tcp(4P).
     CX/UX Networking Reference Manual

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.

     EACCES              A bind() operation was attempted with a
                         reserved port number and the effective
                         user ID of the process was not the



Page 2                                           CX/UX Networking





udp(4P)                                                   udp(4P)



                         privileged user.

     ENOBUFS             The system ran out of memory for inter-
                         nal data structures.



















































Page 3                                           CX/UX Networking



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