[vlc-devel] why netsync unicast?

Ryan Nowakowski tubaman at fattuba.com
Thu Dec 6 18:59:12 CET 2007


On Thu, Dec 06, 2007 at 07:39:23PM +0200, Rémi Denis-Courmont wrote:
> Le Thursday 06 December 2007 09:39:08 Ryan Nowakowski, vous avez écrit :
> > Is there any reason why netsync uses udp unicast?  It seems like a
> > perfect application for multicast!  It would scale better that way.
> 
> I may be wrong, but I think it could use multicast by simply putting a 
> multicast address in the configuration.
> 
> Of course, the real problem is that netsync is fairly broken and unmaintained 
> at the moment.

Well, the way it's written right now, the master responds to time sync
requests from each client.  It looks like:

unicast: client2 -> masterclient: time request packet
unicast: masterclient -> client2: time response packet
unicast: client3 -> masterclient: time request packet
unicast: masterclient -> client3: time response packet
...and so on

Simply using a multicast address in the configuration might work but you
would still have the scalability issue where time sync is O(N) where N
is the number of clients.  I propose this: 

multicast: client2 joins group
multicast: client3 joins group
multicast: masterclient -> group: time response packet(at some regular interval)
multicast: masterclient -> group: time response packet
multicast: masterclient -> group: time response packet
...and so on

Then netsync can scale at O(1).  Maybe this should be a new control
module called multicast-netsync?  By the way, what exactly is broken
about netsync at the moment?  It works fine for me in 0.8.6.

- Ryan



More information about the vlc-devel mailing list