Professional Documents
Culture Documents
DIRECTED DIFFUSION
interests
Source
Sink
Events
Gradients
Source
Sink
Source
Sink
When a node receives an interest, it checks if the interest exists in the cache. If
no matching interest exists, the node creates an interest entry and determines each field
of the interest entry from the received interest. This entry contains a single gradient
toward the neighbor from which the interest was received. Gradient is composed of a
value and a direction in which to send events. In our sensor network, the gradient value
is the data rate.
After a node in the specified region receives an interest, the node tasks its local
sensors to collect samples. A sensor node that detects a target searches its interest
cache for a matching interest entry. Upon finding the entry, the sensor node computes
the highest requested event rate among all its outgoing gradients. The node then tasks
its sensor subsystem to generate event samples at this highest event rate.
A node that receives an event from its neighbors also searches its interest cache
for a matching interest entry. If no match exists, the event is dropped. If a match exists,
the node searches the data cache, associated with the matching interest entry for a
matching data entry to detect and to prevent a data loop. If a received event matches a
data entry, the event is dropped. Otherwise, the received event is added to the data
cache and resent to the node’s neighbors.
A node can also examine its data cache to determine the data rate of received
events. To re-send a received event, a node needs to examine the matching interest
entry’s gradient list. If gradients are at a data rate that is greater than or equal to the
rate of received events, the node may simply send the received event to the
corresponding neighbors. However, if gradients are at a lower data rate than others, the
node may downconvert to the appropriate gradient.
When sources detect a matching target, they send exploratory events possibly
along multiple paths toward the sink. After the sink receives these exploratory events,
it reinforces at least one particular neighbor to draw down real data. Events at a higher
data rate, allow high quality tracking of targets. The data gradients set up is used for
receiving high quality tracking events.
.
3.3.1 Path Establishment Using Positive Reinforcement
If the new event rate is also higher than that of any existing gradient, the node
must also reinforce at least one neighbor. If, this node might select the neighbor from
which it first received the latest exploratory event matching the interest. Alternatively,
it might select all neighbors from which distinct exploratory events were recently
received. Through this sequence of local interactions, at least one data path is
established from source to sink.
Whenever one path delivers an exploratory event faster than others, the sink
attempts to use this path to draw down data. Therefore, the rate of the exploratory
event is a tradeoff parameter between reactivity and energy efficiency. The following
Figure 3.4 represents the gradients after positive reinforcement.
Events
Gradients
Source
Sink
Figure 3.4 Gradients after the sink reinforces the empirically lowest delay path.
So far, the reinforcement from sink was discussed, but intermediate nodes on a
previously reinforced path can also apply the reinforcement rules. Such reinforcement
by intermediate nodes is very useful to enable local recovery of failed or degraded
paths caused by several factors like, node energy depletion, obstacle. Consider in the
Figure 3.5, the link quality between the source and node C degrades and events are
frequently corrupted.
When C detects this degradation either by noticing that the event reporting rate
from its upstream neighbor is now lower or by realizing that other neighbors have been
transmitting previously unseen location estimates, C can apply the reinforcement rules
to discover a new path. However, it is possible that all nodes downstream of the lossy
link may initiate reinforcement procedures. As a result, several data paths are
established, and resources are wasted. A possible mechanism to avoid implosion of
reinforcements is that C may interpolate location estimates from the received events so
that downstream nodes still perceive high quality tracking.
Events
C
Gradients
Source
Sink
Figure 3.5 Gradients after local repair caused by connection quality degradation.
Positive reinforcement can result in more than one reinforced path. Consider in
Figure 3.6, if the sink reinforces neighbor A, but then receives a new exploratory event
from neighbor B, it will reinforce B .This path may or may not be completely disjoint
from the path through neighbor A. If the path through B is consistently better
Events B
Gradients
Source
A Sink
the sink needs a mechanism to degrade or to negatively reinforce the path through A.
One mechanism for negative reinforcement is soft state, to time out all data gradients
unless they are explicitly reinforced. With this approach, the sink would periodically
reinforce B and cease reinforcing A. The path through A would eventually be degraded
to being exploratory gradients. Another approach is to explicitly degrade the path
through A by sending a negative reinforcement message to A. In the rate-based
diffusion, the negative reinforcement is the interest with the lower data rate.
The Directed Diffusion protocol includes a family of algorithms. They are two-
phase pull diffusion, push diffusion, one-phase pull diffusion.
If a user in the network would like to track an object in some remote sub-
region. The user would subscribe to that particular object information, specified by a
set of attributes. Sensors across the network publish that information. The user’s
application subscribes to data using a list of attribute-value pairs that describe a task
using some task-specific naming scheme. Intuitively, attributes describe the data that is
desired by specifying sensor types and possibly some geographic region. The user’s
node becomes a sink, creating an interest of attributes specifying a particular kind of
data.
The initial data message from the source is marked as exploratory and is sent to
all neighbors for which it has matching gradients. The initial flooding of the interest,
together with the flooding of the exploratory data (Figure 3.10), constitutes the first
phase of two-phase pull diffusion. If the sink has multiple neighbors, it chooses to
receive subsequent data messages for the same interest from a preferred neighbor, that
is, the one which delivered the first copy of the data message.
The sink reinforces (Figure 3.11) the preferred neighbor, which, in turn
reinforces its preferred upstream neighbor, and so on. The sink may also negatively
reinforce its current preferred neighbor if another neighbor delivers better lower
latency sensor data. This negative reinforcement propagates neighbor-to-neighbor,
removing gradients and tearing down and existing path if it is no longer needed.
Negative reinforcements suppress loops or duplicate paths that may arise due to
changes in network topology.
After the initial exploratory data message, subsequent messages are sent only
on reinforced paths. The path reinforcement, and the subsequent transmission of data
(Figure 3.12) along reinforced paths, constitutes the second phase of two-phase pull
diffusion. Periodically the source sends additional exploratory data messages to adjust
gradients in the case of network changes, due to, node failure, energy depletion, or
mobility, temporary network partitions, or to recover from lost exploratory messages.
Recovery from data loss is left to the application. While simple applications
with transient data, such as sensors that report their state periodically, need no
additional recovery mechanism, so retransmission scheme for applications that transfer
large, persistent data objects is being developed[1].
Network
Sink Source
Interest
Sink Source
Interest
Exploratory data
Network
Sink Source
Network
Sink Source
Reinforcement
Network
Sink Source
Network
Sink Source
Push diffusion is same as two-phase pull diffusion, here the roles of the source
and sink are reversed. Sinks become passive, with interest information kept local to the
node subscribing to data. Sources become active; exploratory data (Figure 3.14) is sent
throughout the network without interest created gradients. When exploratory data
arrives at a sink a reinforcement message is generated and it recursively passes back to
the source creating a reinforced gradient (Figure 3.15), and non-exploratory data
(Figure 3.16) follows only these reinforced gradients.
Push is not a good match for applications with many sources continuously
generating data since such data would be sent throughout the network even when not
needed. A benefit of push diffusion compared to two-phase pull is that it has only one
case where information is sent throughout the network (exploratory data) rather than
two (interests and exploratory data).The following figures represents the operations in
push diffusion.
Network
Sink Source
Exploratory data
Exploratory data
Network
Sink Source
Network
Sink Source
Data
Network
Sink Source
One-phase pull is a subscriber-based system that avoids one of the two phases
of flooding present in two-phase pull. The sink sends interest (Figure 3.17) messages
that disseminate through the network, establishing gradients. When an interest arrives
at a source it does not mark its first data message as exploratory, but instead sends data
(Figure 3.18) only on the preferred gradient. The preferred gradient is determined by
the neighbor who was the first to send the matching interest, thus suggesting the lowest
latency path. Thus one-phase pull does not require reinforcement messages, and the
lowest latency path is implicitly reinforced.
Network
Sink Source
Interest
Network
Sink Source