OSDN Git Service

tcp: avoid min RTT bloat by skipping RTT from delayed-ACK in BBR
authorYuchung Cheng <ycheng@google.com>
Wed, 17 Jan 2018 20:11:01 +0000 (12:11 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Jan 2018 20:39:30 +0000 (15:39 -0500)
commite42866031ff03c89a5bdd2056c76dd6cb41c3d35
treef72181b7dfc5d58ee416a996028ea5c3698a206c
parenteb36be0fd55e0a6f2cb3226acd711b2c7a2d7d09
tcp: avoid min RTT bloat by skipping RTT from delayed-ACK in BBR

A persistent connection may send tiny amount of data (e.g. health-check)
for a long period of time. BBR's windowed min RTT filter may only see
RTT samples from delayed ACKs causing BBR to grossly over-estimate
the path delay depending how much the ACK was delayed at the receiver.

This patch skips RTT samples that are likely coming from delayed ACKs. Note
that it is possible the sender never obtains a valid measure to set the
min RTT. In this case BBR will continue to set cwnd to initial window
which seems fine because the connection is thin stream.

Signed-off-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Priyaranjan Jha <priyarjha@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_bbr.c
net/ipv4/tcp_input.c