27 #ifndef NDN_CXX_UTIL_RTT_ESTIMATOR_HPP
28 #define NDN_CXX_UTIL_RTT_ESTIMATOR_HPP
60 RttEstimator(shared_ptr<const Options> options =
nullptr);
76 return m_sRtt != -1_ns;
180 int64_t m_nRttSamples = 0;
RTT/RTO estimator that also maintains min/max/average RTT statistics.
time::nanoseconds getMinRtt() const
Returns the minimum RTT observed.
time::nanoseconds getMaxRtt() const
Returns the maximum RTT observed.
void addMeasurement(time::nanoseconds rtt, size_t nExpectedSamples=1)
Records a new RTT measurement.
time::nanoseconds getAvgRtt() const
Returns the average RTT.
time::nanoseconds getSmoothedRtt() const
Returns the smoothed RTT value (SRTT).
time::nanoseconds getRttVariation() const
Returns the RTT variation (RTTVAR).
void backoffRto()
Backoff RTO by a factor of Options::rtoBackoffMultiplier.
void addMeasurement(time::nanoseconds rtt, size_t nExpectedSamples=1)
Records a new RTT measurement.
shared_ptr< const Options > m_options
RttEstimator(shared_ptr< const Options > options=nullptr)
Constructor.
time::nanoseconds getEstimatedRto() const
Returns the estimated RTO value.
boost::chrono::nanoseconds nanoseconds
time::nanoseconds maxRto
upper bound of RTO
time::nanoseconds minRto
lower bound of RTO
double alpha
weight of exponential moving average for smoothed RTT
time::nanoseconds initialRto
initial RTO value
int rtoBackoffMultiplier
RTO multiplier used in backoff operation.
double beta
weight of exponential moving average for RTT variation
int k
RTT variation multiplier used when calculating RTO.