Finally, the research work carried out by Dong et al. (2011) presents a trust management model in the IoT called TRM-IoT. This model helps defend against malicious node attacks by identifying them and taking the appropriate decisions. To perform this task, it is necessary to measure the trust of objects and this is done by taking into account complex aspects such as credibility assessment of nodes, for example. Fuzzy logic theory is then used to determine trust by taking into account different input parameters: the end-to-end packet transmission ratio, energy consumption and the packet delivery ratio.
1.5. QoS management for IoT services
1.5.1. Motivations and challenges
The IoT is a combination of different technologies and heterogeneous networks providing various types of services. Consequently, several types of data and flows with different or even contradictory constraints can coexist in the same IoT environment. From this observation follows the need for integrating QoS to satisfy the needs of each data type (Gubbi 2013). QoS is a critical element in the IoT, given that the large number of connected objects leads to a considerable increase in the volume of data in this type of environment. This increase may create congestion that affects the performance of the IoT system. In this context, QoS mechanisms optimize performance by identifying different traffic and applying the differentiated treatment. Performance management also helps reduce costs and improve scalability in the IoT environment (Bhaddurgatte and Kumar 2015).
QoS models used in traditional computer networks such as IntServ (Braden et al., 1994) and DiffServ (Babiarz et al., 2006) are difficult to implement in the IoT. This difficulty arises due to the constraints in terms of memory and computation capacities that IoT objects have as well as the wide scope of IoT and the random deployment of these objects. Thus, new and adapted QoS models must be offered to provide IoT services with a guarantee of connectivity, performance and, generally, of QoS (Premila et al. 2015).
Various international organizations have emphasized the importance of guaranteeing QoS in the IoT. ITU-T studied the importance of integrating QoS in the IoT environment in Y.2066 (ITU-T 2014), stating that prioritizing IoT services is an essential requirement. In addition, Y.2066 indicates that the prioritization feature makes it possible to satisfy the different service requirements for various IoT user groups. In other words, differentiated services should be supported, so that the IoT can provide different Service Level Agreements (SLAs). On the other hand, LinkLabs, an American company developing technologies for computer networks, indicates that the integration of QoS into IoT allows better management of the capabilities and resources in this type of environment to provide reliable and optimized infrastructure for connectivity of IoT objects. According to LinkLabs, in order to offer secure and predictable IoT services, QoS mechanisms will help manage delays, jitter, bandwidth and packet loss by categorizing traffic and recording the limits of communication channels (Ray 2016). The following section examines the requirements in terms of guaranteeing QoS as well as the responses provided within the different layers of the IoT architecture.
1.5.2. Guaranteeing QoS in IoT
1.5.2.1. IoT device layer
1.5.2.1.1. QoS requirements
The device layer of the IoT architecture includes connected objects and gateways that manage these objects. The QoS at this level must, therefore, respond to requirements with respect to objects and gateways.
An essential requirement for ensuring QoS in the device layer is the differentiation and prioritization of flows. The IoT brings together a varied group of applications of different types, belonging to different fields. Consequently, data from different applications do not have the same priority and different flows must be categorized based on their criticality and a certain prioritization must be applied through various appropriate QoS mechanisms. Based on the same concept of heterogeneity of applications, the QoS mechanisms applied must match the characteristics of these different applications. It is thus important to categorize IoT applications based on specific characteristics so as to offer the QoS mechanisms defined in the context of a homogeneous set of applications. Each set of applications will therefore have mechanisms that are well adapted to their requirements.
The performance management of the system, through the optimization of resource use to offer the best performance, is an important mechanism that we have to propose to ensure QoS at the level of this layer of the IoT architecture. The performance of the IoT environment must be monitored in order to meet the needs of clients using the IoT applications and to provide a service that fulfills the corresponding requirements. This monitoring consists of collecting precise information on the system and therefore the parameters for measuring the performance of the IoT environment must be well chosen. This choice makes it possible to specify parameters that are specific to the IoT, which must be quantified using the appropriate metrics.
Different protocols and communication technologies are used for information exchange between objects and gateways within the device layer in the IoT architecture. Therefore, the QoS mechanisms related to the device layer depend on these technologies. Some of these technologies have common bases, which makes it possible to generalize some of the QoS mechanisms used in this layer.
1.5.2.1.2. Research projects
Various projects and research studies have proposed the integration of QoS into the device layer of IoT architecture using mechanisms that have been adapted for this environment.
OpenIoT, a European project funded by FP7 (December 2011–December 2014), specifies different parameters for QoS in the IoT (Serrano 2014). These parameters are varied and can be divided into several categories. First of all, we have the general parameters such as the quality of the sensors that determine the accuracy and sensitivity of the measurements, and also the energy consumption. In addition, OpenIoT also takes into consideration the amount of data produced by a physical sensor, the coverage of the network of objects, and the trust correlated to the sensor quality. On the other hand, various parameters related to the network of objects in the device layer must be taken into consideration, for instance, lifetime, delay and jitter. Different metrics are considered to quantify each QoS parameter specified in the OpenIoT project. For example, the parameter related to energy consumption is quantified using battery level. Finally, this project makes it possible to apply QoS using a QoS Manager that can collect information on different parameters, which will allow the manager to take decisions in order to improve the quality delivered to users (Serrano 2014).
The research work carried out in Nef et al. (2012) concerning QoS guarantee in the IoT suggests that the different IoT applications be classified according to three service models, i.e. Open Service Model, Supple Service Model and Complete Service Model. Each category will correspond to a physical topology for the implementation of the sensors. The Open Service Model refers to interactive, non-real-time and non-critical applications; the Supple Service Model corresponds to interactive, Soft Real Time and critical applications; the Complete Service Model corresponds to interactive, Hard Real Time and critical applications. The authors then classified applications belonging to different domains according to these three models. In addition, this work has matched the proposed service models to physical topologies (star topology and random topology) at the device layer to meet the needs of each model. Indeed, applications belonging to the “Complete” model must be provided using a physical star topology for shorter delays. However, applications belonging to the “Open” model must be provided through a random physical topology for better energy consumption.
Other research has focused on prioritizing access to the shared communication channel between IoT objects to ensure there is a differentiation of traffic when sending data to gateways. The research work carried out in Sayarifah et al.