[LARTC] 2 Questions on filtering incoming stuff

Andy Furniss andy.furniss@dsl.pipex.com
Tue, 18 May 2004 00:19:40 +0100


Ed Wildgoose wrote:
> Two easy questions after having read the LARTC HOWTO document (which by 
> the way is a *fantastic* document.  Congratulations to all who 
> contributed!)
> 
> First is: Can I prioritise my "drops" on incoming traffic when the link 
> is overloaded.  ie instead of just tail dropping, can I "prefer" to drop 
> certain classes of traffic? 

Yes - you would queue before dropping.

  If so, do I do this by setting up, say, a
> HTB tree like on the incoming, but the only action at the leaf is to drop?
> 

You attach a queue to the leaf, which may drop.

> Second: Theoretically now....  There appears to be no way to tweak 
> "window length" to throttle incoming data... But in theory, would a 
> module which delayed the outgoing ACK's have the same effect?

Queueing has much the same effect.

   Obviously
> this module would need some sort of packet accounting ffrom the incoming 
> interface in order to supply the outgoing filter with the info it needed 
> (not even sure if this design makes it hard to implement such a 
> thing?).  Fast and selective acks and timeouts, obviously make this very 
> hard to implement as well...
>

Throttling by rwin manipulation would be nice - but complicated.

> However, the main point is that I don't really understand the process by 
> which linux (and other OSs) discover the steady state speed of a link?  
> Anyone got a good pointer to how "slow start" and "fast start" work, and 
> how it adjusts speed through time?

It's tcp that finds the limits. There are many docs out there like

www.jessingale.dsl.pipex.com/tcp-noureddine02transmission.pdf

Andy.