* [Cake] best way at getting at tcp ack data? @ 2017-10-01 3:10 Dave Taht 2017-10-01 5:22 ` Jonathan Morton 0 siblings, 1 reply; 8+ messages in thread From: Dave Taht @ 2017-10-01 3:10 UTC (permalink / raw) To: Cake List I was thinking about how I'd go about adding saner ack filtering [1] to cake (or maybe to a tc filter), and perhaps it is way simple, now. Merely using the skb_flow_dissect stuff gives me all the flow related fields, from potentially deeply encapsulated packets - and seems to have grown FLOW_DISSECTOR_KEY_TCP at some point since I last looked. Seems promising. Not sure how to get at it in the context of cake? .... The infamous wondershaper filter looks like this: tc filter add dev $DEV parent 1: protocol ip prio 12 u32 \ match ip protocol 6 0xff \ match u8 0x05 0x0f at 0 \ match u16 0x0000 0xffc0 at 2 \ match u8 0x10 0xff at 33 \ flowid 1:10 And that filter is wrong for encapsulated traffic, and ipv6. [1] https://tools.ietf.org/html/rfc3449 -- Dave Täht CEO, TekLibre, LLC http://www.teklibre.com Tel: 1-669-226-2619 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-01 3:10 [Cake] best way at getting at tcp ack data? Dave Taht @ 2017-10-01 5:22 ` Jonathan Morton 2017-10-01 5:25 ` Dave Taht 0 siblings, 1 reply; 8+ messages in thread From: Jonathan Morton @ 2017-10-01 5:22 UTC (permalink / raw) To: cake On 01/10/17 06:10, Dave Taht wrote: > I was thinking about how I'd go about adding saner ack filtering [1] > to cake I didn't see any obvious improvement in that reference over what Cake does already. What are you thinking of? -- - Jonathan Morton ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-01 5:22 ` Jonathan Morton @ 2017-10-01 5:25 ` Dave Taht 2017-10-02 1:08 ` Jonathan Morton 0 siblings, 1 reply; 8+ messages in thread From: Dave Taht @ 2017-10-01 5:25 UTC (permalink / raw) To: Jonathan Morton; +Cc: Cake List https://tools.ietf.org/html/rfc3449#section-5.2.1 On Sat, Sep 30, 2017 at 10:22 PM, Jonathan Morton <chromatix99@gmail.com> wrote: > On 01/10/17 06:10, Dave Taht wrote: >> >> I was thinking about how I'd go about adding saner ack filtering [1] >> to cake > > > I didn't see any obvious improvement in that reference over what Cake does > already. What are you thinking of? > > -- > - Jonathan Morton > _______________________________________________ > Cake mailing list > Cake@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cake -- Dave Täht CEO, TekLibre, LLC http://www.teklibre.com Tel: 1-669-226-2619 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-01 5:25 ` Dave Taht @ 2017-10-02 1:08 ` Jonathan Morton 2017-10-02 2:40 ` Dave Taht 0 siblings, 1 reply; 8+ messages in thread From: Jonathan Morton @ 2017-10-02 1:08 UTC (permalink / raw) To: Dave Taht; +Cc: Cake List [-- Attachment #1: Type: text/plain, Size: 453 bytes --] Ah, so effectively you want to drop acks more aggressively than data packets when they become a saturating flow in themselves, but without disturbing the cues that TCP relies on. There is some logic behind that, since COBALT ramps up quite slowly with very small packets like acks. I think it's worth opening an issue to remind me to look into that. I still don't have a replacement for my MBP, which is complicating matters here. - Jonathan Morton [-- Attachment #2: Type: text/html, Size: 522 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-02 1:08 ` Jonathan Morton @ 2017-10-02 2:40 ` Dave Taht 2017-10-04 3:17 ` Noah Causin 0 siblings, 1 reply; 8+ messages in thread From: Dave Taht @ 2017-10-02 2:40 UTC (permalink / raw) To: Jonathan Morton; +Cc: Cake List The crux of my question was what would be the best way to incorporate the FLOW_DISSECTOR_KEY_TCP into cake whilst retaining all the other DPI. I would add a "ack_filter" parameter to the rate_flags? On Sun, Oct 1, 2017 at 6:08 PM, Jonathan Morton <chromatix99@gmail.com> wrote: > Ah, so effectively you want to drop acks more aggressively than data packets > when they become a saturating flow in themselves, Well, no, what I envisioned would try to comprehensively "do the right thing" when it came to dropping acks, and not actually wait til they were saturating. you have a good point though. Where I see the most use for it is on very slow DSL, and on wifi (where you have a small packet limit and reliable transfers). I also don't know what will happen with extensive filtering in place to the reverse path, reason tells me that the sparse packet priority scheme when applied to filtered out acks will result in really bursty throughput on the other side, and it would be better to defer a full round between deliveries than leave the sparse packet priority scheme in place, when doing ack filtering. But that's "reason", and that fails me a lot whilst thinking about queues. As I believe at least some level of ack filtering is widely deployed... til now, I've largely been satisfied that the DRR would deliver a ton of acks that would be filtered out by the device doing it. >but without disturbing the > cues that TCP relies on. There is some logic behind that, since COBALT > ramps up quite slowly with very small packets like acks. > > I think it's worth opening an issue to remind me to look into that. Well, I might gather enough gumption to go after it, as well as try and produce a cleaned up cake branch suitable for inclusion in 4.15. At the moment I'm starting to prototype a bit with a bfifo, and perhaps netem, 'cause grokking cake makes my head hurt. > I still > don't have a replacement for my MBP, which is complicating matters here. MBP? > - Jonathan Morton -- Dave Täht CEO, TekLibre, LLC http://www.teklibre.com Tel: 1-669-226-2619 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-02 2:40 ` Dave Taht @ 2017-10-04 3:17 ` Noah Causin 2017-10-04 3:22 ` Jonathan Morton 2017-10-04 3:23 ` Jonathan Morton 0 siblings, 2 replies; 8+ messages in thread From: Noah Causin @ 2017-10-04 3:17 UTC (permalink / raw) To: cake After reading about ACK filtering, I have an idea and wonder if it is possible. I only have basic knowledge about the TCP protocol. Instead of dropping TCP data packets, would it be possible to drop normal ACK packets to signal congestion? The sender would see that ACK packets are missing and slow down its transmission rate and re-transmit the data packets it thought were lost. Since the client has already received the packets beforehand, the application would not experience packet loss, and TCP would simply re-acknowledge the packets and discard the copies. Could this be used to create a pseudo-lossless congestion notification scheme, since the client would not see any packet loss, which could be beneficial for certain applications? Noah ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-04 3:17 ` Noah Causin @ 2017-10-04 3:22 ` Jonathan Morton 2017-10-04 3:23 ` Jonathan Morton 1 sibling, 0 replies; 8+ messages in thread From: Jonathan Morton @ 2017-10-04 3:22 UTC (permalink / raw) To: Noah Causin; +Cc: Cake List [-- Attachment #1: Type: text/plain, Size: 175 bytes --] No, because acks are cumulative. Dropping an ack doesn't normally trigger any retransmissions, and is actually difficult to detect reliably at the sender. - Jonathan Morton [-- Attachment #2: Type: text/html, Size: 222 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Cake] best way at getting at tcp ack data? 2017-10-04 3:17 ` Noah Causin 2017-10-04 3:22 ` Jonathan Morton @ 2017-10-04 3:23 ` Jonathan Morton 1 sibling, 0 replies; 8+ messages in thread From: Jonathan Morton @ 2017-10-04 3:23 UTC (permalink / raw) To: Noah Causin; +Cc: Cake List [-- Attachment #1: Type: text/plain, Size: 84 bytes --] There's a much better way to achieve what you want anyway - ECN. - Jonathan Morton [-- Attachment #2: Type: text/html, Size: 127 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-10-04 3:23 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-10-01 3:10 [Cake] best way at getting at tcp ack data? Dave Taht 2017-10-01 5:22 ` Jonathan Morton 2017-10-01 5:25 ` Dave Taht 2017-10-02 1:08 ` Jonathan Morton 2017-10-02 2:40 ` Dave Taht 2017-10-04 3:17 ` Noah Causin 2017-10-04 3:22 ` Jonathan Morton 2017-10-04 3:23 ` Jonathan Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox