1.5.2.2. IoT network layer
1.5.2.2.1. QoS requirements
The network layer of the IoT architecture includes all the network functionalities such as routing, transfer and path management (path selection and recovery) via a multipath infrastructure. This layer acts as a network infrastructure interconnecting the object network with the Cloud infrastructure.
The integration of QoS in this layer will enable the processing of the large volume of requests and information passing from the device layer to the support layer of the IoT architecture. This processing must be differentiated; in other words, it must prioritize the requests according to their importance. As a result, the QoS requirements for the network layer of the IoT architecture correspond to the QoS requirements of a network infrastructure while also adapting these requirements to the characteristics of the IoT environment. Various mechanisms, such as the prioritizing of requests and the choice of paths based on a QoS context, may be useful in meeting the requirements of the IoT.
1.5.2.2.2. Research projects
F-Interop Platform, a European project funded by H2020 (November 2015– November 2018), has developed test tools for QoS and Quality of Experience (QoE), based on SDN/NFV (Software Defined Networking/Network Functions Virtualization) that can be used in the IoT (Ziegler 2015). These technologies can replace conventional technologies to guarantee QoS in the network layer of the IoT architecture. SDN technology consists of separating monitoring functions from data routing functions. The SDN controller (the component centralizing the decision making and management of the network formed by network equipment which exchanges data with each other) can impose policies on flows to provide different levels of QoS. NFV technology, on the other hand, makes it possible to provide modules to apply the various policies for the deployment of agents and to emulate network conditions while collecting measurements related to QoS parameters (Ziegler 2015). The collection of QoS statistics (delay, jitter, etc.) may be carried out through the F-Interop solution using a passive or active method. The passive method relies on the collection of QoS statistics from SDN switches on which counters are implemented to measure the throughput or loss of packets, for example. The active method relies on the use of NFV agents to measure QoS parameters in real time. The collection of information relates to data regarding packet loss, delay and jitter (Ziegler 2015).
1.5.2.3. The support and application layer in the IoT
1.5.2.3.1. QoS requirements
The support layer of the IoT architecture includes Cloud services as well as computing and storage capacities. In addition, the application layer includes IoT applications for processing data and carrying out calculations for useful purposes.
It is difficult to guarantee QoS in the Cloud hosting IoT applications and this constitutes an emerging discipline that poses several research challenges. This is due to the shortage of standardized end-to-end approaches for QoS guarantee in this type of environment. In addition, there are a variety of constraints and QoS parameters specific to each Cloud service. Indeed, the QoS requirements in the Cloud are varied and depend on the service provided by the Cloud. These services are Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). The Cloud can also provide network services called Network as a Service (NaaS) that may make up the infrastructure connecting the device layer to the support layer offering IaaS, PaaS or SaaS type services in an IoT environment.
QoS requirements in a Cloud environment, and therefore in the support layer and the application layer of the IoT architecture, may relate to the availability of the service, the need to provide mechanisms that can process different types of data flows in a differentiated manner, the allocation of resources according to the needs of data flows or standardization of SLAs (Hamze 2015).
1.5.2.3.2. Research projects
Various projects and research works have studied the integration of Cloud technology in the IoT as well as the guarantee of QoS in this context.
The European BigClouT project, funded by H2020 (July 2016–June 2019), aims to use the three major technological tools of the moment, namely IoT, Cloud and Big Data, in order to increase the efficiency of urban, economic and natural infrastructure shared by growing populations (Grugen 2018). Another research study carried out in Khodkari et al. (2017) considered that the integration of the Cloud in the IoT environment makes it possible to guarantee a QoS level for applications because of the significant resources of the Cloud. Indeed, the Cloud is able to manage diversified data and supply IoT applications with resources in a dynamic way to guarantee performance while lowering costs. In this context, the authors have proposed different functions for measuring QoS attributes (that is, response time, availability, throughput, etc.). On the other hand, the authors in Chowdhury et al. (2018) study the Cloud environment and also IoT. In this context, they highlight different concepts concerning the maintenance of good QoS, the different parameters on which QoS depends (classifying them according to IoT layers), the different problems encountered in maintaining these parameters and the possible solutions for overcoming issues in the Cloud and IoT. This work presents the various parameters to be taken into consideration for the IoT architecture layers, such as traffic load, service deadlines, service time, service precision and service priority. According to this research, QoS parameters in the IoT environment must also consider characteristics of IoT applications hosted in the Cloud.
1.5.2.4. Cross-layer approach in IoT
1.5.2.4.1. QoS requirements
Having defined the various QoS requirements inherent to each IoT layer and the mechanisms that can enable QoS in each layer, we must specify the requirements and mechanisms to provide end-to-end QoS across the different layers of the IoT architecture. This end-to-end QoS allows clients to perceive the service level provided. The client (IoT application user) evaluates the overall level of end-to-end QoS and does not differentiate between the different levels into which the QoS is divided.
Different research studies have focused on end-to-end QoS in the IoT and specify the different needs relating to this type of environment. First of all, the IoT environment must be capable of prioritizing certain flows and services based on their requirements. IoT users who have paid for privileged services must be able to benefit from these. In addition, the deployment of the IoT, starting from the device layer up to the hosting of the application at the support layer, must be carried out in an optimal way to take into account the capabilities required from the different components. The gateways must be able to process the volume of data transmitted by the objects while the Cloud service must be able to provide the necessary computing and storage capabilities. Similarly, all components of the IoT environment must be capable of adapting themselves in real-time to meet the needs of different user flows. The QoS requirements for different layers of the architecture must then be translated such that they are comprehensible to the other layers. This translation allows different IoT layers to communicate with each other in order to meet QoS requirements. Consequently, guaranteeing end-to-end QoS in the IoT first requires breaking down QoS needs according to the different layers of the IoT architecture and then finding mechanisms to apply in a complementary manner between these layers.