Abstract

Multiple traffic flows in a dense environment of a mono-sink wireless sensor network (WSN) experience congestion that leads to excessive energy consumption and severe packet loss. To address this problem, a Congestion Detection and Alleviation (CDA) mechanism has been proposed. CDA exploits the features and the characteristics of the sensor nodes and the wireless links between them to detect and alleviate node- and link-level congestion. Node-level congestion is detected by examining the buffer utilisation and the interval between the consecutive data packets. However, link-level congestion is detected through a novel procedure by determining link utilisation using back-off stage of Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA). CDA alleviates congestion reactively by either rerouting the data traffic to a new less congested, more energy-efficient route or bypassing the affected node/link through ripple-based search. The simulation analysis performed in ns-2.35 evaluates CDA with Congestion Avoidance through Fairness (CAF) and with No Congestion Control (NOCC) protocols. The analysis shows that CDA improves packet delivery ratio by 33% as compared to CAF and 54% as compared to NOCC. CDA also shows an improvement in throughput by 16% as compared to CAF and 36% as compared to NOCC. Additionally, it reduces End-To-End delay by 17% as compared to CAF and 38% as compared to NOCC.

1. Introduction

The advances in electronic Integrated Circuits (ICs), System-On-Chip (SOC), and Microelectromechanical Systems (MEMS) have motivated the development of low power, multifunctional, and low cost tiny microprocessors generally called sensor devices. The emergence of such devices in multihop fashion has introduced a special type of ad hoc networks, known as wireless sensor networks (WSNs) [1]. In WSNs, the sensor nodes are connected through wireless links with limited transmission and broadcast range. It also has made a significant impact on data forwarding due to the self-organising and self-healing capabilities. The sensor nodes in a WSN are able to sense, process, and forward the desired information. Along with these capabilities, a sensor node in a WSN can send, receive, and relay the data traffic towards the desired location or the sink. Each sensor node in a WSN is able to use the Transmission Control Protocol/Internet Protocol (TCP/IP) stack as discussed in [2] and represented in Figure 1. In order to forward the desired information in WSN, a sensor node has to utilise the network resources fairly [3]. To do this, an appropriate procedure is to use the efficient routing protocol that routes the data traffic through the best sensor nodes from the source to the destination (sink).

Routing still has significance in resource-constrained networks, like WSN. It is an active research area and needs careful design attention [4]. Routing protocols establish the routes to make data packet forwarding possible. The majority of the routing protocols designed and developed for multihop wireless ad hoc networks are applicable in WSNs [5]. The focus of the majority of the routing protocols discussed in [5, 6] is to establish the routes based on a single routing metric. However, a single routing metric is not always the best available solution in multihop wireless ad hoc networks [7]. This is because using the same single route for multiple communication sessions may result in performance degradation in a network in the form of severe information loss due to congestion [8].

Congestion is a state of being overcrowded with network traffic and due to this there is a reduction of the quality of service (QoS) in the network. The QoS refers to the ability of the network to achieve maximum performance. Congestion in a WSN generally occurs when the traffic load on a particular sensor node exceeds the available buffer capacity. Congestion also happens because of the unfair utilisation of the network resources. It usually occurs either at the sensor node or at the wireless link due to their available constraints and because of that there are two different levels of congestion: node-level and link-level congestion. Traditionally, in node-level congestion, either the buffer utilisation or the mismatch between the traffic arrival rate and the traffic departure rate is examined. On the other hand, link-level congestion is monitored through the channel utilisation. In both cases, the important part is the timely detection of congestion and its mitigation from the network.

Congestion detection is a mechanism that generally triggers congestion alleviation or control procedure. Therefore, a decision to detect congestion either at node- or at link-level as shown in Figure 2 is very critical as well as significant, especially in a shared resource-constrained network, like WSN. There are several congestion detection techniques available in the literature as discussed in [9]. Congestion can be detected either at the sink node or at the intermediate sensor nodes. In either case, the source traffic rate is usually reduced in order to mitigate congestion problem from the network. Congestion alleviation on the other hand is a process to control congestion and to balance the traffic load to make a network into an operational state. To alleviate congestion from the network, either of the two notification processes is used. The first one is the implicit notification process and the second is the explicit notification process. In the implicit notification process, congestion is controlled locally without informing the source node. However, in the explicit notification procedure, the congestion state is notified by sending an explicit message to the source node. Based on the received notification, the source node limits its traffic generation rate. Limiting the source traffic generation rate decreases the throughput [10].

