# Ping triangulation

Is it possible to, with any accuracy, physically locate a computer given a network of computers whose physical location is already known?

The idea is that the target machine is pinged by a network of machines the physical location you already know, and based on ping times, you triangulate the target machine. Of course the trouble is that ping times vary depending on several factors, and distance is not guaranteed to even be the most affecting one. I guess it's a question for math-capable people; is it possible to achieve decent accuracy, and how large a known network would be required for that?

I know that the bittorrent client Azureus runs a vivaldi graph that's supposed to operate in a similar manner, only it's completely arbitrary with no known points so the 'map' constantly changes in shape.

Mech_Engineer
Gold Member
The problem would be that the wires the internet are carried over are not straight between individual computers. Also, pings would be faster over fiber optic cabling than standard wires, and would change depending on network load... My guess is that you might be able to get an averaged value over many different computers (not just three, maybe one hundred or something) to get an approximate location, but it wouldn't be much more accurate than the "IP location."

chroot
Staff Emeritus
Gold Member
The actual speed of signals moving through both wires and fiber optic cables is essentially the speed of light. If you could measure only the time that the signal spends on the wires, you could indeed perform "ping triangulation."

Of course, you'd also need computers which are capable of nanosecond timing, which would be difficult, if not impossible to obtain. (Even the delays inside your computer -- from the physical link, through the network card's processor, up through the PCI bus, through the north bridge to the CPU -- are pretty much non-deterministic, and certainly not reliable down to the nanosecond.)

The problem is that the Internet is a nothing more than a bunch of nodes connected together with cables (or fibers). The nodes, called routers, are not deterministic. Packets come into routers on one cable, and are stored momentarily in the router's memory. Some kind of scheduling algorithm -- which might have priorities, sequencing, or adaptive traffic shaping built into it -- chooses packets out of memory and sends them on their way on another cable. There's no guarantee at all how long a router will store your particular packet, nor even a guarantee that the router will store every packet from you the same amount of time.

There's not even any guarantee that each of your triangulation packets will even go the same way through the network each time you send them. Demand varies across parts of the network all the time, and routers attempt to send packets in directions that get them to their destination most quickly. That route might be different at noon in NY than at 2 am in LA.

There are so many variables involved that the propagation of packets through the network has a nearly random distribution, with essentially no recognizable geographical information. It's a neat idea, but it's just not possible because of the way the Internet is constructed.

- Warren

However with all those factors, there's a very clear trend of computers in other countries having considerably higher pings than those in your own. As you said, many things happen to a packet and a majority of the ping time is not from the physical distance travelled, but from the time it spent being processed by routers and repeaters and signal converters and whatnot. This time however, will statistically increase with distance assuming the network is built using consistent technology (ie we don't have one long path covered by fiber optics and another covered by a long cable line with signal repeaters every 10km).

After some very rough calculations, it looks like a network of several hundred computers could be used to pinpoint the target location to within a large city area, but we already can do that by looking at the traceroute and finding their provider. I guess this may be more meaningful as the internet makes it's way to space :)

0rthodontist
Since the ISP's location is known, the hop from the ISP to the user is where you could gain additional information if there's any to gain. But that's a one-dimensional piece of information that you're trying to use to pinpoint someone on a two-dimensional map.

chroot
Staff Emeritus