[zeromq-dev] Notes from a hackathon

Pieter Hintjens ph at imatix.com
Fri Feb 6 12:06:38 CET 2015


I'm not sure what "staying true to UDP" means. UDP's lack of
connection does not mean it is not addressable. I suspect what you
mean is that you would like replies to go back along arbitrary paths,
rather than rely on their original paths still existing. This assumes
the problem that proxies are liable to fail or disappear.

If that is the problem, then IP addresses won't help you. NAT, for one.

The existing solution to that problem is mesh routing, e.g. Babel,
where nodes have unique IDs that are separate from the physical
network, and routing tables to know how to get a message or reply to a
specific node. It's rather slow and complex.

There is an inherent weakness in any mesh design. Either your fabric
is stable, or it's not. If it's stable, you can do stateful
request/reply routing as we do today, and the choice of encoding
determines ID size. If it's not stable, you cannot rely on the
endpoints existing *at all*, and so the very concept of transient
request-reply becomes fragile.

-Pieter

On Fri, Feb 6, 2015 at 11:37 AM, Martin Sustrik <sustrik at 250bpm.com> wrote:
> On 2015-02-06 10:11, Joe McIlvain wrote:
>
>> Integer routing ids sounds nice to me, quite honestly.
>
> Just a small comment on this:
>
> I've used fixed-sized integer IDs in nanomsg and, in retrospect, I think
> it was an error.
>
> In particular, think of UDP or any other unconnected protocol as a
> transport. If you want to stay true to the nature of the protocol (and
> thus allow single socket to communicate with unrestricted number of
> Internet hosts), you can't accumulate state, i.e. any kind of
> pseudo-connections, at the endpoints. Therefore, there's nothing for the
> ID to point to. The only option seems to be to store the IP address
> inside of the routing record in the message. And while IPv4 address may
> fit into 32bit ID, IPv6 address certainly wouldn't.
>
> Martin
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev



More information about the zeromq-dev mailing list