General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Jaume Barcelo <jaume.barcelo@upf.edu>
Cc: bloat@lists.bufferbloat.net
Subject: Re: [Bloat] sweet tcp
Date: Tue, 9 Jul 2013 23:37:50 +0200	[thread overview]
Message-ID: <CAJpd8ptc6W1AwrBu3NeTm6fwhLQdomi3v55RoW+jqXaMQwWdVA@mail.gmail.com> (raw)
In-Reply-To: <20130709193309.GA1272@order.stressinduktion.org>

Thanks for your insights :)

I have to read that paper by Hayes and Armitage. It seems very promising.

Cheers

On Tue, Jul 9, 2013 at 9:33 PM, Hannes Frederic Sowa
<hannes@stressinduktion.org> wrote:
> On Tue, Jul 09, 2013 at 12:10:48PM -0700, Eric Dumazet wrote:
>> On Tue, 2013-07-09 at 19:38 +0200, Jaume Barcelo wrote:
>> > Hi,
>> >
>> > I was explaining the bufferbloat problem to some undergrad students
>> > showing them the "Bufferbloat: Dark Buffers in the Internet" paper. I
>> > asked them to find a solution for the problem and someone pointed at
>> > Fig. 1 and said "That's easy. All you have to do is to operate in the
>> > sweet point where the throughput is maximum and the delay is minimum".
>> >
>> > It seemed to me that it was a good idea and I tried to think a way to
>> > force TCP to operate close to the optimal point. The goal is to
>> > increase the congestion window until it is larger than the optimal
>> > one. At that point, start decreasing the congestion window until is
>> > lower than the optimal point.
>> >
>> > To be more specific, TCP would be at any time increasing or decreasing
>> > the congestion window. In other words, it will be moving in one
>> > direction (right or left) along the x axis of Fig. 1 of Getty's paper.
>> > Each RTT, the performance is measured in terms of delay and
>> > throughput. If there is a performance improvement, we keep moving in
>> > the same direction. If there is a performance loss, we change the
>> > direction.
>> >
>> > I tried to explain the algorithm here:
>> > https://github.com/jbarcelo/sweet-tcp-paper/blob/master/document.pdf?raw=true
>> >
>> > I am not an expert on TCP, so I decided to share it with this list to
>> > get some expert opinions.
>>
>> Are you familiar with existing delay based algorithms ?
>>
>> A known one is TCP Vegas.
>>
>> Problem is that it would work well only if all flows would use it.
>>
>> Alas, lot of flows (or non flows traffic) will still use Reno/cubic (or
>> no congestion at all) and they will clamp flows that are willing to
>> reduce delays.
>>
>> So that's definitely not 'easy' ...
>
> FreeBSD recently imported a new CC algorithm. From the commit msg[0]:
>
>     Import an implementation of the CAIA Delay-Gradient (CDG) congestion control
>     algorithm, which is based on the 2011 v0.1 patch release and described in the
>     paper "Revisiting TCP Congestion Control using Delay Gradients" by David Hayes
>     and Grenville Armitage. It is implemented as a kernel module compatible with the
>     modular congestion control framework.
>
>     CDG is a hybrid congestion control algorithm which reacts to both packet loss
>     and inferred queuing delay. It attempts to operate as a delay-based algorithm
>     where possible, but utilises heuristics to detect loss-based TCP cross traffic
>     and will compete effectively as required. CDG is therefore incrementally
>     deployable and suitable for use on shared networks.
>
>     In collaboration with:      David Hayes <david.hayes at ieee.org> and
>                 Grenville Armitage <garmitage at swin edu au>
>     MFC after:  4 days
>     Sponsored by:       Cisco University Research Program and FreeBSD Foundation
>
> I had no time to play with it myself, yet.
>
> [0] http://svnweb.freebsd.org/base/head/sys/netinet/cc/cc_cdg.c?revision=252504&view=markup
>
>

  reply	other threads:[~2013-07-09 21:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-09 17:38 Jaume Barcelo
2013-07-09 17:56 ` Stephen Hemminger
2013-07-09 19:10 ` Eric Dumazet
2013-07-09 19:33   ` Hannes Frederic Sowa
2013-07-09 21:37     ` Jaume Barcelo [this message]
2013-07-16  1:15     ` Lawrence Stewart

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=CAJpd8ptc6W1AwrBu3NeTm6fwhLQdomi3v55RoW+jqXaMQwWdVA@mail.gmail.com \
    --to=jaume.barcelo@upf.edu \
    --cc=bloat@lists.bufferbloat.net \
    /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