From: Yuchung Cheng <ych...@google.com>
Date: Wed, 16 May 2018 16:40:09 -0700
> This patch set implements the features correspond to the
> draft-ietf-tcpm-rack-03 version of the RACK draft.
> 1. SACK: implement equivalent DUPACK threshold heuristic in RACK to
> replace existing RFC6675 recovery (tcp_mark_head_lost).
> 2. Non-SACK: simplify RFC6582 NewReno implementation
> 3. RTO: apply RACK's time-based approach to avoid spuriouly
> marking very recently sent packets lost.
> 4. with (1)(2)(3), make RACK the exclusive fast recovery mechanism to
> mark losses based on time on S/ACK. Tail loss probe and F-RTO remain
> enabled by default as complementary mechanisms to send probes in
> CA_Open and CA_Loss states. The probes would solicit S/ACKs to trigger
> RACK time-based loss detection.
> All Google web and internal servers have been running RACK-only mode
> (4) for a while now. a/b experiments indicate RACK/TLP on average
> reduces recovery latency by 10% compared to RFC6675. RFC6675
> is default-off now but can be enabled by disabling RACK (sysctl
> net.ipv4.tcp_recovery=0) for unseen issues.
These patches, the design of the ordering of changes in the patch series,
and the commit messages themselves were more than a pleasure to read.
Really, this patch series is a great model for others who want to
improve the quality and reviewability of their submissions.