Five New TCP Congestion Control Algorithms for FreeBSD - 5CC

Overview

Correctly functioning congestion control (CC) is crucial to the efficient operation of the Internet and IP networks in general. CC dynamically balances a flow's throughput against the inferred impact on the network, lowering throughput to protect the network as required.

The FreeBSD operating system's TCP stack currently utilises the defacto standard NewReno loss-based CC algorithm, which has known problems coping with many aspects of modern data networks like lossy or large bandwidth/delay paths. There is significant and ongoing work both in the research community and industry to address CC related problems, with a particular focus on TCP because of its ubiquitous deployment and use.

CAIA's ongoing work with FreeBSD's TCP stack and congestion control implementation has progressively matured. This project aims to refine our prototypes and integrate them into FreeBSD.

Project Goals

  • Integrate support for modularised congestion control algorithms into the kernel.
  • Integrate the Khelp framework into the kernel.
  • Add the Enhanced Round Trip Time (ERTT) Khelp module to allow support for delay-based congestion control algorithms.
  • Add modular implementations of the existing NewReno and five new congestion control algorithms - CUBIC, HTCP, Vegas, HD and CHD.
  • Characterise and compare the performance of the new modularised TCP stack running NewReno against the existing unmodularised TCP stack.

Schedule

The project has concluded.

Program Members

freebsd foundation logo

This project has been funded by a grant from the FreeBSD Foundation.

Last Updated: Wednesday 13-Apr-2011 09:20:14 EST | Maintained by: Lawrence Stewart (lastewart@swin.edu.au) | Authorised by: Grenville Armitage (garmitage@swin.edu.au)