Over the past decade, several solutions to the problem to detect and alleviate congestion from WSNs have been proposed [11]. These solutions can be broadly categorized as End-To-End (ETE) and Hop-by-Hop (HBH) solutions. The ETE solutions are highly dependent on the Round Trip Time (RTT), whereas, HBH solutions require the exchange of features and characteristics of the neighbouring nodes [12]. One of the earliest works to detect and alleviate congestion in WSNs is proposed as Congestion Detection and Avoidance (CODA) [13]. It detects congestion by examining the HBH feedback mechanism. In this mechanism, the source limits the traffic rate based on the Additive Increase Multiplicative Decrease (AIMD) strategy. However, in this mechanism, the performance of the network decreases with the decrease in the throughput. A better performance has been achieved in [14] as compared to CODA but this solution also limits the source traffic rate to mitigate congestion.

The design based on the cross-layer mechanisms is also very useful in order to detect and alleviate congestion from WSNs as discussed in [8]. This is because of the involvement of several parameters from different layers of the TCP/IP protocol stack. In [12], a feedback mechanism has been adapted to control congestion. Here, congestion is detected by monitoring the buffer occupancy and the signal is sent as a feedback towards the source node. This congestion control mechanism also limits the rate of traffic generation at the source node. In [15], a congestion avoidance, detection, and alleviation (CADA) procedure has been proposed in WSNs. In this mechanism, a representative sensor node is elected among the other neighbouring nodes within a single broadcast range in order to avoid congestion. However, it detects congestion by examining the channel utilisation and the buffer occupancy, periodically. The channel utilisation might be expensive because it is usually determined based on the throughput, and because of that a continuous monitoring is required in this process.

The majority of the mechanisms that have been proposed in the literature to alleviate congestion from the network limit the source traffic rate except for some notable exception like [10]. Here, a potential field has been introduced that integrates the buffer occupancy and the hop count. This mechanism also maintains the routing entries in the routing table according to the less hop count criterion that is the shortest route to the sink. However, there is a possibility that it alleviates congestion by discovering a route which might be longer, leading to increase in the ETE delay. Congestion problem can be reduced through fair allocation of the resources in the network, generally referred to as fairness. In [16], Congestion Avoidance through Fairness (CAF) is proposed, where the queue of the sensor node and the characteristic ratio (CR) are used to handle congestion. In CAF, multiple paths are discovered and due to the usage of multiple paths, the problems such as route coupling, collision, and the channel access rate might occur, which may decrease the performance of the network.

The work proposed in this paper is based on the detection and alleviation of congestion in WSNs during data forwarding. Here, congestion is detected in a timely manner by monitoring the state of the nodes and the link between them. In this procedure, monitoring the link utilisation is not expensive, because there is neither any exchange of information with the neighbouring nodes nor the continuous monitoring of the channel state in order to detect link-level congestion. However, it is mainly calculated by using the number of times a specific sensor node enters into the back-off stage of Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA). The back-off stage in CSMA/CA is actually a waiting time that a sensor node waits for a random period when the wireless channel is not available for the transmission or the reception of messages. On the other hand, the node-level congestion is detected by monitoring or examining the buffer occupancy and the interval between the consecutive data packets. Additionally, congestion is notified based on the energy state of a sensor node, which is when the energy of a particular sensor node is left with less than 10% of the maximum energy. Based on the congestion detection, a procedure named as the ripple-based search is carried out to alleviate congestion from the network so that the network reoperates in its normal state.

The remainder of the paper is organised as follows. Section 2 discusses the proposed mechanism to detect and alleviate congestion from WSN. In Section 3, performance evaluation has been performed and finally, we conclude in Section 4.

2. Proposed Methodology

