Collisions and Congestions Detection and Management in Wireless Body Sensors: A Review

Purpose – Congestion control is a very important area within wireless sensor networks (WSN). Congestions usually occur when traffic influx becomes greater than the aggregated or individual capacity of the transmitting channels. The constrained resources of the WSN must be considered while devising such techniques to achieve maximum throughput. This research reviewed existing algorithms to identify their strength and weaknesses. Method – The Researchers used a survey method to identify existing works and reviews on congestion management and control in Wireless


INTRODUCTION
The hallmark of Wireless sensor networks (WSN) is to collect information from its surrounding environment and transfer it to a point where the collected information is useful. Wireless sensor networks (WSN) consist of various wireless hardware installed with various types of sensors to collect information from the environment. The collated information is transmitted from sensor to sensor, using a multi-hop routing protocol towards the desired destination, called the sink (Syed, et al., 2017). The sink is the site for data aggregation and analytics. Various routing schemes aim to optimally utilize the resources of WSN to achieve maximum throughput and minimal energy consumption. Initially, research was mainly focused on the design of trivial routing schemes to facilitate data transfer in the WSN. Later on, researchers realized that there must be an efficient mechanism to address the problem in WSN when the overall traffic or single link traffic becomes greater than its capacity (Rekha et al., 2010;Flora et al., 2011). Such a mechanism is termed congestion control. Congestion control is of critical importance, as congestion control helps in preventing loss of traffic in bulk data transfer.
Congestion control is a critical area of research as time-variant quantities, such as network traffic and that buffer frequently change with time (Liu et al., 2012;Wang & Qian, 2011;Tao and Yu, 2010;Ee & Bajcsy, 2004). The priority mechanism must be enforced to ensure the drop of low-priority packets in inevitable circumstances. As WSNs are resource constrained, a WSN designer must pay attention to congestion control to achieve the maximum lifetime of the network by optimally utilizing limited available resources. This review paper comprehensively summarizes different types of congestion and control schemes being used in the Internet of Things (IoT). Congestion in networks can be defined as the state where a node or link carries so much traffic that it may affect the quality of network service. As a result, the issues of long delays in queues, loss of data packets, and blocking of Mobile nodes keep changing their position in the network resulting in frequent topology changes. In some scenarios, nodes are deployed randomly and operate without human intervention. Nodes are vulnerable to get fault by physical damage and unexpected link failure, unstable links, and channel fading while moving from one place to another.

Channel contention and many-to-one communication
Congestion is likely to occur when multiple sensors try to access the transmission medium at the MAC layer. Simultaneous access to MAC creates a big packet collision and the channel gets blocked causing packet drop. When a node communicates many to one, it causes a bottleneck situation to grab channels simultaneously such that packet transmission will be huge.

Congestion Detection Metrics
This section discusses some of the metrics used in detecting congestions. They include:

Packet loss
The existing solutions measure this metric either at the sender or at the receiver end. It is measured at the sender by enabling the use of ACKs (Acknowledgements), whereas at the receiver through sequence numbers use. Further, not overhearing the parent's forwarding on the upstream link by a child node over the downstream link, can be considered as an indication for packet loss (Muhamed et al., 2014).

Queue Length
As every node has a buffer (queue); its length (size) can serve as a simple and good indication of congestion. The buffer size can be used as a threshold, like in (Hull et al., 2014), a fixed threshold is used, and the congestion is signaled as soon as the buffer length exceeds this threshold, or periodically.

Channel Load
This is a measure of the channel activity caused by wireless transmissions. For example, the CC2420 radio offers the CCA function which responds with the value 1 if the channel is occupied, or 0 if the channel is empty. The frequency of activities returned by the sampling of this function reflects the level of occupation of the wireless channel. Channel load refers to the ratio of time intervals when the channel is busy (successful transmission or collision) to the total time. In case of an increase in packet collision, and after several unsuccessful MAC (Medium Access Control) transmissions, packets are removed. Consequently, the decrease in buffer occupancy due to these drops may mislead the inference of the absence of congestion. This is when only the buffer state is used for congestion detection. Therefore, for accurate congestion detection, a hybrid approach by using queue length and load as a congestion indication is more appropriate in many cases (Wan et al., 2011).

Delay
This generally quantifies the necessary time of the packet generation at the sender, until its successful reception at the next hop receiver or endpoint receiver (Sharif et al., 2015). The one-hop delay can be seen also as the packet Service Time, which is the time separating packet arrival at the MAC layer and its successful transmission, which is inversely proportional to the packet service rate. It covers packet waiting time, collision resolution, and packet transmission time at the MAC layer (Ee et al., 2014). Another delay measurement is that of the ratio of packet service time and packet inter-arrival time (scheduling time). A scheduler between the network and MAC layer switches the packets from network queues to the MAC layer. The scheduling time quantifies the number of packets scheduled per time unit. This ratio indicates both node level and link level congestion (Wang et al., 2007) However, the delay may be misleading in some cases when the largest amount of delay is caused by the sleep latency due to the use of duty-cycling at the MAC layer (Doudou et al., 2013).

