The CoAP protocol
CoAP - Constrained Application Protocol (rfc 7252) is a specialized internet protocol designed for constrained devices. It uses UDP packets for transport and DTLS (Datagram Transport Layer Security) for security. Major standardization done by The Internet Engineering Task Force (IETF) Constrained RESTful Environments Working Group (Core)
CoAP Resembles closely HTTP requests (GET, POST, PUT, DELETE) and responses (2xx, 4xx , 5xx). It is designed to easily translate to HTTP for simplified integration with the web, while also meeting specialized requirements such as multicast support, very low overhead, and simplicity
CoAP is used today primarily as the underlying transport layer for the lwM2M device management protocol which is in wide use especially in cellular connected devices
How does Copxy compare with lwM2M
lwM2M is a device management framework designed for IoT constrained devices. Its primary purpose is to provide device management and FW upgrade services and it is based on a Object Based data model.
Copxy is built primarily for data delivery purposes and designed to provide more flexible data delivery pipeline than lwM2M. In Copxy we eliminated the lwM2M application layer and the object based data representation as they impose a rigid data structure and lwM2M specific application flow (registration and reg updates) that requires an intermediate lwM2M server to handle. These rules and limitations limit the flexibility of adding and modifying the data pipe or receiving endpoints and make the integration with lwM2M cumbersome and inflexible.
​
The main advantages Copxy has over lwM2M for data delivery are:
-
Copxy eliminates the lwM2M application and use of the resource based READ/WRITE/EXEC model. Instead it presents a Request/Response model identical to HTTP use of GET/POST/PUT requests
-
Devices working with Copxy do not need to register or keep alive any server
-
Copxy does not need external object configurations to deliver data payloads.
-
More importantly there is no need to add / modify any object resources when payload is modified
-
Copxy is using the same lower stacks as lwM2M thus gaining all the benefits lwM2M can present in the traffic layers and security
-
Copxy has a few more distinct features for provisioning and onboarding which are not part of the standard lwM2M server
The challenges of NB-IoT networks
The majority of cellular IoT deployments use CAT-M1 or NB-IoT networks, with NB-IoT becoming more and more dominant, especially in Europe
​
CAT-M1 LTE is basically an LTE deployment suited specifically for IoT devices. It operates in lower bandwidths and with about 300 kbps uplink+downlink it can provide about 100 kbps application throughput
NB-IoT has a much smaller bandwidth of only 200 KHz which can provide only 60 kbps uplink and 30 kbps downlink. This translates to very low application throughput and also large latencies. NB-IoT2 will improve that in the future on supported networks. At these low rates maintaining reliable TCP connections is very problematic and most devices will not be able to communicate reliably on TCP and especially via secured TLS connections
​
Recent studies and analysis of current deployments depict clearly the advantages of CoAP for NB-IoT. In fact most studies are conclusive: MQTT does not work well on NB-IoT and CoAP does!
​
Here are some interesting links for further reading:
​