Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jan 2013 15:12:32 +0100
From:      Andre Oppermann <oppermann@networx.ch>
To:        Lawrence Stewart <lstewart@freebsd.org>
Cc:        freebsd-net@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   Re: Some questions about the new TCP congestion control code
Message-ID:  <51014150.50101@networx.ch>
In-Reply-To: <51013702.8040707@freebsd.org>
References:  <201301141604.29864.jhb@freebsd.org> <50F5137F.1060207@freebsd.org> <201301151427.50932.jhb@freebsd.org> <51013702.8040707@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 24.01.2013 14:28, Lawrence Stewart wrote:
> On 01/16/13 06:27, John Baldwin wrote:
>> One other thing I noticed which is may or may not be odd during this, is that
>> if you have a connection with TCP_NODELAY enabled and you fill your cwnd and
>> then you get an ACK back for an earlier small segment (less than MSS), TCP
>> will not send out a "short" segment for the amount of window space released.
>> Instead, it will wait until a full MSS of space is available before sending
>> a packet.  I'm not sure if that is the correct behavior with TCP_NODELAY or
>> if we should send "short" segments in that case.
>
> We try fairly hard not to send runt segments irrespective of NODELAY,
> but I would be happy to see that change. I'm not aware of any "correct
> behaviour" we have to adhere to - I think it would be perfectly
> reasonable to have a sysctl set the lowest number of bytes we'd be
> willing to send a runt segment for and then key off TCP_NODELAY as to
> whether we try hard to send an MSS worth or send as soon as we have the
> min number of bytes worth of window available.

This is classic silly window syndrome prevention applied to the CWND.  Sending
a small segment when the window opens just a bit isn't going to help much and
mostly clogs the network.

This is actually a side effect of ABC (appropriate byte counting) where not
the ACK's are counted but the bytes ACK'ed.  Disabling ABC will solve this
problem.

-- 
Andre




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51014150.50101>