General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Aaron Wood <woody77@gmail.com>
To: Michael Richardson <mcr@sandelman.ca>
Cc: Jonathan Morton <chromatix99@gmail.com>,
	bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Terminology for Laypeople
Date: Sun, 16 May 2021 14:32:49 -0700	[thread overview]
Message-ID: <CALQXh-M1tHsW8Q12kZTkW4+oD3m1S=QGECE=wGgLkfVsy8a-=g@mail.gmail.com> (raw)
In-Reply-To: <15155.1621197853@localhost>

[-- Attachment #1: Type: text/plain, Size: 3181 bytes --]

I think the "I Love Lucy" chocolate factory scene is perhaps a good analogy:

https://www.youtube.com/watch?v=WmAwcMNxGqM

The chocolates start to come in too fast, and they can't keep up, but
because they aren't telling the kitchen to slow down, they keep piling up
until it collapses into a mess.

Except with networks, many of the senders keep sending packets until the
receiver says that they've missed one (or three, or whatever it is), and
then the sender slows down again.  But if you're hoarding packets, that
signal to slow down is delayed.  And then that creates bufferbloat.

I also like to think of buffers as time.  The buffer in front of a link is
basically a bucket of time the size of the buffer divided by the speed of
the link.  1MB of buffer, in front of a 10Mbps link, is 800ms: (1,000,000
MB) * (8 bits/byte) / 10,000,000 bits /sec => 0.8 seconds.

And so the sender is going to keep sending faster and faster until they go
over 10Mbps, and start to fill that buffer, and then when they do fill it,
they have to resend the missing packets, AND cut their sending rate.

If the buffer is large enough (and therefore the delay long enough), the
sender "overshoots" by so far that they have to just sit and deal with all
the "hey, I missed packets after X" messages from the receiver, until
everything's caught up, and they they can start going faster again (we call
this congestion collapse, because the sender can't send anything new at
all, and once they've sorted out the state of things with the receiver,
they can start again (slowly)).

Congestion collapse is the candy factory from the above clip:  That mess
that needs to be cleaned up before things can start over again (slowly).




On Sun, May 16, 2021 at 1:44 PM Michael Richardson <mcr@sandelman.ca> wrote:

>
> Jonathan Morton <chromatix99@gmail.com> wrote:
>     > So instead of just loading ready-made bags of firewood into my
> trailer,
>     > I have to wait for the trimming team to get around to taking the
>     > branches off "my" tree which is waiting behind a dozen others.  The
>     > branches then go into a big stack of branches waiting for the
> chopping
>     > machine.  When they eventually get around to chopping those, the
>     > firewood is carefully put in a separate pile, waiting for the
> weighing
>     > and bagging.
>
> Your analogy is definitely the result of optimizing for batches rather
> than latency.
> (JIT manufacturing in general and much of _The Goal_ talks about the
> business side of
> this, btw)
>
> But, I don't think that it's a great explanation for grandma.
> The fetching milk analogy is a bit better, but still not great.
>
> John@matrix8, how did it work for you?
>
> Explaining this is pretty important.
>
> (Thanks for the slide Jonathan)
>
> --
> ]               Never tell me the odds!                 | ipv6 mesh
> networks [
> ]   Michael Richardson, Sandelman Software Works        |    IoT
> architect   [
> ]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on
> rails    [
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
>

[-- Attachment #2: Type: text/html, Size: 4386 bytes --]

  reply	other threads:[~2021-05-16 21:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-12 15:50 Ingemar Johansson S
2021-05-12 21:51 ` Dave Collier-Brown
2021-05-16 18:48   ` john
2021-05-16 19:20     ` Jonathan Morton
2021-05-16 20:44       ` Michael Richardson
2021-05-16 21:32         ` Aaron Wood [this message]
2021-05-16 21:33         ` Jonathan Morton
2021-05-16 23:02           ` Jonathan Morton
2021-05-17  5:18     ` Simon Barber
2021-05-17  5:24       ` Jonathan Morton
  -- strict thread matches above, loose matches on Subject: below --
2021-05-05  0:02 Livingood, Jason
2021-05-05  0:14 ` James R Cutler
2021-05-05  7:41   ` Erik Auerswald
2021-05-06 14:38     ` Dave Taht
2021-05-05  1:41 ` Matt Mathis
2021-05-05 15:05 ` Neil Davies
2021-05-06 13:23 ` Jason Iannone
2021-05-06 13:40   ` David Lang
2021-05-06 18:00     ` Dave Taht
2021-05-10 20:10 ` Jonathan Foulkes
2021-05-11 21:26   ` Greg White

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='CALQXh-M1tHsW8Q12kZTkW4+oD3m1S=QGECE=wGgLkfVsy8a-=g@mail.gmail.com' \
    --to=woody77@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    --cc=mcr@sandelman.ca \
    /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