Traditionally congestion control research has focused on managing network bandwidth. But the fast pace increase in bandwidth does not make network bandwidth the only scarce resource. Furthermore, the rise of new applications that require in-network processing hastens this shift.
In this dissertation, we examines congestion control issues for flows that require in-network processing on the fly in network elements such as gateways, proxies, firewalls and even routers. Applications of these flows are increasingly abundant in the future as the Internet evolves. Since these flows require use of CPUs in network elements, both bandwidth and CPU resources can be a bottleneck and thus congestion control must deal with "congestion" on both of these resources.
First, we reconsider flow control issues for a network environment where transmission links and CPUs on a data path can be jointly bottlenecked. We show that flow control without consideration of CPU congestion can significantly lose both fairness and efficiency in this environment. As a solution to this problem, we establish the notion of dual-resource proportional fairness, propose a distributed algorithm to achieve this objective and demonstrate its performance through simulations.
Second, we show that conventional TCP/AQM schemes also can significantly lose through-put and suffer harmful unfairness in this environment, particularly when CPU cycles become more scarce (which is likely the trend given the recent explosive growth rate of bandwidth). As a solution to this problem, we use the notion of dual-resource proportional fairness and propose an AQM scheme, called Dual-Resource Queue (DRQ), that can closely approximate the proportional fairness for TCP Reno sources with in-network processing requirements. DRQ is scalable because it does not maintain per-flow states while minimizing communication among different resource queues, and is also incrementally deployable because of no required change in TCP stacks. Th...