[zeromq-dev] ZMTP/1.1 - proposal

Pieter Hintjens ph at imatix.com
Mon May 16 16:28:59 CEST 2011

Hi all,

I'd like to extend the ZMTP wire level protocol to allow space for
control commands and other experimentation.

See http://rfc.zeromq.org/spec:13

Specifically, there is an 8-bit header in each frame, of which 1 bit
is used today. I'd like to use further bits:

* To indicate that the frame is a "control command", which would be
interpreted by the socket / pattern without being passed to
applications. Some possible control commands are ping/pong keep-alive,
ready indicator, etc.
* To indicate that the frame is a "label", i.e. used for routing. I've
no concrete design proposal to replace the current envelope system,
this would be a place for experimentation.

In terms of backwards compatibility, it seems the best we can do is
add a version header to the protocol, and check this in 2.1 and later

I'd suggest the new wire level protocol be used in 2.2 and 3.0, and as
we learn how to properly layer this, we can make further changes to
the protocol.

I'm not sure whether people would prefer to experiment with new
patterns / socket types & semantics in 2.2 or in 3.0...?


More information about the zeromq-dev mailing list