Return-path: Received: from mail-lpp01m010-f46.google.com ([209.85.215.46]:63392 "EHLO mail-lpp01m010-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754513Ab1LGLxY (ORCPT ); Wed, 7 Dec 2011 06:53:24 -0500 Message-ID: <1323258799.2312.18.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC> (sfid-20111207_125333_452276_CF2D2B73) Subject: Re: [Bloat] Time in Queue, bufferbloat, and... our accidentally interplanetary network From: Eric Dumazet To: Hagen Paul Pfeifer Cc: Dave Taht , linux-wireless , netdev@vger.kernel.org, bloat-devel , bloat Date: Wed, 07 Dec 2011 12:53:19 +0100 In-Reply-To: <9dfc3c5eb811f2774b378fce0158b3e7@localhost> References: <1323082774.2670.40.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC> <9dfc3c5eb811f2774b378fce0158b3e7@localhost> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: 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)