Effects of Congestions on Wireless Sensor Networks
Congestion is an essential problem in wireless sensor networks. Congestion in WSNs can lead to packet losses and increased transmission latency which has a direct impact on energy efficiency and application Quality of Service (QoS) and therefore must be efficiently controlled (Vijayaraja & Rani, 2010). Congestion may lead to indiscriminate dropping of data (i.e., high-priority (HP) packets may be dropped while low-priority (LP) packets are delivered). It also increases energy consumption to route packets that will be dropped downstream as links become saturated. As nodes along optimal routes are depleted of energy, only nonoptimal routes remain, further compounding the problem. To ensure that data with higher priority is received in the presence of congestion due to LP packets, differentiated service must be provided (Premalatha & Natarajan 2010). Congestion not only wastes scarce energy due to many retransmissions and packet drops but also hampers event detection reliability (Vijayaraja & Rani, 2010).

TYPES OF CONGESTIONS CONTROLS
Two types of congestion could occur in sensor networks. The first type is node-level congestion (centralized) which is caused by a buffer overflow in the node and can result in packet loss, and increased queuing delay. Packet loss in turn can lead to retransmission and therefore consumes additional energy. Not only can packet loss degrade reliability and application QoS, but it can also result in wasting the limited node energy and degrade link utilization. In each sensor node, when the packet arrival rate exceeds the packet service rate, a buffer overflow may occur. This is more likely to occur at sensor nodes close to the sink, as they usually carry more combined upstream traffic. The second type is link-level congestion which is related to the wireless channels which are shared by several nodes using protocols, such as CSMA/CD (carrier sense, multiple access with collision detection). In this case, collisions could occur when multiple active sensor nodes try to seize the channel at the same time (Muhammad & Donald, 2018). Link level congestion increases packet service time, decreases both link utilization and overall throughput, and wastes energy at the sensor nodes. Both node-level and link-level congestions have a direct impact on energy efficiency and QoS (Chonggang et al., 2016).

Centralized congestion control
This scheme consists of routing protocols with congestion control. In this scheme, a centralized approach is applied because all the actions for controlling the congestion are undertaken by a base station or sink node. All the activities for detecting and avoiding or controlling the congestion are taken by the sink. All the decisions are always taken by the centralized node, the sink node applies the command and the decision is taken according to the centralized scheme. Data is collected by a sink or base station from the sensor nodes periodically, detects the possibility of congestion, and accordingly sends messages to the involved sensor nodes to lessen network congestion. The following are some of the important centralized protocols used for congestion control.

Event to Sink Reliable Protocol (ESRT)
It is a centralized protocol in which sensors change their transmission rate according to the sink's feedback regarding the congestion level or reliability level in the network. ESRT checks the local buffer of each node and if the node increases the buffer's threshold value it may generate a congestion notification bit (CN) and then forwards it to the sink node. The sink node periodically evaluates the transmission rate of source nodes, congestion notification bit, and old transmission rate. In this protocol the network can reside in five different states: No congestion low reliability (NCLR), no congestion high reliability (NCHR), congestion low reliability (CLR), optimal operating region (OOR), and congestion high reliability (CHR). The primary motive of this protocol is to achieve and maintain operation in the OOR state (Sankarasubramaniam et al., 2013) According to Sink's decision, by using the network states, the optimal region is selected by specifying the radius of the event detected.

