  In this paper, we study the downward routing for network control/actuation in
large-scale and heterogeneous wireless sensor networks (WSNs) and Internet of
Things (IoT). We propose the Opportunistic Source Routing (OSR), a scalable and
reliable downward routing protocol for WSNs/IoT. OSR introduces opportunistic
routing into traditional source routing based on the parent set of a node's
upward routing in data collection, significantly addressing the drastic link
dynamics in low-power and lossy WSNs. We devise a novel adaptive Bloom filter
mechanism to effectively and efficiently encode a downward source-route in OSR,
which enables a significant reduction of the length of source-route field in
packet header. OSR is scalable to very large-size WSN/IoT deployments, since
each resource-constrained node in the network only stores the set of its direct
children. The probabilistic nature of the Bloom filter passively explores
opportunistic routing. Upon a delivery failure at any hop along the downward
path, OSR actively performs opportunistic routing to bypass the obsolete/bad
link. We demonstrate the desirable scalability of OSR against the standard RPL
downward routing. We evaluate the performance of OSR via both simulations and
real-world testbed experiments, in comparison with the standard RPL (both
storing mode and non-storing mode), ORPL, and the representative dissemination
protocol Drip. Our results show that OSR significantly outperforms RPL and ORPL
in scalability and reliability. OSR also achieves significantly better energy
efficiency compared to TinyRPL and Drip which are based on the same TinyOS
platform as OSR implementation.
