From: Jonathan Morton <chromatix99@gmail.com>
To: Neil Davies <neil.davies@pnsol.com>
Cc: Hal Murray <hmurray@megapathdsl.net>,
bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] ipspace.net: "QUEUING MECHANISMS IN MODERN SWITCHES"
Date: Thu, 29 May 2014 17:06:21 +0300 [thread overview]
Message-ID: <CAJq5cE0wM6uVqu3=NK7O-Etxgd5HC2dTqFLCAeJwADSwUCP5dQ@mail.gmail.com> (raw)
In-Reply-To: <4F010DC9-309D-4468-AE8B-60EDC59CE028@pnsol.com>
[-- Attachment #1: Type: text/plain, Size: 2557 bytes --]
> > Which yields you the classic tail-drop FIFO, whose faults are by now
well documented. If you have the opportunity to do something better than
that, you probably should. The simplest improvement I can think of is a
*head*-drop FIFO, which gets the congestion signal back to the source
quicker. It *should* I think be possible to do Codel at 10G (if not 40G)
by now; whether or not it is *easy* probably depends on your transistor
budget.
>
> Caveat: this is probably the best strategy for networks that consist
solely of long lived, non service critical, TCP flows - for the rest of
networking requirements think carefully. There are several, real world,
scenarios where this is not the best strategy and, where you are looking to
make any form of "safety" case (be it fiscal or safety of life) it does
create new performance related attack vectors. We know this, because we've
been asked this and we've done the analysis.
That sounds like you're talking about applications where reliable packet
delivery trumps latency. In which case, go ahead and build big buffers and
use them; build the hardware so that AQM can be switched off. I happen to
believe that AQM has the more common applications, so it should still be
built into hardware whenever practical to do so.
Speaking of which, here are a couple more ideas for hardware-simple AQM
strategies:
RANDOM qdisc, which has no queue head or tail. On dequeue, it delivers a
random packet from the queue. On enqueue to a full buffer, it drops random
packets from the queue until the new packet will fit. Your primary
congestion signal is then packets arriving out of order and with delay
jitter, which increases with the average fill of the queue. As a backup, it
will revert to dropping packets in an approximately fair manner.
HALF MARK qdisc, which is essentially a head-drop FIFO, but when the queue
is half-full it begins marking all ECN capable packets (on dequeue) and
dropping the rest (according to ECN RFC). I know, it's theoretically
inferior to RED, but it's far more deployable. It is also capable of giving
a congestion signal without dropping packets, as long as everything
supports ECN. Easily generalised into HIGH WATER MARK qdisc where the ECN
threshold is not necessarily at half-full.
You may also notice that RANDOM and HALF MARK can be implemented
simultaneously on the same queue. This is generally true of any two AQM
strategies which respectively target packet ordering and packet marking
exclusively. You could thus also have RANDOM+Codel or similar.
- Jonathan Morton
[-- Attachment #2: Type: text/html, Size: 2745 bytes --]
next prev parent reply other threads:[~2014-05-29 14:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-28 9:39 Hal Murray
2014-05-28 11:00 ` Jonathan Morton
2014-05-28 18:56 ` David Lang
2014-05-28 22:15 ` Bill Ver Steeg (versteb)
2014-05-29 7:20 ` Neil Davies
2014-05-29 14:06 ` Jonathan Morton [this message]
2014-05-29 16:58 ` Dave Taht
-- strict thread matches above, loose matches on Subject: below --
2014-05-27 8:21 Hagen Paul Pfeifer
2014-05-27 10:45 ` Neil Davies
2014-05-27 12:20 ` Hagen Paul Pfeifer
2014-05-27 12:34 ` Neil Davies
2014-05-28 18:44 ` David Lang
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/bloat.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAJq5cE0wM6uVqu3=NK7O-Etxgd5HC2dTqFLCAeJwADSwUCP5dQ@mail.gmail.com' \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=hmurray@megapathdsl.net \
--cc=neil.davies@pnsol.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