title: How do Unix Domain Sockets differentiate between multiple clients?
body: <p>TCP has the tuple pairs (IP Addr/port/type) to tell one client from another.  UDP passes the client IP and port.  How does the unix domain keep track of different clients?</p>
  
  <p>In other words the server creates a socket bound to some path say /tmp/socket.  2 or more clients connect to /tmp/socket.  What is going on underneath that keeps track of data from client1 and client2?  I imagine the network stack plays no part in domain sockets so is the kernel doing all the work here?</p>
  
  <p>Is there a unix domain protocol format like there is an IP protocol format and TCP/UDP formats?  Is the format of domain socket datagram protocols published somewhere?  Is every unix different or does something like POSIX standardize it?</p>
  
  <p>Thanks for any illumination.  I could not find any information that explained this.  Every source just glossed over how to use the domain sockets.</p>