CoAP

Fig.1 Estructura protocolo CoAP

CoAP (acrónimo inglés de Constrained Application Protocol) es un protocolo de la capa de aplicación de internet para dispositivos con recursos restringidos. CoAP permite que dispositivos con pocos recursos se puedan comunicar con cualquier nodo de Internet. CoAP es un protocolo de capa de aplicación dirigido a la internet de las cosas.[1]​[2]​[3]​

## Propiedades

[editar]

* El núcleo del protocolo está basado en la especificación internet RFC 7252 realizada por The Internet Engineering Task Force (IETF).
* La eficiencia de la comunicación es muy importante, por tanto CoAP utiliza el protocolo de transporte UDP. Los errores y reintentos de mensajes se gestionan desde la capa de aplicación.
* COAP es un protocolo que sigue el modelo cliente/servidor.
* Opcionalmente emplea la seguridad DTLS (Datagram Transport Layer Security) que es la implementación del protocolo SSL sobre el protocolo UDP.[4]​

## Implementaciones

[editar]

Nombre  | Lenguaje de programación  | Versión CoAP implementada  | Cliente/Servidor  | Funcionalidades CoAP implementadas  | Licencia  | Enlace

|
|
|
|
|
|

aiocoap  | Python 3  | RFC 7252 | Client + Server  | Blockwise Transfers, Observe (parcial)  | MIT  | https://pypi.python.org/pypi/aiocoap
Californium  | Java  | RFC 7252 | Client + Server  | Observe, Blockwise Transfers, DTLS  | EPL+EDL  | https://www.eclipse.org/californium
cantcoap  | C++/C  | RFC 7252 | Client + Server  |  | BSD  | https://github.com/staropram/cantcoap
Canopus  | Go | RFC 7252 | Client + Server  | Core  | Apache License 2.0  | https://github.com/zubairhamed/canopus
CoAP implementation for Go  | Go | RFC 7252 | Client + Server  | Core + Draft Subscribe  | MIT  | https://github.com/dustin/go-coap
CoAP.NET  | C#  | RFC 7252, coap-13, coap-08, coap-03  | Client + Server  | Core, Observe, Blockwise Transfers  | 3-clause BSD  | https://github.com/smeshlink/CoAP.NET
CoAPSharp  | C#, .NET  | RFC 7252 | Client + Server  | Core, Observe, Block, RD  | LGPL  | http://www.coapsharp.com
CoAPthon  | Python  | RFC 7252 | Client + Server + Forward Proxy + Reverse Proxy  | Observe, Multicast server discovery, CoRE Link Format parsing, Block-wise  | MIT  | https://github.com/Tanganelli/CoAPthon
Copper  | JavaScript (Browser Plugin)  | RFC 7252 | Client  | Observe, Blockwise Transfers  | 3-clause BSD  | https://github.com/mkovatsc/Copper https://addons.mozilla.org/firefox/addon/copper-270430/ (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
eCoAP  | C  | RFC 7252 | Client + Server  | Core  | MIT  | https://gitlab.com/jobol/ecoap
Erbium for Contiki  | C  | RFC 7252 | Client + Server  | Observe, Blockwise Transfers  | 3-clause BSD  | http://www.contiki-os.org/ (er-rest-example)
iCoAP  | Objective-C  | RFC 7252 | Client  | Core, Observe, Blockwise Transfers  | MIT  | https://github.com/stuffrabbit/iCoAP
jCoAP  | Java  | RFC 7252 | Client + Server  | Observe, Blockwise Transfers  | Apache License 2.0  | https://code.google.com/p/jcoap/
libcoap  | C  | RFC 7252 | Client + Server  | Observe, Blockwise Transfers, DTLS  | BSD/GPL  | http://sourceforge.net/projects/libcoap/develop
LibNyoci  | C  | RFC 7252 | Client + Server  | Core, Observe, Block, DTLS  | MIT  | https://github.com/darconeous/libnyoci
lobaro-coap  | C  | RFC 7252 | Client + Server  | Observe, Blockwise Transfers  | MIT  | http://www.lobaro.com/lobaro-coap
microcoap  | C  | RFC 7252 | Client + Server  |  | MIT  | https://github.com/1248/microcoap
nCoap  | Java  | RFC 7252 | Client + Server  | Observe, Blockwise Transfers, CoRE Link Format, Endpoint-ID-Draft | BSD  | https://github.com/okleine/nCoAP
node-coap  | Javascript  | RFC 7252 | Client + Server  | Core, Observe, Block  | MIT  | https://github.com/mcollina/node-coap
Ruby coap  | Ruby  | RFC 7252 | Client + Server (david)  | Core, Observe, Block, RD  | MIT, GPL  | https://github.com/nning/coap https://github.com/nning/david
Sensinode C Device Library  | C  | RFC 7252 | Client + Server  | Core, Observe, Block, RD  | Comercial  | https://silver.arm.com/browse/SEN00
Sensinode Java Device Library  | Java SE  | RFC 7252 | Client + Server  | Core, Observe, Block, RD  | Comercial  | https://silver.arm.com/browse/SEN00
Sensinode NanoService Platform  | Java SE  | RFC 7252 | Cloud Server  | Core, Observe, Block, RD  | Comercial  | https://silver.arm.com/browse/SEN00
SwiftCoAP  | Swift  | RFC 7252 | Client + Server  | Core, Observe, Blockwise Transfers  | MIT  | https://github.com/stuffrabbit/SwiftCoAP
TinyOS CoapBlip  | nesC/C  | coap-13  | Client + Server  | Observe, Blockwise Transfers  | BSD  | http://docs.tinyos.net/tinywiki/index.php/CoAP Archivado el 12 de marzo de 2013 en Wayback Machine.
txThings  | Python (Twisted)  | RFC 7252 | Client + Server  | Blockwise Transfers, Observe (partial)  | MIT  | https://github.com/mwasilak/txThings/
FreeCoAP  | C  | RFC 7252 | Client + Server + HTTP/CoAP Proxy  | Core, DTLS, Blockwise Transfers  | BSD  | http://www.freecoap.org Archivado el 24 de marzo de 2017 en Wayback Machine.
coap-rs  | Rust  | RFC 7252 | Client + Server  |  | MIT  | https://github.com/Covertness/coap-rs