The proposed Congestion Detection and Alleviation (CDA) procedure for multihop WSNs has two main parts. In the first part, congestion is detected in a timely manner. In the second part, congestion is alleviated reactively based on the notification sent by the affected sensor node to its predecessor nodes. The congestion alleviation process either mitigates congestion locally near the congested area or discovers a new congestion-aware route based on the procedure as discussed in our previous work in [6, 18]. Congestion detection in the proposed mechanism handles both the node- and the link-level congestion. In node-level congestion, the buffer occupancy is initially monitored till it reaches 70% of the total capacity as represented by the following equation:

In (1), and represent the remaining capacity and the maximum capacity of the buffer, respectively. Here, if the remaining capacity becomes less than 30% or the consumed capacity becomes more than 70%, then the procedure to monitor the interval between the two consecutive packets is determined with an Exponential Weighted Moving Average (EWMA) procedure, expressed as follows:

Equation (2) represents the weighted traffic load that is the exponential smoothing function, where represents the smoothing function and the variables and represent the interval between the previous and the new data packets, respectively. The proposed mechanism is divided into two main parts: Congestion Detection and Alleviation procedures. Each part has its own algorithm as described in Algorithms 1 and 2. Algorithm 1 is used to detect node- and link-level congestion. In node-level congestion, after monitoring the 70% of the buffer occupancy, the interval between the two consecutive packets is examined. This is because if the interval is high, then the chances to fill the queue or buffer will be high, which usually leads to packet loss. The procedure to monitor the node-level congestion is shown in Figure 3. The higher value of the interval represents the smaller packet interarrival within the queue or within the buffer of the sensor node and vice versa. If the interval based on (2) is greater than 0.7, then the notification to alleviate congestion is carried out. The value of the interval is always between 0 s and 1 s. This notification is also carried out, if the consumed energy of the sensor node reaches the limit of 10% of the maximum energy.

Initialization
: Consumed and Residual capacity of buffer, respectively
: Minimum interval between the two data packets
: The maximum buffer capacity
: Time interval between two consecutive data packets
: The sensor node to be congested
: Counter for the back-off period
: The level of consumed energy the node
: The maximum level of energy to be called as weak node
Detecting Congestion at Node-Level
() IF   OR
()   IF   is near to then
()    Discover less congested route discussed in [12]
()  ELSE IF   is near to OR between the route then
()    CALL: Ripple-based congestion control
()  ELSE IF  
()    CALL: Ripple-based congestion control
()  END IF
()  Send a notification message to predecessor nodes
() END IF
Detecting Congestion at Link-Level
() Generate a message (frame) to send to predecessor nodes
() IF  channel is free then
()  Send required data/control frame signals
() ELSE
()  
()  IF  
()    CALL: Ripple-based congestion control
()  ELSE
()    Time interval for the Back-Off
()  END IF
() END IF
Initialization
: The sensor node to be congested
: The predecessor node 1-hop away from
: The forwarding node of
: A set of sensor nodes on an active route
TTL: Time to live value
BID: Broadcast Identifier of the Route Request
: Neighbours of sensor node,
: Source and Destination nodes
Ripple-Based Search Mechanism
() IF   receives notification from then
()   It sends notification to
()  IF   receives notification then
()     broadcasts the Request with S, D, BID, and Till TTL = 4-hops
()    FOR  each sensor node , in
()     IF  () OR () AND TTL ! = 0 then
()      Discard the request
()     ELSE IF  () && () && () && (TTL! = 0) then
()      Add reverse route entry
()     Add forward route entry
()     Send Reply towards
()    ELSE IF  () then
()     Add reverse route entry
()     Add forward route entry
()     Broadcast Notification Message
()    ELSE IF  () then
()     Send a Unicast message to to re-discover the route
()    END IF
()    Decrement TTL by 1
()   END FOR
()  END IF
() END IF

