From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Eric Dumazet <edumazet@google.com>,
"David S . Miller" <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
Neal Cardwell <ncardwell@google.com>,
Yuchung Cheng <ycheng@google.com>,
Soheil Hassas Yeganeh <soheil@google.com>,
Eric Dumazet <edumazet@google.com>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: Re: [PATCH v3 net-next 3/6] tcp: add SACK compression
Date: Fri, 18 May 2018 01:24:07 +0200 [thread overview]
Message-ID: <87o9hd6f3c.fsf@toke.dk> (raw)
In-Reply-To: <20180517214729.186094-4-edumazet@google.com>
Eric Dumazet <edumazet@google.com> writes:
> When TCP receives an out-of-order packet, it immediately sends
> a SACK packet, generating network load but also forcing the
> receiver to send 1-MSS pathological packets, increasing its
> RTX queue length/depth, and thus processing time.
>
> Wifi networks suffer from this aggressive behavior, but generally
> speaking, all these SACK packets add fuel to the fire when networks
> are under congestion.
>
> This patch adds a high resolution timer and tp->compressed_ack counter.
>
> Instead of sending a SACK, we program this timer with a small delay,
> based on RTT and capped to 1 ms :
>
> delay = min ( 5 % of RTT, 1 ms)
>
> If subsequent SACKs need to be sent while the timer has not yet
> expired, we simply increment tp->compressed_ack.
>
> When timer expires, a SACK is sent with the latest information.
> Whenever an ACK is sent (if data is sent, or if in-order
> data is received) timer is canceled.
>
> Note that tcp_sack_new_ofo_skb() is able to force a SACK to be sent
> if the sack blocks need to be shuffled, even if the timer has not
> expired.
>
> A new SNMP counter is added in the following patch.
>
> Two other patches add sysctls to allow changing the 1,000,000 and 44
> values that this commit hard-coded.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
next prev parent reply other threads:[~2018-05-17 23:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-17 21:47 [PATCH v3 net-next 0/6] tcp: implement SACK compression Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 1/6] tcp: use __sock_put() instead of sock_put() in tcp_clear_xmit_timers() Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 2/6] tcp: do not force quickack when receiving out-of-order packets Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 3/6] tcp: add SACK compression Eric Dumazet
2018-05-17 21:57 ` Neal Cardwell
2018-05-17 22:14 ` Yuchung Cheng
2018-05-17 23:24 ` Toke Høiland-Jørgensen [this message]
2018-05-17 21:47 ` [PATCH v3 net-next 4/6] tcp: add TCPAckCompressed SNMP counter Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 5/6] tcp: add tcp_comp_sack_delay_ns sysctl Eric Dumazet
2018-05-17 21:59 ` Neal Cardwell
2018-05-17 21:47 ` [PATCH v3 net-next 6/6] tcp: add tcp_comp_sack_nr sysctl Eric Dumazet
2018-05-17 22:01 ` Neal Cardwell
2018-05-18 15:42 ` [PATCH v3 net-next 0/6] tcp: implement SACK compression David Miller
2018-05-18 15:48 ` Eric Dumazet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o9hd6f3c.fsf@toke.dk \
--to=toke@toke.dk \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=eric.dumazet@gmail.com \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=soheil@google.com \
--cc=ycheng@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.