Data Collection and Dissemination
Outline Data Dissemination Data Collection Trickle – Address single packet Data Collection DSF
Data Dissemination - Trickle
Simple Broadcast Retransmission Broadcast Storm Problem Redundant rebroadcasts Severe contention Collision
Trickle Motivation Challenges WSNs require network code propagation WSNs exhibit highly transient loss patterns, susceptible to environmental changes WSNs network membership is not static Motes must periodically communicate to learn when there is new code Periodical metadata exchange is costly
Trickle Requirement Low Maintenance Rapid Propagation Scalability
Trickle An algorithm for code propagation and maintenance in WSNs Based on “Polite Gossip” Each node only gossip about new things that it has heard from its neighbors, but it won’t repeat gossip it has already heard, as that would be rude Code updates “trickle” through the network
Trickle Within a node time period If a node hears older metadata, it broadcasts the new data If a node hears newer metadata, it broadcasts its own metadata (which will cause other nodes to send the new code) If a node hears the same metadata, it increases a counter If a threshold is reached, the node does not transmit its metadata Otherwise, it transmits its metadata
Trickle – Main Parameters Counter c: Count how many times identical metadata has been heard k: threshold to determine how many times identical metadata must be heard before suppressing transmission of a node’s metadata t: the time at which a node will transmit its metadata. t is in the range of [0, τ]
Trickle Maintenance – One Example Assume No packet loss Perfect interval synchronization How to relax these assumptions? [Dissemination_1]: Figure 3
Trickle Maintenance without Synchronization – Short Listen Problem Mote B selects a small t on each of its three intervals Although other motes transmit, mote B’s transmissions are never suppressed The number of transmissions per intervals increases significantly [Dissemination_1]: Figure 5
Solution to Short Listen Problem Instead of picking a t in the range [0, τ], t is selected in the range [τ/2, τ]
[Dissemination_1]: Section 5 Propagation Tradeoff between different values of τ A large τ Low communication overhead Slowly propagates information A small τ High communication overhead Propagate more quickly How to improve? Dynamically adjust τ Lower Bound τl Upper Bound τh [Dissemination_1]: Section 5
Trickle Complete Algorithm
Data Collection
Data Collection Link-Quality based Data Forwarding Wireless communication links are extremely unreliable ETX: to find high-throughput paths on multiple Sleep-Latency Based Forwarding Duty Cycling: sensor nodes turn off their radios when not needed Idle listening waste much energy [Collection_2]
Sleep Latency in Low Duty-Cycle Sensor Networks Sleep now. Wake up in 57seconds Sleep now. Wake up in 35 seconds D B 57s latency 35s latency A 13s latency 4s latency E C Sleep now. Wake up in 4 seconds Sleep now. Wake up in 13 seconds [Collection_2] 17
Unreliable Radio Links 70% 90% A 50% 95% C E 18
State-of-the-art Solutions: ETX ETX only considers link quality ETX = 1/0.5 + 1/0.5 = 4 B 50%, 100s 50%, 100s Expected E2E delay is 400s Sole link quality based solutions cannot help reduce E2E delay in extremely low-duty cycle sensor networks! A D Expected E2E delay is 50s 40%, 10s 40%, 10s C ETX = 1/0.4 + 1/0.4 = 5
State-of-the-art Solutions: DESS DESS = 10 + 10 = 20s DESS only considers sleep latency B 10%, 10s 10%, 10s Expected E2E delay is 200s Sole sleep latency based solutions cannot help reduce E2E delay in extremely low-duty cycle sensor networks! D A Expected E2E delay is 40s 100%, 20s 100%, 20s C DESS = 20 + 20 = 40s
End-to-End Delay vs. Duty Cycle Suppose one fixed forwarding node Suffer excessive delivery delays when waiting for the fixed receiver to wake up again if the ongoing packet transmission fails
End-To-End Delay vs. Average Link Quality Given bad link quality, the end to end delay increases dramatically
Sensor States Representation Scheduling Bits (10110101)* Switching Rate 0.5HZ 16s round time 1 1 1 1 1 Off On
Data Delivery Process 1 2 3 4 End to End (E2E) Delay is 6 ( 1 )* ( 1 )* ( 1 )* ( 1 )* ( 1 )* 1 2 3 4 Sleep latency is 1 Sleep latency is 2 Sleep latency is 3 End to End (E2E) Delay is 6
Main Idea Sleep latency is 1 We should try a sequence of forwarding nodes instead of a fixed forwarding node! ( 1 )* ( 1 )* ( 1 )* ( 1 )* 1 2 3 4 ( 1 )* 5 1st attempt: Sleep latency is 1 Dynamic Switching-based Forwarding (DSF) is important in extremely low duty-cycle sensor networks. ith attempt: Sleep latency is 1 + 10 * (i-1) 2nd attempt: Sleep latency is 1 + 10 =11 2nd attempt: Sleep latency is 1 + 1 =2 25
Optimization Objectives EDR: Expected Delivery Ratio EED: Expected End-to-End Delay EEC: Expected Energy Consumption
Optimization Objectives(1) : EDR Forwarding Sequence EDR: Expected Delivery Ratio. 2 60% (010)* EDR = 70% (100)* 1 3 EDR for node 1 is (EDR1): (001)* EDR = 80% 50% 0.6*0.7 + (1-0.6)*0.5*0.8 40% + (1-0.6)*(1-0.5)*0.4*0.9=0.652 4 (100)* EDR = 90% See Equation (3)
Optimizing EDR Shall we try all available neighbors? If both node 2 and node 3 are selected as forwarding nodes: EDR1 = 1 * 0.7 = 0.7 2 (010)* EDR = 70% 100% (100)* We should only choose a subset of neighboring nodes as forwarding nodes! 1 100% If only node 3 is selected as forwarding node: EDR1 = 1 * 0.8 = 0.8 3 (001)* EDR = 80%
Optimizing EDR with dynamic programming Try or skip 2 Select only a subset of neighbors as forwarders (010)* EDR = 70% (100)* 60% Try or skip Node 4 has to be selected 1 3 (001)* EDR = 80% 50% Then we attempt to add more nodes into the forwarding sequence backwardly. 40% Try or drop 4 (100)* EDR = 90%
Distributed Implementation EDRb(Ø) = 1 The sink node has no packet loss EEDb(Ø) = 0 The sink node has no delay EECb(Ø) = 0 The sink node has no energy consumption
Distributed Implementation EDR = 99%, EED = 15, EEC = 2 EDR = 98%, EED = 2, EEC = 1 1 3 EDR = 100%, EED = 0, EEC = 0 sink 2 4 EDR = 97%, EED = 20, EEC = 5 EDR = 90%, EED = 90, EEC = 12
Complete Protocol Implementation at Node e