Unix domain socket
A Unix domain socket aka UDS or IPC socket (inter-process communication socket) is a data communications endpoint for exchanging data between processes executing on the same host operating system. It is also referred to by its address family AF_UNIX
.
Sockets
Valid socket types in the UNIX domain are:[1]
SOCK_STREAM
(compare to TCP) – for a stream-oriented socketSOCK_DGRAM
(compare to UDP) – for a datagram-oriented socket that preserves message boundaries (as on most UNIX implementations, UNIX domain datagram sockets are always reliable and don't reorder datagrams)SOCK_SEQPACKET
(compare toSCTP) – for a sequenced-packet socket that is connection-oriented, preserves message boundaries, and delivers messages in the order that they were sent
The Unix domain socket facility is a standard component of POSIX operating systems.
The
In addition to sending data, processes may send file descriptors across a Unix domain socket connection using the sendmsg()
and recvmsg()
system calls. This allows the sending processes to grant the receiving process access to a file descriptor for which the receiving process otherwise does not have access.[2][3] This can be used to implement a rudimentary form of capability-based security.[4]
See also
References
- ^ "Linux Programmer's Manual (unix - sockets for local interprocess communication)". 30 April 2018. Retrieved 22 February 2019.
- ^ "Archive of the "Postfix Discussions" mailing list". 30 September 2000. Archived from the original on 18 May 2013. Retrieved 29 September 2014.
- ^ "Linux man page - cmsg(3): access ancillary data". Retrieved 9 October 2018.
- ^ ""Secure Programming for Linux and Unix HOWTO", Section 3.4 "Sockets and Network Connections"". dwheeler.com. David A. Wheeler. 22 August 2004. Retrieved 29 September 2014.
External links
- The Single UNIX Specification, Version 4 from The Open Group
– System Interfaces Reference,
- The Single UNIX Specification, Version 4 from The Open Group
– System Interfaces Reference,
- The Single UNIX Specification, Version 4 from The Open Group
– System Interfaces Reference,
- Linux Programmer's Manual – Library Functions –
- ucspi-unix, UNIX-domain socket client-server command-line tools
- Unix sockets vs Internet sockets
- Unix Sockets - Beej's Guide to Unix IPC