Keywords

1 Introduction

The increase in the use of Internet on the everyday task and rapid growth in technology are revolutionizing and automatizing the world scenario to improve the quality of human lives as shown in Fig. 1. IoT enables the Internet-connected devices to connect together for different application. It is network of different combination of domain and heterogeneous devices. These devices act as an actuators to sense the inputs and respond immediately by quickly analyzed. The physical devices of the network are realized by using these sensing devices and can be used in several application such as communication, transportation, agriculture, home automation, healthcare, industrial automation and emergency services. Raspberry Pi and Arduino microcontrollers are enable the devices to measure sensor’s data and send it over the Internet. Car, refrigerator and any other electronic devices are the example of such devices. Nowadays use of transmission, collection, consolidation and displaying of sensor’s data are most common practice. In other words, data between physical devices each other are being controlled by IoT physical devices. In upcoming days, billions and trillions of devices will get involved in building a smarter world [1]. In addition to this, IoT application is extended to smart domain such as e-health, transportation, home and industry automation as described by Said and Albagory [2]. IoT is a model of large number of heterogeneous devices, so data interoperability is a challenge in data mining. To overcome this issue, most popular methods are presented in Madhu et al. [3]. In IoT, many researchers are contributing in design and development of protocols for different fields of IoT. The secure authentication is provided for different nodes or devices in a hierarchical network of IoT. Pooja et al. [4] presented protocol for secure communication among the nodes which is formulated using three way authentications. Sadiya Thazeen et al. [5] presented comparison of IoT and Cyber-Physical Systems (CPS). Several aspects of IoT and CPS are consider during comparison such as differences between CPS and IoT, overview of the CPS, security and privacy in IoT, challenges of each layer of architectures and various architectures of IoT.

Fig. 1
A diagram exhibits an Inter of things applications that utilize in smart cities, industrial internet smart health, smart space services, home applications, and wearables mobiles.

IoT applications

Li et al. [6] presented a survey on security and privacy in IoT. In this paper, different attack on IoT device, limitation of the IoT device, IoT security at different layers, authentication and access to IoT device have been addressed. Hence, this helps in to understand various aspects of security. The rest of this paper is organized as follows; Internet of things functional overview is presented in Sect. 2, the protocol standards are discussed and highlighted in Sect. 3, comparative analysis of AMQP and MQTT is presented in Sect. 4 and Conclusion is presented in Sect. 5.

2 Functional Overview of IOT

Sensing, analysis, communication and computation are the four functioning modules of Internet of Things. IoT implementation using different functional modules is shown in Fig. 2 [7]. These functional modules are used to establish the functional environment for different applications ranging from industries to healthcare.

Fig. 2
A I o T functional view diagram connects applications to management, I oT business process Management, I o T services, communication, security, and device.

IoT functional view

2.1 Sensing

Different types of sensors are used to collect different types of data such as non-programmable peripheral interface devices, actuators, etc. [8]. The sensing devices collect the data in raw form and store it in temporary storage without processing. In the constrained environment such as the uses of deployment and low power, these devices are used.

2.2 Communication

Several protocols such as Wi-Fi, Bluetooth, LTE-Advanced, NFC, UWB, RFID and communication links are used to store the data in storage devices. To implement IoT standards such as MQTT, CoAP, AMQP, Data Distribution Service (DDS), Extensible Messaging and Presence Protocol (XMPP), etc. [9], above protocols are used since it support for the IoT platform. Device usability and their environment need to be keeping in the mind when developing these protocols. As the growth of Internet of Things is increased rapidly, the network will be connected with large number of heterogeneous devices. In IoT communication due to this various issues communication between the devices is challenging such as memory usage, Quality of Service (QoS), addressing and identification.

2.3 Computation

