• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

What exactly is ackQueue supposed to be doing?

Scheduled Pinned Locked Moved Traffic Shaping
5 Posts 4 Posters 2.8k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F
    fmatthew5876
    last edited by Apr 25, 2017, 4:45 PM

    As I was playing around with the traffic shaper I tried using the ackQueue. This is on 2.3.3-p1.

    The idea of prioritizing TCP ack packets makes sense. They are tiny and delaying or dropping them can make your connections retransmit unnecessarily.

    So in firewall rules, we have a queue and an ackQueue. From the name "ackQueue", and the way firewall rules keep state one would naturally assume this means if you set this value it will put the TCP acks into the ackQueue and all other traffic of the connection into the regular queue.

    From my testing however this is not at all what happens. I setup a LAN rule on my test network to tag outbound packets with "test". Then I setup outbound WAN floating rule to match "test" and apply queue=qDefault and ackQueue=qAck.  In this test, I only have queues setup on WAN, none on LAN. I'm using the PRIQ algo.

    My test was to download a freebsd iso over http.

    From pftop, what it looks like is that the outbound request to download the iso went into qDefault, but then all of the return traffic (the entire multi-GB iso itself) all went to qAck.

    From that test, it looks like the ackQueue feature is actually a separate queue assignment for all of the return traffic, not just TCP acks.

    Is this the expected behavior of "ackQueue"? If so, why does it have the misleading name of "ackQueue" vs something else that would better indicate its real purpose?

    1 Reply Last reply Reply Quote 0
    • N
      Nullity
      last edited by Apr 26, 2017, 1:08 AM

      @fmatthew5876:

      As I was playing around with the traffic shaper I tried using the ackQueue. This is on 2.3.3-p1.

      The idea of prioritizing TCP ack packets makes sense. They are tiny and delaying or dropping them can make your connections retransmit unnecessarily.

      So in firewall rules, we have a queue and an ackQueue. From the name "ackQueue", and the way firewall rules keep state one would naturally assume this means if you set this value it will put the TCP acks into the ackQueue and all other traffic of the connection into the regular queue.

      From my testing however this is not at all what happens. I setup a LAN rule on my test network to tag outbound packets with "test". Then I setup outbound WAN floating rule to match "test" and apply queue=qDefault and ackQueue=qAck.  In this test, I only have queues setup on WAN, none on LAN. I'm using the PRIQ algo.

      My test was to download a freebsd iso over http.

      From pftop, what it looks like is that the outbound request to download the iso went into qDefault, but then all of the return traffic (the entire multi-GB iso itself) all went to qAck.

      From that test, it looks like the ackQueue feature is actually a separate queue assignment for all of the return traffic, not just TCP acks.

      Is this the expected behavior of "ackQueue"? If so, why does it have the misleading name of "ackQueue" vs something else that would better indicate its real purpose?

      Did you reset states? https://doc.pfsense.org/index.php/Reset_States

      Please correct any obvious misinformation in my posts.
      -Not a professional; an arrogant ignoramous.

      1 Reply Last reply Reply Quote 0
      • K
        klou
        last edited by Jul 24, 2017, 11:19 PM

        I've been wondering about this as well.  Does the assigned ackQueue actually look at TCP flags, or is it simply the return traffic on an outbound rule?

        1 Reply Last reply Reply Quote 0
        • H
          Harvy66
          last edited by Jul 25, 2017, 10:04 PM

          If you're only assigning ACK traffic to the queue, then it is only ACK packets.

          1 Reply Last reply Reply Quote 0
          • N
            Nullity
            last edited by Jul 25, 2017, 11:38 PM

            For detailed info about pf's integrated ACK classification you should probably look to OpenBSD's pf documentation.

            Please correct any obvious misinformation in my posts.
            -Not a professional; an arrogant ignoramous.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post
            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
              This community forum collects and processes your personal information.
              consent.not_received