One of the most crucial challenges associated with wireless mesh networks (WMN) is to handle the network congestion. Congestion control in WMN poses a number of unique challenges due to the multi-hop wireless paths, the presence of hidden terminals, and the shared nature of the wireless medium. In a congested network, packets are dropped in the intermediate nodes very frequently. Furthermore, if the packets are dropped after traversing several hops, they unnecessarily consume the limited wireless resources, and in turn, results in a reduced effective network throughput. In this thesis, we work toward developing a congestion control mechanism which increases the network throughput and minimizes the turbulence in the networks. Our scheme includes the following mechanisms to achieves the desired goals. First, we propose an efficient congestion detection mechanism which accurately measures the buffer occupancy at the downstream node. Second, we develop a congestion control mechanism which appropriately sets the forwarding rate of a node based on the congestion status of the downstream node. Finally, we propose a scheduling mechanism to forward packets from multiple queues at MAC Layer