Pipe queues

rihad rihad at mail.ru
Mon Dec 10 23:37:44 PST 2007


Chuck Swiger wrote:
> 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.
> 
So you mean queues are only used on the sending side? (the box is acting 
as a router) and that their purpose is to diminish packet loss rate due 
to network congestion? Now I get it, thanks.

>> 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.
> 
This ipfw manpage section was the reason I asked (sorry for the 
formatting). What's with the "queuing delay" part? I'm totally confused.

      queue {slots | sizeKbytes}
            Queue size, in slots or KBytes.  Default value is 50 slots, 
which
            is the typical queue size for Ethernet devices.  Note that 
for slow
            speed links you should keep the queue size short or your traffic
            might be affected by a significant queueing delay.  E.g., 50 
max-
            sized ethernet packets (1500 bytes) mean 600Kbit or 20s of 
queue on
            a 30Kbit/s pipe.  Even worse effects can result if you get 
packets
            from an interface with a much larger MTU, e.g. the loopback 
inter-
            face with its 16KB packets.



More information about the freebsd-net mailing list