An Energy-Efficient Distributed Congestion Control Protocol for Wireless Multimedia Sensor Networks

: Wireless multimedia sensor networks (WMSNs) generate a huge amount of multimedia data. Congestion is one of the most challenging open issues in WMSNs. Congestion causes low throughput, high packet loss and low energy efficiency. Congestion happens when the data carried by the network surpasses the available capacity. This article presents an energy-efficient distributed congestion control protocol (DCCP) to mitigate congestion and improve end-to-end delay. Compared to the other protocols, the DCCP protocol proposed in this article can alleviate congestion by intelligently selecting the best path. First, congestion is detected by using two congestion indicators. Second, each node aggregates the received data and builds a traffic congestion map. The traffic congestion map is used to calculate the best path. Therefore, the traffic is balanced on different routes, which reduces the end-to-end delay. Finally, a rate controller is designed to prevent congestion in the network by sending a congestion notification message to a source node. After receiving a congestion notification message, the source node immediately adjusts its transmission rate. Experimental results based on raspberry pi sensor nodes show that the proposed DCCP protocol signifi-cantly improves network performance and is superior to existing modern congestion control protocols.


Introduction
Wireless Multimedia Sensor Networks (WMSNs) are one of the promising paradigms for the Internet of Things (IoT) [1]. WMSNs consist of wirelessly connected devices that can capture video data from the environment. Sensor nodes are equipped with inexpensive video cameras and microphones [2]. These camera nodes capture this visual information, process it and transmit it to the base station through multi-hop or single-hop communication. WMSNs are used in various applications. The scope of WMSN applications includes monitoring of indoor and outdoor environments [3], IoT-based smart agriculture [4] and object tracking [5]. The transport layer [6,7], the network layer [8], the physical layer [9] and the media access control layer [10,11] have been extensively researched in WMSNs.
Due to many practical and theoretical challenges, WMSNs have attracted the attention of many researchers. There are many challenges that need to be addressed, such as harsh environmental conditions [12], node failures [13], mobility of nodes [14], mobility of detected events [15], dynamic network topology [16], heterogeneity of nodes [17], large scale deployments [18] and unattended operations [19]. In addition, there is tremendous progress in internet traffic applications that requires bandwidth. Industrial forecasts predict that large-scale video traffic will dominate global internet traffic in the future [20].
Network congestion in WMSN networks is one of the most challenging open issues [21]. Video data in WMSN networks always consumes a lot of bandwidth. The sensor node generates new video data and transmits the traffic of other sensor nodes. Several nodes simultaneously send data to the sink node. Therefore, the sink node is unable to process more data from the incoming stream. This causes network congestion. Congestion decreases efficiency and reliability in WMSN networks. In WMSN networks, congestion occurs when the data transmitted over the network goes beyond what is allowed or stipulated as the available capacity. There are many factors that cause congestion in WMSNs, such as buffer overflow, the dynamic nature of the channel, and the man-to-one end-toend connectivity. Congestion leads to node energy exhaustion, network performance degradation, high packet losses, and high transmission delays. Therefore, it is of prime importance to design congestion control protocols to efficiently detect, notify and control congestion [22].
Congestion notification can be either implicit or explicit in nature as shown in Figure  1. In the explicit congestion notification process, the congested node reports the congestion status to other nodes using additional control packets. This technique is used in several congestion control mechanisms. However, these additional control packets need to carry a heavy traffic load that is not suitable for WMSN networks. In Implicit Congestion Notification, this mechanism is used in the majority of congestion control algorithms. This mechanism provides less traffic load compared to the explicit congestion notification of the mechanism. This mechanism does not introduce any additional overhead. Therefore, it is more suitable for WMSN networks [23]. This article focuses on two main challenges. The first challenge is to control congestion in WMSNs. Another challenge is to improve the end-to-end delay of the wireless video transmission. In order to resolve these two challenges, an energy-efficient distributed congestion control protocol (DCCP) for WMSNs is developed. DCCP is a lightweight protocol that depends on UDP. As UDP is not reliable, DPCC uses its own congestion control algorithm to mitigate congestion in an efficient way. One of the limitations of the existing research is that the majority of congestion control algorithms are not applicable to WMSNs. The traditional Transmission Control Protocol (TCP) uses the Additive Increase and Multiplicative Decrease (AIMD) algorithmic technique. TCP continuously generates sawtooth behavior during congestion. The protocols that continuously represent sawtooth behavior are not suitable for video communication [24]. Because of these challenges, traditional protocols cannot be used for WMSNs. Therefore, designing a new congestion control system for WMSNs is a challenging task. Although traditional traffic control techniques that throttle the incoming traffic can effectively reduce congestion, these schemes do not increase end-to-end productivity. In addition, restricting important data packets during this period can nullify the purpose of WMSNs. Therefore, a robust congestion control algorithm for WMSN is urgently required [25].
Moreover, this article also focuses on the application of a robust congestion control algorithm in WMSN networks to achieve reliable transmission source nodes to a base station through multi-hop communication. Although some work on congestion control has been performed in WMSNs, it is not focused on real-time solutions. We address these issues with the following contributions: • The proposed DCCP algorithm improves the performance of various videos transmitted over the network by intelligently selecting the best path from source to destination • A mechanism built on a dual buffer is proposed for congestion detection. This mechanism can detect congestion in an effective manner.
• Each node aggregates the received data and builds a traffic congestion map. The traffic congestion map is used to calculate the best path. Therefore, the traffic is balanced on different routes, which reduces the end-to-end delay.
• DCCP prevents congestion in the network by sending a congestion notification message to the source node. After receiving a congestion notification message, the source node immediately adjusts its transmission rate.
• This research article demonstrates actual experiments using the Raspberry Pi Sensor Node. Each Raspberry Pi source node contains a unique IP address and establishes a route to the parent node.
• Therefore, our research is more feasible than other algorithms that simply use computer simulations.
The remainder of the paper is organized as follows: Section 2 represents the related work. The proposed algorithm is described in Section 3. The experimental details are provided in Section 4, and Section 5 concludes our work.