Structures of data verification make them available for processing which is done by protocols during computation. The separate hardware and software level of processing is done. Cloud computing and Fog or Edge are used on software level. Embedded devices such as sensors, actuators and other devices are connected in IoT. The above devices generates large amount of data, and to extract knowledge from this, a complex computations is required. In Lenka et al. [10] presented various IoT platforms for hardware utilization such as the, Raspberry Pi, Intel Galileo, BeagleBone, Cubieboard, Arduino and WiSense. Authors also highlighted use of smart devices such as laptop and mobile. Different software and operating systems are used by these smart devices such as C, C++, JAVA and TinyOS, LiteOS, RiotOS, Android, Contiki etc. The Fog or Edge computing and cloud computing which provide smart computing ability to IoT [11]. A cloud is a platform which stores the data and managed the data in real time, and it can be processed further for intelligent analysis.

2.4 Analysis

Analysis is extracting the vision from information for further processing in IoT. Through sensors data are collected in the form of batches during analysis. These data are in large amount, and it is called Big Data. Analysis of data helps in understanding disposal of the data, with interest toward avoiding failures minimizing maintenance and improving operations.

  • Analysis of Intelligent: Cognitive technologies driven the analysis of data. The data analysis process varies in the form of voice, information, vision and usability with the ability of technological advancement. For real-time data streams, analysis is very much required. Within an IoT managing, the real-time data and ability to analyze unstructured data in data model are the open challenging issues in data analytics.

  • Intelligent Actions: Machine to Human (M2H) and Machine to Machine (M2M) interfaces can be expressed for intelligent actions. In improving machine functionality and minimizing the machine prices, an intelligent agent will play a vital role in IoT [12]. In unpredictable situations, machine actions will become more challenging to privacy, security, machine interoperability and mean-reverting human behaviors which slow adoption of new technologies in IoT as described by Shin et al. [13], Taher et al. [14] IoT functions, elements and levels are illustrated in Table1.

    Table 1 IoT levels, functions and elements

3 Standards

Internet of Things has covered scope of different areas and fields. To provide the features of IoT and to support in various distinct fields, protocols and standards are used by many groups. Many organizations such as Internet Engineering Task Force (IETF), Wide Web Consortium (W3C), Institute of Electrical and Electronics Engineers (IEEE) are proposed several standards to support of Internet of Things. Protocols standardization is process is fully done by the Internet Engineering Task Force Ghahramani [12]. Different level of standards is highlighted in Fig. 3. Different domains such as infrastructures, influential and application above standards are utilized [15].

Fig. 3
A flow diagram flow from I o T standards to application, infrastructure, and influetial.

IoT standards

3.1 Application Protocols

The data presentation and formatting is the responsibility of the application layer. HTTP protocol has been considered as reference protocol form long time in communication as shown in Fig. 4. HTTP especially supported for Internet applications but HTTP is not suitable for some of the constrained environment. Hence to find solution, several other protocols are developed such as MQTT, CoAP, MQTT-SN, XMPP, DDS, AMQP etc. The protocols MQTT and AMQP are most popular and widely used protocols [13]. Some of the popular protocols discussed in this section are Shin et al., Taher et al.

Fig. 4
A diagram depicts the client browser request, sends the H T T P headers to the web server, and decodes and sends the H T T P response headers. It has file locations and creates headers formatting data.

HTTP protocol formation

3.2 Constrained Application Protocol (CoAP)

IETF is proposed the CoAP for managing and retrieving information for devices and sensors. For IoT, application layer protocol and literature with functionalities are presented of CoAP), Municio et al. [16]. Fulfilling the needs of resource-constrained devices which is the primary aim of CoAP protocol. Two-layered approach is used by CoAP; request–response models and processing the features of messaging. In general, the messaging model deals with interchanging the messages asynchronously through the user datagram protocol Stute et al. [17]. For IoT applications, CoAP is bound to UDP to make it more suitable Moosavi [18]. Hence, it is not limited to TCP and DTLS implementation if required. It uses protocols such as Representational State Transfer (REST) protocol to share the communication model with HTTP Mahendra et al. [19]. Confirmable, Non-confirmable, Acknowledge and Reset are four types of messages which are represented by two bits such as 00, 01, 10 and11, respectively. It is well suited for constrained oriented environments, and it uses four methods supported by HTTP Get, Post, Put and Delete Mallikarjunaswamy et al. [20].

