[LARTC] idea...

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, 23 Dec 2002, Radoslaw Stachowiak wrote:

> as we all know, we can shape only outgoing traffic.
> we can, of course, use IMQ or other drop-type shaping on incoming
> interface but it has some pitfalls, to name few:
> .. it relies on fact that upper layers (mostly TCP) can and will handle
> accordingly to dropped packets
> .. its waste of bandwith, because dropping packet which is already
> delivered to us does not save our pipe (unless tcp/etc starts acting)

Unfortunately, this is true.

> 
> this is classic problem of two interface router.
> 
> small ascii:   (internet)---(ppp0)router(eth0)---(lan)
> 
> And here goes my idea:
> to write a qdisc which is applied to _outgoing_ traffic on ppp0 which
> acts on tcp only packets, namely ACKs, dropping and/or modyfing their
> content to faster 'inform' sending side (internet) about bottleneck.
> classic shaping does not work as this packet flow is relativly small
> (acks). Such qdisc has to investigate content of packets, so im not sure
> if it can be done in classical (qdisc) way, or if its rather a task for a netfilter
> family.
> 

I'm doing something very simliar to your idea, basically a qdisc which 
uses the Ideas of TCP Rate Control (modifiy window size and ack rate) to 
control _incoming_ tcp rates. It is very, very accurat and doesn't waste a 
bit because nothing has to be thrown away. It has higher computantional 
overhead than f.e. htb because it has to keep per-flow state. My 
particular implementation uses ip_conntrack which will be running in many 
cases anyway. It is not finished yet, mostly because its realy time 
consuming and i don't have that much time. My implmentation is still 
missing one of the most important parts, namely accurat prediction of how 
fast a flow would go without rate control. this is required because with 
rate control, you have to decide how much bandwidth to allocate to a flow 
_in advance_ and it won't go faster that this. this means you really want 
to have a good prediction how fast it could go.
despite this, it is quite "useable", non-tcp traffic is handled by a 
fallback tocken bucket policer. It works for both in- and egress.
I haven`t worked on it for almost two month now, but if someone is 
interested in helping out i would be glad to finish it as soon as 
possible.

Bye,
Patrick



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux