[ previous ] [ next ] [ threads ]
 From:  Mark Ryan <markryan at cfl dot rr dot com>
 To:  David Burgess <apt dot get at gmail dot com>
 Cc:  Monowall Support List <m0n0wall at lists dot m0n0 dot ch>
 Subject:  Re: [m0n0wall] traffic shaper help
 Date:  Sat, 05 May 2007 09:15:35 -0400
David Burgess wrote:
> On 5/3/07, Mark Ryan <markryan at cfl dot rr dot com> wrote:
>> I run a ftp server from my home server on a cable modem.  Currently i'm
>> using a WRAP with monowall 1.23.  I have traffic shaping working quite
>> well however I still notice some lagginess when the ftp server is
>> sending at max speed.  I notice the lag on web surfing.  Basically i
>> have the ftp traffic tagged as hated traffic, dns and small packets ate
>> prio 1 and ack as prio 3, and everything else as bulk.
>> So it seems that web surfing is still being affected somewhat, but not a
>> whole lot.
>> I have the pipe limit set to 110KB for the upload on my 10mbit / 1mbit
>> cable connection.  So its sufficiently lower than the max.
>> My question is, is there a way to improver the browser response?
>> Perhaps is there a way to have 2 pipes?  With the ftp on 1 pipe and
>> everything else on the other pipe?  With the everything else pipe having
>> strict priority over the ftp?
>> I dont care if the ftp slows down, i want maximum responsiveness for web
>> surfing.
>> Thanks,
>> Mark
> You're using the magic shaper wizard as a starting point by the sounds of
> it. I'll make the assumption that you're using a single pipe for your 
> upload
> traffic.
> By queuing all your traffic through a single pipe, as the wizard does, 
> any
> queue can "borrow" bandwidth from any other queue. In other words, your
> lowest-priority ftp packets can fill the whole pipe if there is 
> nothing else
> being uploaded through the router in question. As soon as a 
> higher-priority
> packet enters the pipe, it will be 'bumped' up in line, but it still 
> has to
> wait for whatever packet is in the process of being sent at that instant,
> and ftp and p2p packets can be quite large, hence the lag you observed in
> surfing (the ack packets have to wait for these bigger ftp packets to 
> clear
> the pipe).
> If you decide to make 2 upload pipes, say 80KB for the first pipe, and 
> send
> only ftp through it, then your ftp uploads will never exceed that 
> value and
> your ack packets (for web surfing, etc) should enjoy much better
> responsiveness, as they have 35KB of reserved bandwidth just waiting for
> them.
> Size your 2 pipes judiciously according to your needs. If you habitually
> upload large files such as email attachments, web content, or scp 
> transfers,
> then you should consider queuing these into the 'bulk' pipe along with 
> the
> ftp traffic. If you're into gaming, which requires
> low-latency/high-bandwidth upstream, then you'll want to keep your 
> non-bulk
> pipe fairly big at the cost of slower bulk traffic all the time.
> On the other hand, if you're mostly just surfing and sending the odd 
> email,
> then go ahead and give your bulk pipe a bigger share. You may need 
> more than
> a few KB/s of upload bandwidth for this type of usage.
> Good luck.
> db

On linux I used Hierarchial Token Bucket traffic shaping and it worked a 
little different.  I could setup multiple pipes within a pipe and assign 
max bw and borrowing characteristics to those.  It worked very well.  My 
FTp would be limited to 100K but the other pipe was set at 125K.  FTP 
would wold go 100 and yet i still had 25K to play with.  The pipes 
borrowed from each other too.

Am I missing something with the m0n0wall traffic shaper?  Is a setup 
such as this possible?  It doesnt appear to be.

Basicaly, i would want my overall connection capped at 125K.  Then I 
would want 2 pipes assigned to that.  The first being a fullsheep 125K 
pipe for web, ack, ping, email, small packet, etc.  The second would be 
a pipe set to 100K for ftp traffic.  Then i would need a way to have 
pipe 1 borrow from pipe 2 when it needed it.