Re: minimal sending rate in the case of tfrc for small packetsand its faster restart variant

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

 



Also would like to add - I used TFRC-SP for my simulations.

-Arjuna

On 5/5/06, Arjuna Sathiaseelan <arjuna.sathiaseelan@xxxxxxxxx> wrote:
Hi Tom,
 That's exactly what I found out when I implemented faster restart in
ns-2 and did some tests :)..With a CBR source modelling a G.711 codec
sending 50 pps - and assuming there is reasonable bottleneck bandwidth
available such that there is no packet loss - then the sender never
leaves slow start..It doesnt get into congestion avoidance..So when a
feedback timer expires - based on the algorithm, it stays in the slow
start part of the algorithm - after the silence suppression period
with p = 0. So it never executes the faster restart part where p > 0.
So in this typical scenario - the sender behaves as an ordinary TFRC
sender.

>but I'm not sure what the resulting max
> transmit rate would be.  Normally it'd be half the rate in the last RTT,
> but that was zero in this case, since the app went idle

No - the maximum rate would be the last ACTIVE received rate (if there
was a packet loss or ecn mark - then the received rate wuld have be
reduced by half). But if there were no packet loss (p = 0) - then the
maximum rate would be the last active received rate (which is the
highest achievable rate). So in our case, what happens next is the
question? :) does it exit slow start? If so, how is it going to
execute the p > 0 part of the algorithm? Questions worth an
investigation :)..Thanks for your reply :)

-Arjuna



