Many times we have heard the phrase: “We understand each other because we speak the same language.” Although applied to humans this is not always true, it is true in machines: thanks to common languages (languages), they can communicate and create something as incredible as the Internet, the network of networks that changed the world completely.
The languages that machines speak are called communication protocols.
The languages that machines speak are called communication protocols. They not only determine which words machines use to communicate, but also when and how these words are used. Hence the term protocol.
Machines use a large number of protocols. For each specific communication task they must perform they use one. Some of these protocols are well known to all, such as HTTP, the protocol that allows web browsing and that Tim Berners-Lee presented to the world on February 26, 30 years ago. Most are only known to experts, although without them nothing would work.
The advancement of communication networks and microelectronics made it possible to imagine a world in which not only computers were connected to the Internet, but also everyday objects. They were endowed with intelligence by being able to communicate.
Today we can say that the Internet of Things (IoT) or Internet of things, a term coined by Kevin Ashton already in 1999, is a reality.
A large number of things connected
The number of things that can be connected to the Internet is very high. The term thing encompasses any everyday object, from a light bulb to a refrigerator or a car.
Machines connected to the Internet are identified with IP addresses. Initially, 32-bit addresses, known as IPv4, and later 128-bit, known as IPv6, were used. While IPv4 is still widespread in classical computer networks, IPv6 has had to be used in the Internet of Things.
In 2019 there were 26.66 billion things connected to the Internet, and the forecast for 2025 is that there will be more than 75 billion.
Smaller messages, lower speed
Among the wide variety of devices on the Internet of Things, there are many that are battery-operated. Therefore, reducing the consumption of communication for them is key to maximizing their duration and energy efficiency.
Consider, for example, sensor networks used in agriculture to monitor crops. This need led to a redesign of many of the communication protocols designed for computers, where energy consumption is not so important.
On the other hand, we do not need the same connection speed to turn a light bulb on and off or get a temperature sensor reading as when we watch a streaming series.
To communicate with each other, things often use low-speed networks in which small messages are exchanged, which significantly reduces energy consumption. On many occasions, Wi-Fi or cellular networks are not used as they use, for example, our phones, but new ones such as ZigBee or BLE (Bluetooth Low Energy) have been designed, among others.
These new networks that use new protocols make it necessary for many devices to need an intermediate element (a gateway) that translates the protocols between them to connect to the Internet. That is why many times, when we buy home automation kits for our home, we also need this additional device.
Alternative protocols to HTTP
In the same way that machines on the Internet use the well-known HTTP protocol to exchange all kinds of information, things need an equivalent protocol to do so. This allows them to offer services to users. For example, when a light sensor detects that it is dark, it can automatically turn on multiple lights inside the home.
One might wonder why HTTP was not used. The reason is that the evolution of the Web and the type of services for which we use it make HTTP a very complex protocol. It consumes a large number of resources that things, as we have mentioned before, do not usually have, nor do they need. That is why alternatives have been proposed. The two most widely used today are MQTT and CoAP.
The MQTT (Message Queue Telemetry Transport) was defined in 1999 by IBM and Arcom and later standardized by ISO. The CoAP (Constrained Application Protocol), created in the IETF and standard since 2014, simplifies the HTTP protocol to adapt to the characteristics of these networks and things. Its foundation is different. MQTT is based on a more complex but more scalable publisher-subscriber system, and CoAP is based on a much simpler but less scalable request-response system.