Pipe queues
Chuck Swiger
cswiger at mac.com
Mon Dec 10 11:42:05 PST 2007
On Dec 10, 2007, at 8:56 AM, rihad wrote:
> Hi,
>
> I'm having a hard time to understand what pipe queues are with
> respect to bandwidth limitation. ipfw(8) and dummynet(4) manuals
> didn't help me much.
Pipes and queues are two different things; a pipe simulates a network
link, and a queue is used to hold packets which are backlogged because
they are arriving faster than the outbound link (ie, a pipe) can
transmit them.
> How does dummynet's traffic shaping function?
It uses a variant of weighted fair queuing.
> Why does it need a queue at all?
So the traffic shaper can choose which of the queues with traffic it
should drain and send out next. Unless you use multiple queues, you
won't be able to prioritize traffic between 'em.
> As each connection's queue takes some memory, can I just disable the
> queueing, or set its size to 1 slot (1500 bytes)?
You could, but that would largely disable effective traffic shaping
also.
> What if I set it to 10000 slots, why should it wait to fill the
> queue before starting to send stuff out the network interface?
Well, it *doesn't* wait for the queue to be filled before starting to
send stuff out the network.
> As packets arrive, AFAIK they are stored in mbufs in system memroy.
> Do pipe queues also use mbufs? I might be servicing hundreds of
> pipes simultaneously, this is why I'm concerned about memory use.
Pipes aren't queues. Queues buffer packets into mbufs.
--
-Chuck
More information about the freebsd-net
mailing list