Related Work
The congestion control algorithms can be divided into three approaches: (1) trafficbased, (2) resource-based, and (3) hybrid-based congestion control approaches as shown in Figure 2.
Traffic-based congestion control protocols: These protocols are more widely distributed in end-to-end and hop-by-hop-based traffic control approaches.
The buffer occupancy-based transport layer protocol uses the buffer occupancybased mechanism for congestion detection [26]. Two different thresholds are used to compute buffer occupancy at each node. If the buffer occupancy surpasses the upper limit, congestion is detected immediately, and child nodes slow down the traffic rate to reduce congestion. However, it cannot choose the optimal path. The Adaptive Weight Firefly (AWF) algorithm reduces network congestion by clustering two different algorithms [27]. The rate control mechanism is only used in the case of negative acknowledgment (NACK). Moreover, an Ant Colony Routing-based mechanism is used to enhance the throughput in the network. However, acknowledgment in this algorithm increases the delay in the network. The Traffic-Aware Congestion Control Protocol (TACC) solves the rate adaptation problem in the transport layer of WMSNs [28]. TACC detects congestion by using burst loss information and the presence of burst loss at the sink node. If congestion occurs for the first time, the sending rate is conservatively reduced. TACC adjusts the sending rate aggressively if the network is continuously congested. However, TACC needs to be enhanced further to facilitate the conveyance of prioritized events to different flows.

