From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] TCP window based shaping
Date: Wed, 09 Feb 2005 01:59:47 +0000 [thread overview]
Message-ID: <42096E93.3020906@dsl.pipex.com> (raw)
In-Reply-To: <42095013.8030600@wildgooses.com>
David Boreham wrote:
>
>> Does anyone have any pointers on how other people have implemented tcp
>> window adjustment to do bandwidth shaping?
>
>
> Hmm....I _heard_ that Packeteer had patents on this and
> so nobody else was attempting to do it.
>
> Possibly an incorrect rumor, but it made sense to me.
They say on their site that their algorithm is patented which could be a
pain if it's the obvious solution.
The more I think about it (probably not enough yet), the more I think
that just keeping state and depiggybacking acks could achieve much the
same thing if your shaper is clever enough.
The worst senario for me is bittorrent, and if I could depiggyback the
acks I don't see that playing with window size on top of that would be
any better than keeping state so that I had an idea of how much was
unstoppably on the way.
Closing the window down isn't going to stop what's allready left the
sender and is sitting in a big modem buffer any quicker than me stopping
sending acks. Just knowing how lagged out each connection is would be
enough to allow me to change bandwidth more elegantly without too much
buffer filling. Not with anything that exists in Linux now - but even
just hacking HTB/HFSC so that a class could behave as full as soon as it
sees traffic would be a start. I can allready sort of break slowstart by
treating new connections harshly (short queue), though it would be nice
in the case of bittorrent to be able to detect connections that go back
into slowstart aswell - sfq sort of singles them out, but it's a bit
late by the time it gets them.
I guess there are other things you could do aswell like trying to
account for different rtts with the intention of avoiding bursts.
Andy.
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
next prev parent reply other threads:[~2005-02-09 1:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-08 23:49 [LARTC] TCP window based shaping Ed Wildgoose
2005-02-08 23:57 ` David Boreham
2005-02-09 1:59 ` Andy Furniss [this message]
2005-02-09 11:34 ` marco ghidinelli
2005-02-09 22:38 ` Andy Furniss
2005-02-11 2:57 ` Ed Wildgoose
2005-02-11 11:05 ` marco ghidinelli
2005-02-11 18:18 ` Ed Wildgoose
2005-02-11 23:45 ` Ed Wildgoose
2005-02-12 2:16 ` Andy Furniss
2005-02-12 13:19 ` Andy Furniss
2005-02-13 0:46 ` Ed Wildgoose
2005-02-14 0:27 ` marco ghidinelli
2005-02-14 0:38 ` marco ghidinelli
2005-02-15 22:33 ` Andy Furniss
2005-02-15 22:54 ` Andy Furniss
2005-02-16 14:52 ` Ed Wildgoose
2005-02-17 3:45 ` gypsy
2005-02-17 14:09 ` Ed Wildgoose
2005-03-12 10:10 ` Ow Mun Heng
2005-03-15 15:24 ` Ed Wildgoose
2005-03-16 7:46 ` Ow Mun Heng
2005-07-09 4:01 ` Don Cohen
2005-07-10 19:55 ` Andy Furniss
2005-07-12 1:50 ` TAKANO Ryousei
2005-07-12 8:46 ` Andy Furniss
2005-07-12 13:44 ` TAKANO Ryousei
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42096E93.3020906@dsl.pipex.com \
--to=andy.furniss@dsl.pipex.com \
--cc=lartc@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.