Connectivity of the Internet of Things
Resources and Going Further
We have witnessed how the internet revolutionized how we communicate and collaborate. The new era of internet is not just about people. It is about the world around us. It is about intelligent connected devices.
The protocols we just reviewed were not all designed with Internet of Things in mind, but still they have proved to adapt quite well to IoT applications.
With the growth of IoT, it is inevitable that newer and tailor-made protocols are in the works specifically to cater to IoT networks. These connected smart devices have requirements different from today's human-centric internet.
There are three different types of connections in these protocols:
- Device to Device (D2D) -- Where devices must communicate with each other
- Device to Server (D2S) -- Where device data is collected and sent to a server
- Server to Server (S2S) -- Where the server data is shared amongst other servers for analysis or to send back to the device.
We will talk about four such protocols, touching on all the different types of connections as mentioned above:
- MQTT (Message Queue Telemetry Transport) -- a protocol for collecting device data and transmitting to the servers
- XMPP (Extensible Messaging and Presence Protocol) -- a protocol for connecting devices to people who are connected to servers
- DDS (Data Distribution Service) -- a protocol for fast communication between intelligent devices
- AMQP (Advanced Message Queuing Protocol) -- a protocol designed for effective communications between different servers
MQTT.org offers this definition of MQTT: a machine-to-machine (M2M) IoT connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is 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 health care providers, and in a range of home-automation and small-device scenarios. It is also ideal for mobile applications because of its small size, low power usage, minimized data packets and efficient distribution of information to one or many receivers.
MQTT's goal is to collect data from many devices and transport the data to the IT infrastructure. It can be one of the best solutions where sensor data from thousands of sensors has to be transported to a single location for analysis.
More information about the MQTT protocol can be found here.
XMPP.org describes it as: the Extensible Messaging and Presence Protocol, a set of open technologies for instant messaging, presence, multiparty chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.
Think of XMPP as a means for the connected devices to discover each other and start chatting -- that is, to start exchanging information as we do!
More information on the XMPP-IoT can be found here.
Different from MQTT and XMPP, which are device-to-server protocols, DDS uses devices that directly utilize the device data. It is a protocol to distribute the data of one device to another. DDS can effectively deliver millions of messages per second to many simultaneous receivers.
DDS is peer-to-peer communication. Elimination of servers and message brokers simplifies communications, minimizes latency and reduces complexity. It is reliable for IoT applications that require a reliable and high-performance architecture.
More information on DDS can be found here.
AMQP is a server-to-server type of protocol. It sends transactional messages between servers. The main feature of AMQP is reliability, and it is capable of sending thousands of queued transactions without losing any data.
AMQP.org defines the protocol as: an open standard for passing business messages between applications or organizations. It connects systems, feeds business processes with the information they need and reliably transmits onward the instructions that achieve their goals.
It was initially developed for the banking industry as a middleware for tracking and delivering highly important messages. In the IoT paradigm, AQMP is most suitable for server-based analysis functions, where data from different servers need to be communicated for effective analysis.
In conclusion, there is no set best protocol for IoT, which is still in a phase where we cannot standardize it and may never be able to do so. Its diverse nature of applications and millions of different types of connected devices make it unique.
So, the best protocol would be application specific. You may wish to read this blog post exploring MQTT and CoAP protocols for IoT in more detail.