Thread (14 messages) flat view 14 messages, 6 authors, 2018-05-18

Re: [PATCH v3 net-next 3/6] tcp: add SACK compression

From: Yuchung Cheng <hidden>
Date: 2018-05-17 22:14:49

On Thu, May 17, 2018 at 2:57 PM, Neal Cardwell [off-list ref] wrote:
On Thu, May 17, 2018 at 5:47 PM Eric Dumazet [off-list ref] wrote:
quoted
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.
quoted
Wifi networks suffer from this aggressive behavior, but generally
speaking, all these SACK packets add fuel to the fire when networks
are under congestion.
quoted
This patch adds a high resolution timer and tp->compressed_ack counter.
quoted
Instead of sending a SACK, we program this timer with a small delay,
based on RTT and capped to 1 ms :
quoted
         delay = min ( 5 % of RTT, 1 ms)
quoted
If subsequent SACKs need to be sent while the timer has not yet
expired, we simply increment tp->compressed_ack.
quoted
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.
quoted
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.
quoted
A new SNMP counter is added in the following patch.
quoted
Two other patches add sysctls to allow changing the 1,000,000 and 44
values that this commit hard-coded.
quoted
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
Very nice. I like the constants and the min(rcv_rtt, srtt).

Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Yuchung Cheng <redacted>

Great work. Hopefully this would save middle-boxes' from handling
TCP-ACK themselves.
Thanks!

neal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help