  RPL, an IPv6 routing protocol for Low power Lossy Networks (LLNs), is
considered to be the de facto routing standard for the Internet of Things
(IoT). However, more and more experimental results demonstrate that RPL
performs poorly when it comes to throughput and adaptability to network
dynamics. This significantly limits the application of RPL in many practical
IoT scenarios, such as an LLN with high-speed sensor data streams and mobile
sensing devices. To address this issue, we develop BRPL, an extension of RPL,
providing a practical approach that allows users to smoothly combine any RPL
Object Function (OF) with backpressure routing. BRPL uses two novel algorithms,
QuickTheta and QuickBeta, to support time-varying data traffic loads and node
mobility respectively. We implement BRPL on Contiki OS, an open-source
operating system for the Internet of Things. We conduct an extensive evaluation
using both real-world experiments based on the FIT IoT-LAB testbed and
large-scale simulations using Cooja over 18 virtual servers on the Cloud. The
evaluation results demonstrate that BRPL not only is fully backward compatible
with RPL (i.e. devices running RPL and BRPL can work together seamlessly), but
also significantly improves network throughput and adaptability to changes in
network topologies and data traffic loads. The observed packet loss reduction
in mobile networks is, at a minimum, 60% and up to 1000% can be seen in extreme
cases.
