Re: The RTO=4*RTT thing in TFRC

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

 



Hi,

Thanks a lot for answering my question! This
has been a confusion for me for quite some time
now...


> > 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 should have been more explicit about the reason
for 3*RTT, sorry. According to RFC 2988, the initial
value for SRTT is R and the initial value for
RTTVAR is R/2 (where R is the first RTT measurement).
I also don't know why it's R/2, but probably that value
doesn't make a huge difference after a few updates...

Anyway, if the same intuition that led to the choice
of R/2 would have been applied for setting RTO in TFRC,
it seems to me that the choice should have been
SRTT + 4*RTTVAR = R + 4*R/2 = 3*R. That's what I meant.


> 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.

So it's a somewhat arbitrary choice; well, I just wanted
to know the reason for choosing this value - so thanks
a lot for this clarification!


> 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.

Thanks again!

Cheers,
Michael

PS: again, from my previous email - this is still off-topic
for DCCP, but still unanswered (and I'll move the question
to RMT in a few days if nobody reacts): why was RTO
replaced with 4 instead of 4*RTT in TFMCC?



[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