Re: The RTO=4*RTT thing in TFRC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michael -

On Dec 19, 2007, at 9:00 AM, Michael Welzl wrote:
Hi all,

I'm confused by the idea of setting RTO=4*RTT in TFRC.
From RFC 3448:

--
We further simplify this by setting t_RTO = 4*R.  A more accurate
calculation of t_RTO is possible, but experiments with the current
setting have resulted in reasonable fairness with existing TCP
implementations [9].
--

(where [9] is Joerg Widmer's master thesis).


I'd like to understand where the number 4 comes from. Was that
just a magic number that worked well in Joerg's tests?


If we apply the same intuition (whatever it was) that led to
the choice of RTT/2 as an initial value for RTTVAR in RFC 2988
and forget about the EWMA processes for a minute, it would seem
reasonable to set RTO to RTT + 4 * RTT/2 = 3*RTT instead...

The RTO for TCP, from RFC 2988, is:
    SRTT + 4*RTTVAR.

I don't remember that any particular measurement studies were used
to get TFRC's rough estimate of 4*RTT for the RTO.   If one wanted
to look for something more precise, one could look at
measurements of the range of values of RTTVAR in real-world
connections, and then taking a conservative estimate.
(I don't know off-hand of the worst-case possible value for RTTVAR,
if there is one.)

I think that setting RTO to 3*RTT would be fine, and I think that setting
RTO to 4*RTT is also fine.

Given that TFRC doesn't compute RTTVAR directly (in order to reduce
the computational load), I think it is a good idea for TFRC to use
a *conservative* estimate of RTO, so that TFRC doesn't have
a sending rate that is too high in highly congested environments.
(In times of low congestion, with a low loss event rate, the RTO
term doesn't have much effect on TFRC's sending rate one way or
another.)

Also, I wonder how people apply the equation in other settings -
is it a common thing to set RTO to 4*RTT when using it, or
is this specific to TFRC?

I don't know off-hand of any other places where it is used.

- Sally
http://www.icir.org/floyd/



[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux