tcp: up initial rmem to 128KB and SYN rwin to around 64KB
Previously TCP initial receive buffer is ~87KB by default and
the initial receive window is ~29KB (20 MSS). This patch changes
the two numbers to 128KB and ~64KB (rounding down to the multiples
of MSS) respectively. The patch also simplifies the calculations s.t.
the two numbers are directly controlled by sysctl tcp_rmem[1]:
  1) Initial receiver buffer budget (sk_rcvbuf): while this should
     be configured via sysctl tcp_rmem[1], previously tcp_fixup_rcvbuf()
     always override and set a larger size when a new connection
     establishes.
  2) Initial receive window in SYN: previously it is set to 20
     packets if MSS <= 1460. The number 20 was based on the initial
     congestion window of 10: the receiver needs twice amount to
     avoid being limited by the receive window upon out-of-order
     delivery in the first window burst. But since this only
     applies if the receiving MSS <= 1460, connection using large MTU
     (e.g. to utilize receiver zero-copy) may be limited by the
     receive window.
With this patch TCP memory configuration is more straight-forward and
more properly sized to modern high-speed networks by default. Several
popular stacks have been announcing 64KB rwin in SYNs as well.
Signed-off-by:  Yuchung Cheng <ycheng@google.com>
Signed-off-by:
Yuchung Cheng <ycheng@google.com>
Signed-off-by:  Wei Wang <weiwan@google.com>
Signed-off-by:
Wei Wang <weiwan@google.com>
Signed-off-by:  Neal Cardwell <ncardwell@google.com>
Signed-off-by:
Neal Cardwell <ncardwell@google.com>
Signed-off-by:  Eric Dumazet <edumazet@google.com>
Reviewed-by:
Eric Dumazet <edumazet@google.com>
Reviewed-by:  Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by:
Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by:  David S. Miller <davem@davemloft.net>
David S. Miller <davem@davemloft.net>
Loading
Please register or sign in to comment
