From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: Larry McVoy <lm@work.bitmover.com>, linux-kernel@vger.kernel.org
Subject: Re: bandwidth for bkbits.net (good news)
Date: Sat, 30 Aug 2003 18:10:29 +0200 [thread overview]
Message-ID: <20030830161029.GA4632@wohnheim.fh-wedel.de> (raw)
In-Reply-To: <20030830150311.GB23789@work.bitmover.com>
On Sat, 30 August 2003 08:03:11 -0700, Larry McVoy wrote:
>
> Many people have sent me mail saying that we should be using traffic
> shaping to fix this problem. We are using it and we can't seem to make
> it work. Our theory is that we have a network like
>
> ----- [ ISP ] ====== internet ======== [ ISP ] ----
>
> wherein "-" means our skinny T1 or DSL and "=" means some fat internet
> connection on the backbone.
>
> We can shape all we want on our ends but if the internet is blasting us
> then our skinny pipe gets full and our shaping doesn't work. We really
> need to have the ISP do the shaping so they can squelch the traffic
> before it gets to our pipe.
>
> If there is someone out there who (a) is running VOIP over the public net
> to a pile of different end points (T1 on both ends tends to work, T1 to DSL
> or cable modem tends to get harder) and (b) has figured out traffic shaping
> that works I'd love to know about it.
By principle, you can only control your side of the wire. Unless your
ISP does some decent shaping for you or allows you to place a machine
at the other end to do it, you are at the internets mercy. If people
with enough bandwidth want to DOS you, they can.
For well behaved traffic you have some limited control over the
incoming traffic through your responses, so QoS should work in theory,
but setting it up is still very close to black magic.
> But just saying QoS/wondershaper doesn't help much (though the thought is
> appreciated), we've tried that already.
Wondershaper was magically configured once and works for everyone that
has similar needs like the original magician. Plus, this magician had
a simple task, as the sending side is the bottleneck and that is the
side he has control over. So unless you have a regular DSL line...
What you really need might not even exist in the kernel yet. The last
couple of times I've tried setting it up and read the code, things
were just not adequate.
---<deeper technical stuff follows>---
In order to control incoming traffic, it is easiest to look at tcp.
udp can work similarly, but it doesn't have to. To throttle the
stream of tcp packets, you could simply through away the acks and the
sending side will reduce it's speed. So you have to measure one
stream and control a related but different one. Maybe this is
possible, not sure.
Second, you usually don't want to through away the acks, as packets
would be retransmitted then. This reduces the effective bandwidth and
limited bandwidth was the problem in the first place. So we have to
delay them enough to slow things down, but not beyond the timeout.
Third, there is the problem transition from continuous streams to
discrete packets, when bandwidth is low. It doesn't take a huge
amount of large packets to create enough latency for your sad VOIP.
And fourth, the possibility of resonance frequency. If measurement
and/or shaping intervals are too long and match nicely to the travel
time to one of your peers, you are back at point three.
Overall, it is possible to do some decent traffic shaping, but it is
far from being simple. And it might even be completely impossible, at
least in your case, with the code that is in the kernel today, be it
Linux or some BSD.
Jörn
PS: If anyone can prove how stupid I am and how simple QoS is, please
do! Seriously!
--
Public Domain - Free as in Beer
General Public - Free as in Speech
BSD License - Free as in Enterprise
Shared Source - Free as in "Work will make you..."
next prev parent reply other threads:[~2003-08-30 16:11 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-30 1:29 Larry McVoy
2003-08-30 15:03 ` Larry McVoy
2003-08-30 16:10 ` Jörn Engel [this message]
2003-08-31 10:13 ` Toon van der Pas
[not found] <q2SH.AA.3@gated-at.bofh.it>
[not found] ` <qfwI.15D.27@gated-at.bofh.it>
[not found] ` <qgCn.2y4.11@gated-at.bofh.it>
2003-08-30 22:58 ` Pascal Schmidt
2003-08-30 23:07 ` Larry McVoy
2003-08-31 1:05 ` Pascal Schmidt
2003-08-31 1:39 ` Andrea Arcangeli
2003-08-31 2:18 ` Jeff Sipek
2003-08-31 2:42 ` Andrea Arcangeli
2003-08-31 2:56 ` Larry McVoy
2003-08-31 13:15 ` Alan Cox
2003-08-31 14:45 ` Andrea Arcangeli
2003-08-31 15:31 ` Alan Cox
2003-08-31 15:43 ` Jörn Engel
2003-08-31 15:50 ` Andrea Arcangeli
2003-08-31 17:06 ` Florian Weimer
2003-08-31 21:21 ` Larry McVoy
2003-09-02 7:06 ` Henning P. Schmiedehausen
2003-09-05 8:10 ` Florian Weimer
2003-09-05 15:35 ` Henning Schmiedehausen
2003-09-05 15:50 ` Florian Weimer
2003-09-05 16:10 ` P
2003-09-05 16:43 ` Ricky Beam
2003-09-07 11:55 ` Henning Schmiedehausen
2003-09-07 18:41 ` Ricky Beam
2003-09-02 21:52 ` Ricky Beam
2003-09-05 8:16 ` Florian Weimer
2003-08-31 15:44 ` Andrea Arcangeli
2003-08-31 16:22 ` Larry McVoy
2003-08-31 16:33 ` Andrea Arcangeli
2003-08-31 16:48 ` Larry McVoy
2003-08-31 17:06 ` Andrea Arcangeli
2003-08-31 21:18 ` Larry McVoy
2003-08-31 22:49 ` Andrea Arcangeli
2003-08-31 22:52 ` Alan Cox
2003-08-31 22:58 ` Larry McVoy
2003-08-31 23:02 ` Andrea Arcangeli
2003-08-31 23:07 ` Larry McVoy
2003-08-31 23:22 ` Andrea Arcangeli
2003-09-01 0:12 ` Larry McVoy
2003-09-01 0:19 ` Jamie Lokier
2003-09-01 0:33 ` Larry McVoy
2003-09-01 11:43 ` Alan Cox
2003-09-01 16:13 ` Andrea Arcangeli
2003-09-01 16:24 ` Larry McVoy
2003-09-01 16:28 ` Alan Cox
2003-09-01 16:38 ` Andrea Arcangeli
2003-08-31 23:39 ` Roman Zippel
2003-09-01 0:09 ` Larry McVoy
2003-09-01 0:20 ` Larry McVoy
2003-08-31 22:56 ` Larry McVoy
2003-08-31 23:13 ` Andrea Arcangeli
2003-09-01 0:18 ` Jamie Lokier
2003-09-01 0:25 ` Larry McVoy
2003-09-01 0:28 ` Andrea Arcangeli
2003-09-01 0:50 ` Jamie Lokier
2003-09-01 1:10 ` Andrea Arcangeli
2003-09-01 1:33 ` Larry McVoy
2003-09-02 7:11 ` Henning P. Schmiedehausen
2003-09-02 7:01 ` Henning P. Schmiedehausen
2003-08-31 16:23 ` Larry McVoy
2003-08-31 16:36 ` Andrea Arcangeli
2003-08-31 15:38 ` Jörn Engel
2003-09-02 6:55 ` Henning P. Schmiedehausen
2003-08-31 13:47 ` Pascal Schmidt
2003-08-31 14:51 ` Andrea Arcangeli
2003-09-02 6:53 ` Henning P. Schmiedehausen
2003-08-31 6:30 ` Jörn Engel
[not found] <qn1b.2Pr.29@gated-at.bofh.it>
[not found] ` <qoTh.5mt.11@gated-at.bofh.it>
[not found] ` <rdje.1sH.11@gated-at.bofh.it>
2003-09-02 17:49 ` Pascal Schmidt
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=20030830161029.GA4632@wohnheim.fh-wedel.de \
--to=joern@wohnheim.fh-wedel.de \
--cc=linux-kernel@vger.kernel.org \
--cc=lm@work.bitmover.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
all inboxes | Powered by JetHome®