The novel procedure to detect congestion based on the link characteristics is purely dependent on the number of times a sensor node enters into the back-off stage of CSMA/CA in IEEE 802.11 as depicted in Figure 4. In the proposed CDA, the CSMA/CA with DATA-ACK mechanism has been utilised. The link-level congestion can also be detected by using the CSMA/CA with RTS/CTS mechanism. Generally, the link-level congestion is calculated by monitoring the channel utilisation. However, this is a bit time consuming and an inefficient procedure as compared to the proposed mechanism. In the proposed mechanism, there is neither any exchange of extra messages nor any additional field in the header of the packet to monitor link-level congestion. The detailed procedure to monitor the link-level congestion is described in Algorithm 2. Whenever a notification based on node- or link-level congestion is detected by a sensor node, a message to alleviate congestion is sent to the predecessor nodes, which are at least 2 hops away from the affected node. The predecessor node of the affected node computes the distance based on the hop count from the source to the destination. If the sensor node that is going to be affected either by congestion or by low-energy in a near future is closer to source node then the process to discover and establish the new less congested route is carried out. On the other hand, if the affected node is closer to the sink node, then the local recovery procedure to alleviate congestion is carried out that is based on the ripple-based search mechanism as described in Algorithm 2. In the ripple-based search, the sensor node that receives the notification messages sends a broadcast message to its 4-hop neighbour, depending on its location as shown in Figure 5. The 4-hop neighbour is determined by the TTL value as given in Algorithm 2. The node that receives this broadcast message sends an acknowledgement if and only if it has the address to the sink node. If the sensor node has the address to the sink node and is part of the active route then the position is calculated. This position is calculated by using the hop count metric. If the calculated hop count is greater than the hop count of the affected node then it sends the acknowledgement; otherwise, it rebroadcasts the request. In this way, the procedure implicitly creates the ripples in the form of circles across the affected node. On receiving the broadcast message, the hop count value is again calculated and if the hop count at the receiving node is less than the hop count at the affected node then the message is simply discarded; otherwise, the message is rebroadcasted to the next hops. After receiving the message, the reverse and the forward route entries are maintained and the packets are forwarded to the newly maintained less congested route.

If the affected node is closer to the source node, then the detour path or the new less congested route is discovered as discussed in [18]. In either case, three different routing metrics are used to determine the composite routing metric in order to select the next hop sensor node. The composite routing metric is composed of the consumed energy () of the sensor node, the participation level () of the sensor node, and the signal quality () between the sensor nodes. Amongst these three routing metrics, and represent the characteristics of the sensor node, whereas, represents the quality of the link between the sensor nodes. Each metric in the composite routing metric is calculated with reference to its maximum value so that the resultant normalised metric can be added as unit less quantity.

In (3), the normalised value of the consumed energy is calculated. Here, represents the consumed energy of the sensor node and represents the maximum/initial energy of the sensor node. The increasing trend of the normalised energy consumption with respect to the current energy consumption along the way from to is shown in Figure 6(a). The minimum and the maximum/initial values of the consumed energies are used as 10 J and 100 J, respectively. The ETE consumed energy against each transition among different states is as follows and is determined in the Appendix:Here, represents the voltage level, is the total number of sensor nodes in the network, and the variables and are used to represent the active and passive states of the sensor nodes, respectively. Additionally, represents the length of the packet, is the available data rate, and is the time consumed at the respective state of the sensor node.

Equation (5) represents the participation level of the sensor node. It is defined as the number of flows passing through a particular sensor node. The normalised value of the participation level is calculated by using a ratio of the current number of flows passing through the sensor node to the maximum number of flows that can be passed through a sensor node. Here, represents the current number of flows passing through the sensor node and represents the maximum number of flows that can be passed through the sensor node. The increasing trend of the normalised participation level with respect to the current and the maximum participation level is shown in Figure 6(b). The maximum value of the participation level is based on the node density that is the maximum number of neighbours of a particular sensor node.

In (6), the normalised power value of the signal quality is computed based on the received signal strength indicator (RSSI). Here, represents the minimum threshold power value beyond which a particular sensor node could not receive the message. This variable represents the broadcast range of the sensor node. The decreasing trend of the received signal strength with respect to the distance between the two sensor nodes is shown in Figure 6(c). The minimum threshold value with respect to the maximum distance is based on the specifications used in GainSpan (GS1011) datasheet [17].

The composite routing metric is obtained by using the weighted sum method. As there are three different metrics, therefore three different constants (, , and ) have been used against each metric. These constants show the preference levels, such that . The total cost, , based on these three metrics is as follows:

