'How to approximate geographical location based on network latency?

I'm looking ways to approximate a client's geographical location based on network latency. I have a p2p mesh where I can measure the latency from one peer to all the other peers.

So for example I have:

  • target peer at location unknown
  • peer1, located at New York, has latency 100ms to target
  • peer2, located at UK, has latency 500ms to target
  • peer3, located at Japan, has latency 300ms to target
  • peer4, located at Mexico, has latency 100ms to target

Neglecting the fact that network latency isn't an accurate measure of time-of-flight, and network routes aren't always straight, how could I approximate target peer's location?

(So in other words, I'd like to assume network latency is a direct measure of distance)

I think this should be an easy task on 2D plane that is not circularly connected, but how to do this on a sphere such as our earth?

Thanks



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source