DFS-Based Routing
Jain et al.: Geographic Routing Algorithm (GRA)
Intermediate node handles message greedily
Concave node maintains route to destination node
Start route discovery for outdated routing tables
Stuck packet is routed to destination after successful route discovery
How to perform route discovery?
DFS-Based Routing
Depth first search from concave node S
Yields an acyclic path from S to D
Node X puts its address on route discovery packet p
Forward to neighbor who has not seen p before
Select neighbor Y which minimizes |XY|+|YD|
If no possible neighbor exists, remove address from p and send it back to the node from which p was originally received
Alternative implementation: memorize DFS data in nodes
Other metrics may be applied on next neighbor selection
Quality-of-service paths (delay and bandwidth criteria, connection time, …)
X W
1 2 3
Y1
Y2 root Y3
t1, t6: path = …W
t2: path = …W X
t3: path = …W X Y1
t4: path = …W X Y2 t5: path = …W X Y3
Data Communication
Memoryless Guaranteed Delivery
Motivation
Disadvantage of greedy recovery based on memorizing traffic
Traffic may increase
Memorized data may be outdated
Greedy routing does not suffer from this fact
Instantaneous forwarding decision
Not affected by previous (and probably outdated) state information
Question: is there a recovery strategy which
preserves greedy’s memoryless property?
The Face Recovery Principle
Locally construct a planar graph
Visit face sequence providing progress towards T
Traverse faces according to the left/right hand rule
Return into greedy mode whenever possible
S F1
F2
F3
F4
F5
T
A B
C D
Face Recovery Details
When to change current face traversal?
How to decide the next face locally?
Example 1
Greedy-Face-Greedy GFG, [Bose et al., 1999]
GFG – The face routing part
P S repeat
Let F be the face with P on boundary and intersecting PT
Traverse* F until reaching an edge that intersects PT at some point Q≠P P Q
until P=T
*counterclockwise if inner, clockwise if outer face
T S
P
F
GFG – The face routing part
P S repeat
Let F be the face with P on boundary and intersecting PT
Traverse* F until reaching an edge that intersects PT at some point Q≠P P Q
until P=T
*counterclockwise if inner, clockwise if outer face
T S
Q
F P
GFG – The face routing part
P S repeat
Let F be the face with P on boundary and intersecting PT
Traverse* F until reaching an edge that intersects PT at some point Q≠P P Q
until P=T
*counterclockwise if inner, clockwise if outer face
T S
F P
GFG – The face routing part
P S repeat
Let F be the face with P on boundary and intersecting PT
Traverse* F until reaching an edge that intersects PT at some point Q≠P P Q
until P=T
*counterclockwise if inner, clockwise if outer face
T S
P
F
Example 2
Greedy Other Adaptive Face Routing GOAFR,
[Kuhn et al., 2003]
Face Routing Part of GOAFR
P S repeat
Explore the complete boundary of face F containing the line PT Advance to Q on F’s boundary which is closest to T and set P Q until reaching T
S T
F P
Face Routing Part of GOAFR
P S repeat
Explore the complete boundary of face F containing the line PT Advance to Q on F’s boundary which is closest to T and set P Q until reaching T
S T
Q
F
P
Face Routing Part of GOAFR
P S repeat
Explore the complete boundary of face F containing the line PT Advance to Q on F’s boundary which is closest to T and set P Q until reaching T
S T
Q
F P
Face Routing Part of GOAFR
P S repeat
Explore the complete boundary of face F containing the line PT Advance to Q on F’s boundary which is closest to T and set P Q until reaching T
S T
Q
F
P
General Face Change Mechanism
Observation: face can be traversed in two directions
After crossing variant: U selects V
Before crossing variant: U selects W
Best angle variant: U selects W
S T
V
U
W
Comparison of Variants
FACE over Dominating Set
Fact: localized planar graph construction prefers short edges over long ones
Affects performance of face traversal: increased hop count
How to reduce number of network nodes used by FACE?
Remember: connected dominating set – subset S of nodes of a graph G which satisfies
Induced subgraph G[S] is connected
Each node in G is either in S or has a one-hop neighbor in S
Datta et al.: Perform FACE algorithm only on internal nodes defined by a connected dominating set
Gabriel graph construction performed on DS only
If concave node is no internal node forward to neighbor in DS
Route along Gabriel graph until
Local minimum handled
Or node with destination in its neighbor list reached
Shortcut-Based FACE Routing
Possibly more neighbor nodes along path produced by face traversal
Locally construct planar graph used by all neighbor nodes → 2-hop neighbor information needed!
Perform a local planar graph traversal until reaching the last node in view and send packet to that node directly
S
D
…
Geographical Cluster Based
Routing
The main Idea
Connect neighboring clusters connected by a pair of nodes
No UDG assumption; nodes need to be connected within one cluster
Message loosely follows faces of the planar overlay graph
Graph exploration requires local knowledge of all adjacent clusters
Forwarding requires connectivity within Cluster C
S u T
F1 F2 F3 w
C v
D
GCR versus FACE
GCR Enables Local Traffic Dispersion
v
A B C
The Impact of Mobility
Routing on sub graph Routing on overlay
Source Node
Destination Node Destination Cluster
Source Cluster
Performance Study on Success Rate
The Advantages of Overlays
No geometric network requirements
Cluster membership sufficient
Greedy forwarding even in recovery mode
More robust to mobility
The Bad News
Disconnection
S
uv
T
The Bad News
Disconnection
Consider all edges
A
B
C
The Bad News
Disconnection
Consider all edges
Not implicitly planar C
D A
B
The Bad News
Disconnection
Consider all edges
Not implicitly planar
Remove bad edges
Always possible?
Local detection?
Planarity and Connectivity
Planarization by Edge Removal
Undirected graph
Unit disk graph
Circular transmission range
Unique sending radius
Aggregated UDG ?
Observation
Redundancy Property
Locally detectable intersection
Planarity and connectivity?
C
D
A
B A
B
C
D (a)
(b)
R vw
E w
v, ) (
Redundancy Property not Sufficient
Assumption
Arbitrary network
Redundancy property
Conflicting goals
Planarity
Connectivity
Additional property?
( co-existence property)
u1 u2
u3
u4 u5
v1
v3 v2 v4
v5
w
Aggregated Gabriel Graph
Construction
Properties
Aggregated Gabriel Graph
Construction
Gabriel graph on UDG
Properties
u v
w
Aggregated Gabriel Graph
Construction
Gabriel graph on UDG
Aggregation afterwards
Properties
Aggregated Gabriel Graph
Construction
Gabriel graph on UDG
Aggregation afterwards
Properties
Connected
No regular intersection
Localized construction
Planar?
Irregular Intersection Problem
A B C
u w
v
A B C
u w
v
A B C
u w
v Aggregated Graph
Sub Graph 1
Sub graph 2
Purged Aggregated Gabriel Graph
A
B C
Irregular intersection ABxC
Purged Aggregated Gabriel Graph
A
C
B
Irregular intersection ABxC
UDG exists AC or BC
Purged Aggregated Gabriel Graph
Irregular intersection ABxC
UDG exists AC or BC
Remove AB
A
C
B
Purged Aggregated Gabriel Graph
Irregular intersection ABxC
UDG exists AC or BC
Remove AB
Introduce implicit edge BC
Properties
Planar
Connected
Localized construction possible
Forwarding along implicit edge BC?
A
C
B
Localized Multicasting
The Localized Multicasting Problem
Known information
Current node
Neighbors
Destinations
T1
T3
T2 S
B A
D C
The Localized Multicasting Problem
Known information
Current node
Neighbors
Destinations
Building blocks
Message split
T1
T3
T2 S
B A
D C
The Localized Multicasting Problem
Known information
Current node
Neighbors
Destinations
Building blocks
Message split
Next hop selection
T1
T3
T2 S
B A
D C
?
The Localized Multicasting Problem
Known information
Current node
Neighbors
Destinations
Building blocks
Message split
Next hop selection
Recovery
T1
T3
T2 S
B A
D C
?
?
The MSTEAM Algorithm
EMST Backbone Assisted Localized Routing
T9
T7
T6
T4
T1
T3 S
T8
T5
T2 T1,…,T9
Additional requirement:
Location information
EMST Backbone Assisted Localized Routing
T8 T9
T7
T6
T5
T4
T1
T2
T3 S
EMST(S,T1,…,T9)
EMST Backbone Assisted Localized Routing
T8 T9
T7
T6
T5
T4
T1
T2
T3
D1
D2 D3
S
EMST Backbone Assisted Localized Routing
T8 T9
T7
T6
T5
T4
T1
T2
T3 A
B
C
S
T7,T8,T9
T1,T2,T3 T4,T5,T6
EMST Backbone Assisted Localized Routing
T8 T9
T7
T6
T5
T4
T1
T2
T3 A
B
C
EMST(C,T7,T8,T9 )
EMST(B,T4,T5,T6 )
EMST(A,T1,T2,T3)
The Cost over Progress Framework
T3
T1
W V
T2 S
Which one is the better next hop node?
T1,T2,T3
The Cost over Progress Framework
Approximate expected number of hops H(S,V)
H(S,V) (|EMST(S,T1,T2,T3)| - |EMST(V,T1,T2,T3)|) / |EMST(S,T1,T2,T3)|
Approximate expected cost C(S,V) = cost(S,V) * H(S,V)
Select node X which provides progress and minimizes C(S,X)
Example: cost(S,X) = b |SX| + c
T3
T1
W V
T2 S
Example: EMST(s,t0,…,t9)
s
t0
t1 t2
t3
t4
t5
t6 t7
t8
t9
Example: Final Multicasting Result MT(s,t0,…,t9)
s
t0
t1 t2
t3
t4
t5
t6 t7
t8
t9
MFACE: Traversal Start
S T6
T5
T4
T3
T1
T2
F1 F2
MFACE: Traversal Start
S T6
T5
T4
T3
T1
T2
F1 F2
MFACE: Traversal Continue
S
U
V W
F1 F2
F3
T1
T2 T3
MFACE: Traversal Continue
S
U
V W
F1 F2
F3
T1
T2 T3
MFACE: Traversal Continue
S
U
V W
F1 F2
F3
T1
T2 T3
MFACE: Traversal Continue
S
U
V W
F1 F2
F3
T1
T2 T3 p
MFACE: Traversal Continue
S
U
V W
F1 F2
F3
T1
T2
MFACE: Traversal Continue
S
U
V W
F1 F2
F3
T2
Other Geographic Routing
Approaches
Geocasting
Reach nodes in a certain area
Geocasting Components
Routing towards the area
Single-path, multi-path
Restricted directional flooding
Dissemination inside the area
Location-aware flooding
Reducing redundant transmissions
Geocast with guaranteed
delivery?
Geographic Hash Table (GHT) (1)
Idea: hashing on geographical positions
Put() and Get() operations map to the same device near to the hashed location
Mapped device stores data
Use of planar graph routing to find the same device
Source F1 F2 F4 Sink
F5
F6 F3
Geographic Hash Table (GHT) (2)
Problem: changing network topology
Storing node might disappear
Put() and Get() may retrieve different storing nodes
Source F1 F2 F4 Sink
F5
F6 F3
Geographic Hash Table (GHT) (3)
Solution
Replication along the face perimeter
Periodic refresh messages traveling along the perimeter
New home node selected when
Refresh packet is missing for a certain timeout
Node closer to destination receives refresh packet
D E
F B
C
A home
replica
D E
F B
C
D E
F B
C
(a) (b) (c)