<font face="arial" size="2"><p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">Keep It Simple, Stupid.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">That's a classic architectural principle that still applies. Unfortunately folks who only think hardware want to add features to hardware, but don't study the actual real world version of the problem.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">IMO, and it's based on 50 years of experience in network and operating systems performance, latency (response time) is almost always the primary measure users care about. They never care about maximizing "utilization" of resources. After all, in a city, you get maximum utilization of roads when you create a traffic jam. That's not the normal state. In communications, the network should always be at about 10% utilization, because you never want a traffic jam across the whole system to accumulate. Even the old Bell System was engineered to not saturate the links on the worst minute of the worst hour of the worst day of the year (which was often Mother's Day, but could be when a power blackout occurs).</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">Yet, academics become obsessed with achieving constant very high utilization. And sometimes low leve communications folks adopt that value system, until their customers start complaining.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">Why doesn't this penetrate the Net-Shaped Heads of switch designers and others?</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">What's excellent about what we used to call "best efforts" packet delivery (drop early and often to signal congestion) is that it is robust and puts the onus on the senders of traffic to sort out congestion as quickly as possible. The senders ALL observe congested links quite early if their receivers are paying attention, and they can collaborate *without even knowing who the others congesting the link are*. And by picking the heaviest congestors with higher probability to drop, fq_codel pushes back in a "fair" way when congestion actually crops up. (probabilistically).</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">It isn't the responsibility of routers to get packets through at any cost. It's their responsibility to signal congestion early enough that it doesn't persist very long at all due to source based rate adaptation.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">In other words, a router's job is to route packets and do useful telemetry for the end points using it at the instant.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">Please stop focusing on what is an irrelevant metric (maximum throughput with maximum utilization in a special situation only).</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">Focus on what routers can do well because they actually observe it (instantaneous congestion events) and keep them simple.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">.</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">On Thursday, July 8, 2021 10:40am, "Jonathan Morton" <chromatix99@gmail.com> said:<br /><br /></p>
<div id="SafeStyles1625774221">
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; overflow-wrap: break-word;">> > On 8 Jul, 2021, at 4:29 pm, Matt Mathis via Bloat<br />> <bloat@lists.bufferbloat.net> wrote:<br />> ><br />> > That said, it is also true that multi-stream BBR behavior is quite<br />> complicated and needs more queue space than single stream. This complicates the<br />> story around the traditional workaround of using multiple streams to compensate<br />> for Reno & CUBIC lameness at larger scales (ordinary scales today). <br />> Multi-stream does not help BBR throughput and raises the queue occupancy, to the<br />> detriment of other users.<br />> <br />> I happen to think that using multiple streams for the sake of maximising<br />> throughput is the wrong approach - it is a workaround employed pragmatically by<br />> some applications, nothing more. If BBR can do just as well using a single flow,<br />> so much the better.<br />> <br />> Another approach to improving the throughput of a single flow is high-fidelity<br />> congestion control. The L4S approach to this, derived rather directly from DCTCP,<br />> is fundamentally flawed in that, not being fully backwards compatible with ECN, it<br />> cannot safely be deployed on the existing Internet.<br />> <br />> An alternative HFCC design using non-ambiguous signalling would be incrementally<br />> deployable (thus applicable to Internet scale) and naturally overlaid on existing<br />> window-based congestion control. It's possible to imagine such a flow reaching<br />> optimal cwnd by way of slow-start alone, then "cruising" there in a true<br />> equilibrium with congestion signals applied by the network. In fact, we've<br />> already shown this occurring under lab conditions; in other cases it still takes<br />> one CUBIC cycle to get there. BBR's periodic probing phases would not be required<br />> here.<br />> <br />> > IMHO, two approaches seem to be useful:<br />> > a) congestion-window-based operation with paced sending<br />> > b) rate-based/paced sending with limiting the amount of inflight data<br />> <br />> So this corresponds to approach a) in Roland's taxonomy.<br />> <br />> - Jonathan Morton<br />> _______________________________________________<br />> Cerowrt-devel mailing list<br />> Cerowrt-devel@lists.bufferbloat.net<br />> https://lists.bufferbloat.net/listinfo/cerowrt-devel<br />> </p>
</div></font>