[ULS-SIG] Mesh networks, multicast, mDNS, and zeroconf (was: Decentralized, Smart Messaging)

Duncan M. McGreggor duncan.mcgreggor at gmail.com
Sat Sep 19 21:00:01 CEST 2009


Duncan M. McGreggor wrote:
> Alex Drahon wrote:
>> I'm using
>> Zeroconf for service publication and discovery, and I'm trying to design
>> a small language that services (or nodes) could use to declare the
>> capability they provide, some of which could be messaging/discovery
>> related (I'm a proxy, I'm a local service registery, I can talk to...).
> 
> I haven't looked at zeroconf at all; it's been on my list for a while;
> you've just bumped it up for me ;-)
> 

I've just taken a quick look at zeroconf, and I see that it uses
mutlicast DNS for discovery. Multicasting is something that I actually
wanted to avoid. I was under the impression that it doesn't scale well
and was very chatty. I'll see if I can dig up some of the things I read
about that a few years back. Maybe things have changed since then...

Here are some links I've found just now, scanning them to get up to
speed (including some obligatory Wikipedia links):
  http://en.wikipedia.org/wiki/Multicast
  http://en.wikipedia.org/wiki/Mesh_network
  http://en.wikipedia.org/wiki/Ad_hoc_routing_protocol_list
  http://en.wikipedia.org/wiki/Game_theory_in_communication_networks
  http://tldp.org/HOWTO/Multicast-HOWTO-2.html
  http://www.mesh-networks.org/

Multicasting strategies by David Mertz and Brad Huntting (2003):
  http://gnosis.cx/publish/programming/multicast_1.html
  http://gnosis.cx/publish/programming/multicast_2.html
  http://gnosis.cx/publish/programming/multicast_3.html

Ah, here's a "pitfalls of mutlicast" blog post:

http://aviadezra.blogspot.com/2009/07/multicast-ip-udp-igmp-multi-homed.html

A couple years ago, Itamar spiked some mDNS stuff for Twisted. You can
see it here:
  http://twistedmatrix.com/trac/browser/sandbox/itamar/mdns

Brian Granger wrapped PyZeroconf for use in Twisted here:

http://projects.scipy.org/ipython/ipython/browser/ipython/sandbox/bgranger/bonjour/twistbonjour.py

These would be good places to start for Twisted prototyping.

I've emailed Tim Allen, who mentioned at one point of having an
implementation, to see if there's anything he has that we can look at.
I'll let you know what he says.

If anyone else has expertise or links to share on this, I'd love to
catch up... I have a feeling that Elliot Murphy's got some cool thoughts
on this topic ;-) Elliot, you around?

d



More information about the ULS-SIG mailing list