From owner-freebsd-questions@FreeBSD.ORG Thu Feb 26 21:41:48 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 902041065672 for ; Thu, 26 Feb 2009 21:41:48 +0000 (UTC) (envelope-from abalour@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.158]) by mx1.freebsd.org (Postfix) with ESMTP id DB96B8FC14 for ; Thu, 26 Feb 2009 21:41:47 +0000 (UTC) (envelope-from abalour@gmail.com) Received: by fg-out-1718.google.com with SMTP id l26so456747fgb.35 for ; Thu, 26 Feb 2009 13:41:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=w+0JeD7VlqdVI7BIv/+FWaaUH1REeVMuTdCrjSDl8/0=; b=kkvR56MQaHAE8YEmaOpsmnERTVUm4LG8x7aeLz6AlTrywZz23IvJT4vuzgzwfeyAKi ZuRd8kyDTu6CH+ZAtxrfyYYTImAdi3+ztO1DlDq926Su4SNGmA8QXSSUE7jZ0UoT/Ypz f44TVux0ydoQfQVO6bWaMtt4Dc1drvUJKeQAE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=BQn5uPRbGQEHtGzvKq95a0McBjxrUMAW5wEt6qlDUmEDFxcNUhPPbN8yMK9R4O6EFp oE1mgdLsnNyUrolyqvH8yJx6aDBQyCnrcQuIOK6oQa3ScJFoghUwZg9j7NpLEvOoJHFj 65W8/JblZeVjEkn76rHfim+z0OENhBxz9x1No= MIME-Version: 1.0 Sender: abalour@gmail.com Received: by 10.86.51.10 with SMTP id y10mr2717204fgy.9.1235684506912; Thu, 26 Feb 2009 13:41:46 -0800 (PST) In-Reply-To: References: <35f70db10902260013v25e3f1bfs8f5929d2c62805@mail.gmail.com> <35f70db10902261302y41d6e9e0x9f420dd6f589735b@mail.gmail.com> Date: Thu, 26 Feb 2009 23:41:46 +0200 X-Google-Sender-Auth: 7883e645824d165c Message-ID: <35f70db10902261341g18d1840du3eb2548418f39974@mail.gmail.com> From: Ross Cameron To: Chuck Swiger Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: "freebsd-questions@freebsd.org" Subject: Re: TCP congestion avoidance X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ross.cameron@linuxpro.co.za List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2009 21:41:49 -0000 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 wrote: > From: Ross Cameron >> Date: Thu, Feb 26, 2009 at 10:13 AM >> Subject: TCP congestion avoidance >> To: freebsd-questions@freebsd.org >> >> 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.