Analysis of Link Reversal Routing Algorithms for Mobile Ad Hoc Networks Costas Busch (RPI) Srikanth Surapaneni (RPI) Srikanta Tirthapura (Iowa State University)
Talk Outline Link Reversal Routing Previous Work & Contributions Analysis of Full Reversal Algorithm Analysis of Partial Reversal Algorithm Analysis of Deterministic Algorithms Conclusions
Link Reversal Routing Destination oriented, Connection graph acyclic graph of a mobile network Destination
Link Failure node moves
A bad state A good state Bad node: no path to destination Good node: at least one path to destination
Full Link Reversal Algorithm sink sink sink sink sink sink sink Sinks reverse all their links #reversals = 7 time = 5
Partial Link Reversal Algorithm sink sink sink sink sink Sinks reverse some of their links #reversals = 5 time = 5
Heights General height: ( , , , ) a a a 1 2 n lower higher ( 0 , 0 , 5 , 4 , 3 ) ( 0 , 0 , 4 , 9 , 7 ) Heights are ordered in lexicographic order
Full Link Reversal Algorithm ( 0 , 2 ) ( 0 , 1 ) ( 0 , 3 ) ( 0 , 5 ) ( 0 , 4 ) ( 0 , 6 ) ( 0 , Dest ) Node i : ( a i , i ) Real Node ID height (breaks ties)
Full Link Reversal Algorithm ( 0 , 2 ) ( 0 , 2 ) ( 0 , 1 ) ( 0 , 1 ) ( 0 , 3 ) ( 0 , 3 ) ( 0 , 5 ) ( 0 , 5 ) ( 0 , 4 ) ( 0 , 4 ) ( 1 , 6 ) ( 0 , 6 ) ( 0 , Dest ) ( 0 , Dest ) Sink i : before reversal after reversal ( a i , i ) ( a i , i ) a max{ a : j N ( i )} 1 i j
Full Link Reversal Algorithm ( 0 , 2 ) ( 0 , 2 ) ( 0 , 2 ) ( 0 , 1 ) ( 0 , 1 ) ( 0 , 1 ) ( 0 , 3 ) ( 0 , 3 ) ( 2 , 3 ) ( 0 , 5 ) ( 0 , 5 ) ( 2 , 5 ) ( 0 , 4 ) ( 0 , 4 ) ( 0 , 4 ) ( 0 , 6 ) ( 1 , 6 ) ( 1 , 6 ) ( 0 , Dest ) ( 0 , Dest ) ( 0 , Dest ) ( 3 , 2 ) ( 3 , 2 ) ( 0 , 1 ) ( 4 , 1 ) ( 2 , 3 ) ( 4 , 3 ) ( 2 , 5 ) ( 2 , 5 ) ( 0 , 4 ) ( 0 , 4 ) ( 3 , 6 ) ( 3 , 6 ) ( 0 , Dest ) ( 0 , Dest )
Partial Link Reversal Algorithm ( 0 , 3 , 2 ) ( 0 , 4 , 1 ) ( 0 , 2 , 3 ) ( 0 , 2 , 5 ) ( 0 , 5 , 4 ) ( 0 , 1 , 6 ) ( 0 , 0 , Dest ) Node i : ( a , b , i ) i i Node ID memory Real height (breaks ties)
Partial Link Reversal Algorithm ( 0 , 3 , 2 ) ( 0 , 3 , 2 ) ( 0 , 4 , 1 ) ( 0 , 4 , 1 ) ( 0 , 2 , 3 ) ( 0 , 2 , 3 ) ( 0 , 2 , 5 ) ( 0 , 2 , 5 ) ( 0 , 5 , 4 ) ( 0 , 1 , 6 ) ( 0 , 5 , 4 ) ( 1 , 1 , 6 ) ( 0 , 0 , Dest ) ( 0 , 0 , Dest ) Sink i : before reversal after reversal ( a , b , i ) ( a , b , i ) i i i i a min{ a : j N ( i )} 1 i j b min{ b : j N ( i ) and a b } 1 i j i j
Partial Link Reversal Algorithm ( 0 , 3 , 2 ) ( 0 , 3 , 2 ) ( 0 , 3 , 2 ) ( 0 , 4 , 1 ) ( 0 , 4 , 1 ) ( 0 , 4 , 1 ) ( 0 , 2 , 3 ) ( 0 , 2 , 3 ) ( 1 , 0 , 3 ) ( 0 , 2 , 5 ) ( 0 , 2 , 5 ) ( 1 , 0 , 5 ) ( 0 , 5 , 4 ) ( 0 , 1 , 6 ) ( 0 , 5 , 4 ) ( 1 , 1 , 6 ) ( 0 , 5 , 4 ) ( 1 , 1 , 6 ) ( 0 , 0 , Dest ) ( 0 , 0 , Dest ) ( 0 , 0 , Dest ) ( ( 1 , 1 , 2 ) 1 , 1 , 2 ) ( ( 0 , 4 , 1 ) 1 , 2 , 1 ) ( 1 , 0 , 3 ) ( 1 , 0 , 3 ) ( 1 , 0 , 5 ) ( 1 , 0 , 5 ) ( 0 , 5 , 4 ) ( 1 , 1 , 6 ) ( 0 , 5 , 4 ) ( 1 , 1 , 6 ) ( 0 , 0 , Dest ) ( 0 , 0 , Dest )
Deterministic Link Reversal Algorithms h h 2 2 h h 1 1 h h 3 h h 3 h h h 4 Sink h 5 4 i : 5 before reversal after reversal h h g ( h , h , h , , h ) 1 2 k Deterministic function
Interesting measures: #reversals: total number of node reversals (work) Time: time needed to reach a good state (stabilization time)
Talk Outline Link Reversal Routing Previous Work & Contributions Analysis of Full Reversal Algorithm Analysis of Partial Reversal Algorithm Analysis of Deterministic Algorithms Conclusions
Previous Work Gafni and Bertsekas: IEEE Tsans. on Commun. 1981 • Introduction of the problem • First proof of stability Corson and Ephremides: Wireless Net. Jour. 1995 • LMR – Lightweight Mobile Routing Alg. Park and Corson: INFOCOM 1997 • TORA – Temporally Ordered Routing Alg. Variation of partial reversal Deals with partitions
Previous Work Malpani, Welch and Vaidya.: Workshop on Discr. Alg. And methods for mobile comput. and commun. 2000 • Leader election based on TORA • (partial) proof of stability Experimental work and surveys: Broch et al.: MOBICOM 1998 Samir et al.: IC3N 1998 Perkins: “Add Hoc Networking”, Ad. Wesley 2000 Rajamaran: SIGACT news 2002
Contributions First formal performance analysis of link reversal routing algorithms in terms of #reversals and time
Contributions n bad nodes Full reversal algorithm: ( 2 #reversals and time: ) O n ( 2 There are worst-cases with: ) n Partial reversal algorithm: 2 #reversals and time: ( ) O n a n 2 There are worst-cases with: ( ) n a n depends on the network state a
Contributions n bad nodes Any deterministic algorithm: There are states such that ( 2 #reversals and time: ) n Full reversal is worst-case optimal ( 2 n ) Partial reversal is not ! 2 ( n a n )
Talk Outline Link Reversal Routing Previous Work & Contributions Analysis of Full Reversal Algorithm Analysis of Partial Reversal Algorithm Analysis of Deterministic Algorithms Conclusions
Bad state dest. Good nodes Bad nodes
Resulting Good state dest. For any execution of the full reversal algorithm: • #reversals is the same • Final state is the same (this holds for any deterministic algorithm)
Bad state dest. Good nodes Bad nodes
Layers of bad nodes L L L L 1 2 3 4 dest. Good nodes Bad nodes
Layers of bad nodes L L L L 1 2 3 m dest. A layer:
There is an execution such that: E 1 Every bad node reverses exactly once L L L L 3 1 2 4 dest.
There is an execution such that: E 1 Every bad node reverses exactly once L L L L 3 1 2 4 r r dest. r
There is an execution such that: E 1 Every bad node reverses exactly once L L L L 3 1 2 4 r r dest. r r r
There is an execution such that: E 1 Every bad node reverses exactly once L L L L 3 1 2 4 r r dest. r r r r r r
At the end of execution : E 1 • All nodes of layer become good nodes L 1 • The remaining bad nodes return to the same state as before the execution L L L L 3 1 2 4 r r r r r dest. r r r r r r r
At the end of execution : E 1 • All nodes of layer become good nodes L 1 • The remaining bad nodes return to the same state as before the execution L L L 3 2 4 dest.
There is an execution such that: E 2 Every bad node reverses exactly once L L L 3 2 4 dest.
At the end of execution : E 2 • All nodes of layer become good nodes L 2 • The remaining bad nodes return to the same state as before the execution L L L 3 2 4 dest.
At the end of execution : E 2 • All nodes of layer become good nodes L 2 • The remaining bad nodes return to the same state as before the execution L L 3 4 dest.
At the end of execution : E 3 All nodes of layer become good nodes L 3 L 4 dest.
At the end of execution : E 4 All nodes of layer become good nodes L 4 dest.
L L L L 3 m 1 2 dest. Reversals per node: 0 0 0 0
L L L L 3 m 1 2 dest. Reversals per node: 1 1 1 1 End of execution E 1
L L L L 3 m 1 2 dest. Reversals per node: 1 2 2 2 End of execution E 2
L L L L 3 m 1 2 dest. Reversals per node: 1 3 2 3 End of execution E 3
L L L L 3 m 1 2 dest. Reversals per node: 1 m 3 2 End of execution E m
L L L L 3 m 1 2 dest. Reversals per node: 1 m 3 2 Each node in layer reverses times L i i
L L L L 3 m 1 2 dest. Reversals per node: 1 m 3 2 Nodes per layer: n n n n 1 2 3 m #reversals: m 1 n 2 n 3 n n 1 2 3 m
L L L L 3 m 1 2 dest. For bad nodes, trivial upper bound: ( 2 n ) O n (#reversals and time) #reversals: m 1 n 2 n 3 n n 1 2 3 m n n
( 2 #reversals bound is tight ) O n L L L L 1 2 3 n dest. Reversals n 3 1 2 per node: #reversals: 2 1 2 3 n ( n )
Recommend
More recommend