Skip to Main Content
Every congestion-control protocol operating in wireless networks is potentially faced with two major challenges of performance degradation. These sources are: 1) the coupling of fairness and efficiency; and 2) not properly differentiating between congestion-caused loss associated with network buffering and error-caused loss associated with fading effects. In this paper, we provide a Variable-structure Congestion-control Protocol (VCP)-based cross-layer framework of congestion control that can address both challenges noted. As a part of our framework, we introduce a loss differentiation heuristic algorithm that can be used with a variety of congestion-control protocols. Then, using analysis, simulation, implementation, and emulation, we profile the performance of a number of congestion-control alternatives in wireless networks. We describe the first implementation of VCP as a collection of loadable kernel modules along with fine-tuned implementations of XCP and TCP/AQM + ECN in Linux. We utilize NS2 as our simulation tool and a wired Linux testbed emulating wireless link effects as our experimental tool. We implement a finite-state Markov chain in both NS2 and our testbed in order to model error-caused loss over wireless links. We further use link-layer forward error correction (FEC) codes on a per-packet basis to compensate against such loss. Our profiling results demonstrate that VCP equipped with our loss differentiation heuristic and link-layer FEC represents a well-performing yet practical alternative of wireless congestion control. We also identify some of the shortcomings of VCP, including its oscillatory behavior in the presence of link estimation errors and poor fairness characteristic in multibottleneck networks.