You are on page 1of 18

CHAPTER 3

DIRECTED DIFFUSION

Directed diffusion is novel communication paradigm for large sensor networks.


It supports data-centric routing and application-specific processing inside the network.
Directed diffusion is significantly different from IP-style communication where nodes
are identified by their end-points, and inter-node communication is layered on an end-
to-end delivery service provided within the network. Here nodes in the network are
application aware as we allow application-specific code to run in the network and
assist diffusion in processing messages. It provides robust multi-path delivery,
empirically adapt to a small subset of network paths, and achieve significant energy
savings when intermediate nodes aggregate responses to queries.

Directed diffusion consists of several elements: interests, data messages,


gradients, and reinforcements. An interest message is a query or an interrogation which
specifies what a receiver needs. Each interest message contains a description of data
interested by a user. Typically, data in sensor networks is the collected or processed
information of a phenomenon which matches an interest or a request of a user. Such
data can be an event which is a short description of the sensed phenomenon. In
directed diffusion, data is named using attribute-value pairs. The interest (Figure 3.1) is
disseminated throughout the sensor networks to draw named data toward the user.
Interest propagation establishes gradients within the network for data propagation.

Specifically, a gradient is a direction state created inside each node which


receives an interest. The gradient (Figure 3.2) direction is set toward the neighboring
node from which the interest is received. Events are propagated toward the interest
originators along multiple gradient paths. The sensor network reinforces one or a small
number of these paths.
Events

interests

Source
Sink

Figure 3.1 Interest propagation

Events

Gradients

Source
Sink

Figure 3.2 Initial gradients set up


Events

Source
Sink

Figure 3.3 Data delivery along reinforced path

3.1 INTERESTS AND GRADIENTS


The named task description (i.e., the interest) is usually injected into the
network at the sink. The sink node creates a task state which will be purged after the
time indicated by the duration attribute. For each active task, the sink periodically
broadcasts an interest to all its neighbors. Sink periodically refreshes the interest.
Every node maintains an interest cache. Each item in the cache corresponds to a
distinct interest. Interests do not contain information about the sink but just about the
immediately previous hop. An interest entry in the cache consists of several fields. A
timestamp field specifies the timestamp of the last received matching interest. The
interest entry also contains several gradient fields, up to one per neighbor.

Each gradient contains a data rate field, requested by the corresponding


neighbor and a duration field. The duration field indicates the approximate lifetime of
the gradient and the interest. Gradients are used for data propagation. There are two
gradient types: an exploratory gradient and a data gradient. Exploratory gradients are
intended for path setup and repair whereas data gradients are for sending real data. The
default gradient type is exploratory.

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.

3.2 DATA PROPAGATION

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.

Data can be classified into two types, exploratory and non-exploratory. An


event is marked as exploratory if the source has no data gradient or the source has
generated no exploratory event within a window of time. Exploratory events are sent
along all outgoing gradients whereas non-exploratory events are sent along only data
gradients.

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.

3.3 REINFORCEMENT FOR PATH ESTABLISHMENT AND PRUNING

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

Positive reinforcement is done between source and sink, in response to the


exploratory data sent by the source. Path will be established between them. Subsequent
transmission data performed along the reinforced path. The reinforcement message is
similar to the original interest message except the message type. When the neighboring
node receives reinforcement, it notices that it already has a gradient toward the
reinforcing node but at lower event rate than the rate specified in this interest.

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.

3.3.2 Local Repair of Failed Paths

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.

3.3.3 Path Pruning and Negative Reinforcement

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

Figure 3.6 Gradients after several rounds of reinforcement, multiple paths.

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.

For event-triggered applications, a negative reinforcement message is created


instead of using the original interest message with the lower data rate. This negative
reinforcement message is similar to the original interest message except the message
type. When A receives this negative reinforcement, it degrades its gradient toward the
sink. Moreover, if now all its gradients are exploratory, A negatively reinforces its
neighbors that have been sending data to it. This sequence of local interactions ensures
the path through A is degraded rapidly.
3.4 DIRECTED DIFFUSION PROTOCOL FAMILY

The Directed Diffusion protocol includes a family of algorithms. They are two-
phase pull diffusion, push diffusion, one-phase pull diffusion.

3.4.1 Two-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 interest (Figure 3.8) is propagated from neighbor-to-neighbor towards


sensor nodes in the specified region. A key feature of directed diffusion is that every
sensor node can be task aware, that is these nodes can store and interpret interests,
rather than simply forwarding them along.

Each sensor node that receives an interest remembers which neighbor or


neighbors sent it that interest. To each such neighbor, it sets up a gradient. A gradient
represents the direction towards which data matching an interest flows, and the status
of that demand, whether it is active or inactive and possibly the desired update rate.
After setting up a gradient, the sensor node redistributes the interest to its neighbors.
When the node can infer where potential sources might be, the interest can be
forwarded to a subset of neighbors. Otherwise, it will simply broadcast the interest to
all of its neighbors.
Sensors indicate what data they may generate by publishing with an appropriate
set of attributes. They thus become potential sources. As interests travel across the
network, sensors with matching publications are triggered and the application activates
its local sensors to begin collecting data. Prior to activation the node’s sensors would
be in a low-power mode. The sensor node then generates data messages matching the
interest. In directed diffusion, data is also represented using an attribute-based naming
scheme.

Data is cached at intermediate nodes as it propagates toward sinks. Cached data


is used for several purposes at different levels of diffusion. The core diffusion
mechanism uses the cache to suppress duplicate messages and prevent loops, and it can
be used to preferentially forward interests. Cached data is also used for application
specific, in-network processing. That is, data from detections of a single object by
different sensors may be merged to a single response based on sensor-specific criteria.

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

Figure 3.7 Sink sends interest message in to network


Network

Sink Source

Interest

Figure 3.8 Source receiving interest message

Exploratory data

Network

Sink Source

Figure 3.9 Source sends exploratory data


Exploratory data

Network

Sink Source

Figure 3.10 Sink receiving exploratory data

Reinforcement

Network

Sink Source

Figure 3.11 Sink sending reinforcement message


Data

Network

Sink Source

Figure 3.12 Source sending data to sink

3.4.2 Push Diffusion

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

Figure 3.13 Source sends exploratory data

Exploratory data

Network

Sink Source

Figure 3.14 Sink receiving exploratory data


Reinforcement

Network

Sink Source

Figure 3.15 Sink sending reinforcement message

Data

Network

Sink Source

Figure 3.16 Source sending data to sink


3.4.3 One-Phase Pull Diffusion

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

Figure 3.17 Source receiving interest message sent by sink


Data

Network

Sink Source

Figure 3.18 Source sending data to sink

By comparison, with two-phase pull uses several control messages to forwad


data, which has been reduced in one phase pull. Here the sink sends the interest
messages and accordingly the data is sent on the preferred gradient.

You might also like