IOT standard protocols overview from a developer's reference
Overview
IoT is a vast concept and it consists of a wide range of technologies, same is true when it comes to protocol, at a glance, there is no specific answer for standard IoT protocol. However, if we dig it a little deeper, probably we will be in a better position to answer such questions.
IoT Protocols
Before we explore the protocol side of IoT we have to know about the main concern of IoT the low resources!. Small, tiny IoT hardware like sensors, switches, and controllers running on batteries, does not possess enough processing power, ram, or energy to communicate and process the regular internet protocols which are built for high-end computers, to address such issues IoT devices have to use only those protocols which are resource and energy-efficient.
There is no one protocol that can single-handled make a difference when it comes to efficiency. But IoT has to use multiple protocols to address each networking layer (TCP/IP model or OSI model)
Following a list of most commonly used IoT protocols as per existing architectural models like the TCP model, We have broken the protocols into the following layers in order to provide some kind of organization.
- Application Layer
- Transport Layer
- Internet Layer
- Physical / Link Layer
Application Protocols
As a developer, the important protocols to discuss is the application protocol and the communication protocol.
MQTT(Message queuing telemetry transport)
MQTT is a machine to machine(M2M) “internet of things” connectivity protocol. It was designed as an extremely lightweight publish/subscribe protocol, just like Twitter. You can subscribe to some topics and publish to others. It is useful for communication with remote locations where a small amount of footprint is required and bandwidth is premium. For example, it is very useful for mobile applications due to its small size, low power consumption, and efficient distribution of information between receivers. Furthermore, you can also configure the protocol to be more reliable by guaranteeing delivery.
CoAP
A specialized web transfer protocol to be used with constrained nodes and networks in the internet of things(IoT). It was designed to provide the machine to machine applications like smart energy and building automation. It is designed to easily translate to HTTP in order to provide simplified integration with the web, with also the added feature of multicast support, low overhead, and simplicity. It can either utilize the proxy server or can also directly communicate with a specialized server designed to use CoAP, under certain environmental conditions.
It efficiently fulfills the need for an extremely lightweight protocol and the ability for a permanent connection.
Transport Layer
UDP
UDP is an alternative communication protocol for establishing low latency and loss tolerating connections between applications on the internet. It has two distinct features firstly it has port numbers to distinguish different user requests and a checksum also to verify that the data arrived is intact or not.
DTLS
DTLS is a derivation of SSL protocol. It provides the same security services (integrity, authentification and confidentiality) but under UDP protocol. DTLS is implemented by several projects including CyaSSL and the OpenSSL project
Internet Layer
6LoWPAN
6LoWPAN is an acronym of IPv6 over Low power Wireless Personal Area Networks. It is an adaption layer for IPv6 over IEEE802.15.4 links. This protocol operates only in the 2.4 GHz frequency range with 250 kbps transfer rate."
Physical / Link Layer
NFC
Near Field Communication (NFC) is a short-range wireless connectivity standard (Ecma-340, ISO/IEC 18092) that uses magnetic field induction to enable communication between devices when they're touched together, or brought within a few centimeters of each other.
Zigbee
Zigbee is an open global standard for wireless communication designed to use low-power digital radio signals for wireless communication. It operates on 2.4 ISM GHz and its most self-describing feature is the use of 128-bit AES. It is based on IEEE standard 802.15.4
Lora
Lora is a Low Power Wide Area Network (LPWAN) specification intended for wireless battery-operated Things in a regional, national or global network. Lora targets key requirements of the Internet of Things such as secure bi-directional communication, mobility, and localization services.
Bluetooth LE
Bluetooth LE or Bluetooth Smart is a wireless personal area network technology aimed at novel applications in the healthcare, fitness, beacons, security, and home entertainment industries.
Conclusion
As a being developer, our concern is the application layer protocols which are MQTT and CoAP, Where MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol accepted as standard by Advancing Open Standards For The Information Society. And whereas the CoAP is a specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation. And CoAP is being standardized by The Internet Engineering Task Force.
To conclude I can say that on the Application layer of the OSI model / TCP model there are only two standard protocols for IoT CoAP, and MQTT and anything other than that including XML, Rest or APIs will be considered as vendor-specific. Further it worth noting that even MQTT was developed by some private organizations but has been adopted by big IoT players like Google, Azure ( Microsoft), and Amazon. However at the other end, CoAP was standardized by a standard body i.e IETF, and specially designed for resource-constrained environments, and its HTTP-like approach makes it a better candidate for future IoT development.