Re: [LARTC] SFQ Theory

Linux Advanced Routing and Traffic Control

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

 



On Monday 02 June 2003 02:23, Andrew Hall wrote:
> Hello,
>
> I've read all the documentation I can find on HTB/SFQ setups, but still I
> have a gap in my understanding that I'm hoping someone can please explain.
> Where my understanding fails is why SFQ is required (and more importantly
> what advantage does it provide) as a leaf qdisc, when packets are already
> queued by HTB (which is the interface FIFO qdisc replacement). I *think*
> it's to give fairness to packets of different size that have been
> classified and therefore belongs to a particular leaf class, therefore
> ensuring that if a leaf class has a guaranteed AR of 100Kbps that ALL data
> classified for that class will approximately get their fair share of this
> bandwidth within the class? Is this correct? If not, what advantage does it
> have over the standard FIFO qdisc on the leaf? To extend this line of
> questioning, therefore what advantage does ESFQ add?
Htb classes can be used to seperate the traffic.  So you have a bunch of 
packets belonging to a bunch of connections that are seen as 1.  If you add a 
sfq qdisc, you control how all these connections within a htb class are 
handled.  If you add a fifo qdisc, the packets are sended in the same order 
as they arrived in the class.  If you add a sfq qdisc, you give each 
connection within the htb class the same opportunity to send something.

Assume that have a bulk connection (big download) and an interactive 
connection (ssh login) in the same class.  If you leaf the default prio in 
place, the ssh packets have to wait in the queue.  Let say you have a queue 
of 100 packets, so the ssh packet has to wait for the 99 other to be sended 
be fore it can be send.
If you add a sfq qdisc, the 2 connections may send 2 packet each at a turn.  
If you send a ssh packet, it can be sended after waiting for the 2 packets 
from the bulk download.  So the ssh packets will be sended much faster.

Htb is not queueing the packets itself.  It only seperates the packets in 
classes and the qdiscs attached to the classes are responsible for queueing 
the packets.

Stef

-- 

stef.coene@xxxxxxxxx
 "Using Linux as bandwidth manager"
     http://www.docum.org/
     #lartc @ irc.oftc.net



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