1.05k likes | 1.3k Views
Leader Election and Mutual Exclusion Algorithms for Wireless Ad Hoc Networks. CPSC 661 Distributed Algorithms Abhishek Gaurav Alok Madhukar. Part 1: Leader Election Algorithms for Wireless Ad Hoc Networks. What is a mobile ad hoc network? Use of Leader election in mobile systems
E N D
Leader Election and Mutual Exclusion Algorithms for Wireless Ad Hoc Networks. CPSC 661 Distributed Algorithms Abhishek Gaurav Alok Madhukar
Part 1: Leader Election Algorithms for Wireless Ad Hoc Networks • What is a mobile ad hoc network? • Use of Leader election in mobile systems • Challenges in making algorithms for mobile ad hoc network. • Model and Assumptions • Earlier Algorithms • Overview of Leader Election Algorithm • The Algorithm • Conclusion
Wireless Networks – Operating Modes Infrastructure Mode Ad Hoc Mode
Wireless Ad Hoc Networks - Characteristics - Wireless - Highly Mobile - No Access Points/Infrastructure - All nodes are peers - All nodes are routers - Network is formed dynamically
Wireless Ad Hoc Networks - Routing Alok Ian
Wireless Ad Hoc Networks - Routing Alok Gabriel Ian
Wireless Ad Hoc Networks - Routing Abhishek Alok Lisa Ian Gabriel
Use of Leader Election in Mobile Systems • Useful building block when failures are frequent • Lost Token in Mutual Exclusion • Group Communication Protocols • New Coordinator when Group Membership changes
Challenges in making Algorithms for Wireless Ad Hoc Networks • Communication link – function of position, transmission power levels, antenna patterns, co-channel reference levels, etc. • Frequent and unpredictable Topological Changes • Congested Links
New Definition Vs Classical Definition - Classical Definition 1. Eventually there is a leader with termination detection 2. There should never be more than one leader - New Definition 1. Any component whose topology is static sufficiently long will eventually have a leader with termination detection 2. There should never be more than one leader for any given component
Basic Ideas - Leader-Oriented DAG - Partition from Leader - Merging of Components - Multiple Topology Changes
System Model - N independent mobile nodes - Message passing over wireless network - Network – dynamically changing, not necessarily connected, a graph with nodes as vertices and edges between nodes that can communicate
Assumptions on System Model - Nodes have unique node identifiers - Communication links are bidirectional, reliable, FIFO - Link level protocol: aware of the neighbors - One Topological change at a time
Problem Statement - For every connected component C of the topology graph, there is a node l in C, s.t. lidi = l for each node i in C. - Eventually, each connected component is a directed acyclic graph with the leader as the single sink (leader-oriented DAG)
Existing Algorithms • Shortest Path and Adaptive Shortest Path Algorithms • Designed for static and quasi-static hard-wired links • Do not react fast enough to maintain routing • Only 1 path for routing between any source/destination pair • Link State Algorithms • Maintain multiple path for routing • Time and communication overhead associated with maintaining full topological knowledge at each router makes them impractical
Introduction of Link Reversal Routing - Objectives • Executes in a distributed environment • Provides loop-free routes • Provides multiple routes (to alleviate congestion) • Establishes routes quickly • Minimize communication overhead by localizing algorithmic reaction to topological changes when possible
Link Reversal Routing (LRR) - Approach • LRR Algorithms maintain only distributed state information sufficient to constitute an Directed Acyclic Graph (DAG), rooted at the destination • Maintenance of a distributed DAG is desirable, as it guarantees loop-freedom and can provide participating nodes with multiple, redundant routes to the destination • Route maintenance is triggered when a node i loses the link to its last downstream neighbor
Basis • Gafni – Bertsekas Algorithm [1]: 1981 • Temporally Ordered Routing Algorithm (TORA) [2]: 1997
Leader Oriented DAG Reference2 Height2 Height1 Height2 > Height1 Reference2 > Reference1 Reference1 fig. A Leader Oriented DAG
Leader Election Algorithm - An Overview A D B E C fig. C is in trouble (It has no outgoing link)
Leader Election Algorithm - An Overview (cont’d…) C A D B E fig. C becomes originator of a new higher reference level
Leader Election Algorithm - An Overview (cont’d…) C A D B E fig. E is in trouble and sees that neighbors have different levels
Leader Election Algorithm - An Overview (cont’d…) C E A D B fig. E goes to new reference level and selects height just below C
Leader Election Algorithm - An Overview (cont’d…) C E A D B fig. Link from C to E is not reversed, but link from D to E is reversed
Leader Election Algorithm - An Overview (cont’d…) C E A D B fig. D in trouble
Leader Election Algorithm - An Overview (cont’d…) C E D A B fig. D goes to new reference level and selects height just below E
Leader Election Algorithm - An Overview (cont’d…) C E D A B Everyone is happy fig. Links C to D and E to D are intact but A to D reverse
Leader Election Algorithm - An Overview (cont’d…) C E D A B Alas!! fig. Link Break disconnects the component from leader
Leader Election Algorithm - An Overview (cont’d…) C E D A B fig. B is in trouble since it has lost all outgoing links
Leader Election Algorithm - An Overview (cont’d…) C E B D A fig. B selects new height in new (highest) reference level
Leader Election Algorithm - An Overview (cont’d…) C E B D A A sees something different !! – All neighbors are in higher level fig. A is in trouble
Leader Election Algorithm - An Overview (cont’d…) A C E B D {φ} fig. A creates higher sublevel within the new sub-level
Leader Election Algorithm - An Overview (cont’d…) A C E B D {φ} fig. All links to A are reversed
Leader Election Algorithm - An Overview (cont’d…) A C E B D C knows that there is no route to the leader fig. Higher Sub-level is reflected back to C (originator)
Leader Election Algorithm - An Overview (cont’d…) A C E B D All nodes adjust their height w.r.t. leader fig. C elects itself the leader and propagates the message
Leader Election Algorithm - An Overview (cont’d…) A C E B D Everyone is happy again fig. The separated component becomes a leader-oriented DAG
Node Height in LE The height of node i is an ordered six-tuple (lidi, τi, oidi, ri, δi, i) • lidi: id of the node believed to be the leader of i’s component • τi: the “logical time” of link failure, defining a new reference level • oidi: the unique id of the node that defined the reference level • ri: a bit used to divide each of the unique reference levels into two unique sub-levels – reflected and unreflected • δi: a “propagation” ordering parameter • i: the unique id of the node (τi, oidi, ri) represents the reference level and (δi, i) represents the “delta” or offset w.r.t. reference level. The reference level (-1,-1,-1) is used by the leader of a component to ensure that it is a sink.
The Algorithm Node i: • Each step is triggered either by the notification of the failure or formation of an incident link or by the receipt of a message from a neighbor. • Local variable Ni: to store its neighbors' ids. When an incident link fails, i updates Ni. When an incident link forms, i updates Ni and sends an Update message over the link with its current height. • The only kind of message sent is an Update message, which contains the sender's height. • At the end of each step, if i's height has changed, then it sends an Update message with the new height to all its neighbors.
The Algorithm (cont’d…) • When node i has no outgoing links due to a link failure: • if node i has no incoming links as well then • lidi := i • (τi, oidi, ri) := (-1,-1,-1) • δi := 0 • else • (τi, oidi, ri) := (t, i, 0) // t is the current time • δi := 0
The Algorithm (cont’d…) B. When node i has no outgoing links due to a link reversal following reception of an Update message and the reference levels (τj, oidj, rj) are not equal for all j є Ni: • (τi, oidi, ri) := max{(τj, oidj, rj) I j є Ni) • δi := min{δj I j є Ni and (τj, oidj, rj) = (τi, oidi, ri)} - 1
The Algorithm (cont’d…) C. When node i has no outgoing links due to a link reversal following reception of an Update message and the reference levels (τj, oidj, rj) are equal with rj = 0 for all j є Ni: • (τi, oidi, ri) := (τj, oidj, rj) for any jє Ni) • δi := 0
The Algorithm (cont’d…) D. When node i has no outgoing links due to a link reversal following reception of an Update message and the reference levels (τj, oidj, rj) are equal with rj = 1 for all j є Ni: • lidi = i • (τi, oidi, ri) := (-1, -1, -1) • δi := 0
The Algorithm (cont’d…) E. When node i receives an Update message from neighboring node j such that lidi ≠ lidj • if lidi > lidj or (oidi = lidjand ri = 1) then • lidi = lidj • (τi, oidi, ri) := (0, 0, 0) • δi := δj+ 1
Example (A, -1, -1, -1, 0, A) (F, 2, A, 1, -1, D) (F, 0, 0, 0, 1, E) (F, 2, A, 1, 0, B) (F, -1, -1, -1, 0, F) (F, 0, 0, 0, 1, H) (F, 0, 0, 0, 2, G) fig.1 Node A detects a partition and elects itself as leader
Example (cont’d…) Update (A, -1, -1, -1, 0, A) (A, 0, 0, 0, 1, D) (F, 0, 0, 0, 1, E) Update (A, 0, 0, 0, 1, B) (F, -1, -1, -1, 0, F) (F, 0, 0, 0, 1, H) (F, 0, 0, 0, 2, G) fig.2 Nodes B and D update their heights
Example (cont’d…) (A, 0, 0, 0, 1, D) (A, -1, -1, -1, 0, A) Update (A, 0, 0, 0, 2, E) (A, 0, 0, 0, 1, B) (F, -1, -1, -1, 0, F) (F, 0, 0, 0, 1, H) (F, 0, 0, 0, 2, G) fig.3 Nodes B and E detect link formation and node E changes leader
Example (cont’d…) (A, 0, 0, 0, 1, D) (A, -1, -1, -1, 0, A) (A, 0, 0, 0, 2, E) (A, 0, 0, 0, 1, B) Update (A, 0, 0, 0, 3, F) (F, 0, 0, 0, 1, H) (F, 0, 0, 0, 2, G) fig.4 Node F propagates leader change
Example (cont’d…) (A, 0, 0, 0, 1, D) (A, -1, -1, -1, 0, A) (A, 0, 0, 0, 2, E) (A, 0, 0, 0, 1, B) (A, 0, 0, 0, 3, F) Update (A, 0, 0, 0, 4, H) (F, 0, 0, 0, 2, G) fig.5 Node H propagates leader change
Example (cont’d…) (A, 0, 0, 0, 1, D) (A, -1, -1, -1, 0, A) (A, 0, 0, 0, 2, E) (A, 0, 0, 0, 1, B) (A, 0, 0, 0, 3, F) Update (A, 0, 0, 0, 4, H) (A, 0, 0, 0, 5, G) fig.6 Node G propagates leader change
Proof of Correctness We believe the proof that each component is a leader – oriented DAG with the assumption of one change at a time can be converted to simple graph-theoretic proof and we are working on it.