Resource-based congestion control protocols:
This method is particularly used in high-reliability applications that require lower time delays. It reduces congestion by balancing the traffic load either by utilizing idle network resources or by using uncongested paths. Therefore, data packets have a higher probability of error-free communication. However, the resource control approach needs additional overhead in the form of end-toend topology information, loop avoidance, and packet travel time for sensor nodes. Opt-ACM mitigates congestion by using different routes for data routing with different quality of services (QoS) [29]. The Mixed-Integer Linear Programming mechanism is used to verify the proposed algorithm. However, the proposed algorithm does not focus on energy efficiency in the network. A routing technique based on Deep Reinforcement Learning (DRL) minimizes the end-to-end delay by using the unequal clustering scheme [30]. The proposed algorithm prevents the network by splitting the entire network into unequal clusters. However, the complex methodology is adapted to use unequal clustering. The Time Delay-based Multipath Routing (TMR) algorithm substantially enhances the network capacity by choosing an alternative path [31]. TMR maintains a unique ID and mitigates congestion by using a reactive technique. TMR assigns higher priority to alert messages to send traffic to different routes that are not congested. The SLEB protocol combines load balancing and security verification mechanisms based on clustered WSNs [32]. This protocol is effective in balancing the energy of the network. Moreover, it also enhances the security overhead. Therefore, SLEB can prolong the network lifetime. SLEB has a much lower overhead. However, in SLEB, multiple sensor nodes can send the same data to the receiver node. DHSSRP prioritizes significant data to mitigate congestion in the network. In DHSSRP, the authors assign weights to high-priority packets. They assume that traffic in different sensor nodes varies considerably due to differences in packet priorities. DHSSRP is a lightweight protocol that increases the lifespan of the deployed sensor nodes by diverting the data traffic to alternative routes.
Hybrid congestion control protocols: These protocols use a combination of both resource-based and traffic-dependent congestion control protocols. HOCA uses active queue management to control congestion. Sensitive traffic needs a high data rate, whereas non-sensitive traffic needs a low data rate. Their protocol comprises four phases. In the first phase, the sink performs data transmission to all source nodes. This stage determines the node type, timing, and data priority. In the second phase, the sink receives data from each node. In the third phase, the sink node determines the path by using hop-by-hop communication. In the fourth phase, the data rate is adjusted to reduce congestion. HOCA achieves better energy efficiency and ensures suitable allocation of resources [33].
Traffic-based Congestion Management (TCM) controls congestion by using a hybrid congestion control approach [34]. When congestion occurs, the congested sensor nodes report to the source to reduce the data rate by using multi-hop communication. When a congested downstream node receives the back-pressure information, the TCM tries to use the resource control technique by changing the path. If an alternative route path is not available, it uses traffic-based congestion control protocols by reducing the data rate of the source node.
ECA-HA controls congestion by using a hybrid congestion control approach [35]. ECA-HA reduces congestion by using three phases. In the first phase, the ant colony optimization method is used to select an optimal route. In the second step, the backward ant makes sure that paths are constructed successfully and the forward ant creates congestionfree paths via multi-hop communication. Finally, congestion is controlled by defining an alternative route if rate modification is not feasible. However, the ECA-HA is only suitable for small search space The above-mentioned techniques have various flaws, loopholes and deficiencies; therefore, those strategies cannot be regarded and considered as prodigious. To overcome that vacuum and weaknesses, the proposed technique can fill up the gap to mitigate the congestion and enhance the performance of the network. Figure 3 presents the WMSNs the architecture of the node, and that each node has a sensing unit, a processing unit and a transmission unit. The video camera represents a sensing unit, Raspberry Pi is a mini-computer with a powerful processing unit and Wi-Fi is a communication unit. The topology used in our network is a tree topology with a single sink node and twelve (12) source nodes. These sensor nodes are used to generate and relay traffic. The sink node receives the recorded video data through multi-hop communication.

System Model
In our proposed algorithm, each node contains two types of data packets: Generated packets: The node senses the environment and generates the data packets. These packets are called generated packets.
Relay Packets: In multi-hop communication, the sensor node also receives packets from its neighboring sensor nodes. These packets received from neighboring nodes are called relay packets. Table 1 shows a description of the parameters.
Equation (3) shows the threshold value of i preferred queue level at ( + 1) Maximum buffer size probability of node probability of receiving a packet from another node neighborhood nodes of node probability that a node is adjacent to node The following mechanism is used to detect congestion: 1. Congestion occurs if ( ) reaches the maximum value of and ( ) > ( ).
Let ( ) be the probability of arrival of one packet. Then, ( + 2) = ( + 2) + ( + 1| + 1) Similarly, In general, where = 2,3 … . ( ) Let is the probability of receiving a packet from another node and is given by The probability of neighborhood 'µ' is defined by The expected packet receiving probability of node i which is based on [36] is denoted by eq. 6 The level of congestion in a node is computed using ( ) and eq. 3.

Congestion Detection
In DPCC, the buffer occupancy change rate and buffer occupancy are used to handle congestion at each node in a proficient way. Let B be the total buffer occupancy and be the buffer occupancy change rate. The total occupancy of buffer B is categorized into two different levels of congestion. Let B1 and B2 be the two congestion levels, then the buffer occupancy change rate is given by Equation (11) where buffer occupancy in the last round is given by ( + ) and in the current round is given by ( ). Greater represents the higher buffer occupancy. Furthermore, the sensor nodes are further classified into three different states. Normal state: Buffer occupancy varies between [0, ] and the buffer occupancy change rate is less than ρ. Ρ is the pre-defined threshold level of . In the normal state, all packets are transmitted successfully.
Slow state: Buffer occupancy varies between [ , ]. The buffer occupancy grows sharply until the value of goes beyond the level of . The slow state shows that sensor nodes will shortly face congestion.
Urgent State: In an urgent state, buffer occupancy varies between [ , ] irrespective of . A source node faces congestion during an urgent state. Therefore, sensor nodes face heavy packet loss. Source nodes should straightaway decrease their transmission rates.

