Centre for Advanced Internet Architectures, Swinburne University of Technology, Melbourne, Australia CRICOS number 00111D 19th February, 2010 ---------------------------------------------- OVERVIEW ---------------------------------------------- The CAIA Modular Congestion Control (CC) framework v0.9.4 provides support for a modularised set of hook functions into the TCP stack which can be used to implement congestion control algorithms as loadable kernel modules. A number of algorithms have been implemented using the framework, which are available from: http://caia.swin.edu.au/urp/newtcp/tools.html ---------------------------------------------- LICENCE ---------------------------------------------- The Modular Congestion Control framework is released under a BSD licence. The code drew inspiration from the SCTP(4) stack. Refer to licence headers in each source file for further details. ---------------------------------------------- KNOWN LIMITATIONS ---------------------------------------------- Current known limitations of the Modular CC framework and any relevant workarounds are outlined below: 1. There is currently minimal documentation for the framework other than the code itself. This will be rectified in subsequent releases. ---------------------------------------------- ACKNOWLEDGEMENTS ---------------------------------------------- This project has been made possible in part by a grant from the Cisco University Research Program Fund at Community Foundation Silicon Valley. Testing and development was further assisted by a grant from the FreeBSD Foundation. ---------------------------------------------- RELATED READING ---------------------------------------------- This software was developed as part of the NewTCP research project at Swinburne University's Centre for Advanced Internet Architectures. More information on the project is available at: http://caia.swin.edu.au/urp/newtcp A number of software tools and technical reports related to the framework and experimental TCP research in general are available respectively at: http://caia.swin.edu.au/urp/newtcp/tools.html http://caia.swin.edu.au/urp/newtcp/papers.html At the time of writing, the following software tools may be of interest: Khelp Framework for FreeBSD Enhanced Round Trip Time (ERTT) Khelp module Vegas congestion control algorithm CUBIC congestion control algorithm H-TCP congestion control algorithm Hamilton Delay congestion control algorithm Statistical Information For TCP Research (SIFTR) Deterministic Packet Discard (DPD) At the time of writing, the following reports/papers may be of interest: [1] provides a detailed (although somewhat outdated) technical overview of the Modular CC framework. [2] provides a detailed technical discussion of the ERTT module, developed to give improved RTT estimates for use by congestion control algorithms. [3] is an introduction to FreeBSD kernel programming. ---------------------------------------------- REFERENCES ---------------------------------------------- [1] L. Stewart, J. Healy, "Light-Weight Modular TCP Congestion Control for FreeBSD 7", CAIA Technical Report 071218A, December 2007. [2] D. Hayes, "Timing enhancements to the FreeBSD kernel to support delay and rate based TCP mechanisms", CAIA Technical Report 100219A, February 2010. [3] L. Stewart, J. Healy, "An Introduction to FreeBSD 6 Kernel Hacking", CAIA Technical Report 070622A, June 2007. ---------------------------------------------- AUTHORS ---------------------------------------------- The Modular CC framework patch was first released in 2007 by James Healy and Lawrence Stewart whilst working on the NewTCP research project at Swinburne University's Centre for Advanced Internet Architectures, Melbourne, Australia. Lawrence Stewart has continued development of this work since 2008 in his spare time, and is currently the sole maintainer. All contact regarding the Modular CC framework should be directed to him via email: lastewart@swin.edu.au