[zeromq-dev] Unreliable multicast was: udp not enabled on Mac OS X 10.6

Martin Sustrik sustrik at 250bpm.com
Fri Mar 5 18:38:22 CET 2010


Martin Lucina wrote:
> sustrik at 250bpm.com said:
>> Chris Wong wrote:
>>> Actually i want support for unreliable multicast vs reliable multicast.  
>>> Zeromq is a nice framework to allow me to transparently switch the 
>>> underlying transport. There are applications that don't need the 
>>> ordering and lossless guarantee of PGM.
>>>
>>> The unreliable multicast transport may or may not work for all the 
>>> messaging pattern but should at least work for the multicast pattern.
>> Now it makes sense. Paradoxically, unreliable multicast is easier to 
>> implement than unreliable unicast.
> 
> How so? Isn't unreliable unicast just unicast UDP? And unreliable multicast
> just multicast UDP? (But see below about datagram length)

Well. Yes. I thought of other issues that are actually pretty irrelevant.

>> Just copy pgm_sender.cpp/.hpp and pgm_receiver.cpp/.hpp, name it 
>> udp_sender/udp_reciever. Rip off OpenPGM stuff, use UDP socket instead.
> 
> This is starting to look the the 'udp' transport we don't have (yet) :-)

This is starting to look messy: rename udp->epgm, then introduce brand 
new, incompatibel udp...

> 
>> One additional thing that has to be done is to attach a sequence number 
>> to each UDP packet, so that you know when packet was lost.
> 
> Why would you need to know when a packet was lost, it is after all just
> unreliable multicast...
> 
> What I see as more of a problem is that UDP datagrams are limited to 65,507
> bytes in length, so any 0MQ UDP transport (multicast or unicast) would have
> to split and recombine messages.

Bingo. See what packet numbers are good for?

Martin



More information about the zeromq-dev mailing list