Geographical Routing Using Partial Information for Wireless Ad Hoc Networks
description
Transcript of Geographical Routing Using Partial Information for Wireless Ad Hoc Networks
Geographical Routing Using Partial Information for Wireless Ad Hoc Networks
Rahul Jain, Anuj Puri, and Raja SenguptaDepartment of EECSUniversity of California, BerkeleyIEEE Personal Communications,
February, 2001
Problem Statement
Goal: Solve the routing problem in wireless ad hoc network using the position information.
How: When S want to send a packet to a node D, it takes the pos(D) and find one of its neighbors which geographically is closet to D; then it forwards the packet to D.
Problem: What if S is the closer to D than its neighbors?
Solution: Use Route Discovery Protocol
Assumptions
Each node has fixed power for trans-receivers, i.e. the neighbors of each node is fixed. We model the network with a graph
is a undirected connected graph. Initially each nodes knows the geographical positions of
itself and its neighbors. When Sending (forwarding) a message, we know the
geographical position of the destination.
),( ENG
G
Definitions
Let be the set of nodes whose locations are known to node S at time t. Call these nodes centers.
Voronoi cell: Let be any set of points in A Voronoi cell with center is defined as follows:
Voronoi view: The Voronoi view at node S at time t is:Voronoi view: The Voronoi view at node S at time t is:
},...,,{ 21 ks SSSC
},...,,{ 21 kSSS
iS
}|,)(|min|)(:|{)( SjjiiS CSSposzSposzzSV kj1
}:)({ siisS CSSVV
iS
Routing Table Structure
Node Node Position Neighbor Node (Next)
Time stamp
S pos(S) S TS
N pos(N) N TN
... … … …
S’ pos(S’) N’ TS’
… … … …
Each entry is a 4-tuple (Si, , pos(Si), NextS(Si), TSi)
The Algorithm
//let for some
If (S == D)
// packet reached its destination
else if (Si != S)
next_node = NextS(Si);
else
//packet is stuck
Initiate route_discovery(S, D);
next_node = Nexts(D);
)()( SiVsDpos CsSi
Route Discovery Protocol
route_discovery(S,D) finds an acyclic path Path(S,D) = <k0, k1, …, kl> from S to D, and it updates the routing table of node ki with an entry (D, pD, ki+1).
Example1
Example1 (Initial Routing Table)
Node Routing Table
A {(A, (1.5, 1.5), --), (B, (2,2), B)}
B {(B, (2,2), --), (A, (1.5, 1.5), A), (C, (3,1), C)}
C {(C, (3,1), --), (B, (2,2), B), (D, (2.5, 0), D), (E, (4,0), E)}
D {(D, (2.5, 0), --), (C, (3,1), C)}
E {(E, (4,0), --), (C, (3,1), C)}
A sends a packet to C: ABCA sends a packet to D: stuck
Example1 (Updated Routing Table)
Node Routing Table
A {(A, (1.5, 1.5), --), (B, (2,2), B), (D, (2.5), B)}
B {(B, (2,2), --), (A, (1.5, 1.5), A), (C, (3,1), C), (D, (2.5, 0), C)}
C {(C, (3,1), --), (B, (2,2), B), (D, (2.5, 0), D), (E, (4,0), E)}
D {(D, (2.5, 0), --), (C, (3,1), C)}
E {(E, (4,0), --), (C, (3,1), C)}
Assume: route-discovery(A, D)= <A, B, C, D>
Path-Finding Phase
The route can be discovered right up to destination node D (Full route discovery), or it can be discovered up to a node Y which has node D as a cell center (partial route discovery).
The following algorithm can be used to find an acyclic
path to the destination:
Breath First Search
Depth First Search
Convergence of Routing Tables
Definition: The Voronoi view of node S is complete if VS(S) contains only node S
If the routing table has enough information s.t.
no packet becomes stuck, then the Voronoi
views are complete.
Size of Routing Table
Claim: The average routing table size in a n-node network G when all the nodes have complete Voronoi views is , where
L is the mean route discovery path length.
))log(( nL
Multiple Route Discoveries Issue
Example
• S1 sends RD1 for the destination D at t1
• S2 send RD2 for the destination D at t2
RD1: s1x1x2y2 D
RD2: s2x2x1y1 D
ACK1 reaches x2, then ACK2
x2 puts (D, --,y2,--) first, then (D, --, x1, --)
And x1 puts, (D, --, y1, --), then (D, --, x2, --)
Cycle in the routing tables
Mobility in Ad Hoc Networks
The routing table might be inconsistent .
Improved Version of the Protocol
1. If S receives a “hello” message n i, it puts an entry (ni, pos(ni), ni) in its routing table
2. If S does not hear from a neighbor n i for a while, it removes all entries of the form (di, pi, ni) from its routing table
3. If Table(S) contains the entry (di, pi, ni) and S receives Table(ni) which contains the entry (di, pj, -), then S updates its entry to (d i, pj, ni ,-)
4. If Table(S) contains the entry (di, pi, ni ) and S receives Table(ni) which does not contain an entry (d i,--, --), then S removes the entry (di, pi, ni )
5. After any change to its routing table, S broadcasts the new Table(S)
Average Number of Neighbors
Mean Routing Table Size
GRA protocol packets per node
Time to Converge (in seconds)