[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADVnQy=Sq8=vboHjN5D1VFftyGWQO=3edkTx4Vy6pvW-fezmSQ@mail.gmail.com>
Date: Wed, 2 May 2012 20:14:31 -0400
From: Neal Cardwell <ncardwell@...gle.com>
To: Yuchung Cheng <ycheng@...gle.com>
Cc: davem@...emloft.net, ilpo.jarvinen@...sinki.fi,
nanditad@...gle.com, netdev@...r.kernel.org
Subject: Re: [PATCH v4 2/3] tcp: early retransmit
On Wed, May 2, 2012 at 7:30 PM, Yuchung Cheng <ycheng@...gle.com> wrote:
> This patch implements RFC 5827 early retransmit (ER) for TCP.
> It reduces DUPACK threshold (dupthresh) if outstanding packets are
> less than 4 to recover losses by fast recovery instead of timeout.
>
> While the algorithm is simple, small but frequent network reordering
> makes this feature dangerous: the connection repeatedly enter
> false recovery and degrade performance. Therefore we implement
> a mitigation suggested in the appendix of the RFC that delays
> entering fast recovery by a small interval, i.e., RTT/4. Currently
> ER is conservative and is disabled for the rest of the connection
> after the first reordering event. A large scale web server
> experiment on the performance impact of ER is summarized in
> section 6 of the paper "Proportional Rate Reduction for TCP”,
> IMC 2011. http://conferences.sigcomm.org/imc/2011/docs/p155.pdf
>
> Note that Linux has a similar feature called THIN_DUPACK. The
> differences are THIN_DUPACK do not mitigate reorderings and is only
> used after slow start. Currently ER is disabled if THIN_DUPACK is
> enabled. I would be happy to merge THIN_DUPACK feature with ER if
> people think it's a good idea.
>
> ER is enabled by sysctl_tcp_early_retrans:
> 0: Disables ER
>
> 1: Reduce dupthresh to packets_out - 1 when outstanding packets < 4.
>
> 2: (Default) reduce dupthresh like mode 1. In addition, delay
> entering fast recovery by RTT/4.
>
> Note: mode 2 is implemented in the third part of this patch series.
>
> Signed-off-by: Yuchung Cheng <ycheng@...gle.com>
> ---
> ChangeLog in v2:
> - swapped part1 and part2
> ChangeLog in v3:
> - trivial text fixes in documentation.
> ChangeLog in v4:
> - disables ER if any reordering. shuffle early retransmit vars in tcp_sock.
Acked-by: Neal Cardwell <ncardwell@...gle.com>
neal
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists