## 2 Related Studies  
A number of previous studies have addressed the topic of congestion control in wireless sensor networks. Most existing congestion control protocols usually adjusts traffic rate at source nodes or intermediate nodes. This approach is helpful to save network resources and more feasible and efficient. According to the control behavior, there are two general methods for traffic control in WSNs: end-to-end and hop-by hop. The end-to-end control can impose exact rate adjustment at each source node and simplify the design at intermediate nodes; however, it results in slow response and relies highly on the round-trip time (RTT). In contrast, the hop-by-hop congestion control has faster response. CODA [6] (congestion detection and avoidance) is a congestion mitigation strategy that uses both the buffer occupancy and channel load for measuring congestion levels in a network. It uses two strategies for handling both persistent and transient congestions. CODA performs rate adjustment through a traditional TCP-like AIMD (additive increase multiplicative decrease) mechanism and thus often leads to the occurrence of packet loss. Further, Fusion detects congestion by measuring the queue length. It controls congestion by combining three techniques: hop-by-hop flow control, source rate limiting, and prioritized MAC. Fusion claims to achieve good throughput and fairness at a high offered load [20, 24]. In [14], a congestion control technique that employs the packet service time to infer the available service rate and therefore detects congestion in each intermediate sensor node was proposed. It controls congestion in a hop-by-hop manner and uses exact rate adjustment based on its available service rate and number of child nodes. However, it cannot utilize the available link capacity efficiently when some nodes are in the sleep state. Siphon [35] is another congestion mitigation scheme that detects congestion using the queue length. However, instead of using any rate adjustment technique, it employs traffic redirection in order to mitigate congestion. Very recently, node-priority-based congestion control mechanisms have been proposed [15, 16, 27, 33]. The Priority-based Congestion Control Protocol (PCCP) [15] and Queue based Congestion Control Protocol with Priority Support (QCCP-PS) [16] control the congestion with the packet priority based on the node priority for a WSN. PCCP introduced node priority index to reflect the importance of each sensor node. Based on the congestion degree and node priority index, PCCP utilizes a cross-layer optimization and imposes a hop-by-hop approach to control congestion. QCCP-PS improved the PCCP by controlling the queue more finely. However, it does not have any mechanism for handling prioritized heterogeneous traffic in the network. Recently, there have been a number of research works attempting to increase the sensor node data transmission throughput, packet delivery ratio and data security via multipath routing [17, 25, 30, 31]. In [17] its authors proposed a source data packet loading scheme over multiple paths and then presented congestion detection and control algorithms suited for multipath data forwarding. At first a source node starts to send data packets over two different paths at a predefined rate. The congestion detection algorithm at each intermediate node is invoked at reception of every data packet. If congestion is detected, a congestion notification packet is sent back to the source and then the source invokes the proposed congestion control algorithm to readjust the packet loading rate. Congestion-aware and Rate-controlled Reliable Transport (CRRT) [19] uses efficient MAC retransmission to increase one-hop reliability and end-to-end retransmission for loss recovery. CRRT centrally assigns the rate to the source based on the rate assignment policy of application.