diff options
author | Marek Majkowski <marek@cloudflare.com> | 2020-01-02 12:09:24 +0100 |
---|---|---|
committer | Marek Majkowski <marek@cloudflare.com> | 2020-01-07 20:35:39 +0000 |
commit | 08a97a6d193f46cd547fadae3bb4125cc788543b (patch) | |
tree | b828fca0e14c1ab2954c5bfe99a8233979c50340 /pkg/gate/gate.go | |
parent | 1f384ac42b9ee8b52000dc2bff79d975853519ed (diff) |
#1398 - send ACK when available buffer space gets larger than 1 MSS
When receiving data, netstack avoids sending spurious acks. When
user does recv() should netstack send ack telling the sender that
the window was increased? It depends. Before this patch, netstack
_will_ send the ack in the case when window was zero or window >>
scale was zero. Basically - when recv space increased from zero.
This is not working right with silly-window-avoidance on the sender
side. Some network stacks refuse to transmit segments, that will fill
the window but are below MSS. Before this patch, this confuses
netstack. On one hand if the window was like 3 bytes, netstack
will _not_ send ack if the window increases. On the other hand
sending party will refuse to transmit 3-byte packet.
This patch changes that, making netstack will send an ACK when
the available buffer size increases to or above 1*MSS. This will
inform other party buffer is large enough, and hopefully uncork it.
Signed-off-by: Marek Majkowski <marek@cloudflare.com>
Diffstat (limited to 'pkg/gate/gate.go')
0 files changed, 0 insertions, 0 deletions