General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Jonathan Morton <chromatix99@gmail.com>
To: sahil grover <sahilgrover013@gmail.com>
Cc: bloat@lists.bufferbloat.net
Subject: Re: [Bloat] Requirements for bufferbloat to occur
Date: Sun, 29 Mar 2015 12:09:03 +0300	[thread overview]
Message-ID: <5BD9D41C-9631-4BD0-9C18-7909E9D6E9C0@gmail.com> (raw)
In-Reply-To: <CADnS-2hap9Wr5QPkXzUKy+wGK4GGpGpLo1nVCH6cZ3FF+7C-oA@mail.gmail.com>


> On 29 Mar, 2015, at 11:04, sahil grover <sahilgrover013@gmail.com> wrote:
> 
> (1) All say bufferSize should be set very large for bufferbloat to occur.
>  
> But how much large?? is there any condition?

There’s a clue in the name: if the buffer is significantly larger than it needs to be (and is unmanaged), we call that bufferbloat.

If the buffer is too small to absorb a typical burst of packets, the resulting increase in packet loss will cause a reduction in throughput.  The correct size for an unmanaged buffer is typically the delay-bandwidth product, which enables it to absorb a transitory burst from a single TCP flow.

However, determining the delay is difficult a priori, and frequently differs substantially between different flows on the same connection.  So we usually make some reasonable assumption about the delay component of that formula: 100ms is typical for a broadband connection to the public Internet, and VoIP can just-about cope with that in practice.

Or, to put it another way - if the buffer *induces* significantly more than 100ms delay under load, that is bufferbloat.

> (2) even after setting buffersize very  very large,  if packets get dropped due to buffer  
> overflow  when heavy traffic is there.
> 
> is it bufferbloat?

Yes.  Packet loss has nothing to do with it - it’s the induced delay that matters.

> sholud we take care that maximum limit of buffersize is never reached and no 
> packet  drop is there due to queue overlow for bufferbloat condition?

Extremely large buffers are usually the result of hardware engineers naively attempting to achieve zero packet loss, by providing buffers larger than the TCP receive window size.  (That is a futile goal - rwnd is unlimited in modern operating systems which support window scaling.)  However, zero packet loss is not a necessary condition.

AQMs often deliberately drop packets in order to signal congestion to the endpoints.  Under some circumstances, this can actually result in less overall packet loss than on an unmanaged buffer.  Even without ECN, the AQM rarely causes burst losses, whereas overflowing an unmanaged queue often does.  With ECN, an AQM can often signal congestion sufficiently well without dropping any packets at all.

 - Jonathan Morton


  reply	other threads:[~2015-03-29  9:09 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-29  8:04 sahil grover
2015-03-29  9:09 ` Jonathan Morton [this message]
2015-03-29 16:34   ` sahil grover
2015-03-29 17:02     ` sahil grover
2015-03-29 18:02     ` David Lang
2015-04-09 10:26       ` sahil grover

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=5BD9D41C-9631-4BD0-9C18-7909E9D6E9C0@gmail.com \
    --to=chromatix99@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=sahilgrover013@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