gvisor/pkg
Bhasker Hariharan bd12e95247 Fix RTT estimation when timestamp option is enabled.
From RFC7323#Section-4

The [RFC6298] RTT estimator has weighting factors, alpha and beta, based on an
implicit assumption that at most one RTTM will be sampled per RTT.  When
multiple RTTMs per RTT are available to update the RTT estimator, an
implementation SHOULD try to adhere to the spirit of the history specified in
[RFC6298].  An implementation suggestion is detailed in Appendix G.

From RFC7323#appendix-G
Appendix G.  RTO Calculation Modification

   Taking multiple RTT samples per window would shorten the history calculated
   by the RTO mechanism in [RFC6298], and the below algorithm aims to maintain a
   similar history as originally intended by [RFC6298].

   It is roughly known how many samples a congestion window worth of data will
   yield, not accounting for ACK compression, and ACK losses.  Such events will
   result in more history of the path being reflected in the final value for
   RTO, and are uncritical.  This modification will ensure that a similar amount
   of time is taken into account for the RTO estimation, regardless of how many
   samples are taken per window:

      ExpectedSamples = ceiling(FlightSize / (SMSS * 2))

      alpha' = alpha / ExpectedSamples

      beta' = beta / ExpectedSamples

   Note that the factor 2 in ExpectedSamples is due to "Delayed ACKs".

   Instead of using alpha and beta in the algorithm of [RFC6298], use alpha' and
   beta' instead:

      RTTVAR <- (1 - beta') * RTTVAR + beta' * |SRTT - R'|

      SRTT <- (1 - alpha') * SRTT + alpha' * R'

      (for each sample R')

PiperOrigin-RevId: 213644795
Change-Id: I52278b703540408938a8edb8c38be97b37f4a10e
2018-09-19 09:59:12 -07:00
..
abi Reuse readlink parameter, add sockaddr max. 2018-09-14 16:00:02 -07:00
amutex stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
atomicbitops stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
binary binary: append slices 2018-08-21 16:26:32 -07:00
bits stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
bpf Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00
compressio compressio: stop worker-pool reference / dependency loop. 2018-09-12 17:24:53 -07:00
control stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
cpuid Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00
dhcp Always pass buffer.VectorisedView by value 2018-09-12 21:57:55 -07:00
eventchannel stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
fd stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
gate stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
ilist Distinguish Element and Linker for ilist. 2018-09-04 09:19:11 -07:00
linewriter stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
log stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
metric stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
p9 Add additional sanity checks for walk. 2018-09-07 16:53:12 -07:00
rand Allow building on !linux 2018-08-22 13:31:11 -07:00
refs Distinguish Element and Linker for ilist. 2018-09-04 09:19:11 -07:00
seccomp SyscallRules merge and add were dropping AllowAny rules 2018-08-24 11:39:21 -07:00
secio stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
segment Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00
sentry Short-circuit Readdir calls on overlay files when the dirent is frozen. 2018-09-18 15:42:22 -07:00
sleep stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
state Increase state test timeout 2018-09-18 14:38:42 -07:00
sync stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
syserr Reduce map lookups in syserr 2018-08-14 19:03:38 -07:00
syserror stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
tcpip Fix RTT estimation when timestamp option is enabled. 2018-09-19 09:59:12 -07:00
tmutex stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
unet stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
urpc runsc fsgofer: Support dynamic serving of filesystems. 2018-08-15 16:25:22 -07:00
waiter Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00