Re: TFRC minrate calculation after idle or datalimited period

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

 



Dear Eddie,
Thanks for your reply..Ok - the way I saw this problem was like this:

Say the sender is idle for 1.5 RTTs and then sends 2 packets, then
when the feedback is received, then the following part of the
algorithm from Section 4.3 (RFC3448)  would be executed (the
presumption is that this algorithm (Section 4.3 RFC3448) is executed
for every feedback packet received):

If (sender has been idle or data-limited)
min_rate = max(2*X_recv, W_init/R);

This ensures that the min_rate is atleast W_init/R.

So what I felt was that what happens if one of those 2 packets were
lost. Do we still execute the above code?

But after I wrote the previous mail and a deep inspection led me to
think that this may not cause any "serious" effect, since if the loss
event rate 'p' was greater than 0, then the sending rate would be rate
limited to the rate calculated by the throughput equation. So this
should not be a problem and if that is the case then you can ignore my
previous mail.

This is in the same line of thinking that Gorry and I discussed few days back:

The response of the sender when a feedback packet arrives after the
nofeedback timer:

``if (not the first feedback packet, and not the first feedback packet after a
   nofeedback timer)''  - we ignore the feedback packet.

In this case, we were wondering what happens if the sender was
datalimited after a nofeedback timer expiry and sends very few
packets! Do we still ignore the feedback packet?

-Arjuna


On 2/14/07, Eddie Kohler <kohler@xxxxxxxxxxx> wrote:
Hi Arjuna,

I'm not quite sure what you mean here.  There is no text in the RFCs that I
know of that recommends this procedure.  What the RFCs say is that the rate is
not to be *reduced below* W_init as the result of an idle period.  This
doesn't change "min_rate", exactly, as far as that parameter exists.  For
instance, while the sender is idle [so X_recv must needs be 0], the
implementation might do something like "X_recv := max(X_recv/2, W_init/2R)" on
every nofeedback timer, rather than the straightforward "X_recv /= 2" common
when the sender is sending.  Can you tell us where you got the calculation you
listed below?

Eddie


Arjuna Sathiaseelan wrote:
> If the sender had been idle or datalimited, then the minrate is
> calculated as:
>
> If (sender has been idle or data-limited)
>                 min_rate = max(2*X_recv, W_init/R);
>             Else
>                 min_rate = 2*X_recv;
>
> But I guess we have overlooked the possibility that loss event rate p
> could be greater than 0 after an idle or datalimited period. So in the
> presence of loss, it may not be wise to assign the minrate to be a
> maximum of 2*X_recv and Winit/R..
>
> If that is the case, the I guess we have to add something like this:
>
> If ((p==0) && sender has been idle or data-limited)
>                 min_rate = max(2*X_recv, W_init/R);
>             Else
>                 min_rate = 2*X_recv;
>
> Am I making sense here?
>
> Regards
> Arjuna



--
Electronics Research Group
University of Aberdeen
Aberdeen AB24 3UE
Web: www.erg.abdn.ac.uk/users/arjuna
Phone : +44-1224-272780
Fax :     +44-1224-272497


[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