Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Introduction
IoT is where multiple devices that convey
some data are connected to each other over wired
or wireless communication infrastructure, so they
talk to each other and automate a process or task.
The working devices are called things in the IoT
context. These things are fundamentally a piece
of electronic hardware with ability to acquire and
communicate. Acquiring is connecting to sensors,
switches etc., and gathering data from them at
regular intervals. Communicating is sending the
acquired data/requesting data to/from another
device/server. The things employ standard
protocols for communication.
IoT architecture has three layers namely
D2D, D2S & S2S, however, it is not mandatory for
an IoT system to use all the three layers. Each
protocol oers services in one layer or more.
This article compares and contrasts the
popular communication protocols used for IoT,
namely HTTP, MQTT, CoAP, AMQP, XMPP and
DDS. It also discusses the relevance of each
protocol in achieving near-real time performances,
for time critical embedded IoT applications.
2. The Protocols
2.1 HTTP
HTTP is the simplest connectionless
protocol between clients and servers. The client
sends a request to the server in the form of a
request method or URI (more common in IoT) with
possibly a data and disconnects itself from the
server. On receiving the request, the server script
interprets it and sends a response to the client.
The requests and responses happen over TCP/IP.
However, delivery of requests/responses is not
guaranteed as the protocol does not support ACK.
There is no memory for HTTP, so it does not allow
clients and servers to remember each other or
relate one request with the other.
2.2 MQTT
Page 1 of 3
2.3 CoAP
2.4 AMQP
26 December 2015
Page 2 of 3
2.5 XMPP
S2S >
< S2S
Server
Server
D2S
D2S
Things
Things
D2D
D2D
Things
2.6 DDS
Things
Things
Things
26 December 2015
II.
III.
IV.
V.
5. Conclusion
Elaborate study on the protocols briefed
above evince that real time performance of an IoT
constellation has to happen at all levels namely
devices (things), communication protocol, and
middleware (protocol converters). While achieving
RT performance at device level data acquisition is
pretty simple, as we move upwards the layers of
the IoT constellation, it becomes relatively harder
to maintain the same level of achievement. Though
DDS oers high speed reliable data transfers, the
RTness of the protocol is limited to few micro
seconds. When loss of RT operations is lost at
D2D level of operations itself, it is challenging to
expect it to happen at other higher levels.
However near real time performance
based on predicted delays can be implemented at
the application layer, so that delay/latency is
expected. With precisely predicted delays, a
combination of CoAP + AMQP can be used for low
speed data transfers and MQTT + AMQP can be
used for high speed data transfers. When there is
necessity for combining D2D and D2S
communication with expectation of (near) real time
performance, it is meritorious to avoid using DDS +
MQTT/AQMP/XMPP, because all D2S protocols
can handle D2D indirectly. Moreover, connecting
the devices to DDS bus deprives its instant access
to publishes, thereby reducing its relevance to real
time requirements.
Page 3 of 3
Internet of Things
MQTT
HTTP
CoAP
AMQP
XMPP
DDS
RT
Real Time
URI
ACK
Acknowledgement
D2D
Device to Device
D2S
Device to Server
S2S
Server to Server
RAM
QoS
Quality of Service
RTOS
SDK
SBC
www.rajvigneshtn.weebly.com