https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
Dijkstra's algo can be used for path-finding in a p2p network, which comes handy when relaying information as a unicast (between 2 peers) or multicast (between 3 peers). Instead of relying on the very unreliable geographical data (lat/long) their devices can provide, their network latency values can used instead.
Requirements:
- Clients should determine the latency of their direct peers periodically.
- Clients should be able to relay the messages in a forward and backward manner
- Client should be able to group the messages
- Encoding of messages