1) Bandwidth-estimation Based Congestion Control

This project was started as COMP 991 research in Fall 2007. It has been fairly successful and has produced a very interesting new congestion-control protocol. It has also resulted in two conference publications.

The design of congestion control mechanisms for TCP-like transport protocols is an active area of research, especially for the evolving high-speed networks of tomorrow. A key challenge faced by researchers is balancing the tradeoff between scalability (to high network speeds) and “friendliness” to existing Internet traffic. Several window-based protocols have been developed and implemented that attempt to quickly converge on the correct window, while being “nice” to regular network traffic. The result often has traces of legacy TCP mechanisms, which have been hacked, twisted, and tuned in order to achieve better scalability, while preserving the friendliness of regular TCP.

In this research project, we take an alternate view that a traditional window-based transport protocol is especially unsuitable for high-speed regimes, especially due to its bursty behavior. Instead, we believe that recently developed light-weight mechanisms for quickly and reliably probing for the end-to-end available bandwidth, can be leveraged for designing rate-based protocols that quickly converge on the right sending rate.

Research-components/open-issues in this project:

  • The primary issue to be addressed in this project is that of figuring out how to design an in-band AB estimation logic and mechanism for a transport protocol—the primary criteria are that the estimation be light-weight, quick, and non-intrusive.
  • A second issue that needs to be resolved is, once the AB is estimated, how should the data transmission be implemented. Specifically, should a window-based transmission be used (which could be bursty and cause short-timescale congestion), should a paced-window transmission be used (which could be somewhat tricky to implement), or should a rate-based transmission be used instead?
  • Another key open issue that is faced by any new transport protocol, though, is that of “survival”: given the aggressive probing nature of TCP, can such mechanisms fare well? Wouldn’t a (high-speed) TCP connection keep pushing such connections out of the bottleneck link? In such a case, how do you design congestion-avoidance mechanisms that ensure that such connections survive, yet do not push the “other” TCP connections out?