On Feb 26, 2009, at 1:02 PM, Ross Cameron wrote:
Bump,... Sorry guys (semi-urgent question and I really need the
not a fBSD guru)
As a suggestion, you ought to give the FreeBSD mailing lists at least
a few hours, or better yet a day or so, before repeating a question
due to lack of initial response.
---------- Forwarded message ----------
From: Ross Cameron <ross.came...@linuxpro.co.za>
Date: Thu, Feb 26, 2009 at 10:13 AM
Subject: TCP congestion avoidance
Hi there all
I spend most of my time maintaining an embedded Linux appliance for
of mine. One of the features of this client is that depending on
etc. if has the ability to choose between several different TCP
Now I have been approached by another client to produce a BSD
(they're GPL alergic) and I would like to impliment a simmilar
this new toolchain.
Where can I find out what congestion avoidance algorythms FreeBSD
and how to plug them in and out during runtime (not at boot) ???
You should start with the output of "sysctl -ad net", in particular:
net.inet.tcp.slowstart_flightsize: Slow start flight size
net.inet.tcp.local_slowstart_flightsize: Slow start flight size for
net.inet.tcp.newreno: Enable NewReno Algorithms
net.inet.tcp.delayed_ack: Delay ACK to try and piggyback it onto a
net.inet.tcp.rfc3042: Enable RFC 3042 (Limited Transmit)
net.inet.tcp.rfc3390: Enable RFC 3390 (Increasing TCP's Initial
net.inet.tcp.sack.enable: Enable/Disable TCP SACK support
net.inet.tcp.sack.maxholes: Maximum number of TCP SACK holes allowed
net.inet.tcp.sack.globalmaxholes: Global maximum number of TCP SACK
net.inet.tcp.sack.globalholes: Global number of TCP SACK holes
net.inet.tcp.inflight.enable: Enable automatic TCP inflight data
net.inet.tcp.inflight.debug: Debug TCP inflight calculations
net.inet.tcp.inflight.rttthresh: RTT threshold below which inflight
will deactivate itself
net.inet.tcp.inflight.min: Lower-bound for TCP inflight window
net.inet.tcp.inflight.max: Upper-bound for TCP inflight window
net.inet.tcp.inflight.stab: Inflight Algorithm Stabilization 20 = 2
These can be adjusted at runtime or even via setsockopt() for a few
cases like TCP_NODELAY. You might also find that the packet shaper
capabilities of dummynet might be helpful for prioritizing traffic and
managing odd links (ie, with a high bandwidth * delay cross product).
Beyond that, look into the source code such as /usr/src/sys/netinet/
tcp_output.c, netinet/tcp_sack.c, etc...
firstname.lastname@example.org mailing list
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"