Subject: Re: [ledbat] LEDBAT question

From: Stanislav Shalunov <[email-masked]>
Date: Tue, 17 Nov 2009 22:28:28 -0800

Fred,

It's a good start to use NOISE_FILTER of 1 (or, equivalently, no noise  
filter).  The controller stability is normally sufficient to take care  
of the encountered noise in the measurements.

If the input looks really noisy and the rate is fairly high, you could  
try filtering over a few packets (something like 2-5).  This may at  
best make the response marginally smoother -- the controller should  
already be stable without a noise filter.  It's easiest to keep last  
NOISE_FILTER values around in a ring in that case.

The pseudocode in http://www.ietf.org/id/draft-ietf-ledbat-congestion-00.txt 
  keeps NOISE_FILTER distinct measurements.  This is normally OK, but  
at very high rates, if you choose to go with the cwnd/2 as your  
NOISE_FILTER, you can reduce the amount of state from cwnd/2 packets  
by making the calculation approximate and splitting the cwnd/2 region  
into, say, 10 equal subregions and keeping the minima for them and the  
current one.  This way, you keep O(1) state, not O(cwnd) state for  
noise filtering purpose.  It's definitely valid to keep a cwnd/2 ring,  
though.

Again, in any case, probably a good idea to start with NOISE_FILTER==1.

-- 
Stanislav Shalunov
BitTorrent Inc
[email-masked]

personal: http://shlang.com

On Nov 17, 2009, at 7:16 PM, Fred Ekstrand wrote:

> Dear Mr. Shalunov,
>
> I have recently read your draft for LEDBAT on the IETF website and  
> have a question on the method for NOISE_FILTER.
> In the document on page 7 section 4.14 last sentence states: “The  
> way to filter the noise out is to observe, again, that the noise is  
> always
> nonnegative and so a good filter is the minimum of several recent  
> delay measurements” in conjunction with the restriction mention on  
> page 10
>  “NOISE_FILTER SHOULD be tuned so that it is at least 1 and no more  
> than cwnd/2”.
>
> The impression it is given me is you are required to keep and array  
> with a size ≥ 1 ≤ cwnd/2 ,possibility a circular array,  to hold  
> delays from the received ACK’s and referring to the minimum delay  
> values in the array for later calculation.
> Could you take time out of your busy schedule to confirm this is the  
> correct impression or point me in the right direction on the intent.
>
> Sincerely,
> Fred Ekstrand
> [email-masked]