# [e2e] Estimating MS windows RTO equation

Wed Feb 1 15:46:21 PST 2006

```Hi,

My name is Sushant Rewaskar. I am a graduate student at UNC Chapel Hill. I
have been looking at how the windows OS estimated the RTO (Retransmission
Time Out) but looks like it is not such a simple problem.

I ran a series of experiments with constant RTT as well as with variable RTT
to try and figure out what equations (of the form RTO_timer = a *srtt + B
*rttvar) does windows use. Turns out, the equation is not that simple. Add
to this the unknown clock granularity and this becomes a touch problem.

I am seeking information or/and ideas as to how one can estimate the
equation(s) used by windows. Below are details of how we approached this
problem.

To create a controlled environment we set up two machines in the lab.  One
of the test machines was windows (with XP pro) and the other was a FreeBSD
machine. We used tbit [http://www.icir.org/tbit/] to request a webpage from
the windows machine. We allowed the connection to transfer 250 packets
(allowing the connection to enter congestion avoidance and allow the RTO
estimator equation to converge). The above experiments were first run with a
constant RTT. (We varied the values from 50, 100, 150, 200, 400, 750, 1000,
1200, 1400 ms). Under the constant RTT situation the rttvar should be
reduced to a very low value. In this case the RTO estimator should be a
direct function of srtt and maybe a constant. The empirically derived RTO
value would be affected by the clock granularity of the system. For e.g. if
the clock granularity is 100ms. The actual time when the RTO timer is
triggered can be offset by 100ms on either side of the actual time. To take
care of this we ran the tbit experiment 1000 times for each of the 9 RTT
values and took the median as the probable RTO value for that RTT.  For
constant RTT we assumed that the RTO estimation equation was of the form.
RTO = a*srtt + C. I used a matlab linear equation solver to estimate the
constants a and C. the results I got varied with the experiments and did not
appear intuitively (got constants like 2.7 for "a" and similar non integer
for "C")

We repeated these experiments with variable RTT (the same base values as
above with a 25% random change in the RTT).  We hoped to have obtained "a"
from above and then estimate "b" for the following RTO equation (RTO = a *
srtt + b rttvar).

Anyway, any ideas are welcome.

Take care,