Why not UDP? Less overhead and you can use multicast to expand messaging to machines in a lan. TCP on localhost makes little sense, especially when simple ack's can be implemented in UDP.
But even then, I wonder how the segmentation in TCP is affecting performance in addition to windowing.
Another thing I always wanted to try was using raw IP packets, why not? Just sequence requests and let the sender close a send transaction only when it gets an ack packet with the sequence # for each send. Even better, a raw AF_PACKET socket on the loopback interface! That might beat UDS!
Give it a try and find out! I'd give that blog post a read.
I suspect you'd run into all sorts of interesting issues... particularly if the server is one process but there are N>1 clients and you're using AF_PACKET.
But even then, I wonder how the segmentation in TCP is affecting performance in addition to windowing.
Another thing I always wanted to try was using raw IP packets, why not? Just sequence requests and let the sender close a send transaction only when it gets an ack packet with the sequence # for each send. Even better, a raw AF_PACKET socket on the loopback interface! That might beat UDS!