1. Introduction
====================================================================
-Dissemination is a basic sensor network protocol. The ability to
-reliably deliver a piece of data to every node allows administrators
+Dissemination is a a sensor network protocol that reliably delivers a
+piece of data to every node in the network. Dissemination can be used
to reconfigure, query, and reprogram a network. Reliability is
important because it makes the operation robust to temporary
disconnections or high packet loss. Unlike flooding protocols, which
network goes through eight versions of a disseminated value, when it
rejoins the network it will only see the most recent. The rest of this
document describes a set of components and interfaces for a
-dissemination service of this kind.
+dissemination service included in TinyOS 2.0.
2. Dissemination interfaces
====================================================================
provides interface DisseminationUpdate <t>;
}
-The t argument MUST be able to fit in a single message_t[1_] after
+The t argument MUST be able to fit in a single message_t [TEP111] after
considering the headers that the dissemination protocol introduces.
A dissemination implementation SHOULD have a compile error if a larger
type than this is used.
4 Dissemination Keys
====================================================================
-One issue that comes up when using this interfaces is the selection of
-a key for each value. On one hand, using unique() is easy, but this
+One issue that comes up when using these interfaces is the selection
+of a key for each value. On one hand, using unique() is easy, but this
means that the keyspaces for two different compilations of the same
program might be different and there's no way to support a network
-with more than one binary. On the other, having a component declare
-its own key internally means that you can run into key collisions that
-can't be resolved. In the middle, an application can select keys on
-behalf of other components.
+with more than one binary. On the other hand, having a component
+declare its own key internally means that you can run into key
+collisions that can't be resolved. In the middle, an application can
+select keys on behalf of other components.
Ordinarily, dissemination keys can be generated by unique or selected
by hand. However, these defined keys can be overridden by an