Subject: Re: [PATCH net-next] tcp: remove cwnd moderation after recovery

From: Stephen Hemminger <[email-masked]>
Date: Tue, 29 Mar 2016 17:35:45 -0700

On Tue, 29 Mar 2016 17:15:52 -0700
Yuchung Cheng <[email-masked]> wrote:

> For non-SACK connections, cwnd is lowered to inflight plus 3 packets
> when the recovery ends. This is an optional feature in the NewReno
> RFC 2582 to reduce the potential burst when cwnd is "re-opened"
> after recovery and inflight is low.
> 
> This feature is questionably effective because of PRR: when
> the recovery ends (i.e., snd_una == high_seq) NewReno holds the
> CA_Recovery state for another round trip to prevent false fast
> retransmits. But if the inflight is low, PRR will overwrite the
> moderated cwnd in tcp_cwnd_reduction() later.
> 
> On the other hand, if the recovery ends because the sender
> detects the losses were spurious (e.g., reordering). This feature
> unconditionally lowers a reverted cwnd even though nothing
> was lost.
> 
> By principle loss recovery module should not update cwnd. Further
> pacing is much more effective to reduce burst. Hence this patch
> removes the cwnd moderation feature.
> 
> Signed-off-by: Matt Mathis <[email-masked]>
> Signed-off-by: Neal Cardwell <[email-masked]>
> Signed-off-by: Soheil Hassas Yeganeh <[email-masked]>

I have a concern that this might break Linux builtin protection
against hostile receiver sending bogus ACK's.  Remember Linux is
different than NewReno. You are changing something that has existed for
a long long time.