IOT standard protocols overview from a developer's reference

Overview

IoT is vast concept and it consist 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 better position to answer such questions.

IoT Protocols

Before we explore 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 which can single handledly make a difference when it comes to efficiency. But IoT have 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 model like TCP model, We have broken the protocols into the following layers in order to provide some kind of organization.

  1. Application Layer
  2. Transport Layer
  3. Internet Layer
  4. Physical / Link Layer

Application Protocols

As a developer the important protocol to discuss are 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 commmunication with remote location where a small amount of footprint is required and bandwidth is premium. For example it is very useful for mobile applications due to 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 node 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 the simplified integration with web, with also the added feature of multicast suuport, low overhead and simplicity. It can either utilize the proxy server or can also directly communicate with specialized server designed to use CoAP, under certain environment conditions.
It efficiently fullfills the need of 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 less 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
Zibee is an open global standard for wireless communication designe 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 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 applplication 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 where as 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 a being standardized by The Internet Engineering Task Force.

To conclude I can say that on Application layer of OSI model / TCP model there are only two standard protocols for IoT CoAP, and MQTT and any thing other then that including XML, Rest or APIs will be considered as vendor specific. Further it worth to note that even MQTT was developed by some private organization but has been adopted by big IoT players like Google, Azure ( Microsoft) and Amazon. However at the other end CoAP was standardized by standard body i.e IETF and especially designed for resource-constrained environments, and its HTTP like approach make it better candidate for future IoT development.