Remote Deployment of Sensor Networks Presentation 3: Providing connectivity between sensor nodes and uplinks
Overview Ad hoc On Demand Distance Vector (AODV) The Algorithm Visualization Future Work
It is an on demand algorithm, meaning that it builds routes between nodes only as desired by source nodes. When a source node desires a route to a destination for which it does not already have a route, it broadcasts a route request (RREQ) packet across the network. Nodes receiving this packet update their information for the source node and set up backwards pointers to the source node in the route tables. AODV OVERVIEW
A node receiving the RREQ may send a route reply (RREP) if it is either the destination or if it has a route to the destination with corresponding sequence number greater than or equal to that contained in the RREQ. As the RREP propagates back to the source, nodes set up forward pointers to the destination. Once the source node receives the RREP, it may begin to forward data packets to the destination. Once the source stops sending data packets, the links will time out and eventually be deleted from the intermediate node routing tables. We are currently able to simulate the AODV protocol using NS2
Network Overview Mixed node types: satellite uplink nodes and sensor nodes Need to initially establish what uplink node will become network head-end (count and election) Propagate that information through the network (election resolution) Transfer control to other nodes when uplink’s power is low (maintenance)
Network State Machine Initial count for home clusters Flood collision, Wait for end of count Count timeout, transfer counts Instant election, flood results after timeout Maint. phase (keep alives if nec.) Low power
Uplink discovery phase Each uplink node send pkt_Discover, pkt_Discover.src_id = self.id Uplink discovery node agent OnReceive_pkt_Discover() If HomeCluster_ID=Null then HomeCluster_ID = pkt_Discover.src_id Rebroadcast to all neighbors, except source Send ACK to pkt_Discover.src_id Else if pkt_Discover.src_id = HomeCluster_ID then Kill pkt_Discover Else if pkt_Discover.src_id <> HomeCluster_ID then Send pkt_initCountSwap to MYUPLINK_ID AND to pkt_Discover.src_id End if Uplink nodes do not send count tables until they stop receiving ACK’s from the initial discovery (timeout threshold = ?) Algorithm
Uplink Exchange Phase After uplink nodes stop receiving ACK’s from initial flood, adjacent Uplink nodes exchange final counts, propagating throughout the network OnReceive_pkt_initCountSwap() Begin send pkt_mytableUpdate to pkt_initCountSwap.neighbor set haveSwapped[pkt_initCountSwap.neighbor] flag End OnReceive_pkt_mytableUpdate() Begin if pkt_mytableUpdate.table <> mytable then update mytable send pkt_mytableUpdate to all neighbors end if End Total discovered nodes as seen by each node in network (initial)
Election Phase After time Y, election will complete, and the initial uplink node will be decided Resolution Phase Propagate pkt_UplinkChange packets Maintenance Phase If counter > Yellow_threshold then send Pkt_electionResult End if Sensor nodes will make their presence known to their home cluster via: #1 Normal communication will count as Keep-Alive #2 If dormant for significant time, a Keep-Alive packet will be sent If a home cluster’s node count drops by a threshold, T, then the home cluster will send a pkt_mytableUpdate to neighbors, triggering a full network propagation. This will prevent catastrophically widowed uplinks from becoming the new network head.
Topology
Pkt_Discover Uplink Discovery
Shorter path Pkt_Discover Uplink Discovery
Pkt_Discover pkt_initCountSwap Uplink Exchange
Uplink 12 count table, max size 4 kbytes Uplink 11 count table, max size 4 kbytes Uplink Exchange
Pkt_electionResult, change 12 to 11 Election tie, 5 to 5 Tie Breaker: 11 wins, lower node ID Election Resolution
Pkt_electionResult, change 12 to Election Resolution
Pkt_electionResult, change 12 to Election Resolution
SLEEP ACTIVE Maintenance
SLEEP PW LOW Power low, node 11 holds instant election, floods a Pkt_electionResult (change 11 to 12) Maintenance
Future Work Continue to refine and debug algorithm Add agents to NS2 to simulate the algorithm Continue to research visualization methods for wireless networks (nam doesn’t show routes in wireless mode) Write final paper