Hi there Chuck Many thanks for you're reply that does indeed help!
Two questions though,.... Where can I find more documentation on these types of settings in FreeBSD and How can I choose between more than just TCP_NewReno, specifically I will be making use of TCP_Westwood / TCP_Westwood+ and TCP_Illinois ??? Also a purely optional nicety would be does anyone know of a ported version of Compound_TCP to FreeBSD? Yes I know its a MS designed algorythm but Windows Vista+ use it by default and it would be nice to speak their congestion algorythm natively. Sorry for all the questions. But I kinda need to make a reccomendation to the client as to viability of the project. Many thanks! PS: Should I get the contract,... does FreeBSD have a hardware requests page? Would like to look into contributing some hardware as a thankyou. On Thu, Feb 26, 2009 at 11:27 PM, Chuck Swiger <cswi...@mac.com> wrote: > From: Ross Cameron <ross.came...@linuxpro.co.za> >> Date: Thu, Feb 26, 2009 at 10:13 AM >> Subject: TCP congestion avoidance >> To: email@example.com >> >> Hi there all >> >> I spend most of my time maintaining an embedded Linux appliance for a >> client >> of mine. One of the features of this client is that depending on >> connectivity types >> etc. if has the ability to choose between several different TCP congestion >> avoidance algorythms. >> >> Now I have been approached by another client to produce a BSD derived >> system >> (they're GPL alergic) and I would like to impliment a simmilar feature on >> this new toolchain. >> Where can I find out what congestion avoidance algorythms FreeBSD supports >> and how to plug them in and out during runtime (not at boot) ??? >> > > ---------- Forwarded message ---------- > 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 local > networks > net.inet.tcp.newreno: Enable NewReno Algorithms > net.inet.tcp.delayed_ack: Delay ACK to try and piggyback it onto a data > packet > net.inet.tcp.rfc3042: Enable RFC 3042 (Limited Transmit) > net.inet.tcp.rfc3390: Enable RFC 3390 (Increasing TCP's Initial Congestion > Window) > net.inet.tcp.sack.enable: Enable/Disable TCP SACK support > net.inet.tcp.sack.maxholes: Maximum number of TCP SACK holes allowed per > connection > net.inet.tcp.sack.globalmaxholes: Global maximum number of TCP SACK holes > net.inet.tcp.sack.globalholes: Global number of TCP SACK holes currently > allocated > net.inet.tcp.inflight.enable: Enable automatic TCP inflight data limiting > 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 packets > > 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... > > Regards, > -- > -Chuck > > -- "Opportunity is most often missed by people because it is dressed in overalls and looks like work." Thomas Alva Edison Inventor of 1093 patents, including: The light bulb, phonogram and motion pictures. _______________________________________________ firstname.lastname@example.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"