[quote]Ok, last follow up. I did some searching on ICMP (needed to do full-fledged pings), and as of a 4/2003 post, there was no ability in java to do this, outside of using JNI. So, your options are as follows:
[/quote]
It’s in 1.5, IIRC, Not as the ability to craft arbitrary ICMP messages, but as a specific feature to support ping.
PS IIRC = If I recall correctly 
The real problem is not just the number of edges, it’s the fact that some people assume you can just say “take the nearest four only”, and it will work when in fact that is not necessarily a mathematically possible algorithm, unless you have a particularly cunning co-ordinate system and/or graphing algorithm.
e.g. what do you do when you have servers ABCDEFGHI like this:
A B C
D E F
G H I
and E’s four closest neighbours become A, B, F and H, but all the rest remain the same?
You now have a topology that is mathemtically impossible in 2D cartesians because you hadn’t thought about your definition of “location” and “closest” properly. Drawing it is going to be a major PITA.
If I sounded harsh it’s just because I’m pressed for time right now, and if I’ve understood jc’s aims properly, then fundamentally jc needs to go and think about this some more.
It would also help if jc put together some use-cases to explain why and how this information will be used, for instance why don’t you just make the relative locations permanent and ignore the ping time?