IoT devices are diverse in their architecture and its use cases can scale from single device deployment to massive cross-platform deployment. There are various types of communication protocols that allow communication between these devices. Some of the protocols are given below.
IPv4
Internet Protocol is a network layer protocol version 4 used to provide addresses to hosts in a
network. It is a widely used communication protocol for different kinds of networks. It is a
connectionless protocol that makes use of packet switching technology. It is used to give a 32 bit
address to a host. It is divided into five classes – A, B, C, D, and E. It can provide upto 4.3
billion addresses only which is not sufficient for an IoT device. It allows data to be encrypted but
does not limit access to data hosted on the network.
IPV6
As the total number of addresses provided by IPv4 are not sufficient specially for IoT devices,
Internet protocol version 6 or IPv6 is introduced. It is an upgraded version of IPv4. It uses 128
bits to address a host hence anticipates future growth and provides relief from shortage of
network addresses. It gives better performance than IPv4. It also ensures privacy and data
integrity. It is automatically configured and has built-in support for authentication.
MQTT
Message queuing telemetry transport (MQTT) is a widely used light-weight messaging protocol
based on subscription. It is used in conjunction with TCP/IP protocol. It is designed for battery
powered devices. Its model is based on Subscriber, Publisher and Broker. Publishers are light
weight sensors and subscribers are applications which will receive data from publishers.
Subscribers need to subscribe to a topic. Messages updated in a topic are distributed by brokers.
Publisher collects the data and sends it to the subscriber through a broker. Broker after receiving
messages, filtering and making decisions, sends messages to the subscribers. Brokers also ensure
security by authorizing subscribers and publishers.
CoAP
Constrained Application Protocol (CoAP) is a web transfer protocol used to translate the HTTP
model so as to be used with restrictive devices and network environments. It is used for low
powered devices. It allows low power sensors to interact with RESTful services. It makes use of
UDP for establishing communication between endpoints. It allows data to be transmitted to
multiple hosts using low bandwidth.
XMPP
Extensible messaging and presence protocol (XMPP) enables real time exchange of extensible
data between network entities. It is a communication protocol based on XML i.e. extensible
markup language. It is an open standard hence anyone can implement these services. It also
supports M2M communication across a variety of networks. It can be used for instant
messaging, multi-party chat, video calls, etc.
AMQP
Advanced message queuing protocol i.e AMQP is an application layer message oriented
protocol. It is open standard, efficient, multi-channel, portable and secure. This is fast and also
guarantees delivery along with acknowledgement of received messages. It can be used for both
point-to-point and publish-subscribe messaging. It is used for messaging in client-server
environments. It also supports a multi-client environment and helps servers to handle requests
faster