> > I am working on setting up a router/server running Debian Squeeze. I have had
> > a lot to learn and have managed to understand iptables and have mostly set up
> > filtering.
>
> What sort of link are we talking about? Symmetric/Asymmetric? Bandwidth?
Well, sorry but it could be anything. I may at times have to move the router
and my only requirements of the connection is that it be reliable, at least say
20kilobytes/s, and have a public IP address.
> > Now I would like to set up traffic control. I have been reading documentation
> > and have been looking for an eth0 ingress way to delay packets in order to
> > control download bandwidth, but maybe ingress shaping is not a viable solution.
> > Perhaps it is the ACKs that I need to shape instead: delay the outgoing ACKs to
> > control downloads and delay the outgoing data to control the uploads. Will
> > that work?
>
> I haven't looked lately, but on Linux you'll propably have to set up imq devices
> for ingress shaping. Ingress shaping is indeed controversial. It is also a lot
> simpler than delaying ACK packets based on traffic going the other direction.
I would rather not use something controversial, or preferably anything else not
included in standard Debian squeeze.
> Personally I wouldn't delay ACK packets, but prioritise them over other
> packets. They don't hurt your throughput.
I understand that ACKs won't hurt throughput, but have supposed that delaying
them would help control downloads. If the sender does not receive an ACK until
later hopefully they will see a low-bandwidth link and slow down.
If I prioritize ACKs over other packets, won't that make it even harder to
control downloads? That is, ACKs go out first so the sender sends faster?
Take this scenario, with these interfaces:
eth0: WAN
eth1: host connected
wlan0: random
Say the router starts downloading a Debian ISO and uses all the bandwidth at 80
kilobytes/s. Now the eth1 host wants to download another one. I would like
ideally to be able to say eth1 gets 80% and local gets 20%, but that seems to
be difficult to accomplish. It seems that it would be a while (if ever) before
eth1 gets a significant amount of bandwidth. Add to this wlan0 which will be
unsecured and may be using lots of bandwidth (perhaps I could just give it a
flat limit). Is there some way to balance this, if loosely? Perhaps just
using a certain TCP congestion algorithm? Or can I prioritize ACKs from the
different interfaces?
Thanks.
No comments:
Post a Comment