4

Is there a way to install TCP Westwood congestion control algorithm module for FreeBSD? If not, maybe there's a source code available that could be compiled into a loadable Kernel module?

4

This seems like a drive-by question because of the missing "Why?".

Short version: "No - use CHD"

Some of the UCLA work with TCP Westwood was done on FreeBSD 4.4 http://web.cs.ucla.edu/~nrl/rr2002/poster/mvalla-0.pdf

You can find the Westwood+ source at: http://c3lab.poliba.it/index.php/Westwood

TCP Westwood was a modification to TCP New Reno. It does not work well when you have reverse traffic. This then led to TCP Westwood+ which is implemented in the Linux Kernel around 2006. And I suspect this might be the genesis of this question: Linux has this performance thingy: Why does FreeBSD not have it? Note however that CUBIC is default on Linux 2.6.19 to 3.1. On FreeBSD the default is NewReno.

FreeBSD does have a nice modular congestion control framework since 9.0. It is by default shipped with 5 different congestion control implementations:

  • NewReno, CUBIC and HTCP loss-based TCP CC algorithms.
  • Vegas, HD and CHD delay-based TCP CC algorithms.

You can see what you have available on your system with:

sysctl net.inet.tcp.cc

See:

man mod_cc

Announcement:

http://www.freebsdfoundation.org/announcements#Swinburne

Original project site:

http://caia.swin.edu.au/freebsd/5cc/

You can read their fairly dense project report here:

http://caia.swin.edu.au/reports/110228A/CAIA-TR-110228A.pdf

And from what I read I would not bother (in most cases) with TCP Westwood+ when you have CUBIC available:

http://www.academia.edu/1231530/Experimental_analysis_of_the_TCP_Westwood_and_TCP_CUBIC_congestion_control_algorithms

You do not state why you need TCP Westwood. If you are trying to optimize your network I would for sure start out with what you have in the box. TCP is critical code and I would not venture outside the OS unless for serious research. If you are doing (serious!) research - then I would talk to the 5cc guys.

If your preference for TCP Westwood is because of lossy links (such as wireless) - I would rather go the more modern "CHD" route. If you are playing with modern highspeed networks you should instead focus on CUBIC and HTCP. In the real world "Vegas" is almost never any fun: It does not co-exist well on a network with "Reno" based stacks (which is most often the case!).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.