Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Mar 2005 23:31:01 +0100
From:      "Daniel Eriksson" <>
To:        <>
Subject:   Dummynet traffic shaping question (TCP-ACK prioritization)
Message-ID:  <!~!>

Next in thread | Raw E-Mail | Index | Archive | Help

(question at the end)

I have a server that sits on a medium speed link (10Mbit, full duplex) that
under certain network loads starts to show what looks like TCP-ACK delay
problems. At full upstream saturation the downstream speed is reduced.

I modded the firewall rules to prioritize TCP-ACKs into one queue and all
other outgoing traffic into another queue. Something like this:

${fwcmd} pipe 1 config
${fwcmd} queue 1 config pipe 1 weight 100
${fwcmd} queue 2 config pipe 1 weight 1
# Route all outgoing TCP traffic with the ACK flag through the high priority
${fwcmd} add queue 1 tcp from any to any out via ${ext_if} tcpflags ack
iplen 0-80
# Route all other (established) outgoing TCP traffic through the low
priority queue
${fwcmd} add queue 2 tcp from any to any out via ${ext_if} established

Looking at the output of 'ipfw show' seems to indicate the queues are
getting the packets they should get:
00100 1738731   69778250 queue 1 tcp from any to any out via em0 tcpflags
ack iplen 0-80
00200 5133634 7689253633 queue 2 tcp from any to any out via em0 established

Even though everything looks OK, the results have not been what I hoped for
(same problem with downstream speed during full upstream saturation).

My question is: Do I need to tell the pipe how fat it is (${fwcmd} pipe 1
config bw 10Mbit/s) to get the queue prioritization to work properly, or is
it OK to leave out the speed and just let it run full tilt?

/Daniel Eriksson