TCP Initial Window 10 MFC

Andre Oppermann andre at freebsd.org
Wed Aug 14 16:44:44 UTC 2013


On 14.08.2013 04:36, Lawrence Stewart wrote:
> Hi Andre,
>
> [RE team is BCCed so they're aware of this discussion]
>
> On 07/06/13 00:58, Andre Oppermann wrote:
>> Author: andre
>> Date: Fri Jul  5 14:58:24 2013
>> New Revision: 252789
>> URL: http://svnweb.freebsd.org/changeset/base/252789
>>
>> Log:
>>    MFC r242266:
>>
>>     Increase the initial CWND to 10 segments as defined in IETF TCPM
>>     draft-ietf-tcpm-initcwnd-05. It explains why the increased initial
>>     window improves the overall performance of many web services without
>>     risking congestion collapse.
>>
>>     As long as it remains a draft it is placed under a sysctl marking it
>>     as experimental:
>>      net.inet.tcp.experimental.initcwnd10 = 1
>>     When it becomes an official RFC soon the sysctl will be changed to
>>     the RFC number and moved to net.inet.tcp.
>>
>>     This implementation differs from the RFC draft in that it is a bit
>>     more conservative in the case of packet loss on SYN or SYN|ACK because
>>     we haven't reduced the default RTO to 1 second yet.  Also the restart
>>     window isn't yet increased as allowed.  Both will be adjusted with
>>     upcoming changes.
>>
>>     Is is enabled by default.  In Linux it is enabled since kernel 3.0.
>
> I haven't been fully alert to FreeBSD happenings this year so apologies
> for bringing this up so long after the MFC.
>
> I don't think this change should have been MFCed, at least not in its
> current form. Enabling the switch to IW=10 on a stable branch is
> inappropriate IMO. I also think the "net.inet.tcp.experimental" sysctl
> branch is poorly named as per the important discussion we had back in
> February [1]. I would really prefer we didn't get stuck having to keep
> it around by making a stable release with it being present.
>
> I think this commit should be backed out of stable/9 and more
> importantly, 9.2-RELEASE.

Backing out the patch isn't really necessary, just flip the switch to
off having it revert to the RFC5681 defaults.  Those who want it anyway
can simply enable it again.

IW10 has become RFC6928 (experimental) in April 2013.

> As an aside, I am intending to follow up to the Feb discussion with a
> patch that implements the basic infrastructure I proposed so that we can
> continue that discussion.

Again I'm deeply concerned and opposed to giving end users direct control
over the IW value.  I've had and seen too many cases of totally bogus "tuning"
by cranking up random sysctls to insane values and then complaining about
FreeBSD being slow compared to Linux (and then ditching FreeBSD).

-- 
Andre

> Cheers,
> Lawrence
>
> [1] http://lists.freebsd.org/pipermail/freebsd-net/2013-February/034698.html



More information about the freebsd-net mailing list