Information propagation TDDI07 Distributed Embedded Software and Networks Mikael Asplund Department of Computer and Information Science Linköping University Information propagation goals ● Minimal control overhead (energy, bandwidth) ● Minimal processing overhead ● Multihop capability ● Dynamic topology maintenance ● Loop prevention A B C S D E Information propagation schemes ● ● ● ● ● ● Unicast Anycast Multicast Broadcast Manycast Convergecast Deliver a message to a specified node Information propagation schemes ● ● ● ● ● ● Unicast Anycast Multicast Broadcast Manycast Convergecast Deliver a message to any of a group of nodes (usually to the one closest to the source) Information propagation schemes ● ● ● ● ● ● Unicast Anycast Multicast Broadcast Manycast Convergecast Deliver a message to a group of nodes that have expressed interest in receiving the message Information propagation schemes ● ● ● ● ● ● Unicast Anycast Multicast Broadcast Manycast Convergecast Deliver a message to all the nodes in the network Information propagation schemes ● ● ● ● ● ● Unicast Anycast Multicast Broadcast Manycast Convergecast 3 Deliver a message to at least k nodes in the network Information propagation schemes ● ● ● ● ● ● Unicast Anycast Multicast Broadcast Manycast Convergecast Inverse of broadcast/multicast ID-based or Data-driven ● ID-based routing ● ● ● Route a message from a source to one or more destination using addressing Dissemination ● Deliver data to many nodes (one-to-many) ● Anycast/Manycast/Broadcast ● Rumor/Epidemics Collection ● Gather the data in particular nodes of the network (sink) ● Many-to-one traffic pattern 2011-02-17 Baspresentation LiU Unicast Routing Categories ● ID-based Flat ● ID-based Hierarchical ● Location-based Terminology ● ● Link State routing ● Each node stores a connectivity map of the entire network Distance vector routing ● ● Nodes share routing tables with their neighbors Source routing ● Allows the sender to specify exactly the route for a packet through the network Routing Example B A C S D E Destination Next-hop neighbor Cost Destination Next-hop neighbor Cost A A 1 A S 2 D A 3 D C 2 D B 3 D S 3 D E 2 E S 2 E E 1 E C 3 Ad Hoc Routing Protocols: Classification ● ● ● ● When does the routing protocol operate? Option 1: Routing protocol always tries to keep its routing data up-to-date ● Protocol is proactive (active before tables are actually needed) or table-driven Option 2: Route is only determined when actually needed ● Protocol operates on demand, it is reactive Option 3: Combine the previous two alternatives ● Hybrid protocols Proactive Protocols ● ● ● ● Find routes only when needed ● Periodically updates the routing tables to keep them up-to-date Examples: ● DSDV ● OLSR Pros: ● The networks is reactive to changes, low latency Cons: ● Signalling overhead Reactive Protocols ● ● ● ● Find routes only when needed ● Route discovery procedure to find a path to the destination Examples: ● DSR ● AODV Pros: ● Reduce the signalling overhead Cons: ● Introduce latency Energy-Efficient Unicast: Goals ● Particularly interesting performance metric: Energy efficiency A 3 4 2 1 3 D C 2 B 1 2 1 E 2 3 1 H G F 2 2 4 2 Example: Send data from node A to node H 4 Energy-efficient routing ● Minimize energy/bit ● Maximize network lifetime ● Maximum available power ● Minimum battery cost (using reciprocal of battery capacity) ● Min-max battery cost routing (choose path with minimal maximum reciprocal) Flooding, the base of all routing ● Reaches all nodes (?) ● Simple ● Problem: Broadcast storm ● Can be restricted ● Needed for discovery ● Gossiping: improves flooding by randomly choosing a neighbour to which forwarding the packet Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line ? intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line ? intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line ? intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line ? intersections Rumor Routing ● Turn routing problem around: Think of an “agent” wandering through the network, looking for data (events, …) Agent initially perform random walk Leave “traces” in the network Later agents can use these traces to find data Essentially: works due to high probability of line ? intersections Unicast Routing Categories ● ID-based Flat ● ID-based Hierarchical ● Location-based Hierarchical Networks – Backbones ● Idea: Select some nodes from the network/graph to form a backbone ● A connected, minimal, dominating set (MDS or MCDS) ● ● ● Dominating nodes control their neighbors Protocols like routing are confronted with a simple topology – from a simple node, route to the backbone, routing in backbone is simple (few nodes) Problem: MDS is an NP-hard problem ● Hard to approximate, and even approximations need quite a few messages Backbone by Growing a Tree Construct the backbone as a tree, grown iteratively Backbone by Growing a Tree – Example 1: 2: 3: 4: Problem: Which Gray Node to Pick? When blindly picking any gray node to turn black, resulting tree can be very bad u u d ... d ... d ... ... ... ... ... ... ... v Solution: Look ahead! One step suffices Look ahead using nodes g and w u v v u g u d ... d ... ... ... ... ... v=w v Start Big, Make Lean ● ● Idea: start with some, possibly large, connected dominating set, reduce it by removing unnecessary nodes Initial construction for dominating set ● All nodes are initially white ● ● Mark any node black that has two neighbours that are not neighbours of each other (they might need to be dominated) ! Black nodes form a connected dominating set (for connected non-complete networks); shortest path between ANY two nodes only contains black nodes ● Needed: Pruning heuristics Pruning Heuristics ● Heuristic 1: Unmark node v if ● Node v and its neighborhood are included in the neighborhood of some node marked node u (then u will do the domination for v as well) ● ● Node v has a smaller unique identifier than u (to break ties) Heuristic 2: Unmark node v if ● ● Node v’s neighborhood is included in the neighborhood of two marked neighbors u and w Node v has the smallest identifier of the tree nodes a u v w b c d Clustering ● ● Partition nodes into groups of nodes – clusters Many options for details ● Are there clusterheads? – One controller/representative node per cluster ● ● May clusterheads be neighbors? If no: clusterheads form an independent set Typically: clusterheads form a maximum independent set May clusters overlap? Do they have nodes in common? Maximum Independent Set ● ● ● ● Definition: maximum set of nodes that are not connected Computing a maximum independent set is NP-complete Show: A maximum independent set is also a dominating set Maximum independent set not necessarily intuitively desired solution ● Example: Radial graph, with only (v0,vi) E A Basic Construction Idea for Independent Sets • • • Init: 1 2 3 7 6 5 4 Step 1: 1 2 3 7 6 5 4 Step 2: 1 2 3 7 6 5 4 Make each node a clusterhead that locally has the largest attribute value Step 3: 1 2 3 7 6 5 4 Once a node is dominated by a clusterhead, it abstains from local competition, giving other nodes a chance Step 4: 1 2 3 7 6 5 4 Use some attribute of nodes to break local symmetries • Node identifiers, energy reserve, mobility, weighted combinations… - matters not for the idea as such (all types of variations have been looked at) Determining Gateways to Connect Clusters ● ● ● ● Suppose: Clusterheads have been found How to connect the clusters, how to select gateways? It suffices for each clusterhead to connect to all other clusterheads that are at most three hops away ● Resulting backbone (!) is connected Formally: Steiner tree problem ● ● Given: Graph G=(V,E), a subset C V Required: Find another subset T V such that C T is connected and C T is the cheapest such set ● Cost metric: number of nodes in T, link cost ● Here: special case since nodes in C are an independent set Rotating Clusterheads ● ● Serving as a clusterhead can put additional burdens on a node ● For MAC coordination, routing, … Rotate ● Periodically reelect ● LEACH – determine an optimal percentage P of nodes to become clusterheads in a network – Use 1/P rounds to form a period – In each round, nP nodes are elected as clusterheads – At beginning of round r, node that has not served as clusterhead in this period becomes clusterhead with probability P/(1-P(r mod 1/P)) Unicast Routing Categories ● ID-based flat ● ID-based hierarchical ● Location-based Basics of Position-based Routing ● ● ● Most forward within range r ● Send to that neighbor that realizes the most forward progress towards destination ● Problem: being greedy, it often selects a long path (hop count) Nearest node with (any) forward progress ● Idea: Minimize transmission power Directional routing ● Choose next hop that is angularly closest to destination ● Choose next hop that is closest to the connecting line between source and destination ● Problem: Might result in loops! Problem: Dead Ends ● Simple strategies might send a packet into a dead end ● Possible solution: Greedy Perimeter Stateless Routing (GPSR) GPSR – Example ● Route packet from node A to node Z E B A I F H K Z D J C G L GPSR – Example ● Route packet from node A to node Z E B A I F H K Z D J C G L GPSR – Example ● Route packet from node A to node Z E B A I F H K Z D J C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G Face: largest region not cut by other edges L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G Face: largest region not cut by other edges L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L GPSR – Example ● Route packet from node A to node Z E B A I F H Z D J Enter face routing K C G L ID-based or Data-driven ● ID-based routing ● ● ● Route a message from a source to one or more destination using addressing Dissemination ● Deliver data to many nodes (one-to-many) ● Anycast/Manycast/Broadcast ● Rumor/Epidemics Collection ● Gather the data in particular nodes of the network ● Many-to-one traffic pattern 2011-02-17 Baspresentation LiU Why collection protocols? ● ● Monitoring applications ● Sense data ● Send it to collecting nodes Can't we use the previous MANET protocols? ● Resource constraints ● Unstable links and network topologies ● Scalability issues ● Self-organising features required 2011-02-17 Baspresentation LiU Collection trees ● Network topology: tree structure ● ● ● The root is the “sink” Leaves and intermediate nodes are normal nodes Routing: ● each node forward the packet to its parent http://sing.stanford.edu/gnawali/ctp/CTP-SenSys2009.pdf 2011-02-17 Baspresentation LiU Cost-based routing 2011-02-17 Baspresentation LiU Cost-based routing 1 8 2011-02-17 Baspresentation LiU Cost-based routing 4 1 9 8 4 2011-02-17 Baspresentation LiU Cost-based routing 4 3 1 9 8 8 4 2011-02-17 Baspresentation LiU Cost-based routing 4 3 1 10 9 8 8 4 2011-02-17 Baspresentation LiU Cost-based routing 1 8 4 5 1 3 10 8 18 9 8 12 4 2011-02-17 Baspresentation LiU 8 Cost-based routing 1 8 4 5 1 3 10 8 18 9 8 12 4 2011-02-17 Baspresentation LiU 8 Cost-based routing 2011-02-17 Baspresentation LiU Collection Tree Protocol ● State of the art protocol for Wireless Sensor Networks ● Characteristics ● Distance vector ● Distributed ● Cost-based ● Proactive and reactive elements 2011-02-17 Baspresentation LiU Cost metric: ETX ● Expected Number of Transmissions (ETX) ● Sink cost = 0 ● The cost monotonically decreases while reaching the sink 4 1 5 1 3 8 10 8 18 9 8 12 4 2011-02-17 Baspresentation LiU CTP features ● Datapath validation ● Use data packet to check topology inconsistency – Loop detection The cost must decrease while reaching the sink! 1 25 19 3 1 8 10 8 9 8 1 12 4 2011-02-17 Baspresentation LiU 18 CTP features ● Beaconing ● ● ● Usually fixed intervals Tradeoff between energy (and bandwidth) vs agility in updating the network topology Adaptive beaconing ● Increase the interval if nothing happens ● Reset the interval if an event occurs – Loop detected during datapath validation – Significant change of cost – New node asking neighbour information 2011-02-17 Baspresentation LiU