Page MenuHomeFreeBSD

First cut implementation of hybrid slow start
Needs ReviewPublic

Authored by kmacy on May 25 2017, 2:51 AM.

Details

Reviewers
lstewart
Group Reviewers
transport
Summary

First cut implementation of hybrid slow start
Hybrid Slow Start was introduced by Sangtae Ha and Injong Rhee in "Hybrid slow start for high-bandwidth and long-distance networks" in 2008. An extended version is available at: https://pdfs.semanticscholar.org/7f9a/d9212ccb9ab9b5614bef93347a4b05266a77.pdf

It is essentially just the combination of 2 heuristics for when to exit slow start before encountering loss or reaching ssthresh:

  • find the minimum RTT in the initial ACK train of HYSTART_MIN_SAMPLES, if the minimum RTT from the sample period is greater than the minimum RTT so far + some threshold value of the minRTT, exit slow start
  • if the time since the last ack is <= hystart_ack_delta (2ms by default) and the time since the start of the packet train is greater than the minimum measure RTT / 16 exit slow start

Diff Detail

Lint
Lint Skipped
Unit
Unit Tests Skipped
Build Status
Buildable 9480

Event Timeline

kmacy created this revision.May 25 2017, 2:51 AM

It'd be nice to have a bit of a writeup on what hystart is and how its implemented here.

jtl added a subscriber: jtl.

In general, I think the code would benefit from more comments.

kmacy edited the summary of this revision. (Show Details)May 26 2017, 5:54 AM
lstewart edited edge metadata.Jul 11 2017, 6:16 AM

Following up on some discussion held on the fringe of the recent developer summit at BSDCan, what this work is missing is some accompanying documentation to demonstrate the dynamic behaviour of the proposed implementation over some range of relevant network parameters, along with a critique of expected versus measured/observed behaviour. I'm not asking for a full blown academic paper - a stream of consciousness Google-doc with some data, a few X vs time plots and some comments would suffice. Happy to provide guidance if required - you know where to reach me.

jch added a subscriber: jch.Jul 11 2017, 6:53 AM
linimon retitled this revision from Hystart to First cut implementation of hybrid slow start.Jul 19 2018, 5:27 AM