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.
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.
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.
Events
Gradients
Source
Sink
Figure 2.3: Gradients after the sink reinforces the empirically lowest delay path.
Events
C
Gradients
Source
Sink
Figure 2.6: Gradients after local repair caused by connection quality degradation.
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 this rate-based
diffusion, the negative reinforcement is the interest with the lower data rate. For event-
triggered applications, we implement a negative reinforcement message 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.
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, 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. To do this, the sink reinforces
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
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 currently 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[31].
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 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, and non-exploratory data 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 subscribers send interest 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
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