I agree that running a very small no-feedback timer is a bad idea.
But I think that 1 second is probably far too large. The purpose of
the nofeedback timer is to slow DCCP down when there is serious
network congestion. Waiting 1 second on a LAN would mean sending for
thousands of RTTs before starting to slow down. And on wide-area
links in places like the UK, it could be 100 RTTs before you slow
down, although this would be mitigated a little if the problem was
congestion, and a queue built up.
My gut feeling is that there should be a lower bound on the nofeedback
timer, but that 100ms would be a more appropriate value. This is
motivated by an attempt to compromise between a large value for
efficient DCCP implementations, and a small value to avoid disrupting
the network for too long when bad stuff is happening. From a human
usability point of view, you probably can cope with dropouts in audio
of 100ms without it being too bad, but 1 second is too long.
- Mark
On 12/1/06, Gerrit Renker <[EMAIL PROTECTED]> wrote:
Subject: Re: [PATCH] [DCCP]: Use higher timeout value for nofeedback timer
Date: Friday 01 December 2006 08:10
To: Lars Eggert <[EMAIL PROTECTED]>
Quoting Lars Eggert:
| On Nov 30, 2006, at 11:13, Ian McDonald wrote:
| > This patch provides a configuration option to set the bound for the
| > nofeedback timer, using as default the TCP RTO timeout of 1 second.
|
| The default TCP RTO is 3 seconds (RFC 2988). Linux is apparently not
| conformant to that RFC?
Ian didn't copy the remainder of the mail, which had the clarifying explanation
that this setting is related to section 2.4 of RFC 2988:
(2.4) "Whenever RTO is computed, if it is less than 1 second then the
RTO SHOULD be rounded up to 1 second."
Also [RFC 3448, sec. 1]:
"Another possibility would be to set t_RTO = max(4R, one second),
to match the recommended minimum of one second on the RTO [5]."
where [5] = RFC 2988.
Currently, the nofeedback timer is set to
t_nfb = max(4 * R, 2*s/X)
When R is very small (e.g. 250 usec), 4 * R is close to the dimension of one or
two clock ticks.