Distance between two wireless mobile nodes - networking

I am currently trying to find the method or mechanism for calculating the distance between two wireless mobile nodes.
Let's say, there are 2 nodes (node B and C) coming in communication with node A. How can node A knows whether node B or node C is nearer than the other?
Is it possible to find it out by using RSSI? or are there any other mechanisms to calculate the distance?
I would appreciate any of your answers or comments.
Thank you in advance.

How about using GPS? Most mobile devices have internal GPS support these days.
The RSSI will give you some indication of distance, but signal may have bounced around and penetrated several walls, so a stronger signal doesn't necessarily mean they are closer.
Another option is to use WiFi geolocation, which works pretty good assuming there are several other WiFi access points in the area. I use SkyHook and it works great:
http://www.skyhookwireless.com/location-technology/sdk.php

Related

is there any efficient solution for this?

A company named RT&T has a network of n switching stations connected by m high-speed communication links. Each customer’s phone is directly connected to one station in his or her area. The engineers of RT&T have developed a prototype video-phone system that allows two customers to see each other during a phone call. In order to have acceptable image quality, however, the number of links used to transmit video signals between the two parties cannot exceed 4. Suppose that RT&T’s network is represented by a graph. Design an efficient algorithm that computes, for each station, the set of stations it can reach using no more than 4 links.

Get Hop-count between 2 peers

I know I should be asking this question on Network Engineering section of Stack Exchange but it feels like it's a desert there.
I'm trying to build an application that requires the distance between 2 hosts (represented by IP).
I used many methods: one of them is to get the distance at the internet layer of the TCP/IP model; i.e: the hop count between the 2 networks or better to get the bandwidths of the path but I think this information can't be measured because it's a real time info.
I figured out that there should be a graph representing the internet graph which its nodes are the routers (or autonumus systems or sub-networks (I really don't know exactly what type of nodes it should be) and the edges of the graph should be the cables between the nodes which have the bandwidth to be the wieght of the edge.
My Question:
Where can I find this information; whether the full graph or parts of it or something like an API to get 2 IPs and return the shortest path between the 2 IPs.
There is a tool named "Tracert"
You could have it try.
It will represent the routines of peer to peer in internet.
Hope that it make

Calculating the latency of nodes in a WiFi network

I do already have an answer but am wondering if there's a any better way. The problem is: I have a set of clients on a relatively slow WiFi network. Each client has a distance to the access point (AP), which determines how fast that client-to-AP link will run. Shorter links run faster than longer links.
My goal is to have each node calculate the length of its own link (and that of all nodes in the network). Nodes can talk to each other, but always via the AP, of course. Knowing the distances between nodes and the AP lets us optimize the network simply by moving the worst nodes closer to the access point.
Use round trip time as http://www.tkn.tu-berlin.de/fileadmin/fg112/Papers/hoene_paper2.pdf suggest.
Read Wi-Fi signal strength and use formulas to calculate it as How to calculate distance from Wifi router using Signal Strength? suggest.

Understanding how to manage message routing direction in P2P Chord/Pastry-like networks

This is a question about a large scalable P2P networking approach: logical ring net ovrlay.
Consider the context of P2P networking. There are N computers that are connected everyone to each other through a ring.
Every node has a routing table memorizing the predecessor and the successor node.
This is the simplest case when routing tables store only a predecessor and a successor.
Every node is provided with an id which is a number.
The ring is organized so that ascending numbers are assigned in clockwose direction.
So we can have a situation like this: * - 12 - 13 - 45 - 55 - 180 - 255 - *
This network has 6 nodes and they are connected in circle.
When a node must send a message to another node, the routing tables are used, if the generic node has an incoming message, it looks at the dest address and, if not in his routing table, the successor or predecesor will be up to route it.
Now let's consider this example.
In my simple network, node 13 wants to send a message to node 255.
Since every node can see only a predecessor and a successor, every node is not able to consider the global network, in P2P, in fact, a node can see only a part of the net. So node 13 has a decision to take: where to route the message (since the destination is not in its neighbourhood)? Does the message have to be sent to 45 or to 12? (clockwise or counterclockwise?).
Well, obviously, sending to 12 is a better decision, but how is node 13 able to know this?
The simplest solution would be: always route clockwise, but in this case a very near node will be reached in so much time..... while it was behind the corner....
How to handle this?
PS:
There are solution like Fingering applied to clockwise routing based approaches.
Fingering puts in routing table other addresses in order to create jump links...
This is a solution that can be used but with clockwise routing only...
http://en.wikipedia.org/wiki/File:Chord_route.png
I would like to know a good solution in order to find the right routing direction... does it exist? How does Chord handle this?
Thank you.
If every node remember link to the next one, the second one, the fourth one, the eighth one, and so on, then it takes only log(n) time to find any node. I believe that this is fast enough to not consider if you should go cw or ccw.

Wifi Triangulation

What would be the best way to triangulate a wireless network passively. Are there tools available? Algorithms? Libraries?
My goal would be to create a relative map of various objects that sends or receive signals using signal strength (DB's), signal/noise ratio, signal phase, etc. from a few location points. With enough sampling, i'm guessing it would be possible to create a good 2d/3d map.
I'm searching for stuff in any language / platform.
Some keywords: wi-fi site survey, visualization, coverage, location, positioning
Thinking about using kismet to gather the data and then process it. Maybe Free Space Path Loss for RF in the 2.4Ghz range to calculate a relative distance. And optionally try to use RF obstacle attenuation estimation values (based on some user input) to give better estimates. Then use trilateration to generate possible relative coordinates.
You can't use the GPS technique because the timing is nothing like accurate enough.
The best you can do is Trilateration based on the signal strength from each base station and assume that range is proportional to signal.
You will probably need to force a connection to each base station in turn in order to measure the signal strength.
Interesting question. Initial thoughts were using output from something like the WiSpy spectrum analyzer. I like the idea of using a directional antenna. Looks like some research (may) be underway.
Instead of trilateration you could use bilinear interpolation. This is said to be better for non-linear distance vs. signal strength data like wifi in an urban environment would be. http://courses.cit.cornell.edu/ee476/FinalProjects/s2007/ayl26_ym82/ayl26_ym82/index.htm has the background math and the what I assume is AVR C for doing it with magnetic field sensors.
Using signal strength to judge distance could easily be thrown off by differences in materials blocking line-of-sight to each of the sampling points. It would probably be better to do the sampling with a directional antenna, and from each sampling point, find the bearing that maximizes signal strength to each device you want to locate. With this technique, you can use only two or three sampling locations, depending on the accuracy with which you can estimate the bearings.
Ars Technica has an article about this, citing the Fraunhofer Institute and Skyhooks Wireless. This technology is built into every iPhone and iPad.
Actually I think you should try using an algorithm like the GPS one (wikipedia).. of course you can simplify it according to your need, for example:
you need to install on every item that should broadcast its position (the navigation signal) an application that actually does it
you should use a different channel for every single item to be sure not to generate collisions (it depends also on how much you broadcast the signal)
so if you place at least 4 broadcasters you can triangulate on every client to allow it to calculate its position. Naturally the bcasters should be as much similar as possible in response..
by the way these are just ideas..

Resources