In (7), represents the total cost that integrates the normalised weighted sum of , , and . is based on the respective minimum or maximum of all the three costs, such as the minimum consumed energy node, the minimum participation level node, and the maximum wireless signal strength between the sensor nodes. As it needs to select the link with the maximum wireless signal strength, is used in the denominator. Since there are three different variables, the maximum goals that can be achieved based on the combination of these variables are seven, excluding the first as shown in Table 1. In order to select the optimum ETE route with the best sensor node that exhibits the minimum ETE cost against each variable (, , and ), the following objective function has been defined:

In (8), is an objective function that represents the route from a source () to a destination (). It corresponds to three different routing costs represented by , , and . Here, variable is an index of the route from to . is the set of nodes contained in a particular route, indexed by , and is the set of wireless links available in that route from to . Here, also represents the sensor node that initiates the bypass mechanism using a ripple-based search and is a sensor node that acknowledges the request as per the stored information about the way to the sink node. In order to find the minimum cost route, the following expression is evaluated:

In (9), represents an objective function to find the minimum cost route among the number of routes, . To find the best route amongst all the possible routes, the following function has been defined:

In (10), corresponds to the index of the minimum ETE cost route amongst various alternatives from to . The route that corresponds to this minimum cost route is represented as .

3. Performance Evaluation

The performance of the proposed Congestion Detection and Alleviation (CDA) procedure has been evaluated with Congestion Avoidance through Fairness (CAF) and with No Congestion Control (NOCC) protocols as discussed in [16] and [15], respectively. In this evaluation, the specifications available in GS1011 datasheet [17] have been used with a carrier frequency of 2.4 GHz. The GS1011 specifications are generally used for high data rate applications such as the multimedia or imaging applications. The simulation has been performed in the network simulator, ns-2.35. The parameters used to evaluate the proposed CDA with CAF and NOCC are tabulated in Table 2. The performance metrics that have been used in this research work are the packet delivery ratio (PDR), the throughput, the ETE delay, and the energy consumption per data packet. Here, PDR is computed by taking a ratio between the number of packets received at the sink and the number of packets sent by the source node. Throughput is computed by taking the number of bytes received at the sink node per unit time. The ETE delay is determined by taking the time difference between the packet sent by the sender and the packet received by the sink. The energy consumption per data packet is computed by taking the ratio of the total energy consumption of each sensor node to the number of data packets sent by the nodes. These performance metrics have been analysed with respect to the simulation time and the packet interarrival time.

Figure 7 shows the instantaneous throughput that is measured per one second of the simulation time. In this analysis, the proposed CDA is analysed as compared to NOCC with seven different random sources, which were initialised to start sending the data packets within the first 10 s of the simulation. Initially, both protocols, CDA and NOCC, have shown an increasing trend of throughput with respect to the simulation time. After 10 s of the simulation time, CDA showed higher throughput as compared to NOCC. This is because CDA indicates and selects the next hop by using the characteristics of the sensor nodes and the wireless links between them. It uses the consumed energy and the participation level as the characteristics of the sensor nodes and the signal strength as the characteristics of the wireless links between the nodes. Furthermore, CDA tries to select the next hop with less traffic load based on the participation level criterion. This leads to decrease in the packet loss that results in an increase in throughput. On the other hand, NOCC discovers the shortest route to the destination and forwards the data packets along the selected route without considering the state of the next hop. During data forwarding, it has been observed that, at the simulation time of 20 s, CDA has experienced congestion. This is because of the traffic generation by the random sources. Due to this the packets were being dropped that caused the throughput to decrease to some extent. At this stage, CDA has been able to detect congestion. Due to the multiple routing criteria used in a composite routing metric, CDA detects congestion at about 35 s of the simulation time. Based on the ripple-based search mechanism, the reallocation of resources in the form of less congested and more energy-efficient sensor nodes and the reliable links selection allowed the throughput to increase gradually with respect to the simulation time. In contrast to this, it has been observed that, in NOCC, throughput increases with the increase in the simulation time. However, at the simulation time of 20 s, throughput does not increase with the same rate as it increases in CDA. This is because initially, NOCC has forwarded the data traffic over the shortest route; however, with high data traffic, the nodes could not be able to detect congestion and the packets generated by the source nodes are dropped which results in a smaller rate of increase in the throughput. Additionally, when a node receives data at a particular time from different flows, it selects the next hop and forwards the packets without examining the state of the neighbouring nodes. Therefore, the next hop usually drops all the packets that are beyond its remaining buffer capacity.

