UNIX - local communication domain protocol
The local communication domain protocol, commonly referred to in the
industry as the Unix domain protocol, utilizes the path name address
format and the AF_UNIX address family. This protocol can be used as
an alternative to the Internet protocol family (TCP/IP or UDP/IP) for
communication between processes executing on the same node. It has a
significant throughput advantage when compared with local IP loopback,
due primarily to its much lower code execution overhead. Data is
looped back at the protocol layer (OSI Level 4), rather than at the
driver layer (OSI Level 2).
Only SOCK_STREAM is supported in the AF_UNIX address family.
The HP-UX implementation of the local communication domain protocol
does not support the MSG_OOB flag in recv() (see recv(2)) and send()
AF_UNIX socket addresses are path names. They are limited to 92 bytes
in length, including a terminating null byte. Calls to bind() to an
AF_UNIX socket utilize an addressing structure called
structsockaddr_un (see bind(2)). Pointers to this structure should be
used in all AF_UNIX socket system calls wherever they require a
pointer to a struct sockaddr.
The include file <sys/un.h> defines this addressing structure. Within
this structure are two notable fields. The first is sun_family, which
must be set to AF_UNIX. The next is sun_path, which is the null-
terminated character string that specifies the path name of the file
associated with the socket (for example, /tmp/mysocket).
Only the passive (listening) socket must bind to an address. The
active socket connects to that address, but it does not need an
address of its own.
For additional information on using AF_UNIX sockets for interprocess
communication, refer to the BSD Sockets Interface Programmer's Guide.
Socket Buffer Size
For stream and datagram sockets, the maximum send and receive buffer
size is 262142 bytes. The default buffer size is 32768 bytes. The
send and receive buffer sizes can be altered by using the SO_SNDBUF
and SO_RCVBUF options of the setsockopt() system call. Refer to
getsockopt(2) for details.
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
AF_UNIX was developed by the University of California, Berkeley.
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000