Traffic Congestion Level Dissemination
Nodes send their congestion estimation to other nodes because it is important to obtain data from other nodes that are out of communication to calculate the best path. Therefore, our proposed DCCP has two methods for data sharing. The first method tends to disseminate congestion information to nodes that are in one-hop range. The nodes include a dataset in their periodical beacon named local congestion estimation. The local congestion estimation has the congestion estimations of the last paths covered by the node. We consider the congestion record of only the current path and the previous path.
The second method disseminates the congestion notification to two or more than two hops. Each node has a fixed path section of maximum distance equal to the communication range of the node. Moreover, the node monitors its nearest hop location through the received beacons. First, the node finds its parent from a list of nodes. If a node has to choose its parent node among other nodes, then the nearest neighbor in its range can be chosen as its parent. Whenever a new entry is added into the database of the node, the information is aggregated into the database. To compute the aggregated data, all congestion level estimations are used for given paths. Moreover, higher weights are assigned to the most recent estimation

Distributed Rate Control
Let represent the congestion level. The congestion reduction module is used when the is modified. The nodes use the modified to calculate the optimum paths independently. Every node has an initial point and a final point.
The DCCP mainly avoids the formation of bottleneck routes for two reasons. First, each node has a different , so different weights are allocated to different nodes. Second, the nodes are always finding their best routes. When the congestion level in a path increases, other nodes will not choose that path. Therefore, the traffic on different routes is balanced.
Each node establishes a route to its parent node and adjusts its transmission rate according to the congestion degree of neighbor nodes. DCCP examines the buffer occupancy at each node separately. Later on, DCCP transmits the buffer occupancy information to its children nodes through a feedback mechanism. Furthermore, if congestion still occurs, source nodes receive feedback information, evaluate it, and handle adjustments accordingly.
Let show the dropping ratio, represents the reduced transmission rate, shows the normal transmission rate of the respective nodes during congestion. Then, the transmission rate at node is given by = .
The reduced transmission rate, the normal transmission rate and can be calculated from experiments. Algorithm 1 shows the pseudocode of the proposed algorithm.

Experimental Section
This section shows the performance of DCCP. Thirteen raspberry pi sensor nodes are used in experiments. The sink node receives recorded video data from each source node through multi-hop communication. Figure 4 presents the practical implementation at the sink node. Figure 5 illustrates the network topology used in our experiments. Table 2 shows a description of the parameters. Five parameters are used to find the efficiency of DCCP. These five parameters are buffer occupancy, packet delivery ratio, average end-to-end delay, energy consumption and throughput. The following algorithms are compared in this section: (1) DCCP: This algorithm is executed in this article.
(4) NoDCCP: No congestion control mechanism is used in NoDCCP.   Figures 6-9 show the buffer occupancy for NoDCCP. The buffer occupancy plays a pivotal role in the performance of the network. Figure 6 shows that only node 1 is congested and the rest of the nodes are not congested at 0.1 Mbps. Figure 6 shows that the buffer occupancy at node 1 in NoDCCP immediately begins to overflow because the incoming rate exceeds the outgoing capacity of the buffer. For other nodes, the incoming rate is less than the outgoing capacity of the buffer. Therefore, other nodes are not congested in Figure 6. Similarly, Figure 7 shows that node 1 and node 2 get congested but the remaining nodes do not experience any congestion at 0.2 Mbps. Figure 8 shows that node 1 to node 3 gets congested by increasing the data rate to 0.5 Mbps. Figure 9 shows that congestion occurs at each node except node 6. Node 6 does not experience any congestion because data is generated only at node 6 and it does not relay any traffic. So, the chances of congestion are minimal at node 6.     Figures 10 and 11 show the improvement made with DCCP. DCCP adjusts the buffer occupancy according to the network condition. The buffer occupancy over-shoots first and then falls down. DCCP adjusts its transmission rate according to the congestion degree of neighbor nodes. Therefore, DCCP achieves a superior congestion-free rate. Figures  6-9 show that the buffer occupancy in NoDCCP immediately begins to overflow because of no congestion control mechanism.   Figures 10 and 11 show the variation of β. A lower beta results in a lower data injection rate, which indicates that congestion is unlikely to occur. Higher beta results in a higher data injection rate, which indicates that congestion will occur soon. Figure 10 shows that for a small value of β, buffer occupancy first comes to the normal state and then goes back to the urgent state. Figure 11 shows that for high values of β, buffer occupancy does not go to the normal state and always varies between the urgent and the slow state. Therefore, beta should be chosen intelligently. Figure 12 represents the relationship between the packet delivery ratio and data rate. The packet delivery ratio decreases with the increase in data rate. Our proposed DCCP algorithm has the best packet delivery ratio. Figure 12 shows that DCCP receives an 83% packet delivery ratio. Whereas, PPI, IVSP and NoDCCP achieve 79%, 77%, and 52% packet delivery ratio, respectively, at a data rate of 30 packets per second. IVSP only protects high-priority packets and eliminates low-priority packets in a congestion situation. Therefore, IVSP has less packet delivery ratio as compared to DCCP. IVSP and PPI protocols show better performance than NoDCCP. NoDCCP has no congestion control mechanism therefore it shows insignificant performance than the other algorithms.  Figure 13 represents the relationship between the average end-to-end delay and data rate. It is observed that a smaller data rate causes negligible delay. Figure 13 shows that the average end-to-end delay increases with an increase in data rate. Higher average endto-end delay causes network saturation. Compared to other protocols, DCCP has the smallest average end-to-end delay. Figure 13 also illustrates that NoDCCP has the highest average end-to-end delay. DCCP shows superior performance than all the other algorithms. DCCP obtains 200 ms end-to-end delay. While PPI, IVSP and NODCCP have endto-end delays of 220 ms, 250 ms, and 330 ms, respectively, at 30 packets per second. Figure 13. Average end-to-end delay vs data rate.

