NAME
UNIX — local communication domain protocol
SYNOPSIS
#include <sys/types.h>
#include <sys/un.h>
DESCRIPTION
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()
(see
send(2)).
Addressing
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.
AUTHOR
AF_UNIX
was developed by the University of California, Berkeley.