0

Short: Can a multicast packet be forced to take a trip through a router before being looped back to the sender (ie disable internal loopback but still receive the packet)?

My purpose is to use multicast as a synchronization method over local area WiFi: send a dummy multicast packet to multiple receivers; since they receive that packet near simultaneously, they can compare their receive times to synchronize their clocks.

This works really well with 3 or more devices (and loopback disabled). However, with 2 devices, one device needs to be both sender and receiver, and the internal loopback short circuits the path that a packet would otherwise take, ruining the timing.

I have tried disabling multicast loopback (IP_MULTICAST_LOOP). I've tried forcing WiFi as the multicast interface (IP_MULTICAST_IF).

Otherwise I'll have to resort to network condition estimation for 2 device synchronization, which is not preferred because I'm not well versed in network programming in general, and it'll probably be the most used configuration.

To be clear, this is for use on iOS, but I'll take any suggestions on where to start looking.

Thank you

NewEndian
  • 559
  • 2
  • 16

1 Answers1

0

I doubt it. The router won't send it anywhere that it hasn't received an IGMP JOIN message from. You could try joining the group you're sending to at the sender, but I don't promise it will work. This is normally unnecessary but you may be doing it anyway.

user207421
  • 305,947
  • 44
  • 307
  • 483
  • The synchronization works like a round robin, taking turns being the sender, so they're all joined to the group. – NewEndian Apr 15 '13 at 11:32