Pump Slowly Fetch Quickly Protocol (PSFQ)
This is a protocol designed for preventing and thus resolving congestion in wireless sensor networks. In this protocol, data from various sources pump slowly and if the data loss occurs at a particular node then that node can fetch the same data from the neighbor node rapidly. In this protocol packet delivery might fail because it uses only negative ACK instead of ACK and due to this delay more packets may be lost, thus, a loss of a single packet is not detected by it. If any packet loss occurs, a negative ACK is sent to the source or sink node. PSFQ encompasses three protocol components: transmission-initiated error recovery (fetch operation), message transmission (pump operation and selective status reporting (report operation) (Wan et al., 2005) PSFQ requires information about some technical parameters like channel load, and channel state for working.

Rate Controlled Reliable Transport Protocol (RCRT)
This protocol acts as a centralized protocol that is used for sink initiation which takes care of reliable delivery of source-to-sink data as well as controls congestion in WSNs. Each source node initiates the transmission by estimating the source rate and round trip time. It uses the sink node for detecting congestion based on the time required to repair the loss. If the time requires for repairing loss is more than Round trip Time (RTT) then congestion is detected. There are four components in RCRT: (i) End to End Reliable transmission, (ii) Rate adaptation (iii) congestion detection, and (iv) Rate allocation. RCRT uses NACK for error recovery and an Additive increase and multiplicative Decrease (AIMD) approach for rate adaption. In case of congestion, the sink node sends the improved rate and waits for three RTTs to see the effect of the decision (Paek, & Ramesh, 2007). Also, the congestion index is calculated, and based on that, a new decision is taken. The major disadvantage of the RCRT is its convergence is very slow for the network having varying RTTs.

The interference-Minimized multipath routing protocol (I2MR)
This protocol aims to control congestion in WSN. Multiple paths are reserved for routing information for mitigating congestion. For indicating the interfering links that cannot be active simultaneously it uses conflict graphs from which it derives the total interference correlation factor (TICF) considering the set of disjoint graphs. Then it defines how many links are interfering in the two paths as the degree of interference for each path in the set where this degree is a factor to estimate the path quality in numerous paths to balance the load in the network. I2MR keeps track of the interfering region of an initially discovered path for avoiding the discovery of one more path with this interfering zone. Every node transmits data parallel using primary and secondary paths and it moves to a secondary path in case of primary path failure. For control congestion, the protocol notifies the source node for reducing the transmission rate and the source node does it by diverting traffic to the alternate paths, by selecting the path among the multiple alternate paths that can accommodate the maximum 2234 traffic. The I2MR protocol has its limitations when the alternate paths are unavailable or cannot accommodate the traffic rate specified by the source node. In such circumstances, a huge data loss is inevitable (Teo et al., 2008).

The traffic-aware dynamic routing protocol (TADR)
This is a centralized resource control protocol. In some applications due to congestion, it is expected that the source rate be decreased but TADR dynamically chooses the alternate path in this case. TADR uses queue length and depth parameters to find the congestion. It uses the shortest path in situations of no congestion in the network. If congestion is still in the network then it sends the data through idle or under-loaded nodes using alternative paths. The utilization of resources in this protocol is better and it also provides a good packing delivery rate (He, 2018) the disadvantage of this protocol is that routing loops that made for finding alternative paths which results in increased delay.

Distributed congestion control
This type of congestion scheme is distributed in nature. The congestion control scheme spans the entire sensor field. The scattered deployment nature of sensor nodes results in the distribution of congestion control algorithms into various routines and subroutines across the wireless sensor network. These routines are executed by certain events in the sensor fields called stimulus and accordingly, the detection strategy is applied. The result of one routine or subroutine can act as a prompt to another subroutine. The following are discussions of some important distributed congestion control protocols.

Congestion Detection and Avoidance Algorithm (CODA)
In the congestion detection and avoidance algorithm, there are three ways for controlling the congestion occurring in sensor networks, they include the current buffer state at each receiver for detecting congestion, hop-by-hop open loop closed loop, and backpressure multisource rate regulation. Detection of congestion is done by ascertaining the buffer occupancy of each node and by measuring the past and present channel load conditions. When any detection process is implemented for congestion in the network the node then sends an open loop using hop-by-hop backpressure to upstream neighboring nodes for reducing their respective transmission rates. If in the network the congestion remains constant then the closed loop multisource rate regulation mechanism is used. In this mechanism, end-to-end feedback is maintained from the source to the sink node by using the ACK packets. At the reception of the ACK packets, the source node adjusts its transmission rate, in case the source is not receiving transmission packets then it adjusts the transmission rate itself. CODA protocol only can reduce congestion, but it cannot eliminate it because of this it does not ensure fairness in the network (Wan et al., 2013).

Enhanced Congestion Detection and Avoidance protocol (ECODA)
In the Enhanced Congestion Detection and Avoidance protocol, weighted buffers and dual buffers are used to detect congestion in the sensor network. After congestion occurs in a network it uses a flexible queue scheduler which decides which packets with low priority will be discarded and which will send next. It uses two different sub-queues, one for locally created packets and the second one for temporary traffic packets. In temporary traffic queue packets are sorted based on source. From one source one packet starts transmission from the temporary and then packets that are locally generated are sent by using the Round Robin algorithm. Temporary congestion and severe congestion are differentiated from each other and are dealt with in a different ways. For temporary congestion implicit hop-by-hop backpressure is used. Under severe congestion, multi-path loading balancing and sourcesending rate control are proposed (Tao & Feng, 2010). The ECODA approach doesn't require any explicit acknowledgment from the sink. By using this approach, bottleneck nodes can be identified and source sending can be dynamically and accurately adjusted.

Priority Based congestion control Protocol (PCCP)
In priority-based congestion control protocol, the ratio of service time of a packet and arrivals of a packet is calculated for finding out the congestion degree for the detection of congestion. After that, a node priority index is calculated for each node for finding out which nodes are more prior than others according to their location and the functionality which a node has to perform. PCCP uses an implicit congestion notification technique for notifying about the congestion to a concerned node. It merges the congestion within the header information and priority index. After receiving information about congestion, nodes start adjusting their sending rate for the mitigation of congestion (Zawodniok & Sarangapani, 2017). This protocol tries to diminish packet loss in a network while congestion occurs in a network by achieving fairness in the network.

Congestion control and fairness protocol (CCF)
Congestion control and fairness protocol use a distributed approach in which congestion is controlled by each sensor node. In this scheme, the congestion is notified by calculating the service time of a packet. This refers to the time taken in sending the data packet and its successful transmission. For controlling congestion and for ensuring fairness in the network, the bandwidth of the network is calculated and distributed among all the nodes equally. The available packet rate of each node is used for rate adjustment. Each child node compares its new data rate with the data rate which it finds out by dividing its data sending rate by the number of nodes it has. If the network reached the condition where the congestion level value becomes more than the predefined threshold congestion level, then the algorithm desires the child nodes to diminish their data transmission rate (Ee, & Ruzena.) Thus, the implication of this is that every child maintains a separate queue. However, CCF does not utilize the present queue, as a result of this, queuing delay becomes more, and the probability of retransmissions becomes more.

Fairness-aware congestion control protocol (FACC)
In fairness, in an aware congestion control protocol, every intermediate node between the sink and source is divided into two parts. Those intermediate nodes which are near the source node come into the category of source and those which are near the sink node come into the category of sink based on their location. The channel busyness ratio is calculated for detecting congestion. The source node maintains a state per flow of each node and allocates fair bandwidth to all downstream nodes but the sink does not maintain any state flow state of nodes it uses a lightweight probabilistic dropping algorithm which is based on how much is the queue occupied and hit frequency (Venkataramanan &. Girirajkumar, 2015). Whenever a packet loss occurred in the network, a warning message (WM) is sent by the next nearer sink node to the near source node. Then a source node transmits a message for controlling the source node which contains a modified transmission rate using the AIMD scheme.

Congestion Control schemes and Algorithms
This section presents a review of some of the congestion schemes and algorithms that are not classified as location-based.

Soft computing congestion control scheme
Soft computing (SC) techniques are smart and intellectual techniques that enhance the effectiveness of WSNs. SC techniques optimize power consumption, network challenges, and design and deployment aspects. The European Centre for Soft Computing defines it as "A set of computational techniques to solve problems by imitating nature's approaches" (Shoorangiz, 2021) The soft computing paradigms such as Swarm Intelligence (SI), Fuzzy Logic (FL), Game Theory (GT) have been applied to different WSN applications and deployment based on their dynamic and heterogeneous characteristics. In this section, soft computingbased congestion control schemes are listed as fuzzy logic-based, game theory-based, learning automata-based, and neural network-based congestion control schemes.

Fuzzy Logic-based Congestion Control Schemes in WSNs
Network traffic in different layers is constantly monitored by network operators. Various procedures are presented to overcome network congestion. One such method is fuzzy logic which is actively utilized in wireless sensor networks for different applications (Chrysostomou & Pitsillides, 2019) Fuzzy logic is close to natural language compared with traditional logical systems which can capture the approximate real-world nature. The Fuzzy Inference System (FIS) includes Fuzzification, the Rule Base, the Inference Mechanism, and the Defuzzification interface module. Fuzzy logic-based congestion control can be considered one of the most efficient approaches to control congestion. Some well-known fuzzy logicbased congestion control schemes are summarized as follows: Ghalehnoie & Salmasi, (2008) presented a hop-by-hop (HbyH) fuzzy rate control scheme. In this protocol, the node queue size is continuously monitored. Thereafter, the admissible upstream node rate is calculated using a fuzzy inference system where the sensor nodes' constraints are considered. In FRC, congestion detection is accomplished based on queue size, and implicit congestion notification is used. The protocol is energy-efficient and fair. Also, it is easy to implement and can adapt to network conditions. The results from the study show that FRC renders superior performance in comparison with IEEE 802.11 based on utilization, delay, and throughput.

Congestion Control Based on Node:
(a) Trustworthiness Using Fuzzy Logic (CCTF) This scheme was proposed by Zarei & Rahmani (2011). Congestion control using fuzzy logic is accomplished based on node trustworthiness. In CCTF, the behavior of neighbors is investigated by the nodes. In this protocol, the malfunctioning nodes are isolated and valueless packets are blocked which ends in overhead ratio reduction. In this scheme, the buffer capacity is increased which renders congestion reduction. In CCTF, the traffic ratio overhead resulting from corrupted node packets is removed. The results show that CCTF enhances the increase in delivery ratio.
(b) Fuzzy Logic-based Congestion Estimation Scheme (FLCE) Munir et al., (2007) presented a model for fuzzy logic-based congestion estimation in a Quality of service architecture. The architecture includes QoS management and control module which is implemented at the sink and node level. In FLCE, traffic is classified based on different application classes by a queuing model in the node buffer. In this scheme, fuzzy logic is used for congestion estimation. The protocol is energy efficient; however, it is not fair. The results from the study showed that in FLCE, the packet generation rate is increased and packet loss is minimized.

(c) Hierarchical Tree-Based Congestion Control Using Fuzzy Logic (HTCCFL)
In HTCCFL (Sayyada & Choudhari, 2014) the topology control algorithm is utilized to construct a hierarchical tree in the hierarchical tree construction phase. In this protocol, congestion detection is achieved by using a fuzzy logic technique. Also, a priority-based rate adjustment scheme is used to control congestion. In this protocol, energy efficiency and packet delivery ratio are improved, however, excessive jitter was obtained.

(d) Fuzzy Priority-based Congestion Control (FPCC)
This scheme was proposed by Pasandideh & Rezaee (2018), in this scheme, congestion is indicated by a technique that is similar to Random Early Detection (RED) and Active Queue Management (AQM). In the fuzzy system used in FPCC, the node congestion level is estimated using the maximum drop probability of the RED algorithm and the minimum and maximum thresholds. The parent node sending rate is adjusted with a fuzzy logic controller. From the results of the study, it was established that the FPCC renders superior performance in comparison with CCTF based on end-to-end (E2E) delay, loss ratio, and energy.

(e) Optimized Fuzzy Logic-based Congestion Control Scheme with Exponential Smoothing Prediction (OFES)
This scheme was proposed by Aimtongkham, et al., (2018), in this scheme, path determination architecture was presented for wireless sensor networks considering the congestion issue. The architecture comprises initial path construction in a hierarchical structure, path derivation with energy-aware assisted routing, and congestion prediction using exponential smoothing. In this scheme, the buffer occupancy is predicted by adopting exponential smoothing. Also, proper weights are determined to determine paths by applying Fuzzy Logic Scheme (FLS), and finally, the membership functions are tuned by FLS optimization using the bat algorithm. The protocol is energy-efficient; however, it is not fair. The results show that the protocol renders efficient performance based on energy efficiency, throughput, network lifetime, and loss ratio.

Game Theory-based Congestion Control Schemes in WSNs
Game theory is a novel procedure in WSNs specifically for congestion control. Game theory is based on the player's behavior. It can be either cooperative or non-cooperative where in the former, players cooperate and form group decisions, however, in the latter, players act independently and antagonize each other. Moreover, Game theory offers benefits to networking concerning different layers (Hausken & Zhuang, 2015). Some existing Game theory-based congestion control schemes are summarized as follows: (a) Evolutionary Game Theoretical Resource Control (EGRC) This scheme was proposed by Farzaneh, &Yaghmaee (2015), it is an evolutionary game theoretical resource control scheme presented for wireless sensor networks. In EGRC, a noncooperative game is developed to alleviate congestion in WSNs by controlling the radio transmission power and using the available resources. According to Farzaneh &Yaghmaee (2015), the transmission power is adjusted following the node congestion level and the energy capacity. The results confirm that in EGRC, throughput, and energy saving are improved and packet drop is minimized.

(b) Game Theory-based Congestion Control (GTCC)
In GTCC (Ma & Hsu, 2016), the congestion problem was addressed among parent and child nodes in Routing protocol for low power and loss network (RPL) enabled networks with low power and resource constraint devices. In this protocol, congestion detection is accomplished using a net packet flow rate. Afterward, nodes in the congestion area perform a parentchange procedure to find better parents using the game theory technique. The results confirm that in comparison with Contiki RPL implementation, GTCC ends in throughput enhancement and packet loss reduction.

(c) Stochastic Differential Game Approach for Optimal Data Transmission
In Hu (et al., 2016) healthcare-based wireless sensor networks were studied. In this scheme, four kinds of transmission costs are considered, namely, the pure transmission cost, the transmission cost, the penalized cost for data unreliability, and the congestion cost. Also, game theory is used to minimize the transmission cost. In Hu (et al., 2016), three kinds of game models, namely, cooperative, partial cooperative, and non-cooperative models were constructed to minimize the transmission cost. Also, optimal transmission strategies under different game modes are gained for healthcare-based wireless sensor networks. The techniques are compared and the validity of the methods was verified.
(d) A Game Theoretic Approach to Control Congestion Garg, et al (2012) presented Diminishing Weight Schedulers (DWS) as a class of service disciplines where the congestion-avoiding users are rewarded and the misbehaving ones are reprimanded. Also, a sample service discipline from the DWS scheduler class was presented. In this scheme, the max-min fair rates constitute a unique Nash and Stackelberg Equilibrium. The results confirm that in a WSN with DWS scheduling, the max-min fair rate can be properly estimated regardless of the round-trip times. Moreover, the excessive congestion problem was rectified.

(e) Evolutionary Game Approach to Control Congestion (EGCC)
In Altman et al (2018), evolutionary games are applied to non-cooperative networks with individual non-cooperative sensors. In EGCC, the congestion control evolution was studied and it was shown that the wireless channel affects the congestion control evolution and the Evolutionary Stable Strategies (ESS). In EGCC, a framework is provided to investigate the protocol in a competition between aggressive and peaceful behaviors. Also, a framework is provided to control the evolutionary dynamics by choosing a gain parameter that governs the replicator dynamics.

Learning Automata-based Congestion Control Schemes in WSNs
Learning Automata (LA) is a self-operating mechanism that responds to a sequence of instructions to attain a specific goal. The automaton adapts to the environmental dynamics or responds to a pre-determined rule set. The automata learn the best action from a set of possible actions offered by the operating environment (Rezvanian et al., 2018) Learning automata-based congestion control can be considered as one of the latest approaches to control congestion. Some well-known Learning automata-based congestion control schemes are summarized as follows:

(a) Learning based Congestion Control Protocol (LCCP)
In LCCP (Bahalgardi et al., 2012) a learning-based rate adjustment and AQM are used to mitigate congestion. Since different physiological signals are discriminated against and assigned different priorities, better QoS is provided for transmitting important signs in LCCP. In LCCP, the source rate is adjusted by the learning automata-based transport protocol which is located in the sink and ends in congestion mitigation. The results show that LCCP outperforms (Learning Automata-based Congestion) LACAS based on delay, throughput, and drop ratio.

(b) Intelligent Closed-Loop Learning Automaton-Based Congestion Control (ICLACC)
Chelloug (2018) presented a learning automation-based congestion control scheme for Wireless Body Area Networks (WBANs). In this scheme, each packet is assigned as the appropriate queue based on the conditional probabilities. According to Chelloug (2018), an exponential arrival and service time is considered in each queue. In this scheme, each packet is directed to a suitable queue for QoS enhancement and meets the application's real-time constraints by congestion mitigation. The results confirm the effectiveness of ICLACC based on throughput and the drop ratio.

(c) Learning Automata-Based Congestion control Scheme (LACC)
This scheme was presented by Moghiseh & Heydari (2018), in this scheme, a learningautomata-based algorithm is presented where each node has an automaton that selects an action and adjusts the corresponding rate according to the environment responses. Also, the algorithm enhancement is gained as it learns from the past.

(d) Prioritization-based Congestion Control
In Yaghmaee (et al.,2013) a service prioritization and congestion control scheme was presented for real-time monitoring of vital signs of patients using wireless biomedical sensor networks. It includes bandwidth allocation and learning automata-based AQM in intermediate nodes. In this scheme, different priorities are given to patients based on the corresponding physiological conditions. In this scheme, less packet loss and higher throughput are gained by selecting a proper source rate. Also, the optimal packet service rate is chosen in the intermediate nodes which renders E2E delay reduction.
(e) Learning Automata-based Congestion Avoidance Scheme (LACAS) Misra et al. (2009) presented a learning automata-based congestion addressed in healthcare WSNs. In this protocol, the flow rate is controlled to minimize congestion occurrence. Using experience, LACAS can adaptively learn and intelligently choose better data rates in the future. In LACAS, congestion detection is accomplished based on the queue size, and implicit congestion notification is used. In this protocol, a proactive approach is taken by the intermediate nodes to control the packet flow rate.

(f) Learning Automata-based Protocol for Solving Congestion Problem
In Hashemzehi (2013) an action is selected by an automaton, and the rate is adjusted based on the environment responses. Learning from the past can be considered as an important feature of this scheme. In this protocol, a proactive approach is taken by the intermediate nodes to control the packet flow rate and enhance the network performance based on energy consumption and lifetime. In this scheme, the intermediate nodes do not feedback to the source nodes to slow down the network performance.

Neural Network-based Congestion Control Schemes in WSNs
Neural networks (NNs) can approximate an arbitrary nonlinear function. NNs are studied in traffic control or prediction of networks due to their flexible learning capabilities (Shoorangiz, 2021). NNs can model the network behavior to predict the occurrence of network congestion and manage the traffic. Some well-known neural network-based congestion control schemes are summarized as follows.

(a) Particle Swarm-Neural PID Congestion Control (PNPID)
This congestion control protocol was proposed by , in this protocol, the queue management of WSN nodes is first accomplished by the Proportional Integrated Derivative (PID) control. Then, the online weight adjustment is gained to adjust the PID parameters. Finally, the online optimization is achieved using Particle Swarm Optimization (PSO) to neural PID (PNPID) algorithm which is applied to initial PID parameter values and neuron learning rates. PNPID algorithm renders superior performance based on packet loss rate and throughput which confirms network QoS enhancement.

(b) NARX Neural Network-based Rate Adjustment for Congestion Avoidance and Control (NNRA-CAC)
This scheme was presented by Narawade et al. (2017). Neural network-based Rate Adjustment (NNRA) uses the Levenberg-Marquardt (LM)-based NARX neural network to avoid and control congestion. The optimized share rate for congestion control is provided by the optimization algorithm. In this protocol, data transmission is accomplished according to the priorities of parent and child nodes. Furthermore, dropping the packets that arrive at the parent nodes ends in congestion avoidance. Packet drops at the parent nodes depend on the importance of the data. The results show the superior performance of NNRA-CAC compared with SS, ORA, CS, ACS, and EACS based on packet loss, throughput, queue length, delay, and congestion level.

(c) Neural Network-Based Congestion Control (NNCC)
In Parisa & Manijeh (2014), a congestion scheme with sensitivity to delay and the corresponding changes is presented. In this scheme, congestion is detected using neural networks. It prevents network service failures and detects the congestion source. In NNCC, the time distance between the source and sink and the remaining energy is considered in the transmitted message. The results confirm the superior performance of NNCC in terms of E2E delay, E2E reliability, and network lifelong.
(d) Congestion Control Based on L1/2 Regularization In Jin et al., (2019) the congestion problem near the central node was solved. In this scheme, the collected data is compressed to balance the network load. Then, the dimension of the compressed sensing observation matrix is adjusted by the fuzzy neural network. In this protocol, the PID queue management parameters are optimized by fuzzy control to maintain the node queue size near the desired value. Moreover, the compressed transmission data is reconstructed using a L1/2 regularization half-threshold iterative algorithm which has small data loss and high reconstruction precision. The results confirm that the scheme renders superior performance based on delay, drop ratio, and throughput.

(e) Radial Basis Neural Network Congestion Controller (RBNNCC)
In Hussain (2018) the possibility of using the shortest path routing in WSNs is explored where the perfect path for data transmission within an exact time is obtained using an ideal routing technique. In RBNNCC, congestion is estimated by a multilayer perceptron neural network with a sigmoid activation function and Radial Basis Neural Network Congestion Controller at the sink. The results confirm the effectiveness of the scheme in terms of data loss, execution time, memory utilization, and the traffic received at the sink. This congestion control scheme was proposed by Shiltagh & Faisal (2014), in this scheme, the wavelet activation function is used to activate the neural network and control the WSN traffic. In MNNWCC, congestion is detected using the congestion level indications, then the traffic rate is estimated for congestion avoidance, and finally, QoS enhancement is obtained in terms of net energy, packet loss ratio, buffer utilization, and throughput. The results confirm the effectiveness of MNNWCC for QoS enhancement.

Swarm Intelligence-based Congestion Control Schemes in WSNs
This congestion control scheme is based on the concept and principles of social groups. Social groups in nature contribute to a common goal by collectively carrying out their tasks. Wireless sensor networks have common characteristics in comparison with social groups, that is. nodes perform their tasks collectively as constituents of social groups. Swarm intelligence is suggested to mitigate congestion by mimicking the collective behavior of swarms where swarms are low-intelligence interacting agents which are organized in small societies Blum et al., (2008). Some well-known swarm intelligence-based congestion control schemes are summarized as follows: Senniappan et al., (2016), presented a bio-inspired swarm intelligence scheme to mitigate congestion and enhance energy efficiency by forming clusters. In this scheme, Biography Based Krill Herd (BBKH) algorithm is used to improve network performance. BBKH algorithm is inspired by a bio-based swarm intelligence algorithm where the objective function is the highest swarm density and the distance from food. Also, few control variables are required to adjust BBKH. The results confirm that the algorithm renders superior performance based on network lifetime increase.

Hybrid Multi-Objective Optimization for Congestion Control
In Singh et al. (2018), Particle Swarm Optimization (PSO) and Gravitational Search Algorithm (GSA) are combined to form a hybrid multi-objective optimization (PSOGSA) which is used to control congestion. PSOGSA is used to optimize and regulate the data arrival rate from the child node to the parent node where the node energy is considered in the corresponding fitness function. In case the arrival rate is regulated based on priority, the transmission is enabled. Also, rate adjustment to the optimal value is utilized for congestion mitigation. The results confirm the superior performance of the algorithm compared with the Cuckoo Search (CS) and Adaptive Cuckoo Search (ACS) algorithms. Antoniou et al. (2013) presented the BFCC congestion control scheme. In this control scheme, the bird flocking behavior is the key point to designing a congestion control scheme in WSNs. In BFCC, a swarm intelligence paradigm is applied which is inspired by the bird flock's behavior. In this protocol, flocks are formed by the packets (birds) which flow toward the sink, and at the same time, congested areas are avoided. It is quite simple to implement the scheme at the node level since minimum information exchange is required. The results confirm the scalability of BFCC and that it is robust against the failing nodes.

Epsilon Constraint-Based Adaptive Cuckoo Search Algorithm for Rate Optimized (EACSRO)
This approach was presented by Narawade & Kolekar (2017). In this scheme, the congestion occurrence is detected by the node's incoming packets. Afterward, the virtual queue length is used to determine the congestion level. The Epsilon parameter is used to formulate the fitness function to gain the optimal value. Thereafter, the fitness is exploited and the step size is adaptively adjusted. The best solution is gained in case the data transmission is accomplished without congestion. The results confirm the effectiveness of EACSRO based on sending rate and throughput.

Computational Intelligence-based Congestion Control and QoS Enhancement
In Manshahia et al., (2017) different metaheuristic and computational intelligence schemes are used for congestion mitigation and QoS enhancement. In this regard, throughput, residual energy, the number of retransmissions, and the distance between nodes are used to formulate the objective function which is optimized by nature-inspired computational intelligence techniques. The results confirm the superior performance of the water wave algorithm in comparison with Firefly Algorithm, Improved Bat Algorithm, Ant Colony Optimization (ACO), PSO, and CODA based on throughput and drop ratio.

Bio-Inspired Protocol for Congestion Control
In Royyan et al., (2018) a hybrid congestion control protocol for large-scale WSNs is presented. In this protocol, congestion avoidance is accomplished by a competitive Lotka-Volterra model, and fairness is maintained among sensor nodes. Moreover, PSO is used to enhance C-LV by minimizing the E2E delay. The results confirm the effectiveness of the scheme for QoS enhancement. This protocol is fair; however, it is not energy efficient.

Improved Bat Algorithm Energy Efficient Congestion Control (IBAEECC)
This congestion control was presented by Manshahia et al., (2016). An improved bat algorithm is implemented based on bat echolocation. In IBAEECC, sonar echoes are used by bats to detect and avoid obstacles. The sonar echoes are then reflected from the obstacle and transformed to frequency. The optimum solution is obtained by applying the aforementioned algorithm to the fitness function. The results confirm the superior performance of IBAEECC compared with ACO, PSO, and CODA in terms of throughput and network lifetime.

Cuckoo Fuzzy-PID Controller (CFPID)
The CFPID control scheme was presented by Lin et al. (2020), in this scheme, the queue size is controlled using a PID controller, and the effective sensor data collection is realized by applying the PID algorithm on cluster head nodes. Moreover, the problems concerning the PID controller, that is., the limited adaptive ability, slow parameter optimization, and poor optimization precision are rectified using a fuzzy control scheme. CFPID optimizes the quantization factor of the fuzzy PID controller and the PID parameter. The results confirm that CFPID outperforms IBLUE and PID based on real-time loss rate and instantaneous queue length.
The tables (Tables 1 and 2) below provide a summary of some of the various congestion control schemes discussed in this review.

CONCLUSION
Congestion mitigation schemes are classified based on the way congestion is detected, notified to nodes, and faced. Congestion can be detected using different metrics. Congestion notification is accomplished either explicitly or implicitly. Congestion in WSNs must be handled efficiently to improve the efficiency of the network.

FUTURE RESEARCH DIRECTION
From the review done in this paper, the following are identified as open problems. First, hybrid algorithms to address congestion at the nodes and links level should be investigated. Second, domain-specific algorithms to address congestions in specialized domains such as healthcare, smart cities, and aerospace is an issue of concern. Lastly, the complexities of the algorithms developed in terms of speed, memory space, and energy requirements should be evaluated.