The difficulty of providing a middleware supporting QoS, focusing on the influence of network traffic on network performance and the problem that common mechanisms for providing priority have in terms of delay reduction is studied here. More specifically, different network topologies and sizes by means of the PSQUASAR middleware are tested under different network loads and the results are analyzed in terms of reliability, collisions, queue size and delay.
In conventional sensor devices, the unicast communication scheme used by developers and provided at the network layer conceals the shared medium that exists in lower layers and sometimes it is difficult to explain certain performance results if we do not take into account the way the data link layer works. Considering these issues and the need to provide a data link layer that is compatible with the features of the network layer, the performance of queue-based priority mechanisms have been analyzed, based on the counterintuitive results that have been obtained.Motivation
Supporting real-time QoS and programming applications for WSANs is a challenging task. Principally, two (not exclusive) approaches have been proposed to deal with priority and reliability. The first approach is to deal with these issues at the network layer. This means that the routing protocol is the one in charge of dealing with reliability and priority. In the other approach, these requirements are handled at the data link layer, i.e., the MAC protocol is in charge of these tasks. The most common way of offering reliability is by means of multiple retransmissions of a packet until an ACK is received by the sender. As for priority, a PQS constitutes the most common mechanism. Packets with a higher priority are placed in the queue in the top positions so that they are handled more urgently. The use of reliability at the network layer is reasonable, as this layer is the one over which developers program their applications. Developers can control when to use the extra resources (energy and computational resources consumed by the retransmissions) necessary to provide a higher level of reliability. On the other hand, with regard to priority we have identified the inadequacy of dealing with priority only at the network layer. This means that, unlike reliability, a middleware supporting priority (by means of a PQS) should not be used on top of a data link layer that is not able to handle it.
Regarding the goal of this study, the first tests we ran to asses the performance of PSQUASAR
(provides a PQS at the network layer) were carried out over the ContikiMAC/CSMA
data link layer protocol which does not handle priority. After carrying out some
experiments to study the performance of the priority packets within the WSAN, the results
showed that the latency and reliability of these kinds of packets were not much better than
the performance of the non-priority packets, actually in some simulations they were even
worse. In order to understand what causes this behavior, the performance of WSANs under
different workloads and the effectiveness of PQSs, a deeper study of different scenarios is
presented in the following sections, focusing on answering the following questions:
• How does the network behave as the network traffic increases?
• Are WSANs intrinsically scalable in size and throughput?
• To what extent does the network topology influence the WSAN’s performance?
• Is a PQS an effective mechanism to deal with priority?
• In what circumstances does a PQS behave as expected?
In order to answer the questions presented above a set of tests have been carried out using different topologies, namely mesh, tree and lineal topologies. These three kinds of topologies are the most commonly used to deploy WSANs. Two different sizes have been used for each network topology to better understand how a change in size affects the results. Each network has a single sink node (marked in black) which receives information from multiple source nodes (marked in grey). All packets in the tests are filled up to the maximum capacity (approximately 108 bytes) and sent in unicast with no retransmissions. These experiments are organized into three different groups explained in the following sections.
Test 1: Sampling rate vs Network performance A PQS only makes sense when there is at least a minimum of network traffic, in other words there are a sufficient number of packets in the network so that queues need to be used to cache packets until they can be processed. For this reason, the first set of experiments aims to provide an insight into how the network behaves as the network traffic increases. More specifically it studies the relationship between sampling rate and network saturation. On the one hand, we study what the relationship is between the sampling rate of the nodes (network traffic) and parameters such as MAC queue occupation rate, end-to-end delay and end-toend reliability, and on the other hand, it allows us to discover the proper sampling rate frequency that generates enough traffic to saturate the network. It also gives an indication of how the different network topologies deal with high traffic. These tests are necessary as a PQS is highly dependant on network traffic.
Test 2: network layer vs Data link layerThe goal of these experiments is to analyze the effectiveness of a PQS. In the communication protocol stack there are two layers where this system can be implemented: the MAC layer and/or the network layer. We try to identify the best place to implement the PQS and the relationship between network layer capabilities and MAC layer capabilities. More specifically, four different setups are compared (in terms of reliability and delay): (1) WSAN without PQS, (2) WSAN with a PQS at network level, (3) WSAN with a PQS at MAC level and (4) priority at network and MAC level. In this test, only the packets from one node for each network topology are configured to be priority. The rest of packets in the network are non-priority ones. The node which sends the priority packet in this particular test is marked with a dashed border in the previous figure. The expected behavior of an optimal PQS is that packets from these priority nodes are given priority over packets from the rest of the source nodes in terms of a lower delay and higher reliability. The intuitive behavior expected is to achieve a lower delay at the expense of delaying non-priority packets.
Test 3: Priority queueing system performance In this test, the performance of the PQS is studied, based on the number of priority packets there are in the network. To do so, each source node is programmed to send priority packets with a given probability. This test introduces unpredictability in the reporting pattern of priority and non-priority packets and gives us a way to compare the behavior of the network with a different proportion of priority packets in it at a time. It emulates a real scenario where the time events occur, cannot be predicted. These experiments allow us to analyze: (1) whether a PQS helps important packets to increase their reliability and decrease their delay and (2) to what extent this is possible based on the proportion of priority packets in the network.
Evaluation The application scenario was implemented in the C programming language for the Tmotesky motes running the Contiki operating system. The resulting code was simulated using the Cooja simulator. The Cooja simulator emulates Tmote-sky motes at machine code instruction set level. The communication model takes into account packet loss when nodes are transmitting at the same time, i.e., collisions were taken into account in the simulation.
The details tests and results obtained can be found here. Only the main conclusions are highlighted here. .
The results obtained evidence the need to develop new protocols for WSANs that can provide QoS, principally priority and reliability. The effectiveness of a PQS as a way to provide priority has been studied. The network performance has been tested with different network topologies to study the effect of sampling rate on reliability and delay. Also, the impact of implementing a PQS at different communication levels (network and data link layers) to analyze the reliability and the end-to-end delay of priority packets has been studied. The results show that a PQS should not be implemented solely at the network layer level, and that matching network layer and MAC layer functionality is important.
Secondly, a PQS always improves the reliability and the delay of priority packets with regard to the non-priority packets only as long as queueing exists and this only happens when there is moderate or intense traffic in the network. However, this improvement is greater when the proportion of priority packets is low. In addition, the network topology and its size has a direct effect on the network's performance.
Thirdly, the delay of the priority packets is not always better than the delay of non-priority packets. When the queues of the data link layer only contain priority packets due to discarded packets, the average delay starts to increase as all the new priority packets that arrive at the nodes will have to wait for the queue to be processed before they can be dispatched.Finally, the use of PQSs in networks with moderate traffic has an effect on reducing delay whereas in networks with intense traffic it principally influences reliability rather than delay.