Figure 8 represents the behaviour of PDR with varying packet interarrival time. Here, the trend of PDR increases in all three protocols. Since there are seven different randomly deployed source nodes, a high traffic is expected in the network that can cause congestion problem, if the next hop nodes are not selected according to the less traffic load amongst the neighbouring nodes. Due to high data traffic from several flows, the packets may converge at a particular sensor node along the way from to and because of that the packets are being dropped beyond a certain limit of the buffer that leads to less number of packets being received at the destination and hence the PDR decreases. However, in the case of CDA, if congestion occurs, it is alleviated using the ripple-based search mechanism that bypasses the affected nodes and due to this the traffic is distributed in the network amongst several nodes that leads to increase in the PDR as compared to CAF and NOCC. In contrast to this, due to the usage of multiple paths in CAF, the problems such as route coupling, collision, and the channel access rate might occur, which may decrease the performance of the network in the form of decrease in PDR. However, in the case of NOCC, there is no procedure to overcome congestion, if it occurs during the course of data communication. Therefore, the number of packets sent by the source may not reach the destination; this results in a decrease in the PDR in NOCC as compared to CAF and CDA. With the increase in the packet interarrival time the packet generation rate decreases. This increases the rate of increase in the packets being received at the destination. Due to this the trend of PDR increases with the increase in packet interarrival time.

The packet interarrival time also has a significant impact on throughput as shown in Figure 9. The ETE route discovered in NOCC is based on the shortest route and the next hop selection in NOCC does not consider the characteristics of the sensor nodes and the wireless links between them. Furthermore, there is no mechanism to alleviate congestion from the network in the case of NOCC. Therefore, the packets are dropped during high data traffic and due to this the rate of increase in throughput is smaller as compared to CAF and CDA. On the other hand, it has been observed that CAF performs well in the case of throughput as compared to NOCC. This is because CAF adjusts the source traffic rate that decreases the changes of congestion in the network due to less traffic; this results in an increase in throughput as compared to NOCC. In contrast to this, CDA shows a smaller rate of decrease in throughput as compared to CAF and NOCC. This is because it selects the next hop based on the composite routing metric and discovers the ETE route with less traffic load. This decreases the chances of packet loss that increases the throughput. The throughput decreases with the increase in packet interarrival time; this is because with the increase in the packet interarrival time the packet generation rate decreases which decreases the number of packets being received at the destination with respect to the time. If congestion occurs during data communication, it is detected in a timely manner in CDA and it triggers the ripple-based search that selects the less congested and more energy-efficient nodes to alleviate congestion from the network. Due to this the network reoperates in its normal state. However, in NOCC, the random relay selection and the lack of congestion alleviation may result in less throughput as compared to CDA and CAF.

Figure 10 shows the impact of packet interarrival time on the ETE delay. It has been observed that the routes discovered based on seven different traffic flows in NOCC contained several common sensor nodes. During data communication, these nodes become the bottleneck nodes that lead to packet drop due to high traffic. There is no such mechanism involved in NOCC to select the next hop based on the characteristics of the nodes or the wireless links between the sensor nodes. Therefore, the ETE delay in NOCC is very high as compared to CAF and CDA. In contrast to this, CAF performs better than NOCC. This is because it uses multiple paths; however, due to the route coupling and the traffic convergence, the rate of decrease in ETE is smaller in CAF as compared to CDA. In the case of CDA, the ETE route is aware of congestion with respect to the data traffic. This is because it selects the next hop node using one of the routing criteria that is the participation level. Additionally, it uses the ripple-based search procedure to bypass the affected sensor nodes during the course of communication that decreases the ETE delay.

