Pradeep Singh | 9th May 2016
One of the major auspect of the IoT is the data exchange between Sensors, Servers, Databases, Business Engines and Content Consumers. While there are many protocols available to enable this communication between different classes of endpoints, there are some protocols which are designed keeping IoT specific requirements in mind. Let’s explore some of such protocols which are becoming more and more popular in IoT Applications.
1. Message Queuing Telemetry Transport (MQTT):
MQTT or Message Queuing Telemetry Transport is a publish-subscribe based lightweight messaging protocol. It is best suited for Internet of Things (IoT) and Machine to Machine (M2M) communication because of its small code footprint, lower bandwidth requirements and lower power consumption on device.
- Key Highlights:
- Publish/Subscribe Architecture
- Light Weight (Min Header Size: 2 Bytes)
- TCP/IP Based
- QoS Support
- Payload Agnostic
- Uses SSL/TLS for Security
- Broker could be Single Point of Failure
2. Advanced Message Queuing Protocol (AMQP):
The Advanced Message Queuing Protocol (AMQP) is an open standard for passing business messages between applications. AMQP has low success rate at low bandwidths, but it increases as bandwidth increases. However, comparing AMQP with REST, AMQP can send a larger amount of messages per second.
- Key Highlights:
- Point to Point Message Exchange (Server to Server)
- Flexible Messaging Patterns
- TCP/IP Based
- Smallest Packet Size: 60 Bytes
- QoS Support
- Uses SSL/TLS for Security
3. Constrained Application Protocol (CoAP):
The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained networks in the IoT. It runs over UDP (no TCP overhead) to keep the overall implementation lightweight and uses the HTTP commands like GET, POST, PUT, and DELETE to provide resource-oriented interactions.
- Key Highlights:
- Request/Response Architecture
- UDP/IP Based
- QoS Support
- Supports Unicast as well as Multicast
- Uses DTLS for Security
- Supports Resource Discovery
- CoAP Node plays Server Role too (NAT Issues)
- Decentralised (No Single Point of Failure)
4. 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.
- Key Highlights:
- 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.
5. 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.
- Key Highlights:
- 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
6. Data Distribution Service (DDS):
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.
- Key Highlights:
- 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)
7. RESTful HTTP (REST):
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.
- Key Highlights:
- 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
8. OMA LightweightM2M (LWM2M):
LightweightM2M is primarily a device management protocol, but it should be designed to be able to extend to meet the requirements of applications. LightweightM2M is not restricted to device management, it should be able transfer service / application data.
- Key Highlights:
- 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