ACK filtering?
- Reply: Rozhuk Ivan : "Re: ACK filtering?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 18 Jul 2023 04:03:59 UTC
I'm likely going to have to move to an Internet connection with asymmetric bandwidth soon, and I want to be proactive with the firewalling to avoid the connection choking on itself. There's a fair amount of documentation out there for bumping the priority on acks with pf and altq, and that seems reasonable, but is there anything equivalent I can do with ipfw? I'd prefer ipfw if possible, but I'll switch if I need to. Second, in researching the topic, because it's been some time, I encountered the notion of ACK filtering. Here's a link: https://lwn.net/Articles/758353/ From that link: The last major component of CAKE is ACK filtering. A stream of data flowing in one direction over a TCP connection will generate a corresponding stream of acknowledgment (ACK) packets heading the other way. The ACK traffic is much smaller than the actual data, but it can still reach problematic levels on asymmetric links like those found in many home links. Much of that data will be redundant: if an ACK packet for the first 10,000 bytes is immediately followed by an ACK for the first 20,000 bytes, the first can often be dropped with no ill effect. Since CAKE maintains per-flow queues of packets, it is relatively easy for it to tell when a newly queued ACK packet makes an earlier one redundant. Some care must be taken, though, to only drop ACK packets that contain no other data, or bad things will happen. The ACK filtering also will not touch packets that contain unknown headers; that is an attempt to avoid protocol ossification that could break future extensions. I'm not seeing anything talking about ACK filtering in FreeBSD. It seems like the best of both worlds would be higher-priority ACK packets outbound, but with those that can be safely discarded discarded. Have I simply missed the documentation, or does this concept not exist as such right now in FreeBSD? (How about in OpenBSD?) It seems like the concept has been batted about for a while: https://dl.acm.org/doi/10.5555/646461.693587 -- Mason Loring Bliss mason@blisses.org Ewige Blumenkraft! (if awake 'sleep (aref #(sleep dream) (random 2))) -- Hamlet, Act III, Scene I