Constrained Application Protocol (CoAP)
Constrained Application Protocol (CoAP) is a protocol that specifies how low-power compute-constrained devices can operate in the internet of things (IoT). Designed by the Internet Engineering Task Force (ITEF), CoAP is specified in IETF RFC 7252.
CoAP is designed to enable simple, constrained devices to join the IoT even through constrained networks with low bandwidth and low availability. The protocol is generally used for machine-to-machine (M2M) communication.
CoAP functions as a sort of HTTP for constrained devices, enabling such component level equipment as sensors or actuators to communicate on the IoT, being controlled and passing along their data as part of a system. The protocol is designed for reliability in low bandwidth and high congestion through its low power draw and low network overhead. According to Jullian Vermillard, Sierra Wireless principle engineer of software, in a network with limited connectivity or a lot of congestion CoAP can continue to work where TCP-based protocols such as MQTT fail to complete a handshake.
The efficient and conservative traits of CoAP can enable devices operating in poor signal quality to send their data reliably or enable a satellite in orbit maintain to its distant communication successfully. Despite CoAp’s ability to run on small devices, it supports networks with billions of nodes. For security, the DTLS parameters chosen for default are an equivalent to 3072 bit RSA keys.