The IoT is simple in theory: use the vast connectivity of the Internet to send data from the smallest devices – such as switches and sensors – to the cloud, on-premises server farms or platforms. large-scale data to model the world more accurately. This model forms the basis for whole new classes of applications, analyzes and efficiencies and optimizations that were previously unimaginable.
The global growth of IoT-based applications is making the cloud tame, when it comes to technological innovations and social significance. The IoT has given the world automated industrial operations, personal health care monitoring, traffic control, and smart homes. The list is very long and growing.
However, despite all the connectivity available and the technological revolution promoted by the IoT, it presents communication challenges rarely seen in more conventional network scenarios.
Understanding the challenges of IoT communication
Application layer protocols in IoT face some major challenges in IoT network communications. Data in IoT is more complex than in conventional networks. In a simple scenario, a sensor reports a temperature to a local network, which then transmits the data to a cloud over the Internet. Complex scenarios can become as tricky as the dialogue between multiple machines in a factory that selectively shut down when environmental sensors signal the detection of a fire, while a cloud AI system monitors the shutdown and reports. the event to several external systems. The simple scenario consists of a single type of data and a single message moving in one direction. The complex includes many types of data in many messages among many devices that need to exchange data efficiently. The material itself can vary wildly.
The conventional protocol standard, HTTP, is not necessarily appropriate for small devices. Some IoT devices are HTTP enabled and benefit from the functionality of HTTP transport, but many, if not most, are not and cannot. HTTP is designed for very heavy and rich communications, while most IoT communications are necessarily minimal, given the small size and scarcity of hardware and firmware in most devices. An HTTP header can contain hundreds of bytes; it’s nothing in most internet communications, but it’s huge for most IoT devices. Lighter protocols capable of using HTTP but not HTTP are required.
How the application layer works
Some IoT devices have directly built-in network capability, but most connect to the internet through a gateway.
The IoT uses the Open Systems Interconnection Model, which uses seven interactive layers to manage each phase of message transport. The IoT Application Layer is one of seven layers, three of which are of particular importance for IoT application protocols.
The physical network layer is the actual infrastructure that moves data, such as Ethernet, Wi-Fi, or Bluetooth.
The transport layer is the protocol that supports the movement of data, such as Transmission Control Protocol (TCP), HTTP, or User Datagram Protocol (UDP).
The application layer is the interface between the IoT device and the network with which it will communicate. It handles the formatting and presentation of data and acts as a bridge between what the IoT device does and the network transfer of the data it produces.
Main Application Layer Protocols in IoT
Engineers have a number of IoT application layer protocols to choose from, covering a wide range of functionality. The right protocol for a particular IoT application depends on a number of factors depending on the type of device involved and the function it will perform:
- Data latency. What should the data transport speed be? How long can a packet of data reasonably take to travel from one point to another?
- Reliability. How important is data loss in IoT application? How redundant should device communication be?
- Bandwidth. What is the volume of data to manage?
- Transport. What is the best transport protocol for the IoT application? TCP, UDP and HTTP each provide functionality that can be used by the application layer protocols with which they are compatible.
Engineers should answer these questions before considering specific protocols to determine which features will be most important.
Five of the main protocols and their most important features for IoT are:
Binding application protocol. Organizations use CoAP with limited hardware that has a low transmission rate because it is lightweight. The protocol is compatible with HTTP and uses two basic types of messages: request and response. Messages can be confirmable or unconfirmable. Data packets are small, so message loss is minimal. The downside is that the protocol lacks security, which engineers can normally address with datagram transport layer security, but DTLS is of limited use in IoT.
Message Queue Telemetry Transport. MQTT is a publish / subscribe protocol, efficient for lightweight machine-to-machine (M2M) connectivity over TCP and minimizes data loss. Publish / Subscribe for IoT means customers don’t have to call for updates, reducing network traffic and processing load. The protocol also accommodates a range of quality enforcement levels, from delivering a simple handshake to requiring acknowledgment.
Expandable message and attendance protocol. XMPP is based on XML, the popular document encoding markup language for its user-friendly readability. As an HTML extension, XMPP is useful for real-time communication, including presence, content syndication, and instant messaging. The protocol is highly scalable and provides devices with data-carrying nodes that can connect to other nodes on demand to create a complex local area network and data sharing.
Advanced message queuing protocol. AMQP is an asynchronous protocol. Like MQTT, it uses a publish / subscribe approach. Engineers use the protocol primarily over TCP, but it is capable of other transport methods as well. The protocol is flexible in terms of quality and offers one or more optional delivery guarantees. AMQP implements security through Transport Layer Security and Secure Sockets Layer.
Representative state transfer. REST is the most ubiquitous protocol and gives synchronous request-response to IoT over HTTP. HTTP makes it feature rich, as well as capable of authentication and caching, both of which are useful in complex environments, although difficult to implement in the IoT. The protocol is both XML and JSON compatible, which is useful for M2M and communication with tablets and smartphones, a boon for IoT.