Page MenuHomeFreeBSD

update SRTT to account for flight size
AbandonedPublic

Authored by kmacy on Nov 27 2015, 12:41 AM.
Referenced Files
Unknown Object (File)
Feb 22 2024, 7:05 PM
Unknown Object (File)
Feb 15 2024, 9:48 AM
Unknown Object (File)
Dec 20 2023, 2:20 AM
Unknown Object (File)
Nov 13 2023, 10:56 AM
Unknown Object (File)
Oct 30 2023, 6:02 PM
Unknown Object (File)
Oct 24 2023, 9:18 PM
Unknown Object (File)
Oct 10 2023, 9:56 AM
Unknown Object (File)
Sep 12 2023, 1:20 AM
Subscribers

Details

Reviewers
lstewart
Group Reviewers
transport
Summary

Important for large BDP connections subject to substantial jitter. Most likely most severe within the data center where the RTT can vary from 30us with an unloaded switch to multiple milliseconds with heavy fan in saturating the link up to the depth of the driver's rxq and the switches buffers.

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')

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

kmacy retitled this revision from to update SRTT to account for flight size.
kmacy updated this object.
kmacy edited the test plan for this revision. (Show Details)
kmacy added a reviewer: lstewart.
kmacy set the repository for this revision to rS FreeBSD src repository - subversion.
kmacy added a project: transport.
kmacy added a subscriber: benno.

We needed to refine this further at ISLN.