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