CoAP
O escopo do CoAP cobre requisições e observação de recursos em dispositivos restritos; não é um protocolo de rádio nem um modelo completo de automação. Definido pela RFC 7252, usa UDP, métodos GET, POST, PUT e DELETE, mensagens confirmáveis e URIs coap://. Integra sensores IPv6, 6LoWPAN e Thread com overhead menor que HTTP. Produtos como implementações LwM2M o utilizam, mas NAT, firewalls e segurança DTLS/OSCORE exigem planejamento.
CoAP é um protocolo de aplicação projetado pelo IETF para dispositivos e redes com recursos limitados. Adota o modelo de recursos da web: clientes acessam URIs e utilizam métodos semelhantes a HTTP, mas o transporte padrão é UDP, com cabeçalhos compactos e mecanismos próprios de confiabilidade. Mensagens confirmáveis recebem ACK; mensagens não confirmáveis reduzem overhead quando pequenas perdas são aceitáveis. A extensão Observe permite que o servidor envie atualizações quando um recurso muda, evitando polling constante. CoAP combina bem com IPv6, 6LoWPAN e Thread e pode ser traduzido por proxies para HTTP. A simplicidade, porém, transfere responsabilidades para a aplicação: segurança, controle de congestionamento, descoberta e passagem por NAT precisam ser tratados de forma explícita.
- Overhead menor que HTTP/TCP para sensores restritos
- Modelo de recursos familiar a desenvolvedores web
- Integração natural com IPv6, 6LoWPAN e Thread
- Suporta multicast e observação eficiente de estados
- UDP pode ser bloqueado ou tratado de forma diferente por NATs e firewalls
- Segurança com DTLS ou OSCORE aumenta complexidade de implantação
- Ecossistema residencial direto é menor que MQTT e HTTP
- Mensagens grandes exigem extensão de blocos e mais trocas