Centre for Advanced Internet Architectures, Swinburne University of Technology, Melbourne, Australia CRICOS number 00111D 19th February, 2010 ---------------------------------------------- OVERVIEW ---------------------------------------------- The Enhanced Round Trip Time (ERTT) Khelp module provides less noisy RTT measurements for use by delay and rate based TCP congestion control algorithms. Robust estimates of RTT are provided even when the receiver uses delayed acknowledgements, TCP segmentation offload (TSO) or Selective Acknowledgements (SACK). In depth details about the module's operation have been documented in CAIA technical report 100219A [1]. The ERTT Khelp module requires that the bundled version of the Modular TCP Congestion control v0.9.4 and Khelp Framework v0.1.0 patch be applied to the kernel before it can be used. If the target system has previously been patched with either the Modular TCP Congestion Control or Khelp Framework patches, these should be removed before applying the bundled patch. The bundled patch is available here: http://caia.swin.edu.au/urp/newtcp/tools/caia_modularcc_v0.9.4_khelp_v0.1.0_bundle_9.x.r203910.patch ---------------------------------------------- LICENCE ---------------------------------------------- The FreeBSD ERTT module is released under a BSD licence. Refer to licence headers in each source file for further details. ---------------------------------------------- USAGE ---------------------------------------------- Make sure you have the FreeBSD system sources installed. These can be installed using sysinstall. The running system must have the Modular TCP Congestion control v0.9.4 and Khelp Framework v0.1.0 bundled patch applied. To build the module, simply run: make To load the compiled module into the running kernel, run the following command as root: kldload ./h_ertt.ko To unload the module from the running kernel, run the following as root: kldunload h_ertt To delete all artifacts created by compiling the module, run: make cleandir ---------------------------------------------- COMPILE TIME CONFIGURATION ---------------------------------------------- There are currently no compile-time configuration options. ---------------------------------------------- RUN TIME CONFIGURATION ---------------------------------------------- There are currently no run-time configuration options. ---------------------------------------------- KNOWN LIMITATIONS ---------------------------------------------- Current known limitations of the ERTT Khelp module software: 1. Received SACKs that do not acknowledge new data may effect the accuracy of the RTT estimate. Revisions to SACK accounting in FreeBSD fix this problem and will be released soon. ---------------------------------------------- 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 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: Modular TCP Congestion Control for FreeBSD Khelp Framework for FreeBSD Vegas congestion control algorithm Hamilton delay congestion control algorithm CUBIC congestion control algorithm H-TCP 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 technical discussion of the ERTT module, developed to give improved RTT estimates for use by congestion control algorithms. ---------------------------------------------- REFERENCES ---------------------------------------------- [1] D. Hayes, "Timing enhancements to the FreeBSD kernel to support delay and rate based TCP mechanisms", CAIA Technical Report 100219A, February 2010. ---------------------------------------------- AUTHORS ---------------------------------------------- The ERTT Khelp module was developed by David Hayes whilst working on the NewTCP research project at Swinburne University's Centre for Advanced Internet Architectures, Melbourne, Australia. David Hayes is the current maintainer, and all contact regarding this module should be directed to him via email: dahayes@swin.edu.au