According to the Linux man pages for Unix sockets, "Valid socket types in the UNIX domain are . . . SOCK\_DGRAM, 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); and (since Linux 2.6.4) SOCK\_SEQPACKET, for a sequenced-packet socket that is connection-oriented, preserves message boundaries, and delivers messages in the order that they were sent." (<http://man7.org/linux/man-pages/man7/unix.7.html>). 

I thought "always reliable and don't reorder datagrams" is the same as "delivers messages in the order that they were sent." 

What's the practical difference between SOCK\_DGRAM and SOCK\_SEQPACKET?