Energy Consumption
Energy consumption is one of the most challenging open issues in WMSNs. The purpose of DPCC is to balance the traffic by reducing the energy consumed by packets traveling from the source node to the sink node. Figure 14 shows the energy consumption at the sink node. The energy consumption of the proposed DPCC is lesser than the other compared algorithms. The incoming rate is not reduced in the case of our proposed DPCC. The number of reception and transmission is more in NoDPCC, IVSP and PPI. Therefore, DPCC consumes less energy than other protocols. It is observed that the DPCC algorithm saves 9.09%, 14.28%, and 33.33% of energy when compared with PPI, IVSP, and NoDPCC at a data rate of 15 Kbps. NoDPCC consumes maximum energy because the buffer was not able to utilize all the packets.  Figure 15 shows the energy consumption at the node level. Four intermediate nodes from Figure 5 are chosen for this purpose. Node 4 receives the data from just one node therefore it has minimum energy consumption. Node 3 receives the data from four other nodes. Therefore, node 3 has more energy consumption than node 4. Node 2 receives the data from six different nodes. Therefore, node 2 has more energy consumption than node 3 and node 4. Similarly, node 1 receives data from all other nodes. Therefore, energy consumption at node 1 is maximum.  Figure 16 represents the relationship between the throughput and data rate. Throughput is also of prime importance in WMSNs. Sensor nodes that are close to the sink receive a heavy traffic load. Initially, throughput increases with data rate but at a certain point, it stabilizes due to congestion or latency. Therefore, the throughput value has to be improved for better WMSN performance. NoDCCP has no congestion control mechanism. DCCP has more throughput than other protocols because DCCP buffers the data in a congestion situation and covers the whole network segment. Therefore, DCCP makes more efficient use of the available bandwidth. On the other hand, NoDCCP throws packets simultaneously without knowing the buffer condition which results in congestion in the network. DCCP shows better results compared to PPI, IVSP and NoDPCC. DCCP

Conclusions
This article presents an energy-efficient distributed congestion control protocol for wireless multimedia sensor networks (DCCP). The proposed DCCP protocol improves the performance of numerous videos sent over a network. In DCCP, buffer occupancy change rate and buffer occupancy are used to deal with congestion at each node. The traffic congestion map is used to calculate the best path. Therefore, the traffic is balanced on different routes, which reduces the end-to-end delay. Furthermore, each node establishes a route to its parent node, retains its transmission rate and adjusts its transmission rate according to the congestion degree of neighbor nodes. The experiment results show that our proposed DCCP performs better in terms of buffer occupancy, packet delivery ratio, end-to-end delay and throughput when compared with other well-known algorithms. Regarding future work, the experiment results implemented in this article will be used as a base to achieve further improvements in our proposed DCCP by using more complex topologies.

Author Contributions:
The main idea of the paper was prepared by U.M., A.N.M.; U.M. and N.A. executed the experiments; U.M. and W.A. analyzed the data; the paper was written by U.M., N.A. and W.A. All authors have read and agreed to the published version of the manuscript.

Data Availability Statement:
The data of this research are available upon reasonable request.

Conflicts of Interest:
The authors declare that they have no conflicts of interest.