Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Greg White <g.white@CableLabs.com>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: "cake@lists.bufferbloat.net" <cake@lists.bufferbloat.net>
Subject: Re: [Cake] cake shaper vs leaky bucket algorithm
Date: Wed, 18 Nov 2015 17:41:15 +0000	[thread overview]
Message-ID: <D27204AA.5755E%g.white@cablelabs.com> (raw)
In-Reply-To: <F6C7C590-155E-43DC-85CC-4DA2111F66B8@gmail.com>

agreed.   (and I hope you understand I was speaking of the black-box
behavior rather than describing an implementation of it, your
implementation approach is clearly the appropriate one)



On 11/18/15, 10:30 AM, "Jonathan Morton" <chromatix99@gmail.com> wrote:

>
>> On 18 Nov, 2015, at 19:12, Greg White <g.white@CableLabs.com> wrote:
>> 
>> 2) you delay small packets to avoid the 1 MTU "burstiness" that the
>>traditional algorithm would create.
>> 
>> Change 2 might be more debatable, since it adds latency where (it could
>>be argued) it isn't needed.  The argument might be: if it is acceptable
>>(and it has to be) for the shaper to put an MTU worth of consecutive
>>bytes on the wire, does it matter whether those bytes are one large
>>packet or several small ones?
>
>When a large packet is committed for transmission, the latency it causes
>(due to serialisation) is unavoidable.
>
>When a series of small packets are available, the situation is more
>complex.  Committing them all at once is certainly not a win; they must
>still incur serialisation delay.
>
>Conversely, committing them at the properly scheduled times allows
>flow-isolation to work better (especially in the not-uncommon case where
>new packets arrive for another flow while the original series is still
>being dealt with), and also ensures that the correct sequence of sojourn
>times is visible to the AQM layer.
>
>But Cake¹s shaper doesn¹t treat sub-MTU packets specially in any case; in
>fact, it is unaware of the MTU, and is entirely capable of handling
>multi-MTU-sized aggregates.  It waits until the next transmission is
>scheduled, transmits the next available packet, then advances the pointer
>by the wire-time occupied by that packet.
>
>So treating packets of different sizes differently, as you describe,
>would actually complicate the algorithm as well as worsening its
>system-level performance.
>
> - Jonathan Morton
>


      parent reply	other threads:[~2015-11-18 17:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-18  7:46 Dave Taht
2015-11-18 10:49 ` Jonathan Morton
2015-11-18 10:58   ` Dave Taht
2015-11-18 17:12     ` Greg White
2015-11-18 17:30       ` Jonathan Morton
2015-11-18 17:40         ` Dave Taht
2015-11-18 18:16           ` Greg White
2015-11-18 17:41         ` Greg White [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D27204AA.5755E%g.white@cablelabs.com \
    --to=g.white@cablelabs.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox