2

What should i choose for AckQueue?

enter image description here

I'm trying to do traffic shaping in pfSense. Traffic shaping in pfSense involves things called queues.

Some queues have higher priority than others.

I understand that there is no way to limit the speed that a client downloads at (i.e. if everyone on the internet decides to each send you 5 packets, you cannot limit that). But you can limit how much the client will ask to download. When a download is in progress, the client will send back acknowledgement packets (ACKs) to the server to indicate that it is ready to receive more data.

The way you limit the download speed of a client is to limit its upload speed.

If the client is unable to send its ACK packets to the server, the server will not send anything more to the client.

This only applies to TCP traffic (TCP uses acks; UDP does not).

The question is then what queue should i place torrent TCP acks in?

  • I cannot place them in the qACK queue. That is a high priority queue, causing the ACKs to be sent out quickly. I want ACKs to not be sent out quickly.
  • I cannot place them in the qDefault queue. That is a high priority queue, causing the ACKs to be sent out quickly. I want ACKs to not be sent out quickly.
  • I cannot place them in the qLink queue. That is essentially no queue; causing the ACKs to be sent out quickly. I want ACKs to not be sent out quickly.

What i want is to place them in the lowest priority queue possible: the qP2P queue. Except i cannot place them in that queue, because pfSense gives an error:

enter image description here

Acknowledge queue and Queue cannot be the same.

Now that error is misleading; they can be the same queue. The designers of the UI decided that i shouldn't do that. They decided i should be doing something else instead.

What is the something else instead that i should be doing?

1

1 Answer 1

2

The Ack queues and the download queues may have similar (or even the same) bandwidth restrictions, but they can't have the same name if you want pfSense to differentiate.

To make it easier for me to track, I label all the WAN (i.e. ACK) queues with a qW_ as the prename. I.E. one of them is qW_Nerfed, one is qW_HTTPWEB, one is qW_Games, etc.

My download rules under the LAN all go into a sub queue (so I don't restrict LAN speeds, just actual Internet download speeds) where I have similar rules and traffic restrictions but I label them qSomething. I.E. qNerfed, qHTTPWEB, qGames.

Now I can place my lowest priority into qW_Nerfed/qNerfed. The ruleset is the same (same percentage of bandwidth allowed up and down) but since the names are different, pfSense knows which queue I mean.

You'd think it would be self-evident. If I label a WAN queue qNerfed ad a LAN queue qNerfed, then when I pick the ackqueue/queue it would obviously use the ackqueue "qNerfed" for the first and the queue "qNerfed" for the second. But even though you can create those queues, and label the same in the Traffic Shaper section, it gets confused when you select queues with the same name.

Therefore, just ensure they have different names for the ack queues and queues when creating them in Traffic Shaper.

2
  • 1
    "...if you want pfSense to differentiate." That is the question; i don't want pfSense to differentiate. I want it to be the same queue.
    – Ian Boyd
    Commented Jan 19, 2015 at 14:39
  • @IanBoyd What queue do acknowledgement packets get sent to when you set Ackqueue to "none"?
    – LonnieBest
    Commented Aug 29, 2022 at 0:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .