CoAP
Constrained Application Protocol
"A specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things."
- CoRE, IETF group
- Proposed standard: RFC 7252
- CoAP ~ lightweight fast HTTP
- Designed for manipulation of simple resources on constrained node networks
- URI
- GET / POST / PUT / DELETE
- Content-type support (XML, JSON, CBOR,...)
- Built-in discovery —
.well-known/core
- Multicast support
- Asynchronous message exchanges
- Designed to be extensible
- Message reliability is handled at the application layer (UDP)
- Congestion control (retransmits increase exponentially up to 247 s) — further improvements coming
- These features can be disabled, if speed is the goal
- Protocol extension for CoAP: RFC 7641
- Client interested in a resource over period of time
- Observer pattern
- Server ~ Client (constrained device acts as a server)
- Extension added later to the CoAP spec
- It transfers larger resource representations than can be usually accommodated in constrained networks
- Response is split in blocks
- Both sides have a say in the block size that actually will used
- CoAP over TCP being drafted
- Authentication & authorization inspired by OAUTH and JWT
- General info:
coap.technology
- Proposed standard:
tools.ietf.org/html/rfc7252
- Copper (CoAP user-agent as a Firefox add-on):
github.com/mkovatsc/Copper
- Several tutorials and cool features to discover