Title: Geographical Routing
1Geographical Routing
2Motivations
- A need for geographical based distribution
- e.g., sensornets and location-based services
- Reducing state overhead
- the routing protocols we discussed so far may not
scale to large-scale networks - maintain (end-to-end) routing states for each
destination - thus overhead proportional to network size
3GeoRouting Greedy Distance
S
D
- Find neighbors who are the closest to destination
D - To make progress, the chosen neighbor should be
closer to destination
4Geographical Routing
- Each node only needs to keep state for its
neighbors - Beaconing mechanism
- each node broadcasts its MAC and position
- to minimize costs piggybacking
5Greedy Routing Not Always Works
D
6Greedy Routing Works Well in Dense Networks
D
- If node density is high, it is a low probability
event for the region to have no nodes
7Dealing with Void Right-Hand Rule
Right-hand rule When arriving at node x from
node y, the next edge traversed is the next one
sequentially counterclockwise about x from edge
(x,y)
8Right Hand Rule on Convex Subdivision
Applying the right hand rule to convex
subdivision (namely a planar graph where every
internal face is a polytope) first remove the
edges crossing the line from source to
destination, and then apply the right hand rule
If not convex subdivision, removing crossing
edges may not work
9Right-Hand Rule Does Not Work Well with Cross
Edges
z
v
D
u
- x originates a packet to u
- Right-hand rule results in the long detour
x-u-z-w-u-x
w
x
10Removing Cross Edges
z
v
D
u
w
- Remove (w,z) from the graph
- Right-hand rule results in the route x-u-z-v-D
x
11How to Make a Graph Planar?
- Convert a connectivity graph to planar
non-crossing graph by removing bad edges - make sure the original graph will not be
disconnected - two types of planar graphs
- Relative Neighborhood Graph (RNG)
- Gabriel Graph (GG)
12Relative Neighborhood Graph
- Edge uv can exist only if there does not exist
another node w inside the intersection of the
two circles centered at u and v with radius d(u,
v) - i.e., no w such that d(w, u) lt d(u, v) and d(w,
v) lt d(u, v) - Or equivalently ?w ? u, v d(u,v)
maxd(u,w),d(v,w)
not empty ? remove uv
13Gabriel Graph
- An edge (u,v) exists between vertices u and v if
no other vertex w is present within or on the
circle whose diameter is uv. - ?w ? u, v d2(u,v) lt d2(u,w) d2(v,w)
Not empty ? remove uv
14Examples
Full graph
GG subset
RNG subset
- 200 nodes
- randomly placed on a 2000 x 2000 meter region
- radio range of 250 m
- Bonus remove redundant, competing path ? less
collision
15Properties of GG and RNG
RNG
- RNG is a sub-graph of GG
- because RNG removes more edges
- GG is a planar graph
- and thus RNG is also planar
- Connectivity
- if the original graph isconnected, RNG is also
connected
GG
16Connectedness of RNG Graph
- Key observation
- any edge on the minimumspanning tree of the
originalgraph is not removed - Assume (u,v) is such an edge but removed in RNG
due to w
u
v
17Delaunay Triangulation
- Let disk(u,v,w) be a disk defined by the three
points u,v,w - The Delaunay Triangulation (Graph)
- There is a triangle of edges between three nodes
u,v,w iff the disk(u,v,w) contains no other
points - Properties of the Delaunay Triangulation graph
- it is the dual of the Voronoi diagram
- DT graph is planar
18Some Interesting Properties
- Since the MST(V) is connected and the DT(V) is
planar, all the planar graphs above are connected
and planar
19Final Algorithm Greedy Perimeter Stateless
Routing (GPSR)
- Maintenance
- all nodes maintain a single-hop neighbor table
- Use RNG or GG to make the graph planar
- Routing
- use greedy forwarding whenever possible
- resort to perimeter routing when greedy
forwarding fails and record current location Lc - resume greedy forwarding when we are closer to
destination than Lc
20Example
d
d
D
D
e
e
c
c
a
a
f
S
S
b
For details about GPSR algorithm, please GPSR.
21Evaluations
- 50, 112, and 200 nodes with 802.11 WaveLAN radios
- Maximum velocity of 20 m/s
- 30 CBR traffic flows, originated by 22 sending
nodes - Each CBR flows at 2 Kbps, and uses 64-byte
packets
22Packet Delivery Success Rate
Very dense network 20 neighbors
23Routing Protocol Overhead
24Routing State
- State per router for 200-node
- GPSR node stores state for 26 nodes on average in
pause time-0
25Path Length
26Worst Case of GeoRouting in Terms of Hop Count
- A worst case scenario
- destination is central node
- source is any node on ring
- any spine can go to middle
- O(c) nodes along ring and O(c) nodes along each
spine - Best path length O(c)O(c)
- Geographic routing
- Test O(c) spines of length O(c)
- Cost O(c2) instead of O(c)
27Geographic Routing
28Pros and Cons of GPSR
- Pros
- low routing state and control traffic
- scalable
- handles mobility well
- Cons
- planarized graph is hard to guarantee under
mobility - location might not be available everywhere (we
will see the problem next week) - geographic distance does not correlate well with
network proximity
29Why Geographic Routing Without Location?
- Location is hard to get
- GPS takes power, doesnt work indoors, difficult
to incorporate in small sensors - the network localization problem is difficult
- True location may not be useful if there are
obstacles
In the connectivity space, B is closer to
destination!!
30Overview
- Objective assign virtual coordinates to nodes
so that - the coordinates are computed efficiently,
- routing works well using the computed coordinates
- Progress in three steps
- the perimeter nodes and their locations are known
- the perimeter nodes are known but not their
coordinates are not known - nothing is known
- We cover the first two steps
31The Perimeter Nodes and Their Locations Are Known
- Image a rubber band from each node to each
(connected) neighbor - The force of a rubber band is proportional to
its length, directedto the neighbor
32The Perimeter Nodes and Their Locations Are Known
- The equilibrium is achievedwhen the position p
of a node is equal to the average of its
neighbors - where n is number of neighbors
- Algorithm
- each node sends its position to its neighbors
- a node updates its new position to be the average
of those of its neighbors
33Perimeter Nodes Are Known (True Positions)
3200 nodes 64 perimeter nodes on the boundary
34Perimeter Nodes Are Known (10 iterations)
Internal nodes initialized as the center of the
square
35Perimeter Nodes Are Known (100 iterations)
Internal nodes initialized as the center of the
square
36Perimeter Nodes Are Known (1000 iterations)
Internal nodes initialized as the center of the
square
37Routing Performance
- 32000 packets with random source-destination pairs
Success rate using (distance) greedy routing
38Two More Scenarios
Success rate 0.981 Avg. path length 17.3
Success rate 0.99 Avg. path length 17.1
39Weird Shapes
40The Perimeter Nodes Are Known But Their Locations
Are Not Known
- Assume the distance between two nodes is the
(minimum) number of hops to go from one to the
other - Distances can be derived by flooding the network
- each perimeter node sends a HELLO message with a
hop counter of 0 - when seeing a message from a perimeter node with
a lower hop counter, a node increases the counter
by 1 and forwards it
41Virtual Coordinates by Triangulation
- Each perimeter node solves the minimization
problem - Detail
42Convergence and Performance
One iteration success rate 0.992 avg. path
length 17.2 Ten iterations success rate
0.994 avg. path length 17.2
43Backup Slides
44Improving Resiliency
- If perimeter vector is inaccurate, it results in
inconsistent information - Augment with two beaconing nodes which provide
two coordinate axes - special perimeter nodes or run leader election to
select the two nodes - Origin is chosen as the center of gravity of all
perimeter nodes - more robust to lost information
45Selecting Perimeter Nodes
- Rule A node is a perimeter node if
- It is farthest away from the first beacon node
among all its one-hop neighbors
46Perimeter Node Detection
47Convergence and Performance
Ten iterations success rate 0.996 avg. path
length 17.3
48Projecting on Circle After First Computation
- Circle center is center of gravity radius is
average of distance of the perimeter nodes to the
CG - Motivation maintain a consistent coordinate
space
49Virtual Polar Coordinate Space
- Each node is assigned a label
- label is number of hops to root and virtual angle
range
Discussion how to do routing?
50Build the Tree
- Root node
- starts as root
- broadcasts level 0
- A non-root node
- receives message level n marks parent
- broadcasts message saying level n1
- All subtrees report size back to parent.
- Root does assignment of virtual angles.
Question what about the issues of the described
algorithm?