From: Sebastian Moeller <moeller0@gmx.de>
To: Alex Elsayed <eternaleye@gmail.com>
Cc: bloat@lists.bufferbloat.net
Subject: Re: [Bloat] Bloat done correctly?
Date: Fri, 12 Jun 2015 21:21:01 +0200 [thread overview]
Message-ID: <08DFF433-9457-4A3A-92AA-A3B97828F444@gmx.de> (raw)
In-Reply-To: <mlf9o8$tl3$1@ger.gmane.org>
Hi Alex,
On Jun 12, 2015, at 20:51 , Alex Elsayed <eternaleye@gmail.com> wrote:
> Sebastian Moeller wrote:
>
>> Hi Benjamin,
>>
>> To go off onto a tangent:
>>
>> On Jun 12, 2015, at 06:45 , Benjamin Cronce
>> <bcronce@gmail.com> wrote:
>>
>>> [...]
>>> Under load while doing P2P(About 80Mb down and 20Mb up just as I started
>>> the test) HFSC: P2P in 20% queue and 80/443/8080 in 40% queue with ACKs
>>> going to a 20% realtime queue http://www.dslreports.com/speedtest/622452
>>
>> I know this is not really your question, but I think the ACKs should go
>> into the same queue as the matching data packets. Think about it that way,
>> if the data is delayed due to congestion it does not make too much sense
>> to tell the sender to send more faster (which essentially is what ACK
>> prioritization does) as that will not really reduce the congestion but
>> rather increase it. There is one caveat though: when ECN is used it might
>> make sense to send out the ACK that will signal the congestion state back
>> to the sender faster… So if you prioritize ACKs only select those with an
>> ECN-Echo flag ;) @bloat : What do you all think about this refined ACK
>> prioritization scheme?
>
> I'd say that this is wrongly attempting to bind upstream congestion to
> downstream congestion.
>
> Let's have two endpoints, A and B. There exists a stream sent from A towards
> B.
>
> If A does not receive an ack from B in a timely manner, it draws inference
> as to the congestion on the path _towards_ B. Prioritizing acks from B to A
> thus makes this _more accurate to reality_ - a lost ack (rather than the
> absence of an ack due to a lost packet) actually behaves as misinformation
> to the sender, causing them to
So my silent assumption was that we talk about a debloated access link, after all this is the bloat list and we think we have solved most of that problem. So there is no major congestion on the part of the uplink where prioritization would work (the home router’s egress interface), so not misinformation there. As I started in another mail to Benjamin, instead of ACK prioritization I would de-bloat the access link ;)
I add that the currently recommenders solution shaper+fq_codel or cake both give some precedence to sparse flows, which does boost small packets like ACKs (until there are too many competing spade flows then all flows are treated as non-sparse, both AQMs also IIRC preferably drop/mark packets from large flows so ACKs will still get some love on upstream congestion).
>
> 1.) back off sending when the sending channel is not congested and
> 2.) resend a packet that _already arrived_.
But TCP ACKs are cumulative so the information from a lost ACK are also included in the next, so you need to loose a stretch of ACKs before your scenario becomes relevant, no?
>
> The latter point is a big one: Prioritized ACKs (may) reduce spurious
> resends, especially on asymmetric connections - and suprious resends are
> pure network inefficiency. Especially since the data packets are likely far
> larger than the ACKs. Which would _also_ get resent.
But for the spurious resends you either breed to drop several ACKs in a row or delay the ACKs long enough that the RTO triggers; both are situation I would recommend to avoid anyways ;) So I am still not convinced on the ACK priority rationale, assuming a de-bloated access link. If you have enough control over the link to implement ACK games, I believe you are better off de-bloating it more thoroughly… Again not an expert just a layman’s opinion.
Best Regards
Sebastuian
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
next prev parent reply other threads:[~2015-06-12 19:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 4:45 Benjamin Cronce
2015-06-12 9:08 ` Sebastian Moeller
2015-06-12 15:33 ` Benjamin Cronce
2015-06-12 17:51 ` Sebastian Moeller
2015-06-12 18:44 ` Benjamin Cronce
2015-06-12 18:51 ` Alex Elsayed
2015-06-12 19:14 ` Jonathan Morton
2015-06-12 19:54 ` Sebastian Moeller
2015-06-12 21:19 ` Benjamin Cronce
2015-06-12 19:21 ` Sebastian Moeller [this message]
2015-06-12 22:56 ` Alex Elsayed
2015-06-13 7:13 ` Sebastian Moeller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/bloat.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=08DFF433-9457-4A3A-92AA-A3B97828F444@gmx.de \
--to=moeller0@gmx.de \
--cc=bloat@lists.bufferbloat.net \
--cc=eternaleye@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox