In this article we discuss Application Protocols for IoT. One of the major auspect of the IoT is the data exchange between Sensors, Servers, Databases, Business Engines and Content Consumers. Protcols help to establish Communication between IoT Device (Node Device) and Cloud based Server over the Internet. It help to sent commands to IoT Device and received data from an IoT device over the Internet. While there are many protocols available to enable this communication between different classes of endpoints, there are some Application Protocols for IoT which are designed keeping IoT specific requirements in mind.
You may like also : Wireless IoT Network Protocols
Let’s explore some of such Application Protocols for IoT which are becoming more and more popular in IoT Applications.
Application Protocols for IoT
Constrained Application Protocol (CoAP)
The CoAP protocol is specified in RFC 7252. The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things.
Coap is designed for machine-to-machine (M2M) applications such as smart energy and building automation. The protocol is targetted for Internet of Things (IoT) devices having less memory and less power specifications.
On top of CoAP, the Open Mobile Alliance (OMA) has defined “Lightweight M2M” as a simple, low-cost remote management and service enablement mechanism.
Following are the features of CoAP Protocol:
• It is very efficient RESTful protocol.
• Easy to proxy to/from HTTP.
• Open IETF standard
• Embedded web transfer protocol (coap://)
• It uses asynchronous transaction model.
• UDP is binding with reliability and multicast support.
• GET, POST, PUT and DELETE methods are used.
• URI is supported.
• It uses small and simple 4 byte header.
• Supports binding to UDP, SMS and TCP.
• DTLS based PSK, RPK and certificate security is used.
• uses subset of MIME types and HTTP response codes.
• Uses built in discovery mechanism.
Message Queuing Telemetry Transport Protocol (MQTT)
MQTT is a machine-to-machine (M2M)/”Internet of Things” connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport and useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. For example, it has been used in sensors communicating to a broker via satellite link, over occasional dial-up connections with healthcare providers, and in a range of home automation and small device scenarios.
MQTT protocol runs on top of the TCP/IP networking stack. When clients connect and publish/subscribe, MQTT has different message types that help with the handshaking of that process. The MQTT header is two bytes and first byte is constant. In the first byte, you specify the type of message being sent as well as the QoS level, retain, and DUP (duplication) flags. The second byte is the remaining length field.
Features of MQTT?
- Distribute information more efficiently
- Increase scalability
- Reduce network bandwidth consumption dramatically
- Reduce update rates to seconds
- Very well-suited for remote sensing and control
- Maximize available bandwidth
- Extremely lightweight overhead
- Very secure with permission-based security
- Used by the oil-and-gas industry, Amazon, Facebook, and other major businesses
- Saves development time
- Collects more data with less bandwidth compared to polling protocols
Advanced Message Queuing Protocol (AMQP)
The AMQP – IoT protocols consist of a hard and fast of components that route and save messages within a broker carrier, with a set of policies for wiring the components together. The AMQP protocol enables patron programs to talk to the dealer and engage with the AMQP model. AMQP has the following three additives, which might link into processing chains in the server to create the favored capability.
- Exchange: Receives messages from publisher primarily based programs and routes them to ‘message queues’.
- Message Queue: Stores messages until they may thoroughly process via the eating client software.
- Binding: States the connection between the message queue and the change.
Extensible Messaging and Presence Protocol (XMPP)
XMPP is the Extensible Messaging and Presence Protocol, a set of open technologies for instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.
Features of XMPP :
- Publish/Subscribe and Request/Response Architecture
- Widely used for Instant Messaging, Presence, Voice/Video Calls etc.
- No QoS Support
- Text Based Communication (XML Payload)
- Secure Authentication (SASL) and TLS Based Security
- XML Payload creation and parsing may need extra compute and battery power.
Data Distribution Service (DDS) – Application Protocols for IoT
The Data Distribution Service (DDS) is a middleware protocol and API standard for data-centric connectivity from the Object Management Group. It integrates the components of a system together, providing low-latency data connectivity, extreme reliability, and a scalable architecture that business and mission-critical Internet of Things (IoT) applications need.
- Publish/Subscribe and Request/Response Architecture
- Relational data modeling
- QoS Support
- Multicast support over plain UDP sockets
- Leverages both TCP/IP and UDP/IP Transport
- Uses TLS and DTLS for Security
- Decentralised (No Single Point of Failure)
RESTful HTTP (REST) – Application Protocols for IoT
The Representational State Transfer (REST) is not really a protocol but an architectural style. REST uses the HTTP methods GET, POST, PUT, and DELETE to provide a resource oriented messaging system where all actions can be performed simply by using the synchronous request/response HTTP commands.
- Request/Response Architecture
- TCP/IP Based
- No QoS Support
- Complex Implementation at Client Side
- Larger Header compared to other IoT Protocols (Higher Bandwidth Requirement)
- Uses SSL/TLS for Security
OMA LightweightM2M (LWM2M)
OMA SpecWorks’ LightweightM2M is a device management protocol designed for sensor networks and the demands of a machine-to-machine (M2M) environment. With LwM2M, OMA SpecWorks has responded to demand in the market for a common standard for managing lightweight and low power devices on a variety of networks necessary to realize the potential of IoT. The LwM2M protocol, designed for remote management of M2M devices and related service enablement, features a modern architectural design based on REST, defines an extensible resource and data model and builds on an efficient secure data transfer standard called the Constrained Application Protocol (CoAP). LwM2M has been specified by a group of industry experts at the OMA SpecWorks Device Management Working Group and is based on protocol and security standards from the IETF.
- Simple Object based resource model. Resource operations of creation/retrieval/update/deletion/configuration of attribute
- TLV, Json, Plain Text, Opaque data format support
- UDP/IP and SMS transport layer support
- Uses DTLS for Security
- Basic M2M functionalities: LWM2M Server, Access Control, Device, Connectivity, Firmware Update, Location, Connectivity Statistics
Very Simple Control Protocol (VSCP)
VSCP is an open source standard protocol for M2M, IoT and other remote control and measurement applications. It enables simple, low-cost devices to be networked together with high-end computers and/or to work as an autonomous system, whatever the communication media is.
- Event Based Architecture
- Leverages RS-323, CAN and/or TCP/IP
- Support for Device Discovery, Identification and Configuration
- Support for Secure Device firmware update
- A solution from sensor to UI
I hope you like this post “IoT Data Protocols”. Do you have any questions? Leave a comment down below!
Thanks for reading. If you like this post probably you might like my next ones, so please support me by subscribing my blog.