The energy consumption per data packet for CDA, CAF, and NOCC is shown in Figure 11. Since the route discovered in NOCC does not consider the characteristics of the sensor nodes and the wireless links between them, the ETE route is usually the shortest route. Therefore, if the sensor nodes in NOCC experience congestion, then it is difficult to overcome; therefore, the data packets are being dropped by the intermediate sensor nodes, which are beyond their buffer capacities. Due to this NOCC experiences high energy consumption per data packet. However, in the case of CAF, the energy consumption per data packet is smaller than NOCC; this is because, in CAF, the information loss is very less as compared to NOCC. However, CDA performs better than CAF and NOCC in the case of energy consumption per data packet. This is because, with congestion in the network, the affected sensor nodes are bypassed during ripple-based search and that is why there is less packet loss in CDA as compared to CAF and NOCC. Therefore, the energy consumption per data packet is less in CDA as compared to CAF and NOCC.

4. Conclusion

Congestion problem generally deteriorates the network performance in terms of PDR, throughput, ETE delay, and energy consumption per data packet. In this paper, a Congestion Detection and Alleviation (CDA) mechanism has been proposed. CDA detects both node- and link-level congestion in a timely manner and alleviates it in a reactive manner. It does not limit the source traffic generation rate to alleviate congestion as the traditional mechanisms do. To detect congestion, it monitors the buffer occupancy to some extent and then monitors the interval between the consecutive data packets. It alleviates congestion either through rerouting the traffic to a less congested route or through bypassing the congested area. The simulation results revealed that CDA has performed better than CAF and NOCC in terms of PDR, throughput, ETE delay, and energy consumption per data packet.

Appendix

Energy Consumption Measurement

Let the states = Transmission (), Reception (), IDLE (), and Sleep (). The energy consumption can be represented as follows with respect to the above states, respectively: . In this work, it is assumed that all the characteristics of the node and the wireless link between the nodes are determined at a particular time.

The power (W) in terms of energy (J) is defined as the rate at which the energy is transferred from one form to another form, which can be represented as follows:

Based on the relation between power, energy, and time as in (A.1), energy can be represented as

Therefore, consumed energy , power , and time , based on (A.2) can be represented as per the following equation:

In (A.3), is the duration of time at which the power is dissipated. The total consumed energy based on all the states of a sensor node defined above with respect to time is as follows:

In (A.4), is the power consumed at a particular instance of time during state and is the duration at which the sensor node remains in the state. The other variables in (A.4) are also based on the respective states. The power consumed at an instance of time can be expressed as follows.

is the power consumed during state, is the time consumed during state, is the power consumed during state, is the time consumed during state, is the power consumed during state, and is the time consumed during state:

In (A.5), is an instantaneous current induced during a particular time, , and is measured in amperes (). Here, is the potential difference (voltage drop) during a time period in a state and is measured in volts (V). Similarly, the time that a packet takes to transmit or receive with respect to the defined rate can be defined as follows:

In (A.6), is the size of packet in bytes () and is the defined rate at which the packet is being received or transmitted. during each state at a particular time, , can be represented as follows.

Transmission is

Reception is

IDLE is

SLEEP is

The energy consumption due to the processing or channel unavailability (Defer stage and Back-off stage) is considered as the other () stages, represented as

In (A.11), and depend on the transition state. Substituting the values of (A.7), (A.8), (A.9), and (A.10) into (A.4) with reference to (A.5), the following equation is achieved:

In (A.12), volts, as used in GS1011 datasheet [17]. Here, is the potential difference or the total voltage across each state as discussed above.

Let be the active state based on and and be the passive state that corresponds to the , , and states. A sensor node is either in one of the states mentioned above. Based on this categorization, (A.13) can be represented as follows:

In (A.14), and are the variables used to denote any of the active and passive states, respectively. The equation that represents the consumed energy of all the sensor nodes on an active route from to , in the network, is computed as follows:

Equation (A.15) represents the consumed energy over an active route, , from to . To represent the total consumed energy in the whole network, the following expression is presented:

In (A.16), is the total energy consumed in a network, represents the sensor node ID, and represents the total number of nodes in the network.

Competing Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

Acknowledgments

The authors would like to thank the Ministry of Higher Education (MOHE), Malaysia, under the Fundamental Research Grant Scheme (FRGS no. 15-8200-196) fund and to the CISIR Laboratory, Universiti Teknologi PETRONAS, for providing the research facility.