[Bloat] Time in Queue, bufferbloat, and... our accidentally interplanetary network
Eric Dumazet
eric.dumazet at gmail.com
Wed Dec 7 06:53:19 EST 2011
Le mercredi 07 décembre 2011 à 11:15 +0100, Hagen Paul Pfeifer a écrit :
> On Mon, 05 Dec 2011 11:59:34 +0100, Eric Dumazet wrote:
>
>
> > Adding a time limit is possible, all we need is a proper design and
> > implementation :)
> >
> > Here is my suggestion :
> >
> > Design a new tfifo/tred qdisc, with following properties :
> >
> > Adaptative RED, (ECN enabled + head drop), but instead of using
> > bytes/packet qlen average, use time_in_queue average.
>
> Question one: is anything wrong with sfb or choke as the basis, instead of
> RED?
>
RED is the module to bring EWMA stuff, it seems natural to start with
it. Please note that choke has a RED module too.
Then later, we can add time limit stuff to other Qdisc if needed, its a
plug anyway. But is there any meaning to compute a global EWMA after
SFB/SFQ packet classification ?
> Question two: I submitted pfast_head_drop to drop more outdated data
> instead of new data. Back in time I thought TCP _may_ experience benefits
> because more up-to-date SACK data packets are saved. Are there any other
> TCP advantages with head drop policy?
>
Note that head drop is a consequence of time limit idea on top of FIFO,
since only at dequeue time, we compute the delta between current time
and enqueue time, and we drop/mark the (head) packet if time exceeds our
current limit.
In general, being able to drop/mark firsts packets in queue instead of
last ones can let TCP sender be notified of congestion much earlier than
a tail drop. (We gain the time to transmit whole packets in queue before
receiver can report in its ACK the congestion back to sender)
More information about the Bloat-devel
mailing list