摘要

Wireless Sensor Networks (WSNs) consist of miniature sensor nodes, capable to operate and capture events in human-inaccessible terrains. The data packets generated by these networks may either be continuous, event-based or query-driven, and are application-specific in nature. These packets need to be transmitted in an energy-efficient manner to the base station. In these networks, congestion occurs when the incoming traffic load exceeds the available capacity of the network. There are various factors that lead to congestion in WSNs such as buffer overflow, varying rates of transmission, many-to-one communication paradigm, channel contention and the dynamic nature of a transmission channel. Congestion leads to depletion of the nodes energy, deterioration of network performance and an increase in network latency and packet loss. As a result, energy-efficient congestion control protocols need to be designed to detect, notify and control congestion effectively. Furthermore, these protocols need to ensure a reliable delivery of data in resource-constrained WSNs. In this paper, we present a review of the latest state-of-the-art congestion control protocols. Depending on their inherent nature of control mechanism, these protocols are classified into three categories, i.e., traffic-based, resource-based and hybrid. Traffic-based protocols are further subdivided, based on their hop-by-hop or end-to-end delivery modes. Resource-based control protocols are further analyzed, based on their route establishment approach and efficient bandwidth utilization techniques. We also discuss the internal operational mechanism of these protocols for congestion alleviation. Finally, we provide a comprehensive analysis of these protocols in terms of various performance metrics to justify in which scenario a particular class of these protocols needs to be deployed. Based on the performance analysis, we conclude that the behaviour of each class of protocols varies with the type of deployed application and a single metric alone cannot precisely detect congestion of the network.