First, a little bit of background information: I'm working on some custom software that allows a group of computers on the same LAN to co-operate on a real-time task in a distributed, fault-tolerant manner. In particular, each of the computers sends out a multicast (IPv6/UDP) "heartbeat" packet several times a second, which the others receive, and based on their knowledge of who else is on-line at the time, they self-organize to divvy up a task amongst themselves. If any peers go offline, their parts of the task are automatically re-assigned to the remaining computers. In addition, a peer will sometimes use multicast to communicate a one-to-many data-update to the group.
This all works nicely on a wired Ethernet network; but at some point I'd like to make it able to work well on a wireless network too, e.g. to allow for a self-organizing swarm of drones and other fun experiments like that.
The problem is that Wi-Fi is notoriously bad at multicast -- in particular, multicast packets are usually transmitted at the AP's slowest and least efficient rate, and they are often delayed or dropped. That means that unless I dial my software's tolerances way back, running it over a Wi-Fi network means I occasionally get "false positives" where the system thinks a particular computer has gone away but actually it's just that the Wi-Fi network isn't delivering its heartbeats in a timely manner. The lack of timeliness also makes it difficult to co-ordinate behaviors precisely in time, since without a near-constant speed network, synchronizing clocks is difficult.
My question is, is Wi-Fi simply not the right tool for this application? If it's not, is there some other wireless networking technology that I should be looking into using instead? (it seems that, in principle at least, radio ought to lend itself to efficient multicast/broadcast, since it's inherently a shared medium) Or if Wi-Fi really is the only game in town for wireless networking, how should I go about tweaking the Wi-Fi settings (on the AP and/or the clients) to get the best multicast performance possible?