paragraph{Device to device level:} Sometimes sensors or industrial devices need to send data to other devices to work together. In such situations, the communication and the information delivery should be fast and real-time since the timeliness of the data is the very important and vital. For instance, in a factory, some embedded or industrial devices or sensors must corporate and work together to complete a task such as creating the skeleton of a car. Data Distribution Service (DDS) or Constrained Application Protocol (CoAP) is the popular choice at this level. paragraph{Device to gateway level:} Most of the sensors or devices are used for gathering information and they need to send its data that they collected before, to an aggregating gateway device. The main duty of the gateway is that they can analyze, aggregate or manipulate information coming from low-level devices and forward this data to the main servers or services. They also send notifications and commands from these servers to the devices such as “Restart”, “Shut-down” or “Get Information”. They can also send the data directly to the databases which will be processed by servers later. . Another usage might be that it is used as the firewall. The devices may not have direct access from the outside, or it is not wanted to be accessed directly. Message Queuing Telemetry Transport (MQTT) is mainly used at this level.paragraph{Gateway to server level:} The gateway devices generally have no problems with the computing capabilities because they are a lot more powerful computing devices than the sensors. Therefore, they can use more advanced protocols with reliable networks and QoS. As a result, the choice of the communication protocol does not depend on the capabilities of the device, but it depends on the QoS requirements such as security, availability or reliability. Hypertext Transfer Protocol (HTTP) and Advanced Message Queuing Protocol (AMQP) can be used at this level as the devices are not limited by the power consumption. paragraph{Server to server level:} Within the secure servers or data-centers, the selection of the communication protocol depends on the need for integration with existing applications, availability, recoverability, and throughput. An example would be, a climate service passing messages to the news service. Here interoperability is vital as the services may have completely different implementations, therefore, AMQP or HTTP can be used. In this example, the news service might be implemented in Microsoft’s .NET and the climate service could be implemented in Oracle’s Java environment.