CoAP congestion control for the internet of things

CoAP is a lightweight RESTful application layer protocol devised for the IoT. Operating on top of UDP, CoAP must handle congestion control by itself. The core CoAP specification defines a basic congestion control mechanism, but it is not capable of adapting to network conditions. However, IoT scenarios exhibit significant resource constraints, which pose new challenges on the design of congestion control mechanisms. In this article we present CoCoA, an advanced congestion control mechanism for CoAP being standardized by the Internet Engineering Task Force CoRE working group. CoCoA introduces a novel round-trip time estimation technique, together with a variable backoff factor and aging mechanisms in order to provide dynamic and controlled retransmission timeout adaptation suitable for the peculiarities of IoT communications. We conduct a comparative performance analysis of CoCoA and a variety of alternative algorithms including state-of-the-art mechanisms developed for TCP. The study is based on experiments carried out in real testbeds. Results show that, in contrast to the alternative methods considered, CoCoA consistently outperforms the default CoAP congestion control mechanism in all evaluated scenarios.

[1]  Adam Dunkels,et al.  The ContikiMAC Radio Duty Cycling Protocol , 2011 .

[2]  Jürgen Schönwälder,et al.  Management of resource constrained devices in the internet of things , 2012, IEEE Communications Magazine.

[3]  Federico Ferrari,et al.  FlockLab: A testbed for distributed, synchronized tracing and profiling of wireless embedded systems , 2013, 2013 ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN).

[4]  Matthias Kovatsch,et al.  Californium: Scalable cloud services for the Internet of Things with CoAP , 2014, 2014 International Conference on the Internet of Things (IOT).

[5]  Adam Dunkels,et al.  A Low-Power CoAP for Contiki , 2011, 2011 IEEE Eighth International Conference on Mobile Ad-Hoc and Sensor Systems.

[6]  Carsten Bormann,et al.  CoAP: An Application Protocol for Billions of Tiny Internet Nodes , 2012, IEEE Internet Computing.

[7]  August Betzler,et al.  Evaluation of Advanced Congestion Control Mechanisms for Unreliable CoAP Communications , 2015, PE-WASUN '15.

[8]  Pasi Sarolahti,et al.  Congestion Control in Linux TCP , 2002, USENIX Annual Technical Conference, FREENIX Track.

[9]  August Betzler,et al.  CoCoA+: An advanced congestion control mechanism for CoAP , 2015, Ad Hoc Networks.

[10]  Reiner Ludwig,et al.  The peak-hopper: a new end-to-end retransmission timer for reliable unicast transport , 2004, IEEE INFOCOM 2004.