3.3 Message Queuing Telemetry Transport (MQTT)

MQTT is designed based on binary lightweight protocol as bandwidth efficient and consumes very low power. It is called as reliable protocol since it uses acknowledgment scheme in all formats as shown in Fig. 5. It uses the concept of asynchronous message queuing, hence it is referred as open protocol. For machine-to-machine communication, it uses subscribe architecture or publish in an environment of low bandwidth and works on transmission control protocol. Connection semantics, routing and endpoint are the three elements specification provided by MQTT Shivaji et al. [21]. Publisher, subscriber and broker are the three component consists in the protocol. To enable the messages be pushed to the clients, the publish and subscribe are event-driven. MQTT broker is with the central control. Between the sender and right receivers, the broker is responsible for dispatching all messages is given in Eq. 1.

$$\begin{aligned} {\text{MQTT packet length}} & = {\text{control header}} + {\text{length}} + {\text{protocol level}} \\ & \quad + {\text{connect flags}} + {\text{payload}} \\ \end{aligned}$$
(1)
Fig. 5
A block diagram flows from publisher M Q T T CLIENT, publish message 1 and 2 to M Q T T BROKER, and subscribe message 1 and 2 of M Q T T CLIENT.

MQTT communication protocol

QoS level of delivery assurance is defined by protocol level. Maximum 4 bytes is the packet length and control header is fixed 1 byte. MQTT protocols are developed in two versions, for TCP/IP protocol, MQTT is designed and for UDP and ZigBee protocols, MQTT-SN is designed.

3.4 Advanced Message Queuing Protocol (AMQP)

For the message-oriented environment, AMQP is an open standard application layer protocol is addressed in Mallikarjunaswamy [22]. AMQP is an open standard application layer protocol for the message-oriented environment which is presented in Chaitra et al. [23]. Its main objective is to enhance interoperability by making to operate in different systems and applications to work together. It is also open source and asynchronous protocol. AMQP has a same architectural scheme as MQTT like publishing, broker and subscriber, but it includes message exchange mechanism like separate queues for the respective subscriber as shown in Fig. 6.

Fig. 6
A diagram illustrates the process of the A M Q P protocol mechanism. It exhibits the exchange of messages from the publisher to the consumer via queues.

Mechanism of AMQP protocol

According to the predefined criteria as shown in Fig. 6, the exchange model receives the messages from the publisher and route them to queues. To examine the message and route, it uses a routine and instances in proper queue by using key, which is called as a virtual address.

4 AMQP and MQTT Comparative Analysis

In the literature, most popular protocols used are AMQP and MQTT. Different parameters are consider to make comparison between MQTT and AMQT such as frame structure as in Table 2, use of the protocol, response and transaction. The similarities and dissimilarities are highlighted in Tables 3 and 4 of MQTT, CoAP and AMQT protocols [24,25,26,27].

Table 2 CoAP and MQTT protocol comparison
Table 3 AMQP and MQTT protocol similarities
Table 4 AMQP and MQTT protocol dissimilarities

The comparison results MQTT and AMQP helps in selection of protocols in different IoT application in a real-life scenario.

5 Conclusion

Internet of Things has a huge contribution for the development of technology and application design along with the artificial intelligence and machine learning. Data is a major component in all the applications. Secure data transfer is of utmost importance via networking interfaces which has to be authenticated. Protocols and computational algorithms are necessary for processing the senses data through various IoT devices to predict results. In this paper, we present the overview and characteristics of IoT protocols. Apart from this, an extensive analysis has been carried out on the IoT application layer protocol such as CoAP, AMQP and MQTT used in different IoT applications. Furthermore, we have highlighted similarities, dissimilarities and comparison of application layer protocol. However, this review helps the several researchers to identify and utilize in appropriate protocol for different real-time IoT applications.