multi-hop data collection tree protocol

Data Collection and
Dissemination
Learning Objectives
• Understand Trickle – an data dissemination
protocol for WSNs
• Understand data collection protocols in lowduty-cycled WSNs with unreliable links
Prerequisites
• Module 5
• Basic concepts of Computer Networks
Outline
• Data Dissemination
– Estrablishing eventual consistency on a shared
variable
– Trickle – Address single packet
• Data Collection
– DSF
Data Dissemination - Trickle
[Dissemination_1]
5
Simple Broadcast Retransmission
• Broadcast Storm Problem
– Redundant rebroadcasts
– Severe contention
– Collision
Trickle
• Motivation
– WSNs require network code propagation
• Challenges
– 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
12
Trickle – Impact of Packet Loss Rates
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
14
Trickle – Impact of Short Listen Problem
Solution to Short Listen Problem
• Instead of picking a t in the range [0, τ], t is
selected in the range [τ/2, τ]
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
17
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]
20
Sleep Latency in Low Duty-Cycle Sensor
Networks
Sleep now. Wake
up in 57seconds
Sleep now. Wake
up in 35 seconds
D
B
35s latency
C
57s latency
A
13s latency
4s latency
E
Sleep now. Wake
up in 4 seconds
Sleep now. Wake
up in 13 seconds
[Collection_2]
21
Unreliable Radio Links
D
B
70%
90%
C
A
95%
50%
E
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
qualitydelay
based
is 400s solutions
Sole link
cannot help
Areduce E2E delay in extremely low-duty cycle
D
Expected E2E
sensor networks!
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
B
DESS only considers
sleep latency
10%, 10s
10%, 10s
Expected E2E
is 200s solutions
latencydelay
based
Sole sleep
cannot help
D
A
reduce
E2E delayExpected
in extremely
low-duty
cycle
E2E
sensor networks!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
10110101
Off
On
Data Delivery Process
(1 0 0 0 0 0 0 0 0 0)*
(0 1 0 0 0 0 0 0 0 0)*
1
Sleep latency is 1
(0 0 0 1 0 0 0 0 0 0)*
2
Sleep latency is 2
3
(0 0 0 0 0 0 1 0 0 0)*
4
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
(0 1 0 0 0 0 0 0 0 0)* (0 0 0 1 0 0 0 0 0 0)* (0 0 0 0 0 0 1 0 0 0)*
instead of a fixed forwarding node!
(1 0 0 0 0 0 0 0 0 0)*
1
2
3
4
(0 0 1 0 0 0 0 0 0 0)*
Dynamic Switching-based
Forwarding
(DSF) is important
5
1st attempt: Sleep latency is 1
in extremely low duty-cycle
sensor networks.
nd ith attempt: Sleep latency is 1 + 10 * (i-1)
2
2nd attempt: Sleep latency is 1 + 1 =2
attempt: Sleep latency is 1 + 10 =11
Optimization Objectives
• EDR: Expected Delivery Ratio
• EED: Expected End-to-End Delay
• EEC: Expected Energy Consumption
Optimization
Objectives(1) : EDR
Forwarding Sequence
(1000)*
1
2
(0100)*
EDR = 70%
3
(0010)*
EDR = 80%
EDR: Expected Delivery Ratio.
60%
50%
40%
EDR for node 1 is (EDR1):
0.6*0.7 + (1-0.6)*0.5*0.8
+ (1-0.6)*(1-0.5)*0.4*0.9=0.652
4
(0001)*
EDR = 90%
See Equation (3)
Optimization
Objectives(2) : EED
Forwarding Sequence
(100000)*
1
60%
,2
50%
,3
40%
,5
2
(001000)*
EDR = 70%,
EED = 10
3
(000010)*
EDR = 80%,
EED = 12
4
(000001)*
EDR =
90%,
EED = 9
EED: Expected E2E Delay.
EED for node 1 is (EED):
0.6*1/0.7 * (2 + 10) + (1-0.6) *
0.5 * 1 /0.8 * (3 + 12) + (10.6)*(1-0.5)*0.4*1/0.9 * (5 + 9)
See Equation (4)
Optimizing EDR
Shall we try all available neighbors?
(100)*
2
100%
1
(010)*
EDR = 70%
If both node 2 and node 3 are selected
as forwarding nodes:
We should only choose
EDR1a=subset
1 * 0.7 =of0.7
neighboring nodes as forwarding nodes!
100%
3
(001)*
EDR = 80%
If only node 3 is selected as
forwarding node:
EDR1 = 1 * 0.8 = 0.8
Optimizing EDR with dynamic
programming
Try or skip
(100)*
1
2
60%
50%
(010)*
EDR = 70%
Try or skip
3
40%
Node 4 has to be selected
(001)*
EDR = 80%
Try or drop
4
Select only a subset of neighbors as
forwarders
(100)*
EDR = 90%
Then we attempt to add more nodes
into the forwarding sequence
backwardly.
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
EDR = 97%, EED = 20, EEC = 5
4
EDR = 90%, EED = 90, EEC = 12
Complete Protocol Implementation at Node e
Assignment
• 1. Please give one example to illustrate what the
short-listen problem in the context of Trickle
algorithms is.
• 2. How does Trickle algorithms solve the short-listen
problem?
• 3. Why do not we use a constant τ in Trickle
algorithm?
• 4. Why do we need to consider both link quality and
the low-duty-cycle nature of wireless sensor networks
when we design suitable applications?
Project
• This is a group project. Each group can have up to 3 students
• Project Description
• In this project, you will develop a multi-hop data collection
tree protocol based on TinyOS 2.x.
1. Development of a multi-hop data collection tree protocol
1.1 The protocol to form a multi-hop data collection tree
The base station locally broadcast a tree construction
message, which includes its own ID and its depth to be 0;
a. When a node, say A, receives a tree construction message from
node B at its first time (i.e., node A has not joined the data collection
tree yet), node A assigns its depth to be the depth of node B plus one,
and its parent to be node
B. After this, node A rebroadcasts the tree
construction message.
40
Project - continue
b. When a node, say A, already joins the data collection
tree and receives a tree construction message from node
B, node A just simply disregards the tree construction
message.
c. When a node, say A, already joins the data collection
tree (suppose that node A’s parent is node B and node A’s
depth is n) and receives a tree construction message from
node C:
1. suppose that if node A selects node C as its parent,
node A’s depth is m;
2. suppose m < n;
node A will change its parent to node C.
41
Project - continue
Depth = 0
Base Station
Depth = 1
J
Depth = 3
Depth = 2
G
Depth = 2
I
A
H
Depth = 3
F
Depth = 3
B
Depth = 3
D
C
Depth = 3
E
Depth = 3
Depth = 3
one example multi-hop data collection tree
42
Project - continue
• Also see attached slide tree.ppt for a dynamic view
about how to construct a multi-hop data collection
tree.
1.2 After the multi-hop data collection tree is formed,
each node senses and transmits its light intensity to
the base station every one second. For each received
message, the base station displays the following
information:
– Node ID which originates the message;
– Tree depth of the Node;
– Sensed light value
43
Project - continue
• Basic Steps:
Please follow the steps listed below:
1. Setting up TinyOS environment XubunTOS
XubunTOS can be downloaded here:
http://toilers.mines.edu/Public/XubunTOS
2. Go through the TinyOS tutorials at
http://docs.tinyos.net/index.php/TinyOS_Tutor
ials
44