TCP loopback connection vs Unix Domain Socket performance
Yes, local interprocess communication by unix domain sockets should be faster than communication by loopback localhost connections because you have less TCP overhead, see here.
Set TCP_QUICKACK and TCP_NODELAY
There's no direct relationship between those two options, they are just for different purposes.
TCP_NODELAY is intended to disable/enable segment buffering so data can be sent out to peer as quickly as possible, so this is typically used to improve network utilisation. TCP_QUICKACK is used to send out acknowledgements as early as possible than delayed under some protocol level exchanging, and it's not stable/permanent, subsequent TCP transactions (which may happen under the hood) can disregard this option depending on actual protocol level processing or any actual disagreements between user setting and stack behaviour.
NOTE TCP_NODELAY
is portable while TCP_QUICKACK
is not (only works under Linux 2.4.4+).
in linux, does routing take different path on loopback vs IP assigned to NIC
The hardware does not get involved.
As soon as the routing function knows that the destination address is local, the packet is switched to ingress path. Which is incidentally why sniffers can't capture such packets, because that hook happens to be after the point of this decision.
I need a TCP option (ioctl) to send data immediately
IIUC, setting the TCP_NODELAY option should flush all packets (i.e. tcp.c implements setting of NODELAY with a call to tcp_push_pending_frames). So if you set the socket option after each send call, you should get what you want.
Related Topics
Linux: How to Force a Specific Network Interface to Be Used
How to Mount an Iso Inside a Docker Container
Convert Multipage PDF to a Single Image
How to Get "Requests Per Second" for Apache in Linux
Docker Load and Save: "Archive/Tar: Invalid Tar Header"
How to Write a Linux Daemon with .Net Core
Run a Shell Script in New Terminal from Current Terminal
How to Generate PDF from Docbook 5.0
Linux: Screen Desktop Video Capture Over Network, and Vnc Framerate
Changing Highlight Line Color in Emacs
Given Two Directory Trees How to Find Which Files Are the Same
How to Register Fuse Filesystem Type with Mount(8) and Fstab
For Loop in Bash Simply Prints N Times the Command Instead of Reiterating
Linux "Free -M": Total, Used and Free Memory Values Don't Add Up