Summary of Five New TCP Congestion Control Algorithms Project
Grenville Armitage has provided a summary of the completed TCP Congestion Control Algorithms project:
TCP is a crucial part of any modern operating system. FreeBSD's standard "NewReno" congestion control (CC) is not able to fully utilize the high capacity links available today. A range of newer CC algorithms have emerged (and continue to emerge) from the networking research community over the past 15+ years. These include traditional loss-based algorithms (where packet losses indicate network congestion) and delay-based algorithms (where changes in Round Trip Time, RTT, are used to infer network congestion).
However, to date FreeBSD's TCP stack has not had an easy-to-use mechanism for introducing new CC algorithms. In recent years the Centre for Advanced Internet Architectures (CAIA) at Swinburne University of Technology has (with the support of the Cisco University Research Program Fund at Community Foundation Silicon Valley) been developing a range of extensions to the FreeBSD TCP stack. These included a modular framework for adding new CC algorithms and new modular implementations of the existing NewReno algorithm, four other algorithms from the literature (H-TCP, CUBIC, Vegas and HD) and a novel algorithm developed at CAIA (CHD). In mid-2010 the FreeBSD Foundation funded CAIA to complete, tidy up and commit a number of these key enhancements to the FreeBSD TCP stack.
Our project, "Five New TCP Congestion Control Algorithms for FreeBSD", has delivered
the following enhancements to FreeBSD's TCP stack:
Each congestion control algorithm is implemented as a loadable kernel module. Algorithms can be selected to suit the application/network characteristics and requirements of the host's installation. The modular CC framework also makes it much easier for developers to implement new algorithms, allowing FreeBSD's TCP to be at the forefront of advancements in this area, while still maintaining the stability of its network stack.
CUBIC and HTCP are variants of TCP that provide significant performance improvements (relative to NewReno) over high bandwidth, high latency paths. Vegas, HD, and CHD utilise RTT fluctuations to provide a more timely indication of network congestion -- by not forcing network queues to overflow, delay-based CC algorithms can help to keep queuing delays low along a network path. CHD is also tolerant of packet losses that are unrelated to congestion (such as can occur over wireless links).
In addition, the Khelp/Hhook frameworks provide useful kernel infrastructure which
are not specific to the TCP stack and we anticipate they will be used elsewhere in
the kernel in the future to provide other unrelated enhancements to FreeBSD.
Code development, testing, and documentation: David Hayes and Lawrence Stewart
Editorial review of code and documentation: Rui Paulo and Bjoern Zeeb
Project supervision: Grenville Armitage
Project URL: http://caia.swin.edu.au/freebsd/5cc/
|Thread||Thread Starter||Forum||Replies||Last Post|
|Feed-Forward Clock Synchronization Algorithms Project||admin||News & Announcements||0||December 21st, 2010 18:10|
|Five new TCP Congestion Control Algorithms Project||admin||News & Announcements||0||December 4th, 2010 14:40|
|Summary of DTrace Project||admin||News & Announcements||0||September 25th, 2010 14:00|
|brightness control||TCE||Mobile Computing||10||May 10th, 2010 03:34|
|SCTP and congestion control||chrcol||Networking||2||December 22nd, 2008 12:45|