On 5/5/06, Phelan, Tom <tphelan@xxxxxxxxxxxx> wrote:
> Hi Arjuna,
>
> Part of the justification for faster restart is that the path has
> already been proven to support a higher rate (by earlier transmissions),
> and we're just trying to return to that.  That justification doesn't
> exist for slow start.
>
> But let me see if I understand your scenario.  An application reaches
> its desired throughput before first packet loss and therefore never
> leaves the slow start phase.  I'd say that this is a fairly normal
> situation with media streams -- the user has chosen a codec that's
> likely to not congest the network in the absence of competing flows --
> although the presence of any TCP flow would probably disrupt that.
> After some period at this rate with no packet loss the application goes
> idle long enough for the nofeedback timer to expire.  This would seem to
> be a fairly likely situation for silence-suppressed voice.
>
> I'm not sure what happens then (no time to reread the spec and figure it
> out, sorry).  I would expect the nofeedback timer to cause the
> connection to leave slow start, but I'm not sure what the resulting max
> transmit rate would be.  Normally it'd be half the rate in the last RTT,
> but that was zero in this case, since the app went idle.  Sounds worth
> investigating...
>
> Tom P.
>
> > -----Original Message-----
> > From: Arjuna Sathiaseelan [mailto:arjuna.sathiaseelan@xxxxxxxxx]
> > Sent: Friday, May 05, 2006 3:29 AM
> > To: h.balan@xxxxxxxxxxxx
> > Cc: gorry@xxxxxxxxxxxxxx; dccp@xxxxxxxx
> > Subject: Re:  minimal sending rate in the case of tfrc for small
> > packetsand its faster restart variant
> >
> > I would like to add something here..Its a doubt..
> >
> > I am wondering what happens where there is an idle period during slow
> > start where the nofeedback timer has expired - with p = 0. Faster
> > restart wouldnt work with the given algorithm - since it doesnt make
> > any changes to the existing TFRC slow start algorithm. Shouldnt faster
> > restart proposal modify the slowstart part of the algorithm as well?
> > Please do correct me if I am wrong. Thanks :)
> >
> >  If p > 0,
> >        Calculate X_calc using the TCP throughput equation.
> >        X_recv_limit := 2*X_recv.
> >        If X_recv_limit < X_fast_max,
> >           X_recv_limit := min(4*X_recv, X_fast_max).
> >        X := max(min(X_calc, X_recv_limit), s/t_mbi).
> >     Else
> >        If (t_now - tld >= R)
> >           X := max(min(2*X, 2*X_recv), s/R);
> >           tld := now.
> >
> >
> > -Arjuna
> >
> > On 5/2/06, h.balan@xxxxxxxxxxxx <h.balan@xxxxxxxxxxxx> wrote:
> > > We are sending interactive voice traffic over CCID 3(RFC4342) (also
> > > its variant for small packets draft-ietf-dccp-tfrc-voip-05.txt and
> > > the variant for small packets with with faster restart draft-ietf-
> > > dccp-tfrc-faster-restart-00.txt), trying to observe the impact of
> > > the protocol on the end-to-end quality. Since the codec uses
> > > silence suppresion, our traffic contains periods of data
> > > transmission alternating with periods of idleness, and due to the
> > > fact that we experience frequent slow start (we can only double our
> > > transmission rate during one RTT), the minimal rate of TFRC is an
> > > important factor affecting the transmission quality.
> > > We kindly ask you for some clarifications regarding the way in
> > > which the rate is set in the case of TFRC for small packets and its
> > > faster restart variant.
> > >
> > > RFC 3448, section 4.3 states:
> > > "If (p > 0)
> > >           Calculate X_calc using the TCP throughput equation.
> > >           X = max(min(X_calc, 2*X_recv), s/t_mbi);
> > >       Else
> > >           If (t_now - tld >= R)
> > >               X = max(min(2*X, 2*X_recv), s/R);
> > >               tld = t_now;"
> > > while draft-ietf-dccp-tfrc-voip-05.txt requires the nominal packet
> > > size s to 1460 bytes;
> > >
> > > Question 1) Should s=1460 bytes be used in the factors s/t_mbi and
> > > s/R ? If so, should they be corrected by a factor s_true / (s_true
> > > + H) accounting for the header size?
> > > The difference between the two methods is significant in the case
> > > of VoIP packets, reaching over an order of magnitude.
> > >
> > > draft-ietf-dccp-tfrc-faster-restart-00.txt states:
> > > "This document suggests a relatively simple approach to this
> problem.
> > > Some protocols using TFRC [CCID 3 PROFILE] already specify that the
> > > allowed sending rate is never reduced below the RFC-3390 sending
> > > rate of four packets per RTT during an idle period.  Faster Restart
> > > specifies that the allowed sending rate is never reduced below eight
> > > packets per RTT, for small packets."
> > >
> > > Question 2) Is the rate of eight packets per RTT the minimal rate
> > > of the protocol even in periods of non-idleness? Relating to the
> > > previous question, should the averaged packet size or the nominal
> > > packet size of 1460 bytes be used in the calculation of the rate?
> > >
> > > In case the answer to the previous question is affirmative, should
> > > the rate calculation at the end of section 3. become:
> > > "If p > 0,
> > >     Calculate X_calc using the TCP throughput equation.
> > >     X_recv_limit := 2*X_recv.
> > >     If X_recv_limit < X_fast_max,
> > >        X_recv_limit := min(4*X_recv, X_fast_max).
> > >     X := max(min(X_calc, X_recv_limit), 8*s/R). <= changed minimal
> > > rate
> > >  Else
> > >     If (t_now - tld >= R)
> > >        X := max(min(2*X, 2*X_recv), 8*s/R); <= changed minimal rate
> > >        tld := now."
> > >
> > > Changing the minimal rate from s/t_mbi to 8*s/R while in congestion
> > > avoidance mode shortens the time needed to reach the codec's
> > > nominal transmission rate by log_4(8*t_mbi/R) RTTs ~= 6 RTTs for a
> > > connection with 50ms round trip.
> > >
> > > Vlad Balan
> > >
> > >
> > >
> >
> >
> > --
> > Regards,
> > Arjuna
> >
> > Postdoctoral Researcher
> > Engineering Research Lab,
> > Department of Engineering,
> > University of Aberdeen
>
>


--
Regards,
Arjuna

Postdoctoral Researcher
Engineering Research Lab,
Department of Engineering,
University of Aberdeen



--
Regards,
Arjuna

Postdoctoral Researcher
Engineering Research Lab,
Department of Engineering,
University of Aberdeen



[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