[zeromq-dev] Is 0MQ truly zero-copy?

John Lång john.lang at mykolab.com
Fri Jun 4 11:39:28 CEST 2021


Hi,

If I'm using, say TCP, is 0MQ really able to guarantee zero-copy message 
transmission? (As an anecdote, somebody once told me that the 0 in 0MQ 
means zero-copy. I don't know if this is true or not.) I recall reading 
from some article that an OS/kernel/driver internally copies (possibly 
multiple times) whatever data is given to it through its TCP API. 
Wouldn't a zero-copy messaging system need to bypass the OS TCP/IP 
stack? I think if we're relying on an operating system, then zero-copy 
at userland is the best we could hope for.

I see that there are some threads on RDMA. Wikipedia suggests that RDMA 
might be able to deliver a true zero-copy solution. On the other hand, 
I've been told that RDMA can be both a safety and a security risk not to 
mention that it's hard to use right. Using RDMA might not be worth the 
risk and effort for most applications. I'm not requesting RDMA support, 
I'm just curious about the concept of zero-copy...

Cheers,
John



More information about the zeromq-dev mailing list