## Comunicaciones en grupo con CoAP

[editar]

En muchas aplicaciones CoAP es esencial tener la posibilidad de comunicarse con diferentes nodos al mismo tiempo (por ejemplo para apagar o encender todas las luces a la vez). CoAP solventa esta necesidad con unas extensiones definidas en la recomendación RFC 7390 que implementa una difusión múltiple (multicast) a todos los nodos del grupo.

## Véase también

[editar]

* OMA LWM2M: protocolo abierto y de baja complejidad para la gestión de dispositivos IoT o M2M.

* Internet de las cosas
* Pasarela (IoT)
* RFC 7252
* RFC 7390

## Referencias

[editar]

1. ↑ coap.technology, ed. (20 de abril de 2017). «CoAP — Constrained Application Protocol | Overview» (en inglés). Archivado desde el original el 3 de enero de 2017. Consultado el 20 de abril de 2017.
2. ↑ Chen, Xi. www.cs.wustl.edu, ed. «Constrained Application Protocol for Internet of Things» (en inglés). Consultado el 20 de abril de 2017.
3. ↑ Joncas, Roxanne (20 de abril de 2017). eclipse.org, ed. «MQTT and CoAP, IoT Protocols» (en inglés). Consultado el 20 de abril de 2017.
4. ↑ «Hands-on with CoAP». Google Docs (en inglés). 20 de abril de 2017.

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada.
Busca fuentes: «CoAP» - noticias · libros · académico · imágenes

Puedes avisar al redactor principal pegando lo siguiente en su página de discusión: `{{sust:Aviso referencias|CoAP}} ~~~~`

Uso de esta plantilla: `{{Referencias|t={{sust:CURRENTTIMESTAMP}}}}`

|

Control de autoridades|

* Proyectos Wikimedia
* Datos: Q5164354

|

* Datos: Q5164354