Constrained Application Protocol (CoAP)

The Constrained Application Protocol (CoAP) is a lightweight transport protocol inspired by HTTP, for use with constrained networks and nodes in the IoT domain.

Overview

CoAP is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation.  CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.

Messages

Message Commands:

CON NON ACK RST
Request X X - -
Response X X X -
Empty * - X X

Standards

CoAP Core Protocol - IETF RFC 7252

Observing Resources in the Constrained Application Protocol - IETF RFC 7641

Block-Wise Transfers in the Constrained Application Protocol (CoAP) - IETF RFC 7959

CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets - IETF RFC 8323

Extended Tokens and Stateless Clients in the Constrained Application Protocol (CoAP) - IETF RFC 8974

Related Products, Interfaces and Protocols