<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bufferbloat.net</title>
    <link>https://www.bufferbloat.net/projects/</link>
    <description>Recent news and articles on Bufferbloat.net</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>bloat@lists.bufferbloat.net (The Bufferbloat community)</managingEditor>
    <webMaster>bloat@lists.bufferbloat.net (The Bufferbloat community)</webMaster>
    <lastBuildDate>Sun, 01 Dec 2024 09:10:12 +0000</lastBuildDate>
    <atom:link href="https://www.bufferbloat.net/projects/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Bufferbloat FAQs</title>
      <link>https://www.bufferbloat.net/projects/bloat/wiki/Bufferbloat_FAQs/</link>
      <pubDate>Sun, 01 Dec 2024 09:10:12 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/bloat/wiki/Bufferbloat_FAQs/</guid>
      <description>

&lt;h1 id=&#34;bufferbloat-faqs&#34;&gt;Bufferbloat FAQs&lt;/h1&gt;

&lt;p&gt;We hear these questions all the time,
so we collect the answers here for reference.&lt;/p&gt;

&lt;p&gt;Answers are grouped into
&lt;a href=&#34;#tldr---solutions-for-bufferbloat&#34;&gt;solutions for bufferbloat&lt;/a&gt;,
then a &lt;a href=&#34;#about-bufferbloat&#34;&gt;review&lt;/a&gt;
of Bufferbloat and its causes,
then the &lt;a href=&#34;#the-science&#34;&gt;science behind the fixes&lt;/a&gt;,
then &lt;a href=&#34;#objections-we-hear&#34;&gt;&amp;ldquo;objections&amp;rdquo;&lt;/a&gt;,
and finally &lt;a href=&#34;#real-world-questions&#34;&gt;actual questions from various forums&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;tl-dr-solutions-for-bufferbloat&#34;&gt;TL;DR - Solutions for Bufferbloat&lt;/h2&gt;

&lt;h3 id=&#34;question-1-1-is-there-a-fix-for-bufferbloat&#34;&gt;Question #1.1: Is there a fix for bufferbloat?&lt;/h3&gt;

&lt;p&gt;Yes. The science for solving bufferbloat is well understood.
Routers generally employ
&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc8290&#34;&gt;fq_codel&lt;/a&gt; or
&lt;a href=&#34;https://www.bufferbloat.net/projects/codel/wiki/Cake/&#34;&gt;CAKE&lt;/a&gt;
algorithms for ISP connections and
&lt;a href=&#34;https://www.usenix.org/system/files/conference/atc17/atc17-hoiland-jorgensen.pdf&#34;&gt;Tx Queue limits, AQL, and ATF&lt;/a&gt;
algorithms to address bufferbloat in Wi-Fi.
The &lt;a href=&#34;https://github.com/lynxthecat/cake-autorate&#34;&gt;cake-autorate&lt;/a&gt;
algorithm handles links with varying rates, such as
4G/5G cell phones, cable modems, etc.&lt;/p&gt;

&lt;p&gt;The OpenWrt Project - where all these algorithms were developed -
gives them the umbrella term &amp;ldquo;Smart Queue Management&amp;rdquo; (SQM).&lt;/p&gt;

&lt;h3 id=&#34;question-1-2-are-there-any-commercial-solutions-i-can-just-buy&#34;&gt;Question #1.2: Are there any commercial solutions I can just buy?&lt;/h3&gt;

&lt;p&gt;Yes. The
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/&#34;&gt;What Can I Do About Bufferbloat?&lt;/a&gt;
page list several vendors who have figured out
how to include these algorithms into their products.&lt;/p&gt;

&lt;h3 id=&#34;question-1-3-are-there-other-solutions&#34;&gt;Question #1.3: Are there other solutions?&lt;/h3&gt;

&lt;p&gt;There are a number of open-source projects
listed on the
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/&#34;&gt;What Can I Do&amp;hellip;&lt;/a&gt;
page above.
As noted above, the &lt;a href=&#34;https://openwrt.org&#34;&gt;OpenWrt Project&lt;/a&gt;
developed and tested all these algorithms
over the last decade.&lt;/p&gt;

&lt;h3 id=&#34;question-1-4-where-can-i-read-more&#34;&gt;Question #1.4: Where can I read more?&lt;/h3&gt;

&lt;p&gt;Check out
&lt;a href=&#34;https://forum.openwrt.org/t/how-openwrt-vanquishes-bufferbloat/189381&#34;&gt;How OpenWrt Vanquishes Bufferbloat&lt;/a&gt;
for a list of the techniques a router can employ,
including ISP-bloat, WiFi-bloat, and bloat caused by variable speed links.&lt;/p&gt;

&lt;h2 id=&#34;about-bufferbloat&#34;&gt;About Bufferbloat&amp;hellip;&lt;/h2&gt;

&lt;h3 id=&#34;question-2-1-what-is-bufferbloat&#34;&gt;Question #2.1: What is Bufferbloat?&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Bufferbloat&#34;&gt;Wikipedia says&lt;/a&gt;,
&amp;ldquo;Bufferbloat is the undesirable latency that comes from a
router or other network equipment buffering too many data packets.&amp;rdquo;&lt;/p&gt;

&lt;h3 id=&#34;question-2-2-what-does-that-mean-how-could-that-happen&#34;&gt;Question #2.2: What does &lt;em&gt;that&lt;/em&gt; mean? How could that happen?&lt;/h3&gt;

&lt;p&gt;If a router doesn&amp;rsquo;t use a better algorithm,
it will happily place every newly-arriving packet at the end
of a single FIFO queue
waiting to be sent to your ISP.&lt;/p&gt;

&lt;p&gt;If packets arrive at the router faster than they can
be transmitted to the ISP, a queue builds up.
From time to time, the queue might hold dozens
(or hundreds) of packets,
potentially causing multiple seconds of latency or lag.
Those buffered packets are &amp;ldquo;the bloat&amp;rdquo; in Bufferbloat.&lt;/p&gt;

&lt;h3 id=&#34;question-2-3-where-can-bufferbloat-occur&#34;&gt;Question #2.3: Where can bufferbloat occur?&lt;/h3&gt;

&lt;p&gt;Bufferbloat can occur anywhere there&amp;rsquo;s a &lt;em&gt;bottleneck&lt;/em&gt; -
a place where a fast link feeds into a slow link.
When many packets arrive at the bottleneck,
the router queues those packets.
One or two queued packets can be beneficial
so the slow link never starves.
But queueing more packets only adds latency (delay) to
the transit time of those packets.&lt;/p&gt;

&lt;h3 id=&#34;question-2-4-where-does-bufferbloat-happen-in-the-real-world&#34;&gt;Question #2.4: Where does bufferbloat happen in the real world?&lt;/h3&gt;

&lt;p&gt;These large queues can build up in your router&amp;rsquo;s
connection to the ISP
(because the outbound link tends to be slower
than the local LAN interfaces)
and also in Wifi interfaces (again, computers can create
packets faster than the wireless link can carry them).&lt;/p&gt;

&lt;h3 id=&#34;question-2-5-how-can-i-tell-whether-i-m-experiencing-bufferbloat&#34;&gt;Question #2.5: How can I tell whether I&amp;rsquo;m experiencing bufferbloat?&lt;/h3&gt;

&lt;p&gt;There are a number of web-based tests that measure latency
&lt;em&gt;during&lt;/em&gt; the download and upload:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.speedtest.net/&#34;&gt;Speedtest.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.waveform.com/tools/bufferbloat&#34;&gt;Waveform Bufferbloat and Internet Speed Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://speed.cloudflare.com/&#34;&gt;Cloudflare Speed Test&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the test shows an increase of latency under load
of less than 15-25 msec, then the latency is well under control.&lt;/p&gt;

&lt;p&gt;To make more repeatable tests, consider
&lt;a href=&#34;https://flent.org/&#34;&gt;Flent&lt;/a&gt; or
&lt;a href=&#34;https://github.com/Zoxc/crusader#crusader-network-tester&#34;&gt;Crusader&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&#34;question-2-6-you-say-there-can-be-high-latency-in-wi-fi&#34;&gt;Question #2.6: You say there can be high latency in Wi-fi?&lt;/h3&gt;

&lt;p&gt;Yes. Wi-Fi drivers can often queue
hundreds of milliseconds of packets,
which adds additional delay to packet transit time
(round-trip time).&lt;/p&gt;

&lt;h3 id=&#34;question-2-7-how-can-i-measure-wi-fi-latency&#34;&gt;Question #2.7: How can I measure Wi-Fi latency?&lt;/h3&gt;

&lt;p&gt;Check out the
&lt;a href=&#34;https://github.com/Zoxc/crusader#crusader-network-tester&#34;&gt;Crusader&lt;/a&gt;
application.
You&amp;rsquo;ll need two computers: connect the first by Ethernet
to a LAN switch port on your router and start the Crusader Server;
run the Crusader Client from a second computer on Wi-Fi.&lt;/p&gt;

&lt;h2 id=&#34;the-science&#34;&gt;The Science&lt;/h2&gt;

&lt;h3 id=&#34;question-3-1-how-do-those-algorithms-minimize-latency&#34;&gt;Question #3.1: How do those algorithms minimize latency?&lt;/h3&gt;

&lt;p&gt;A router can control latency using one
or more of the SQM algorithms.
In general, these algorithms use a variation of this technique:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Place the arriving packets of each traffic flow
(each individual connection from each computer
on the local network) into their own queue.&lt;/li&gt;
&lt;li&gt;In a round-robin fashion, remove a
small batch of packets from a queue
and transmit those packets through the (slow) bottleneck link.
When they have been fully sent,
move to the next queue, remove and send a batch, and so on.&lt;/li&gt;
&lt;li&gt;Offer back pressure to flows that are sending “more than their
share” of data.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;question-3-2-how-does-this-lead-to-fair-sharing-of-the-bottleneck&#34;&gt;Question #3.2: How does this lead to fair sharing of the bottleneck?&lt;/h3&gt;

&lt;p&gt;Each turn, the round-robin process doles out
a few packets from a queue,
generally 5-15 msec worth of traffic.
Low-traffic flows empty their queue &amp;ldquo;right away&amp;rdquo; -
in their next turn.
A single high-traffic flow gets to use the entire capacity
of the bottleneck, because no other queues have data to send.
When there are competing high-traffic flows,
the round-robin process cycles between all the queues that hold
packets, sending a &amp;ldquo;fair amount&amp;rdquo; from each in every turn.&lt;/p&gt;

&lt;h3 id=&#34;question-3-3-these-descriptions-make-it-sound-as-if-bufferbloat-only-happens-on-upload-from-my-local-network-toward-my-isp-does-bufferbloat-ever-happen-on-download&#34;&gt;Question #3.3: These descriptions make it sound as if bufferbloat only happens on upload (from my local network toward my ISP). Does Bufferbloat ever happen on download?&lt;/h3&gt;

&lt;p&gt;Absolutely. There&amp;rsquo;s also a bottleneck at your ISP.
Their high-speed lines feed traffic to the
(slower) link coming toward you.
That fast-to-slow transition within the ISP equipment
can also build up significant queues.&lt;/p&gt;

&lt;h3 id=&#34;question-3-4-how-do-the-bufferbloat-algorithms-work-for-the-download-direction&#34;&gt;Question #3.4: How do the bufferbloat algorithms work for the download direction?&lt;/h3&gt;

&lt;p&gt;The SQM algorithm creates a new &amp;ldquo;download interface&amp;rdquo; &lt;em&gt;within the router&lt;/em&gt;
to act as the bottleneck.
As with the upload direction, this internal download interface
is configured to be slightly slower than the ISP link
(typically 5%-10% slower).
That lets the queue build up within the local router,
where the bufferbloat algorithm can control it.&lt;/p&gt;

&lt;h3 id=&#34;question-3-5-how-can-latency-be-controlled-in-wi-fi&#34;&gt;Question #3.5: How can latency be controlled in Wi-Fi?&lt;/h3&gt;

&lt;p&gt;WiFi bufferbloat can easily exceed hundreds of milliseconds. See the
&lt;a href=&#34;https://www.usenix.org/system/files/conference/atc17/atc17-hoiland-jorgensen.pdf&#34;&gt;Ending the Anomaly&lt;/a&gt; and
&lt;a href=&#34;https://www.netdevconf.org/2.2/session.html?jorgensen-wifistack-talk&#34;&gt;Bufferbloat mitigation in the WiFi stack&lt;/a&gt;
talks from 2017 that document this.&lt;/p&gt;

&lt;p&gt;Fortunately, that paper also presents a solution involving
a) individual transmit queues for each station,
b) AirTime Fairness, and
c) Airtime Queue Lengths to drop latency by an order of magnitude.
These techniques are described in the papers cited above and
&lt;a href=&#34;https://forum.openwrt.org/t/how-openwrt-vanquishes-bufferbloat/189381&#34;&gt;How OpenWrt Vanquishes Bufferbloat&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&#34;question-3-6-how-can-latency-be-controlled-on-variable-speed-links&#34;&gt;Question #3.6: How can latency be controlled on variable-speed links?&lt;/h3&gt;

&lt;p&gt;My cable connection speed varies from daytime to evening.
And my 5G cell connection is even worse -
changing from minute to minute.
How can I choose a setting for the CAKE
download and upload speed parameters?&lt;/p&gt;

&lt;p&gt;The &lt;a href=&#34;https://github.com/lynxthecat/cake-autorate#cake-with-adaptive-bandwidth---cake-autorate&#34;&gt;cake-autorate&lt;/a&gt;
algorithm continually monitors traffic and latency,
and adjusts the CAKE parameters up and down to give the
highest throughput while minimizing latency.&lt;/p&gt;

&lt;h3 id=&#34;question-3-7-won-t-all-those-queues-clog-up-my-router-s-memory&#34;&gt;Question #3.7: Won&amp;rsquo;t all those queues &amp;ldquo;clog up&amp;rdquo; my router&amp;rsquo;s memory?&lt;/h3&gt;

&lt;p&gt;No more than happens with a single FIFO queue.
(Those packets are already being buffered now.)
In fact, these algorithms can decrease memory use:
queues for low-traffic flows are almost always empty;
high-traffic flows - if they begin to build up a queue -
get back pressure either using
&lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/&#34;&gt;ECN&lt;/a&gt;
or by dropping packets.&lt;/p&gt;

&lt;h3 id=&#34;question-3-8-isn-t-dropping-packets-bad&#34;&gt;Question #3.8: Isn&amp;rsquo;t dropping packets bad?&lt;/h3&gt;

&lt;p&gt;No. Packet loss is always required by the TCP protocol
to signal that there is congestion, or that the sender is
&amp;ldquo;sending too fast&amp;rdquo;.
Anytime a TCP sender detects that signal,
they must decrease their rate of sending.&lt;/p&gt;

&lt;p&gt;When a &lt;em&gt;router&lt;/em&gt; using SQM
notices that a significant queue is building for one of its flows,
it implies that the sender
is sending too fast for current conditions.
If the router didn&amp;rsquo;t control it, the sender would attempt
to use more than its share of the limited bandwidth.
Consequently, the router occasionally drops a packet
from the head of that queue to signal the sender to slow down.&lt;/p&gt;

&lt;h3 id=&#34;question-3-9-can-t-i-just-tweak-the-qos-settings-of-my-router&#34;&gt;Question #3.9: Can&amp;rsquo;t I just tweak the QoS settings of my router?&lt;/h3&gt;

&lt;p&gt;Maybe. It&amp;rsquo;s a fiddly process, and doesn&amp;rsquo;t always work.
See
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/#why-not-simply configure-qos&#34;&gt;What’s wrong with simply configuring QoS?&lt;/a&gt;
for more information.&lt;/p&gt;

&lt;h3 id=&#34;question-3-10-how-do-i-put-a-router-in-front-of-my-isp-s-router&#34;&gt;Question #3.10: How do I put a router &amp;ldquo;in front of&amp;rdquo; my ISP&amp;rsquo;s router?&lt;/h3&gt;

&lt;p&gt;In a normal setting, your ISP&amp;rsquo;s router is connected by
cable/phone/fiber to their equipment in their offices.
Your local devices connect either through
Ethernet or WiFi to the ISP router.&lt;/p&gt;

&lt;p&gt;But if the ISP gear doesn&amp;rsquo;t control Bufferbloat,
&lt;em&gt;you&lt;/em&gt; need to take control of your network.
A very common solution is to put a router with SQM &amp;ldquo;in front of&amp;rdquo;
the ISP gear, making it the primary router.
To do this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Turn off WiFi in the ISP router&lt;/li&gt;
&lt;li&gt;Connect the WAN/Internet port of the new router to one of the
LAN ports of the ISP router&lt;/li&gt;
&lt;li&gt;Configure the new router&amp;rsquo;s SQM or other latency control options&lt;/li&gt;
&lt;li&gt;Connect &lt;em&gt;all&lt;/em&gt; your equipment to the new router.
(Do not leave any equipment connected to the old device - it will
throw off the anti-bufferbloat algorithms.)&lt;/li&gt;
&lt;li&gt;As always,
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/Tests_for_Bufferbloat/&#34;&gt;test the new connection&lt;/a&gt; to ensure that it&amp;rsquo;s working.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;objections-we-hear&#34;&gt;Objections We Hear&lt;/h2&gt;

&lt;h3 id=&#34;question-4-1-but-that-s-not-bufferbloat-it-s-just-ordinary-behavior-of-course-things-will-get-slower-when-there-s-more-traffic&#34;&gt;Question #4.1: But, that&amp;rsquo;s not &amp;ldquo;bufferbloat&amp;rdquo; - it&amp;rsquo;s just ordinary behavior. Of course things will get slower when there’s more traffic&amp;hellip;&lt;/h3&gt;

&lt;p&gt;It seems you&amp;rsquo;re ignoring the
order of magnitude increase in latency.
That&amp;rsquo;s far more than expected if the network were &amp;ldquo;just busy&amp;rdquo;.&lt;/p&gt;

&lt;h3 id=&#34;question-4-2-but-i-m-the-only-one-using-the-internet&#34;&gt;Question #4.2: But I’m the only one using the internet&amp;hellip;&lt;/h3&gt;

&lt;p&gt;It may be true that you&amp;rsquo;re the only &lt;em&gt;human&lt;/em&gt; in the house.
But does your phone ever upload photos?
Does your computer fire off any automated process?
Does your Tesla (or your refrigerator) get updates?
Do you browse the web, or otherwise use the internet?
Any of those can generate traffic that,
in turn, induces latency.&lt;/p&gt;

&lt;h3 id=&#34;question-4-3-it-only-happens-some-of-the-time&#34;&gt;Question #4.3: It only happens some of the time&amp;hellip;&lt;/h3&gt;

&lt;p&gt;Exactly - bufferbloat is transitory.
You probably notice it when someone&amp;rsquo;s uploading photos,
or your computer is doing something in the background.&lt;/p&gt;

&lt;h3 id=&#34;question-4-4-those-bufferbloat-tests-you-hear-about-are-bogus-they-artificially-add-load-which-isn-t-a-realistic-test&#34;&gt;Question #4.4: Those bufferbloat tests you hear about are bogus. They artificially add load, which isn’t a realistic test.&lt;/h3&gt;

&lt;p&gt;Yes, the tests do add load.
But what would you expect to happen to your network&amp;rsquo;s performance
if you actually were uploading or downloading a file?&lt;/p&gt;

&lt;h3 id=&#34;question-4-5-bufferbloat-only-happens-when-the-network-is-100-loaded&#34;&gt;Question #4.5: Bufferbloat only happens when the network is 100% loaded.&lt;/h3&gt;

&lt;p&gt;This is related to the previous answer.
When you open a web page or open an email attachment,
your computer - by design - briefly uses 100% of the link.
Is this enough to cause momentary lag?&lt;/p&gt;

&lt;h3 id=&#34;question-4-6-it-s-ok-i-just-tell-my-kids-spouse-not-to-use-the-internet-when-i-m-gaming&#34;&gt;Question #4.6: It’s OK. I just tell my kids/spouse not to use the internet when I’m gaming.&lt;/h3&gt;

&lt;p&gt;Really?&lt;/p&gt;

&lt;h3 id=&#34;question-4-7-but-i-have-gigabit-service-from-my-isp&#34;&gt;Question #4.7: But, I have gigabit service from my ISP&lt;/h3&gt;

&lt;p&gt;That helps, but if you’re reading this
because you&amp;rsquo;re worried about a “slow network”
you still have to rule out bufferbloat.&lt;/p&gt;

&lt;h3 id=&#34;question-4-8-i-can-t-believe-that-router-manufacturers-would-ever-allow-such-a-thing-to-happen&#34;&gt;Question #4.8: I can’t believe that router manufacturers would ever allow such a thing to happen.&lt;/h3&gt;

&lt;p&gt;In the 2010 time period, no one understood this phenomenon.
In 2011, Jim Gettys reported on his work
with other network experts (see
&lt;a href=&#34;https://mirrors.bufferbloat.net/Talks/BellLabs01192011/110126140926_BufferBloat12.pdf&#34;&gt;Dark Buffers in the Internet&lt;/a&gt;)
to show how surprising it was that routers would queue far more
data than they could send in a reasonable time.&lt;/p&gt;

&lt;p&gt;In 2012, CoDel was invented in response the newly-named &amp;ldquo;bufferbloat&amp;rdquo;.
In the decade since, the fq_codel, CAKE, and cake-autorate
open-source algorithms have been proven to minimize latency.&lt;/p&gt;

&lt;p&gt;Today, there&amp;rsquo;s no excuse for router vendors not to
incorporate this technology.
But still, many have not done it.&lt;/p&gt;

&lt;h3 id=&#34;question-4-9-i-mean-wouldn-t-router-vendors-want-to-provide-the-best-for-their-customers&#34;&gt;Question #4.9: I mean… wouldn’t router vendors want to provide the best for their customers?&lt;/h3&gt;

&lt;p&gt;Not necessarily – implementing any new code requires engineering effort.
They’re selling plenty of routers using their decade-old software.
The Boss asks, “Would we sell more routers if we make those changes?&amp;rdquo;
(Probably not, so the vendors don&amp;rsquo;t change.)&lt;/p&gt;

&lt;p&gt;More to the point, if you complain that &amp;ldquo;It&amp;rsquo;s too slow&amp;rdquo;
to your router vendor (or your ISP),
they have an incentive to encourage you to buy a faster device or ISP plan.
It may not solve the problem, but they&amp;rsquo;re happy to take your money.&lt;/p&gt;

&lt;p&gt;But a round of reviews saying &lt;em&gt;Vendor X has bufferbloat
(and games are unplayable), but Vendor Y works great!&lt;/em&gt;
might change the game.&lt;/p&gt;

&lt;h3 id=&#34;question-4-10-why-would-they-sell-me-a-router-that-gave-crappy-service-they-re-a-big-company-they-must-know-about-this-stuff&#34;&gt;Question #4.10: Why would they sell me a router that gave crappy service? They’re a big company - they must know about this stuff.&lt;/h3&gt;

&lt;p&gt;Maybe. We have reached out to lots of vendors.
But remember they profit if you decide to upgrade to a higher capacity device/plan.&lt;/p&gt;

&lt;h3 id=&#34;question-4-11-besides-i-just-spent-300-on-a-gaming-router-it-was-the-most-expensive-solution-on-the-market&#34;&gt;Question #4.11: Besides, I just spent $300 on a “gaming router”. It was the most expensive solution on the market&amp;hellip;&lt;/h3&gt;

&lt;p&gt;Maybe that router&amp;rsquo;s not as good as their advertising says&amp;hellip;&lt;/p&gt;

&lt;h3 id=&#34;question-4-12-i-can-t-believe-you-re-telling-me-that-a-bunch-of-academics-have-come-up-with-a-better-algorithm-than-commercial-router-developers-that-company-who-sold-me-that-300-router&#34;&gt;Question #4.12: I can&amp;rsquo;t believe you’re telling me that a bunch of academics have come up with a better algorithm than commercial router developers - that company who sold me that $300 router?&lt;/h3&gt;

&lt;p&gt;Well, the SQM algorithms seem to solve the problem
when they replace the vendor firmware…&lt;/p&gt;

&lt;h3 id=&#34;question-4-13-and-then-you-say-that-i-should-just-install-some-open-source-firmware-what-the-heck-is-that-and-why-should-i-believe-you&#34;&gt;Question #4.13: And then you say that I should just install some “open source firmware”? What the heck is that? And why should I believe you?&lt;/h3&gt;

&lt;p&gt;Same answer as above.&lt;/p&gt;

&lt;h3 id=&#34;question-4-14-what-if-it-doesn-t-solve-the-problem-who-will-give-me-support-and-how-will-i-get-back-to-a-vendor-supported-system&#34;&gt;Question #4.14: What if it doesn’t solve the problem? Who will give me support? And how will I get back to a vendor-supported system?&lt;/h3&gt;

&lt;p&gt;This is a valid point - see
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/&#34;&gt;What Can I Do About Bufferbloat?&lt;/a&gt;
for a list of commercial products.&lt;/p&gt;

&lt;h2 id=&#34;real-world-questions&#34;&gt;Real-world questions&lt;/h2&gt;

&lt;h3 id=&#34;question-5-1-traffic-shaper-queue-limiters-not-helping-with-bufferbloat&#34;&gt;Question #5.1: Traffic Shaper Queue Limiters not helping with Bufferbloat&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; Wondering if anyone could help me out with this configuration, again the whole purpose of this is to have the lowest latency as possible when gaming. I understand that the bufferbloat test is designed to see how the network handles high stress loads and when considering for online gaming (eg. COD MW3) I understand it doesn’t use anywhere near by max bandwidth. Even under lower loads I still get the same latency values.
(&lt;a href=&#34;https://www.reddit.com/r/PFSENSE/comments/1ecu16f/traffic_shaper_queue_limiters_not_helping_with/&#34;&gt;Original post on Reddit&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Despite the confident assurances from other posters that it isn&amp;rsquo;t bufferbloat, it sounds as if you&amp;rsquo;re seeing latency/lag when gaming. Here&amp;rsquo;s what could be going on.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Bufferbloat is transitory. You can have very low ping times when the link is idle,
but if someone else starts using the network (reading the web,
watching a movie, uploading photos from their phone),
their bursts of traffic can momentarily load the network to 100%.
Could that be enough to make you miss your shot?&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;You&amp;rsquo;re right - bufferbloat tests &amp;ldquo;artificially load the network&amp;rdquo;.
They do this to see how your network performs during those moments of 100% load.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;You didn&amp;rsquo;t say, but at ISP speeds above 300-500mbps,
the bufferbloat in the Wi-Fi system can become important.
This is a solved problem (see
&lt;a href=&#34;https://arxiv.org/pdf/1703.00064&#34;&gt;Ending the Anomaly&lt;/a&gt;),
but not universally deployed in routers.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Bufferbloat is not your problem on a gig symmetrical link unless you are smashing the upload.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is &lt;em&gt;exactly&lt;/em&gt; the definition of bufferbloat.
If sending a lot of traffic causes your latency to increase significantly,
something is wrong, likely bufferbloat.&lt;/p&gt;

&lt;h3 id=&#34;question-5-2-extreme-bufferbloat-on-fibre-connection&#34;&gt;Question #5.2: Extreme Bufferbloat on fibre connection&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; I&amp;rsquo;m playing competitive games and it feels like im desynced to the server 70 % of my matches. First image is with no QOS in the router, the second one is when im limiting my bandwith to 85 % up and down. With QOS its ok, but i just dont understand why jitter and latency is that high without QOS on a fibre connection.
(&lt;a href=&#34;https://www.reddit.com/r/HomeNetworking/comments/1eclgmh/extreme_bufferbloat_on_fibre_connection/&#34;&gt;Original post on Reddit&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Garden variety commercial routers (even &amp;ldquo;gaming routers&amp;rdquo;) frequently don&amp;rsquo;t have guard rails to prevent them from queueing too much data. All the traffic goes &amp;ldquo;into the queue&amp;rdquo; (technically, they use a FIFO). A burst of bulk packets (photos from your phone, reading a web page, etc.) delay smaller packets such as gaming updates, voice and videoconference traffic.&lt;/p&gt;

&lt;p&gt;QoS helps (as you&amp;rsquo;ve seen), but it &lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/#why-does-sqm-work-so-well&#34;&gt;won&amp;rsquo;t entirely solve the problem.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, this is a solved problem if you have a good router. See &lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/&#34;&gt;What can I do about Bufferbloat?&lt;/a&gt; for more details&lt;/p&gt;

&lt;h3 id=&#34;question-5-3-bufferbloat-on-wifi&#34;&gt;Question #5.3: Bufferbloat on Wifi&lt;/h3&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Given the focus of latency in the Wi-Fi 6 and Wi-Fi 7 standards, has anyone tested the bufferbloat behavior of these AP? I&amp;rsquo;m particularly interested in U6+.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;hellip; The amount of packet buffer they will have on board will be trivial.
(&lt;a href=&#34;https://www.reddit.com/r/Ubiquiti/comments/1euwu0c/bufferbloat_on_u6_and_u7_aps/&#34;&gt;Original post on Reddit&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And yet, WiFi bufferbloat can easily exceed hundreds of milliseconds. See the
&lt;a href=&#34;https://www.usenix.org/system/files/conference/atc17/atc17-hoiland-jorgensen.pdf&#34;&gt;Ending the Anomaly&lt;/a&gt; and
&lt;a href=&#34;https://www.netdevconf.org/2.2/session.html?jorgensen-wifistack-talk&#34;&gt;Bufferbloat mitigation in the WiFi stack&lt;/a&gt;
talks from 2017 that document this.&lt;/p&gt;

&lt;p&gt;Fortunately, that paper also presents a solution involving
a) individual transmit queues for each station,
b) AirTime Fairness, and
c) Airtime Queue Lengths to drop latency by an order of magnitude.
These techniques are described in the papers cited above and
&lt;a href=&#34;https://forum.openwrt.org/t/how-openwrt-vanquishes-bufferbloat/189381&#34;&gt;How OpenWrt Vanquishes Bufferbloat&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; An easy way to test that would be to use
&lt;a href=&#34;https://github.com/Zoxc/crusader&#34;&gt;Crusader&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;a href=&#34;https://github.com/Zoxc/crusader&#34;&gt;Crusader&lt;/a&gt; network tester
is terrific.
See the question above about using it to test Wifi latency.&lt;/p&gt;

&lt;h3 id=&#34;question-5-4-an-edgerouter-solves-latency-but-seems-not-to-handle-the-speed&#34;&gt;Question #5.4: An Edgerouter solves latency, but seems not to handle the speed&amp;hellip;&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; Whenever my Tesla started updating, my ping went to crap&amp;hellip;
Finally, I threw my hands up in the air,
configured an edgerouter I had here and enabled smart queue.
Instantly I was getting A+ scores,
with +0ms on both incoming and outcoming.&lt;/p&gt;

&lt;p&gt;Do I need new hardware? If so what is recommended?
Should I just give up and use the edge router.
&lt;a href=&#34;https://www.reddit.com/r/opnsense/comments/1h6rh3u/fixing_buffer_bloat_what_is_going_on_new_update/&#34;&gt;(Original post on Reddit)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A couple thoughts. My mentor once said,
&amp;ldquo;If you can&amp;rsquo;t tell the difference, it doesn&amp;rsquo;t make a difference&amp;rdquo;.
How does that apply to the situation you describe?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you&amp;rsquo;re happy with the way your network performs,
you can declare victory.
If the Edgerouter gives near zero additional latency,
it seems like a win.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;You didn&amp;rsquo;t mention the rated speed for your ISP,
but do you ever notice that it&amp;rsquo;s &amp;ldquo;not fast enough&amp;rdquo;
when using the Edgerouter?&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;If not, see the next question for more information&amp;hellip;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;question-5-5-consider-a-lower-tier-plan-from-your-isp&#34;&gt;Question #5.5: Consider a lower tier plan from your ISP&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; I&amp;rsquo;d like a plug and play QoS router with a 5gb/s WAN port and at least 1 5gb/s LAN port (future proofing) &amp;hellip; (&lt;a href=&#34;https://www.reddit.com/r/HomeNetworking/comments/1h9n7zl/comment/m179gh7/&#34;&gt;Original post on Reddit&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A 5Gbps-capable router is going to cost serious money.
(I don&amp;rsquo;t know your budget, but it&amp;rsquo;ll be a lot.)&lt;/p&gt;

&lt;p&gt;Your ISP has probably been offering a higher speed plan,
especially if you say &amp;ldquo;it&amp;rsquo;s not fast enough&amp;rdquo;.
But if your router is adding latency,
then everything will feel slow, regardless
of the &amp;ldquo;speed&amp;rdquo; of the link.&lt;/p&gt;

&lt;p&gt;Surprisingly, the &amp;ldquo;speed to deliver&amp;rdquo; normal data
doesn&amp;rsquo;t increase by much for a faster link.
See the charts in
&lt;a href=&#34;https://www.afasterweb.com/2015/05/17/the-latency-effect/&#34;&gt;The Latency Effect&lt;/a&gt;
that show that increasing ISP speed doesn&amp;rsquo;t
make web pages load much faster.
&lt;em&gt;Decreasing&lt;/em&gt; latency always made pages load faster.&lt;/p&gt;

&lt;p&gt;So 250mbps or 300mbps could be plenty unless you want bragging rights.&lt;/p&gt;

&lt;p&gt;Here is a bit of contrarian advice.
If you don&amp;rsquo;t actually need such high-speed service,
consider these options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get a lower tier plan from your ISP&lt;/li&gt;
&lt;li&gt;Get a router with the SQM algorithms
for minimizing latency/bufferbloat. See
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/&#34;&gt;What can I do about Bufferbloat?&lt;/a&gt;
for a list of suitable routers&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;ll see the latency drop without much
difference in your perceived speed&lt;/li&gt;
&lt;li&gt;&amp;hellip; and save a bunch of money per month on your ISP bill&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;question-5-6-i-don-t-need-sqm&#34;&gt;Question #5.6: I don&amp;rsquo;t need SQM&amp;hellip;&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;@WWicketW writes:&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m on Flint2 also &amp;hellip;&lt;/p&gt;

&lt;p&gt;With SQM mine max speed was 1,2 ÷ 1,3 Gbps in download (and A+ on waveform), with HO+PS (Hardware offloading and Packet steer on all CPU) I&amp;rsquo;ve reach 2,2Gbps on download and A on waveform.&lt;/p&gt;

&lt;p&gt;I definitely can survive without SQM 😅
&lt;a href=&#34;https://www.reddit.com/r/openwrt/comments/1hts21t/comment/m5p3q6q/&#34;&gt;(Original post on Reddit)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sounds like a terrific solution.
No one asserts you &lt;em&gt;need&lt;/em&gt; SQM.
It&amp;rsquo;s only useful if lag/latency is affecting you.
(In other words, &amp;ldquo;If you&amp;rsquo;re happy, I&amp;rsquo;m happy.&amp;rdquo;)&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s also valuable to know that Flint 2
(less than US$150 with coupon on Amazon)
can feed a 2Gbps+ link and keep up with the rated speed. Congratulations!&lt;/p&gt;

&lt;h3 id=&#34;question-5-7-my-isp-s-router-gives-terrible-bufferbloat&#34;&gt;Question #5.7: My ISP&amp;rsquo;s router gives terrible bufferbloat&amp;hellip;&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I have been struggling with an incredible sluggish and inconsistent video game experience on my computer. I have payed for a pc, I&amp;rsquo;ve paid to have it tweaked professionally, I&amp;rsquo;ve bought the best peripherals. I have done everything to fix this issue and none of it has worked, this has been going on for months&amp;hellip; &lt;a href=&#34;https://www.reddit.com/r/HomeNetworking/comments/1id9mm5/bufferbloat_needs_fixing_please_help&#34;&gt;(Original post on Reddit)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You are going to need to take control of your network. See
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/&#34;&gt;What Can I Do About Bufferbloat?&lt;/a&gt;
for more information.&lt;/p&gt;

&lt;p&gt;TL;DR - you&amp;rsquo;ll probably need to put another, smarter, router
in front of their router that can control the queueing/latency.
Consider the OpenWrt One - it&amp;rsquo;s reasonably priced,
can handle your data rate, and it&amp;rsquo;s the platform where
all these SQM algorithms were developed.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>cake-autorate</title>
      <link>https://www.bufferbloat.net/projects/bloat/wiki/cake-autorate/</link>
      <pubDate>Sun, 21 Jul 2024 08:30:13 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/bloat/wiki/cake-autorate/</guid>
      <description>

&lt;h1 id=&#34;cake-autorate-for-variable-rate-links&#34;&gt;&lt;em&gt;cake-autorate&lt;/em&gt; for variable rate links&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt; The CAKE algorithm
controls bufferbloat well on constant rate links
by using fixed upload and download rate parameters to control
the amount of queued data.
But many links, such as
LTE cell-phones, cable modems, and Starlink
have rates that vary from morning to evening,
or even from minute to minute.
Because CAKE uses fixed parameters,
it forces an
&lt;a href=&#34;https://github.com/lynxthecat/cake-autorate/blob/master/README.md#the-problem-cake-on-variable-speed-connections-forces-an-unpalatable-compromise&#34;&gt;unpalatable compromise&lt;/a&gt;
because it can&amp;rsquo;t adapt to these varying-rate links.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; The &lt;strong&gt;cake-autorate&lt;/strong&gt; algorithm continually measures
the current latency and adjusts the parameters
of CAKE to minimize latency.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;cake-autorate&lt;/strong&gt; repo is on
&lt;a href=&#34;https://github.com/lynxthecat/cake-autorate/tree/master&#34;&gt;Github&lt;/a&gt;
with an active community on the
&lt;a href=&#34;https://forum.openwrt.org/t/cake-w-adaptive-bandwidth/191049&#34;&gt;OpenWrt forum&lt;/a&gt;.
Here&amp;rsquo;s an excerpt from the
&lt;a href=&#34;https://github.com/lynxthecat/cake-autorate/blob/master/README.md&#34;&gt;README&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;cake-autorate&lt;/strong&gt; is a script that automatically adjusts CAKE
bandwidth settings based on traffic load and one-way-delay or
round-trip-time measurements. cake-autorate is intended for variable
bandwidth connections such as LTE, Starlink, and cable modems and is
not generally required for use on connections that have a stable,
fixed bandwidth.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.bufferbloat.net/projects/codel/wiki/Cake/&#34;&gt;CAKE&lt;/a&gt; is an
algorithm that manages the buffering of data being sent/received by a
device such as an &lt;a href=&#34;https://openwrt.org&#34;&gt;OpenWrt router&lt;/a&gt; or an
&lt;a href=&#34;https://www.asuswrt-merlin.net/&#34;&gt;Asus Merlin router&lt;/a&gt; so that no more
data is queued than is necessary, minimizing the latency
(&amp;ldquo;bufferbloat&amp;rdquo;) and improving the responsiveness of a network. An
instance of cake on an interface is set up with a certain bandwidth.
Although this bandwidth can be changed, the cake algorithm itself has
no reliable means to adjust the bandwidth on the fly.
&lt;strong&gt;cake-autorate&lt;/strong&gt; bridges this gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cake-autorate&lt;/strong&gt; presently supports installation on devices running
OpenWrt and Asus Merlin.&lt;/p&gt;

&lt;h3 id=&#34;status&#34;&gt;Status&lt;/h3&gt;

&lt;p&gt;This is the &lt;strong&gt;development&lt;/strong&gt; (&lt;code&gt;master&lt;/code&gt;) branch. New work on
cake-autorate appears here. It is not guaranteed to be stable.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;stable version&lt;/strong&gt; for production/every day use is
&lt;span id=&#34;version&#34;&gt;3.2.1&lt;/span&gt; available from the
&lt;a href=&#34;https://github.com/lynxthecat/cake-autorate/tree/v3.2&#34;&gt;v3.2 branch&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>Toward a Consumer Responsiveness Metric</title>
      <link>https://www.bufferbloat.net/projects/bloat/wiki/toward_a_consumer_responsiveness_metric/</link>
      <pubDate>Fri, 10 Sep 2021 09:10:12 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/bloat/wiki/toward_a_consumer_responsiveness_metric/</guid>
      <description>

&lt;h1 id=&#34;toward-a-consumer-responsiveness-metric&#34;&gt;Toward a Consumer Responsiveness Metric&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;At a recent videoconference, I advocated strongly for a consumer-facing measurement of latency/responsiveness.
I had not planned to speak, so I gave off-the-cuff comments.
This is an organized explanation of my position.
I offer these thoughts for consideration at the
&lt;a href=&#34;https://www.iab.org/activities/workshops/network-quality/&#34;&gt;IAB Workshop &amp;ldquo;Measuring Network Quality for End-Users, 2021&amp;rdquo;&lt;/a&gt; - Rich Brown&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hunger for a day when vendors (router manufacturers and service providers) compete on the
basis of &amp;ldquo;responsiveness&amp;rdquo; in the same way that they compete on speed -
&amp;ldquo;Up to X megabits per second, and Y responsiveness!&amp;rdquo;&lt;/p&gt;

&lt;p&gt;I have been working on the &amp;ldquo;Bufferbloat Project&amp;rdquo; [1] since 2011,
trying to find layman&amp;rsquo;s terms for what was happening, and what to do about it. [2] [3]
The delay goes by the name &amp;ldquo;lag&amp;rdquo;, &amp;ldquo;latency under load&amp;rdquo;, or &amp;ldquo;bufferbloat&amp;rdquo;.
At first, the effects seemed mysterious and non-intuitive.
Even to knowledgeable individuals, the magnitude of the delay caused by queueing was astonishing.
No matter what name you use, it makes people say, &amp;ldquo;the internet is slow today&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;My router at home has solved this problem.
I enjoy the fruits of the intense research from the mid 2010&amp;rsquo;s that led to
well-understood solutions such as fq_codel, cake, PIE, and airtime fairness.
Even using 7 mbps DSL, my network was quite usable, and very responsive.&lt;/p&gt;

&lt;p&gt;My frustration in 2021 is that this remains a problem for nearly everyone else.
The market has not provided solutions.
Every day, people purchase brand name equipment that happily queues hundreds of msec of traffic.&lt;/p&gt;

&lt;p&gt;I postulate that vendors have not considered responsiveness to be an important characteristic
of their offerings.
Consequently, they have not prioritized the engineering resources to
incorporate the well-tested solutions listed above.&lt;/p&gt;

&lt;p&gt;My hope, from this note, and from our on-going efforts, is that we can come up with
a test tool that consumers can use to raise awareness of the problem of bad responsiveness.&lt;/p&gt;

&lt;h2 id=&#34;characteristics-of-a-responsiveness-tool&#34;&gt;Characteristics of a Responsiveness Tool&lt;/h2&gt;

&lt;p&gt;I seek a &amp;ldquo;responsiveness tool&amp;rdquo; with these characteristics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Easy to use. People need an easy way to measure responsiveness so they
can give feedback to their vendors.&lt;/li&gt;
&lt;li&gt;A single number, so it&amp;rsquo;s easy to report and compare.&lt;/li&gt;
&lt;li&gt;Bigger must be better. High latency means bad responsiveness.
People have no intuitive feel for a millisecond: &amp;ldquo;Is 100 msec bad? Isn&amp;rsquo;t that really short&amp;hellip;?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;An approximate measure is OK. Consumers won&amp;rsquo;t mind separate runs varying 20% or 30%,
especially since poor responsiveness could be an order of magnitude different from good.&lt;/li&gt;
&lt;li&gt;Resistant to cheating. Vendors sometimes optimize pings to make latency look lower.
But real people&amp;rsquo;s traffic doesn&amp;rsquo;t use pings.
The responsiveness test must use protocols that match actual traffic patterns.&lt;/li&gt;
&lt;li&gt;Vendor and technology independent. People should use and get similar results from
their phone, their desktop, on the web, or using an app.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Good enough&amp;rdquo;. A widely implemented and promoted metric that substantially
matches people&amp;rsquo;s real experience is vastly superior to a host of competing metrics
that muddy the waters in consumer&amp;rsquo;s minds.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;a-proposed-metric-rpm&#34;&gt;A Proposed Metric - RPM&lt;/h2&gt;

&lt;p&gt;Apple has produced an Internet Draft &amp;ldquo;Responsiveness under Working Conditions&amp;rdquo; [4] and implementation.
It defines a procedure for continually making short HTTPS transactions on a path to a
server that has been fully loaded in both directions.
The number of transactions in a fixed time is expressed as the number of &amp;ldquo;round-trips per minute&amp;rdquo;,
which is given the name &amp;ldquo;RPM&amp;rdquo;, a wink to the &amp;ldquo;revolutions per minute&amp;rdquo; that we use for cars.&lt;/p&gt;

&lt;p&gt;The RPM measurement satisfies all my concerns.&lt;/p&gt;

&lt;h2 id=&#34;non-requirements&#34;&gt;Non-requirements&lt;/h2&gt;

&lt;p&gt;It is &lt;strong&gt;not&lt;/strong&gt; a requirement for the responsiveness test to provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strict reproducibility. The wider internet has widely varying conditions, with
bottlenecks moving around by time of day or adjacent traffic.
It is not reasonable/feasible to expect that any measure used by consumers will be exactly reproducible.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Detailed statistics or distributions of measurements. This is not a diagnostic tool.
A nuanced data set with medians and percentiles may excite techies, but for others,
it&amp;rsquo;s hard to understand the implications.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Performance of any particular protocol. The responsiveness tool must measure a broad
variety of typical traffic.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Data to be used as input for vendors to design solutions.
The responsiveness measure needs to be used the same way we say to our mechanic,
&amp;ldquo;The car makes a funny noise when I &amp;hellip;&amp;rdquo;.
I expect the specialist to work to reproduce the symptom, using the provided equipment,
and come up with an appropriate solution.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;

&lt;p&gt;The research of the last decade has developed a wide variety of solutions.
There are plenty of corner-cases where these solutions aren&amp;rsquo;t perfect.
I encourage vendors and researchers to study the field and advance our knowledge further.
I would be delighted if they found practices even better than the current state of the art.&lt;/p&gt;

&lt;p&gt;But &amp;ldquo;the rest of the internet&amp;rdquo; (including my neighbors and family members,
for whom I&amp;rsquo;m the support person) would all benefit from a world where
off-the-shelf equipment already incorporated well-known, best practice solutions.&lt;/p&gt;

&lt;h2 id=&#34;references&#34;&gt;References&lt;/h2&gt;

&lt;p&gt;[1] &lt;strong&gt;Bufferbloat Project&lt;/strong&gt; &lt;a href=&#34;https://bufferbloat.net&#34;&gt;https://bufferbloat.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[2] &lt;strong&gt;Bufferbloat and the Ski Shop&lt;/strong&gt; &lt;a href=&#34;https://randomneuronsfiring.com/bufferbloat-and-the-ski-shop/&#34;&gt;https://randomneuronsfiring.com/bufferbloat-and-the-ski-shop/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[3] &lt;strong&gt;Best Bufferbloat Analogy - Ever&lt;/strong&gt; &lt;a href=&#34;https://randomneuronsfiring.com/best-bufferbloat-analogy-ever/&#34;&gt;https://randomneuronsfiring.com/best-bufferbloat-analogy-ever/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[4] &lt;strong&gt;Responsiveness under Working Conditions&lt;/strong&gt; - Internet-Draft at:
&lt;a href=&#34;https://datatracker.ietf.org/doc/draft-cpaasch-ippm-responsiveness/&#34;&gt;https://datatracker.ietf.org/doc/draft-cpaasch-ippm-responsiveness/&lt;/a&gt;
&lt;em&gt;Full disclosure: I am one of the editors of the &amp;ldquo;Responsiveness Under Working Conditions I-D&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;[5] This note was first published at &lt;a href=&#34;https://randomneuronsfiring.com/toward-a-consumer-responsiveness-metric/&#34;&gt;https://randomneuronsfiring.com/toward-a-consumer-responsiveness-metric/&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>CakeRecipes</title>
      <link>https://www.bufferbloat.net/projects/codel/wiki/CakeRecipes/</link>
      <pubDate>Wed, 07 Oct 2020 14:10:00 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/codel/wiki/CakeRecipes/</guid>
      <description>

&lt;h1 id=&#34;cake-recipes&#34;&gt;Cake Recipes&lt;/h1&gt;

&lt;p&gt;&lt;a href=&#34;https://www.bufferbloat.net/projects/codel/wiki/Cake/&#34;&gt;Cake&lt;/a&gt; is the comprehensive queue management system the bufferbloat
project has been working on since 2013. It has been included in the Linux kernel since v4.19.&lt;/p&gt;

&lt;p&gt;These recipes are annotated combinations of settings that have
been used for particular kinds of networks, organized from
most common to most unusual.
The detailed reference for all the parameters is tc-cake(8).&lt;/p&gt;

&lt;p&gt;Additional recipes invited! To edit this page, submit a pull request to the Github repository.&lt;/p&gt;

&lt;h1 id=&#34;internet-over-tv-cable&#34;&gt;Internet over TV Cable&lt;/h1&gt;

&lt;h2 id=&#34;outbound-general-case&#34;&gt;Outbound, General Case&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;tc qdisc replace dev eth0 root cake docsis ack-filter bandwidth 17mbit
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;dev&lt;/em&gt; is the device, eth0 in this case.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;root&lt;/em&gt; means this is the &amp;ldquo;top&amp;rdquo; qdisc.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;docsis&lt;/em&gt; says tune for a cable-tv uplink&amp;rsquo;s overheads:
cable TV follows the docsis standards.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;ack-filter&lt;/em&gt; skips sending redundant acknowledgements.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;bandwidth&lt;/em&gt; is the upload bandwidth of your link, often
taken from speed tests like &lt;a href=&#34;https://www.waveform.com/tools/bufferbloat&#34;&gt;Waveform&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;inbound-general-case&#34;&gt;Inbound, General case&lt;/h2&gt;

&lt;p&gt;This applies to most inbound cases, not just cable.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ip link add name ifb4eth0 type ifb
tc qdisc del dev eth0 ingress
tc qdisc add dev eth0 handle ffff: ingress
tc qdisc del dev ifb4eth0 root
tc qdisc add dev ifb4eth0 root cake bandwidth 170mbit besteffort
ip link set ifb4eth0 up # important 
tc filter add dev eth0 parent ffff:  matchall action mirred egress redirect dev ifb4eth0
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This creates a named link for download/ingress and applies
CAKE to it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;bandwidth&lt;/em&gt; is the download bandwidth of your link, often
from a speed test.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;internet-over-telephone-lines&#34;&gt;Internet over Telephone Lines&lt;/h1&gt;

&lt;h2 id=&#34;outbound&#34;&gt;Outbound&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;tc qdisc replace dev eth0 root cake pppoe-ptm ack-filter bandwidth 61mbit
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;pppoe-ptm&lt;/em&gt; is one of the DSL (digital subscriber line) variants
used by telcos such as British Telecommunications.
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are numerous dsl options: if your ISP doesn&amp;rsquo;t publicise
 which they use, there is also &lt;em&gt;conservative&lt;/em&gt; which sets
 the expected overhead to a safely high value.&lt;/p&gt;

&lt;!-- I rather expect to see a bunch of people contributing
cases for various telcos --&gt; 

&lt;h1 id=&#34;internet-from-a-preexisting-ethernet&#34;&gt;Internet from a Preexisting Ethernet&lt;/h1&gt;

&lt;h2 id=&#34;outbound-1&#34;&gt;Outbound&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;tc qdisc replace dev eth0 root cake ethernet bandwidth 1gbit
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;ethernet&lt;/em&gt; says to tune for ethernet&amp;rsquo;s overheads.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;bandwidth 1GBit&lt;/em&gt; is substantially faster than is commonly
seen in offices. The example is from an office connected
upstream to a datacenter with a faster 10Gbit network.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;bandwidth unlimited&lt;/em&gt; suits an upstream which is the same
speed as the office network.
&lt;!-- the latter describes my office at work. Dave C-B --&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Dave Taht&#39;s Take on TCP</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_tcp_editorial/</link>
      <pubDate>Thu, 21 Mar 2019 15:38:14 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_tcp_editorial/</guid>
      <description>

&lt;h1 id=&#34;dave-taht-s-take-on-tcp&#34;&gt;Dave Taht&amp;rsquo;s take on TCP&lt;/h1&gt;

&lt;p&gt;TCP is done. It&amp;rsquo;s baked. It&amp;rsquo;s finished. With the arrival of BQL,
TSQ, and pacing, there is very little left we
can do to improve it, and we should move on to improving new
transports such as QUIC which have option space left. However,
 a recent development has caused me to change my mind.&lt;/p&gt;

&lt;p&gt;Ever since &lt;a href=&#34;https://tools.ietf.org/html/rfc6013&#34;&gt;RFC6013&lt;/a&gt; failed in favor of tcp
fast open, I&amp;rsquo;d given up on tcp. RFC6013 was a lousy rfc in that it didn&amp;rsquo;t
make clear its best use case was in giving dns servers a safe and fast
way to use tcp, which would have helped reduce the amount of DDOS and
reflection attacks, speed things up, and so on. It wasn&amp;rsquo;t until I had
a long discussion with Paul Vixie about this use case and worldwide
problem with dns that I understood it&amp;rsquo;s intent to add a good stable
3way handshake to dns was so good&amp;hellip;. and by then it was too late.&lt;/p&gt;

&lt;p&gt;Instead, tcp fast open was standardized for the limited (IMHO) use case
of making web traffic better. Web traffic has a terrible interaction
with TCP, in that it tends to start up 6 or more simultaneous
connections and slam the link with stuff in slow start simultaneously.
Other standards that I opposed, like &lt;a href=&#34;https://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00&#34;&gt;IW10&lt;/a&gt;
, also got adopted, and
we (as part of the cake project) tried to get an AQM (cobalt) that
responded faster to stuff in slow start. Which we succeeded at, and
that paper is progress, but it&amp;rsquo;s still not good enough.&lt;/p&gt;

&lt;p&gt;It makes me really crazy that seemingly all the other TCP researchers in the
world tend to focus on improving TCP behavior in congestion avoidance
mode - because the statistics are easy to measure! - instead of
focusing on the 95% of flows that never manage to get out of slow
start. Yea, it&amp;rsquo;s hard to look at slow start. That&amp;rsquo;s why we&amp;rsquo;ve been
looking at it hard for 5+ years in the bufferbloat project - trying to
get linux, flent, irtt, to be able to look in detail at sub 4ms
intervals, among other things.&lt;/p&gt;

&lt;p&gt;There are so many other problems with TCP as a transport - it requires
a stateful firewall for ipv4 + nat, and more stuff than I have time to
go into today&amp;hellip;&lt;/p&gt;

&lt;p&gt;One item off that long list:&lt;/p&gt;

&lt;p&gt;QUIC and Wireguard have a really nice 1 RTT reconnect over crypto
time. I like it a lot. I have not had time to poke much into the DOH
working group at the ietf, but my take on it was that we needed to
make dns better, not replace it.&lt;/p&gt;

&lt;p&gt;[1] Up until about 6 months ago, I really felt that we couldn&amp;rsquo;t
improve tcp anymore. DCTCP was a dead end. However the SCE idea makes
it possible to have selectable behaviors on the receiver side -
notably, a low priority background transport application (for
backups/bittorrent) can merely overreact to SCE markings by sending
back ECE to the tcp sender thus getting them to back off faster and be
invisible to other applications. Or something more complicated (in
slow start phase) could be used. ACCUECN also seemed feasible. And
dctcp like approaches to another transport than tcp seemed very
feasible.&lt;/p&gt;

&lt;p&gt;But to me, the idea was that we&amp;rsquo;d improve low latency applications
such as gaming and videoconferencing and VR/AR with SCE, not &amp;ldquo;fix&amp;rdquo;
tcp, overall. Goal in life was to have 0 latency for all flows - if it
cost a little bandwidth, fine - 0 latency. The world is evolving to
&amp;ldquo;enough&amp;rdquo; bandwidth for everything, but still has too much latency. The
whole l4s thing conflating the benefits low latency with an
ecn-enabled tcp has makes me crazy because it isn&amp;rsquo;t true, as loss is
just fine on most paths - lordy I don&amp;rsquo;t want to go into that here,
today. loss hurts gaming and videoconferencing more.&lt;/p&gt;

&lt;p&gt;Another ietf idea that makes me crazy is the motto of &amp;ldquo;no host
changes&amp;rdquo; in homenet, and &amp;ldquo;dumb endpoints&amp;rdquo; - when we live in an age
where we have quad cores and AI coprocessors in everybody&amp;rsquo;s hands.&lt;/p&gt;

&lt;p&gt;The whole QUIC experiment shows what can be done when you have smart
endpoints, along with a network that is as dumb as possible, but no
dumber.&lt;/p&gt;

&lt;p&gt;See also: &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_ecn_editorial/&#34;&gt;Dave Taht&amp;rsquo;s take on ECN&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Jake Holland&#39;s Stance on ECN</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/jholland_ecn_position/</link>
      <pubDate>Sun, 17 Mar 2019 01:14:22 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/jholland_ecn_position/</guid>
      <description>

&lt;h1 id=&#34;jake-s-ecn-position-blue-yellow-stripes&#34;&gt;Jake&amp;rsquo;s ECN Position=Blue (+Yellow Stripes)&lt;/h1&gt;

&lt;p&gt;I think of myself as BLUE, with big yellow racing stripes.&lt;/p&gt;

&lt;p&gt;I think ECN has a lot of important potential for improving the way
the internet operates.&lt;/p&gt;

&lt;p&gt;In general, I think the sender can do great things with rate tuning
when it has just a little more information about the state of the
network than &amp;ldquo;there might have been some loss, I&amp;rsquo;m not quite sure&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;(I worked on FastTCP for years and saw it there, and I&amp;rsquo;m seeing it
again from more of a distance in BBR.)&lt;/p&gt;

&lt;p&gt;I mean, it&amp;rsquo;s complicated.  No argument here.  The response depends
on the RTT in uncomfortable ways, and analyzing the performance
characteristics of competing flows with different parameters gets
you out into the weeds of insanity really fast, and that&amp;rsquo;s before
you try to worry about the possibility of corner case issues in
the details of different implementations.&lt;/p&gt;

&lt;p&gt;But the advantages of getting an explicit signal out of the network
are huge, compared to trying to infer guesses about the network out
of the ack patterns.  Night vs. day.  Forensics vs. surveillance
cameras.  Just because today&amp;rsquo;s congestion controls don&amp;rsquo;t nail the
optimal response yet doesn&amp;rsquo;t mean the information isn&amp;rsquo;t worth its
weight in bitcoins.&lt;/p&gt;

&lt;p&gt;I think that to the extent we can get better at this, we can have
a better internet.  I&amp;rsquo;d love to see it out there and working. I&amp;rsquo;m
glad Apple and Linux have done their parts to get deployment
closer to a real possibility, and I&amp;rsquo;m glad this list is here and
the people on it are digging into the issues.  I hope other groups
working on middle boxes are doing so as well.&lt;/p&gt;

&lt;p&gt;With a little luck and a lot more work, maybe we&amp;rsquo;ll end up with
a more efficient internet one day.  My biggest fear is getting it
unfixably wrong.  But I have a pretty strong belief there&amp;rsquo;s a good
answer in there somewhere.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://lists.bufferbloat.net/pipermail/ecn-sane/2019-March/000089.html&#34;&gt;Mailing list post for reference.&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Pete Heist&#39;s Thoughts on ECN</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/pheist_ecn_thoughts/</link>
      <pubDate>Thu, 06 Sep 2018 23:28:00 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/pheist_ecn_thoughts/</guid>
      <description>

&lt;h1 id=&#34;pete-heist-s-thoughts-on-ecn&#34;&gt;Pete Heist&amp;rsquo;s Thoughts on ECN&lt;/h1&gt;

&lt;p&gt;Although I feel the usual pull of team Grey, I think I&amp;rsquo;ll call myself a
&lt;strong&gt;Purple&lt;/strong&gt; for this, possibly overly simplistic reason:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In theory, the ECN bits only give congestion control algorithms more information
than they would otherwise have, and in a perfect world, dropping packets would
be a measure of last resort.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Purple should lose if it can be shown that nothing can (practically) be done to
come up with an agreed upon treatment of ECN bits that results in “better”
congestion control with less packet loss, most of the time. Or if there are
commonly observed, demonstrably harmful pathologies that are not reasonably
possible to overcome.&lt;/p&gt;

&lt;p&gt;Presently, I’m more interested in what happens to traffic for regular people and
small to medium sized ISPs, say 5-200ms RTTs and 1-100Mbit bitrates, than what
happens in the data centers of trillion dollar companies.&lt;/p&gt;

&lt;p&gt;Lastly, my interest in ECN is to understand better what tools and metrics can be
used on real-world traffic to evaluate its impacts. If I can contribute anything
to this project, I hope it will be to bring some unsettled contradictions to
slightly earlier resolutions&amp;hellip;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Dave Taht&#39;s Stance on ECN</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_ecn_editorial/</link>
      <pubDate>Wed, 05 Sep 2018 15:38:14 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_ecn_editorial/</guid>
      <description>

&lt;h1 id=&#34;dave-taht-s-take-on-ecn&#34;&gt;Dave Taht&amp;rsquo;s take on ECN&lt;/h1&gt;

&lt;p&gt;When it comes to ECN, I am firmly on the yellow team: I&amp;rsquo;m &lt;em&gt;chicken&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I just used rigorous argument and moral authority on what is now probably the worlds largest active ecn in the edge deployment, to &lt;a href=&#34;https://github.com/systemd/systemd/issues/9748&#34;&gt;block systemd&amp;rsquo;s attempt at universal enablement in Linux&lt;/a&gt;. As an accidental co-author of what is now the largest edge-user ecn-enabled fq + aqm deployment in fq_codel, the sqm-scripts, and the newest implementation in the ath9k and athk wifi code&amp;hellip; and now sch_cake&amp;hellip; I lose sleep over the ecn component only.&lt;/p&gt;

&lt;p&gt;I have a ton of data on it. It&amp;rsquo;s mixed.&lt;/p&gt;

&lt;p&gt;What I see with lots of ECN traffic on a fq_codel&amp;rsquo;d link is that other valuable packets are delayed (slightly) or lost and am always saying &amp;ldquo;ECN has mass&amp;rdquo; to anyone that will listen. This is made up for by nearly eliminating retransmits, however ECN&amp;rsquo;d flows can bloat up the link and inflate RTTs enormously when I feel they shouldn&amp;rsquo;t. ECN is a huge win for interactive tcp traffic, which is why apple adopted it (and - helpfully - their reno tcp is far less aggressive than linux cubic). I worry about lockout at low speeds and that one day we&amp;rsquo;d have to mark all packets of all types of flows (including voip and dns) as ecn capable, &lt;em&gt;unless tcps evolve appropriately towards an agreed upon response curve&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;One really interesting side-effect of ecn on is that fq_codel, running locally on the server, can self congest and start marking packets locally, thus regulating the behavior of the server better after a rtt.(try 128 flows coming out of a short path at a gbit). But local fq_codel induced loss (currently) on the other hand is sometimes not lost there but signals the local stack to immediately to reduce cwnd without actually losing the packet. Others might view either behavior as a problem and prefer that that server serve 100s more flows at ever increasing self inflicted local delay (as sch_fq does) until you run out of cpu.&lt;/p&gt;

&lt;p&gt;I certainly wish we&amp;rsquo;d come up with a more robust response to overload in fq_codel for ecn, as currently a malicious ecn sender, or too many ECN&amp;rsquo;d flows can push fq_codel to its memory limit before being dropped robustly. (pie drops ecn at overload). fq_codel (and now sch_cake) can continue to evolve as can everything else of course!&lt;/p&gt;

&lt;p&gt;In my mind ECN MAY be a good idea at very short rtts(sub 2ms), and IS good very long ones(&amp;gt;150ms), for interactive traffic. It&amp;rsquo;s good for doing things like protecting video iframes from loss. I use it to protect routing babel protocol packets from being dropped. I helped put it into mosh and wireguard. Etc. I think the use cases where it is actually needed generally are far more limited than most think.&lt;/p&gt;

&lt;p&gt;Others (in the bbr, l4s, dctcp communities) want to change the definition of ECN to mean a multi-bit rate reduction and obsolete rfc3168, where a loss is equivalent to a mark and the recommended rate reduction is &lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;2&lt;/sub&gt;. But: fq_codel, pie, red, and all other deployed ecn capable aqm systems essentially implement rfc3168 behavior and it&amp;rsquo;s what apple&amp;rsquo;s tcp - and linux cubic - and bsd&amp;rsquo;s - and windows - general deployment expects. I had hoped with wider deployment of AQMS that dealt with ECN at all properly that we&amp;rsquo;d see more servers also enabling it&amp;hellip; and we&amp;rsquo;d see TCPs evolve to treat aqms doing multiple ecn marks per rtt yet &lt;em&gt;per rfc3168&lt;/em&gt; more sanely than they do today as it is a stronger signal of congestion than loss.&lt;/p&gt;

&lt;p&gt;Instead&amp;hellip; well, see BBR, which currently more or less ignores packet loss on its quest to own the link, and currently has no ecn response. There&amp;rsquo;s a thread on the bbr list that talks about how they are leaning towards not respecting that rfc. The L4S folk vehemently defend the idea that some form of dctcp can run outside the datacenter, based on bigbuckbunny based demos, combined with a custom and patented AQM, never tested against wifi or 3g, who create a lot of noise in the IETF, where I am dubious of the accuracy required in ACKs in asymmetric networks, and against other forms of real traffic, among other things.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve run most of the the DCTCP based stuff over simulations and over the internet, and thus far, fq-codel&amp;rsquo;s basic response has been adaquate for low numbers of flows. I&amp;rsquo;ve thus spent the last several years avoiding thinking about ECN at all.&lt;/p&gt;

&lt;p&gt;Nearly every time I&amp;rsquo;ve quit smoking, an ecn debate started me up again, and instead of continuing to deal with it, I left the ietf, leaving the folk there to theorize amongst themselves with no actual deployment to worry about. I&amp;rsquo;m so frustrated with the &amp;ldquo;make tcp go fast at any cost&amp;rdquo; people that periodically I fiddle with something called tcp-fu (for users), that has an adjustable response curve to fq_codel&amp;rsquo;s ecn marks from background (torrent-like) to &amp;ldquo;gentle&amp;rdquo;, rather than &amp;ldquo;rabid&amp;rdquo;. Despite the enormous success of fq_codel and BQL in eliminating bufferbloat and network latency - I feel bad about &lt;a href=&#34;https://perso.telecom-paristech.fr/drossi/paper/rossi14comnet-b.pdf&#34;&gt;essentially obsoleting the entire field of LPCC with our work on fq_codel&lt;/a&gt; and would like to do something about it.&lt;/p&gt;

&lt;p&gt;I used to take glee in how fq techniques generally beat dctcp&amp;rsquo;s, even in the datacenter&amp;hellip; at how even the guy that invented dctcp moved onto fq&amp;hellip;&lt;/p&gt;

&lt;p&gt;I really resented repeated attempts to closely couple AQM deployment to ECN deployment. DOCSIS-PIE shipped without it. And FQ+AQM alone led to nearly two orders of magnitude reduction in latency under load across the internet, and I wished everyone could get behind that. Instead the IETF AQM mailing list devolved into an endless bikeshed, and I ended up calling for the closure of that working group rather than continue to deal with it. It still took 6 years to get fq_codel - the first solution proposed - through the IETF process to become RFC8290, and I still approve - even after all that time stuck within the IETF process - to consider that and &lt;a href=&#34;https://tools.ietf.org/wg/aqm/&#34;&gt;all the other products of the working group&lt;/a&gt; - to be &amp;ldquo;experimental&amp;rdquo; in scope until we saw more widespread deployment. fq_codel is at ~100% penetration now and it is time to roll up the very minor changes to it into an internet standard.&lt;/p&gt;

&lt;p&gt;I once got so frustrated with the ECN advocates that I suggested &lt;a href=&#34;https://www.ietf.org/mail-archive/web/aqm/current/msg01047.html&#34;&gt;they get a sysadmin drunk enough at their university to deploy it fully&lt;/a&gt;. None ever did. I believe in early adoptors, in knowledgable users and limited deployments along the edge to get real world data, in a careful deployment.&lt;/p&gt;

&lt;p&gt;ECN is the wet paint of the congestion control universe. You have to touch it, feel it, use it, explore it, day and day out - as I have for over 5 years - to worry about the long term effects on the health of the Internet, as I do.&lt;/p&gt;

&lt;p&gt;See also: &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_tcp_editorial/&#34;&gt;Dave Taht&amp;rsquo;s take on TCP&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Jonathan Morton&#39;s Take on ECN</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/jmorton_ecn_position/</link>
      <pubDate>Tue, 04 Sep 2018 15:38:14 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/jmorton_ecn_position/</guid>
      <description>

&lt;h1 id=&#34;jonathan-morton-s-take-on-ecn&#34;&gt;Jonathan Morton&amp;rsquo;s Take on ECN&lt;/h1&gt;

&lt;p&gt;I would characterise the problem not as &amp;ldquo;should we use ECN or not&amp;rdquo;,
but &amp;ldquo;how does ECN need to evolve to reach its potential&amp;rdquo;.  This likely
means changes in both routers and endpoints, but since there is
already some deployment, changes have to be backwards and forwards
compatible.&lt;/p&gt;

&lt;p&gt;The DCTCP approach fails primarily because it is not backwards
compatible.  DCTCP endpoints do not react as intended to ECN signals
given by Codel, which was designed very specifically around
RFC-compliant TCP behaviour.  That&amp;rsquo;s why there is concern over BBR2&amp;rsquo;s
proposed handling of ECN, which follows the DCTCP model instead of the
RFC-compliant model.  For similar reasons, other proposals to &amp;ldquo;soften&amp;rdquo;
the response to individual CE marks are Bad Ideas.&lt;/p&gt;

&lt;p&gt;In my view, ECN is essential for modern congestion control.  Without
it, there is no way to separate random loss and re-ordering from
congestion signals, and signalling congestion incurs application
latency penalties due to HoL blocking in TCP while the lost packets
are retransmitted.  With ECN, congestion can be signalled
unambiguously &lt;em&gt;as&lt;/em&gt; congestion, and without incurring retransmits;
network engineers who rely on packet loss as a primary metric should
also be pleased by its deployment.&lt;/p&gt;

&lt;p&gt;The evidence &lt;em&gt;against&lt;/em&gt; ECN chiefly consists of its present effect on
inter-flow latency with exemplary-standard flow isolation, under
particular measurement techniques in which the latency-measuring flows
are treated as saturating flows and thus equal to the rest of the
saturating traffic.  This is a remarkably specific and unusual set of
circumstances, which seems unlikely to be replicated by real traffic.
Nevertheless, there are improvements that can sensibly be made without
ditching ECN entirely.&lt;/p&gt;

&lt;p&gt;Principal among these is enabling TCP senders to operate at very small
cwnds.  Presently, most appear to operate on the principle that four
packets must be kept in flight at all times (unless application
limited), so that a single lost packet can be reliably detected and
retransmitted within one RTT.  Additionally, some widely-deployed TCP
stacks define the cwnd only in terms of whole MTU-sized packets.  The
net result is that the effective cwnd cannot shrink below 4xMSS, when
sometimes 1xMSS (perhaps still as two, three, or four distinct
packets) would be more appropriate.  In such cases, Codel devolves to
continuously marking all packets in these flows, ensuring that they
remain at their minimum cwnd.&lt;/p&gt;

&lt;p&gt;With the advent of TCP pacing, fractional cwnds are theoretically
practical to implement, such that on average there is less than one
packet in flight.  I remain uncertain that such extreme measures are
necessary or desirable, given the re-engineering required
(ie. changing cwnd from a packet to a byte basis) to implement them.
However, pacing out one MSS over an RTT via four separate packets
should be easier to implement and would help the aforementioned case,
by reducing the serialisation delay multiplier in the overall
inter-flow latency equation.  An individual sender implementing this
incurs a slight throughput cost due to greater relative packet
overhead, but may immediately see an application latency improvement
of a few milliseconds in the given scenario - or a larger latency
benefit at very low bandwidths.&lt;/p&gt;

&lt;p&gt;As an alternative to the DCTCP model, using the distinction between
ECT(0) and ECT(1) could be a backward-compatible method of providing
&amp;ldquo;softer&amp;rdquo; congestion signals to endpoints.  Existing endpoints and
routers would ignore the distinction, treating both as merely
indicating an ECN Capable Transport.  An old RFC suggested using the
distinction to protect the integrity of the ECN signal itself, but
this was never deployed and there are no plans to do so.&lt;/p&gt;

&lt;p&gt;Modified routers could detect incipient congestion - which has not yet
merited a CE mark but warrants caution on the part of TCP senders -
and convert some proportion of ECT(0) marks to ECT(1) to give a
fine-grained control signal.  It should be feasible to reflect that
information back to the sender, which can then perform a greater
variety of cwnd evolutions, not just slow-start followed by AIMD.  In
particular, these signals could instruct the sender to drop out of
exponential or polynomial growth in favour of additive-increase, or to
hold cwnd steady instead of oscillating, or to perform
additive-&lt;em&gt;decrease&lt;/em&gt; to correct a slight overshoot.  Only if the latter
was not sufficient would a CE mark be sent, with the RFC-compliant
response expected.&lt;/p&gt;

&lt;p&gt;I certainly don&amp;rsquo;t want to write off ECN before the above measures are
at least tried.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>ECN-Sane Project</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/</link>
      <pubDate>Mon, 03 Sep 2018 15:38:14 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/</guid>
      <description>

&lt;h1 id=&#34;about-the-ecn-sane-project&#34;&gt;About the ecn-sane project&lt;/h1&gt;

&lt;p&gt;As the accidental co-authors of what may well become the world&amp;rsquo;s largest ECN-enabled AQM deployment, our ecn-sane project is started in the hope that a clear, safe, sane path forward for ECN enablement across the edge of the Internet will emerge.&lt;/p&gt;

&lt;h2 id=&#34;what-is-ecn&#34;&gt;What is ECN?&lt;/h2&gt;

&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Explicit_Congestion_Notification&#34;&gt;Explicit Congestion Notification&lt;/a&gt; is a means to do network congestion control
without dropping packets.&lt;/p&gt;

&lt;h2 id=&#34;why-are-we-concerned-about-it&#34;&gt;Why are we concerned about it?&lt;/h2&gt;

&lt;p&gt;Neither the original codel or pie AQM research covered ECN.&lt;/p&gt;

&lt;p&gt;However, the fair queueing variants of these algorithms, the &amp;lsquo;fq_pie&amp;rsquo; and &amp;lsquo;fq_codel&amp;rsquo; qdiscs enabled ECN by default, because, in
&lt;em&gt;very&lt;/em&gt; limited tests by bufferbloat.net members in 2012, it seemed to work well.
FQ_Codel, in particular, is in increasingly wide deployment. We&amp;rsquo;ve long encouraged individual users to try it out&amp;hellip; and then, in 2017&amp;hellip; Apple enabled it universally across their devices and stacks.&lt;/p&gt;

&lt;p&gt;ECN&amp;rsquo;d behaviors are observably different than drop, and different
AQMs treat it differently.  The pie algorithm starts dropping ecn enabled packets once the drop probability cracks 10. RED behaves similarly. Codel does not drop until it runs out of packet space.&lt;/p&gt;

&lt;p&gt;Our limited tests showed codel alone to be somewhat ineffective
against ECN, and in both pie and codel&amp;rsquo;s single queue implementations
in Linux we left it disabled by default.  &lt;a href=&#34;https://www.bufferbloat.net/projects/codel/wiki/Cake/&#34;&gt;Cake&lt;/a&gt;
developed a more refined approach to ECN
management. The &lt;a href=&#34;https://github.com/tohojo/sqm-scripts&#34;&gt;sqm-scripts&lt;/a&gt;
enable ECN for inbound universally and disable it for outbound. Our
&lt;a href=&#34;https://www.usenix.org/system/files/conference/atc17/atc17-hoiland-jorgensen.pdf&#34;&gt;FQ_Codel implementation for WiFi&lt;/a&gt;, now shipping in quantity millions, enables it
universally. Inconsistencies in ECN behavior abound in both AQMs and
TCPs.&lt;/p&gt;

&lt;p&gt;Much of this project will be focused on analyzing and reducing any
additional congestion caused by modern protocols with ecn enabled, as
well as examining potential side-effects on other protocols.&lt;/p&gt;

&lt;p&gt;We expect much work to take place on the mailing list. Like all
&lt;a href=&#34;https://lists.bufferbloat.net&#34;&gt;bufferbloat.net lists&lt;/a&gt;, ecn-sane is an open mailing list, however,
given the level of religious advocacy of ecn elsewhere on the Internet,
it has &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/rules/&#34;&gt;several policies&lt;/a&gt; that are new to bufferbloat.net.&lt;/p&gt;

&lt;p&gt;People will be banned, after 3 warnings, from the email list, for the following reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unwillingness or inability to repeat experiments against modern versions of cubic, bbr and reno&lt;/li&gt;
&lt;li&gt;Non-publication of sufficient code required for others to repeat your experiments&lt;/li&gt;
&lt;li&gt;Unbridled advocacy OR outright hatred of ecn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project members should identify themselves and flag experiments as part of the &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/rules/&#34;&gt;red, blue, yellow and purple teams&lt;/a&gt;, but it is not required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scientific skepticism of &lt;a href=&#34;https://conferences.sigcomm.org/sigcomm/2014/doc/slides/137.pdf&#34;&gt;both negative and positive results&lt;/a&gt; is utterly required here.&lt;/p&gt;

&lt;p&gt;We are hoping that these rules here are sufficient to keep the noise level
low, and to make progress forward on this sensitive topic.&lt;/p&gt;

&lt;h1 id=&#34;ecn-sane-project-plans&#34;&gt;ECN-Sane Project Plans&lt;/h1&gt;

&lt;h2 id=&#34;explore-the-possible-negative-effects-of-a-partially-or-fully-ecn-enabled-internet-on&#34;&gt;Explore the possible negative effects of a partially or fully ecn-enabled internet on&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Gaming, voice, and DNS traffic&lt;/li&gt;
&lt;li&gt;Explore improvements to voip (higher bit resolutions, 2.5ms sample rates, etc)&lt;/li&gt;
&lt;li&gt;Analyze Unresponsive senders&lt;/li&gt;
&lt;li&gt;ECN-enabled DDOS attacks&lt;/li&gt;
&lt;li&gt;What does it do VOIP MOS scores?&lt;/li&gt;
&lt;li&gt;Side effects on routing protocols (such as Babel, ISIS and ARP)&lt;/li&gt;
&lt;li&gt;Effects of deploying it on protocols such as bittorrent&lt;/li&gt;
&lt;li&gt;Discover what of rfcXXXXes holds in today&amp;rsquo;s IW10 environment&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;what-new-can-be-accomplished-by-constructive-use-of-ecn&#34;&gt;What new can be accomplished by constructive use of ECN?&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;QUIC&lt;/li&gt;
&lt;li&gt;MFTP&lt;/li&gt;
&lt;li&gt;DCCP&lt;/li&gt;
&lt;li&gt;ECN for iframes (NADA, redux)&lt;/li&gt;
&lt;li&gt;Can low priority congestion control be made to work again?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;explore-constructive-means-of-coping-with-ecn-for-traditional-udp-applications&#34;&gt;Explore constructive means of coping with ECN for traditional UDP applications&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;defensive measures for an overwhelmingly ECN&amp;rsquo;d network
(an example would be to ecn mark two out of five voip packets)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;explore-fixes-for-tcp-cubic-reno-and-bbr-and-what-other-tcps-may-apply&#34;&gt;Explore fixes for tcp cubic, reno, and BBR and what other TCPs may apply&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Recognising &amp;ldquo;loss and mark&amp;rdquo; as an even stronger signal than either&lt;/li&gt;
&lt;li&gt;Dynamically reducing mss size at cwnd 2&lt;/li&gt;
&lt;li&gt;Treating an ecn mark even more strongly than loss or reordering (reducing cwnd growth as either would)&lt;/li&gt;
&lt;li&gt;Exponential &amp;amp; cubic backoff verses strict AIMD&lt;/li&gt;
&lt;li&gt;Initial spreading for IW10 based ecn transports&lt;/li&gt;
&lt;li&gt;Improving packet pacing to cope with sub cwnds&lt;/li&gt;
&lt;li&gt;Explore dctcp behaviors on unreliable, jittery networks such as wifi&lt;/li&gt;
&lt;li&gt;Explore behaviors against ack-filters and random ack drop&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;other-sub-projects&#34;&gt;Other sub-projects&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A setsocket option to selectively enable ecn&lt;/li&gt;
&lt;li&gt;Explore improvements to existing deployed AQMs that more or less follow rfc3168&lt;/li&gt;
&lt;li&gt;Create repeatable experiments&lt;/li&gt;
&lt;li&gt;Create dual-licensed implementations of alternate AQM proposals such as l4s and dualQ&lt;/li&gt;
&lt;li&gt;Attempt to incorporate working ideas from these proposals in pie, codel, fq_codel, and fq_pie.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>ECN-Sane Project</title>
      <link>https://www.bufferbloat.net/projects/ecn-sane/wiki/rules/</link>
      <pubDate>Fri, 24 Aug 2018 15:38:14 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/ecn-sane/wiki/rules/</guid>
      <description>

&lt;h1 id=&#34;ecn-sane-s-rules-of-operation&#34;&gt;ECN-Sane&amp;rsquo;s rules of operation&lt;/h1&gt;

&lt;p&gt;This project intends to thoroughly evaluate the effects of ECN across the edge of the Internet.&lt;/p&gt;

&lt;p&gt;We expect much work to take place on the mailing list. Like all bufferbloat.net lists, ecn-sane is an open mailing list, however, given the level of religious advocacy of ECN elsewhere on the Internet, it has several policies that are new to bufferbloat.net.&lt;/p&gt;

&lt;p&gt;People will be banned, after 3 warnings, from the email list, for the following reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unwillingness or inability to repeat experiments against modern versions of cubic, bbr and reno.&lt;/li&gt;
&lt;li&gt;Non-publication of sufficient code required for others to repeat your experiments.&lt;/li&gt;
&lt;li&gt;Unbridled advocacy OR outright hatred of ECN.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project members should identify themselves as part of the grey, yellow, pink, red, blue, purple or green teams, but it&amp;rsquo;s not required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With a scientific approach there is no need to argue over anything with stress, or to give others coronaries, as it were. There is no shame in being “wrong”, nor everlasting glory in being “right”, about anything, if one yields to well-gathered evidence. There’s just the scientific process. The bulldozer of science.&lt;/p&gt;

&lt;p&gt;We suggest this - and a good sense of humor! - as a part of any policy to avoid logical fallacies, and to at least admit or recognize them when we do.&lt;/p&gt;

&lt;p&gt;We don’t see too many logical fallacies from this crowd. What we see more often is that we sometimes lack the data to draw certain conclusions, because we don’t always have the time and resources to collect it. So we use our intuition when we have to (and there are some pretty darn good ones in this group), but we do have to be careful about what final conclusions we draw. Assertions and hypotheses for sake of discussion starters should be fine, and we shouldn’t be afraid to be wrong with those, lest we freeze before saying or trying anything. We will try to avoid Argumentum ad baculum, &lt;a href=&#34;https://en.wikipedia.org/wiki/Proof_by_intimidation&#34;&gt;Proof by intimidation&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Cliché#Thought-terminating_cliché&#34;&gt;Thought terminating cliche&amp;rsquo;s&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Fallacy_of_the_single_cause&#34;&gt;Single cause fallacies&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Regression_fallacy&#34;&gt;Regression fallacies&lt;/a&gt;,
&lt;a href=&#34;https://en.wikipedia.org/wiki/Proof_by_assertion&#34;&gt;Proof by repeated Assertion&lt;/a&gt;, and &lt;a href=&#34;https://en.wikipedia.org/wiki/Argument_from_authority&#34;&gt;Argument from authority&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prior to now, the 21 one year long bikeshed around ECN has been around - those that favor it, those that favor it with modifications, those that are scared of it, and the &lt;em&gt;vast majority&lt;/em&gt; are those that haven&amp;rsquo;t heard of it and/or don&amp;rsquo;t care.&lt;/p&gt;

&lt;h1 id=&#34;teams&#34;&gt;TEAMS&lt;/h1&gt;

&lt;h2 id=&#34;grey-don-t-care-about-ecn-one-way-or-another&#34;&gt;GREY - Don&amp;rsquo;t care about ECN one way or another&lt;/h2&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=CxK_nA2iVXw&#34;&gt;Toke Høiland-Jørgensen&amp;rsquo;s position&lt;/a&gt;, at least until he finishes his thesis.&lt;/p&gt;

&lt;h2 id=&#34;red-opposed-to-wide-deployment-of-ecn&#34;&gt;RED - Opposed to wide deployment of ECN&lt;/h2&gt;

&lt;p&gt;At the moment there is no-one on the red team.&lt;/p&gt;

&lt;h2 id=&#34;pink-ecn-s-definition-needs-to-be-totally-changed-to-deploy&#34;&gt;PINK - ECN&amp;rsquo;s definition needs to be totally changed to deploy&lt;/h2&gt;

&lt;p&gt;This group is well populated currently outside this project. Members of that group are welcome here so long as they play by the rules.&lt;/p&gt;

&lt;h2 id=&#34;yellow-chicken-about-wide-deployment-of-ecn&#34;&gt;YELLOW - Chicken about wide deployment of ECN&lt;/h2&gt;

&lt;p&gt;The PI for this is Dave Taht, as explained in &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/dtaht_ecn_editorial/&#34;&gt;his position paper&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&#34;seersucker-with-a-particular-reservation&#34;&gt;SEERSUCKER - With a particular reservation&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I think ECN needs to be demonstrated to be needed and useful, especially given
BBR.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&amp;ndash; Vint Cerf&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;purple-how-does-ecn-need-to-evolve-to-reach-its-potential&#34;&gt;PURPLE - How does ECN need to evolve to reach its potential?&lt;/h2&gt;

&lt;p&gt;The color might change. This classification can be changed. &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/jmorton_ecn_position/&#34;&gt;Jonathon Morton&amp;rsquo;s
position&lt;/a&gt; and &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/pheist_ecn_thoughts/&#34;&gt;Pete Heist&amp;rsquo;s position&lt;/a&gt;
fall in this category, as does &lt;a href=&#34;https://lists.bufferbloat.net/pipermail/ecn-sane/2019-March/000093.html&#34;&gt;Loganaden
Velvindron&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&#34;blue-we-are-go-for-ecn-on-everything&#34;&gt;BLUE - we are GO for ECN on EVERYTHING!&lt;/h2&gt;

&lt;p&gt;This group is well populated currently outside this project. In addition &lt;a href=&#34;https://www.bufferbloat.net/projects/ecn-sane/wiki/jholland_ecn_position/&#34;&gt;Jake
Holland is blue with yellow stripes&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&#34;green-ecn-is-safe-for-universal-deployment&#34;&gt;GREEN - ECN is safe for universal deployment&lt;/h2&gt;

&lt;p&gt;At the moment there &lt;em&gt;should&lt;/em&gt; be nobody on the green team.&lt;/p&gt;

&lt;h1 id=&#34;obligatory-futurerama-snippet&#34;&gt;Obligatory FutureRama Snippet&lt;/h1&gt;


&lt;div style=&#34;position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;//www.youtube.com/embed/1-bCIA_vyVc?&#34; 
  style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&#34; allowfullscreen frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Make-Wifi-Fast Project</title>
      <link>https://www.bufferbloat.net/projects/make-wifi-fast/wiki/</link>
      <pubDate>Wed, 14 Feb 2018 15:38:14 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/make-wifi-fast/wiki/</guid>
      <description>

&lt;h1 id=&#34;make-wi-fi-fast-project&#34;&gt;Make Wi-Fi Fast Project&lt;/h1&gt;

&lt;p&gt;This project focuses on reducing latency throughout the wifi stack, firmware,
and hardware.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Make Wi-Fi Fast Manifesto - Wi-Fi does not need to be slow!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The hardware now available for Wi-Fi can accomplish tremendous performance, but it is hobbled by software designs that guarantee high latency under load.
This, in turn, dramatically lowers performance in real-world settings (multiple users, home routers, commercial access points) leading to the &lt;em&gt;myth&lt;/em&gt; that &amp;ldquo;Wi-Fi is slow.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;We believe that the same sort of systems thinking that went on in the Bufferbloat Project can lead to
performance improvements of an order of magnitude or more in Wi-Fi.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;current-status&#34;&gt;Current Status&lt;/h2&gt;

&lt;p&gt;In late 2024, we have decreased Wi-Fi
latency by at least an order of magnitude,
with fair sharing of airtime across fast and slow devices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Working software is available in the Linux kernel,
as well as the &lt;a href=&#34;https://openwrt.org&#34;&gt;OpenWrt firmware&lt;/a&gt;
that runs on off-the-shelf routers, x86 boxes, and embedded systems.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;An academic paper describing the mechanism has been published at the
2017 USENIX Annual Technical Conference: &lt;a href=&#34;https://www.usenix.org/conference/atc17/technical-sessions/presentation/hoilan-jorgesen&#34;&gt;Ending the Anomaly: Achieving Low Latency and Airtime Fairness in Wifi&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Ongoing work was discussed at the Linux network developers conference
(NetDev 2.2) in November 2017. The session was recorded
&lt;a href=&#34;https://www.netdevconf.org/2.2/session.html?jorgensen-wifistack-talk&#34;&gt;and is available from the NetDev web site&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;rationale&#34;&gt;Rationale&lt;/h2&gt;

&lt;p&gt;WiFi may be the single most successful internet access technology. It is
used by over a billion people. Unregulated use has enabled an explosion
of products and deployments using WiFi. Individuals can take immediate
action as no network operator has to be asked to install or extend a
WiFi network, and this contrasts strongly with centrally managed and
deployed systems such as the cellular telephone based communications
systems. One WiFi hop is between any company and a large fraction of its
users; yet we have paid scant attention to how well WiFi functions, and
nearly none at all at how it will continue to scale to the next 300
million hotspots, and 10 billion new users and devices in the next 4
years. WiFi devices now cost as little as US$3, Linux WiFi devices as
little as US$9. A large fraction of these devices run/will run Linux, and
the current Linux WiFi stack and drivers are far from optimal.&lt;/p&gt;

&lt;p&gt;There has been little cross-fertilization between the participants of
the IETF, who understand how the Internet&amp;rsquo;s end to end protocols
function, and the IEEE participants in the 802.11 standards process who
are primarily radio and hardware engineers. WiFi downward compatibility
constraints causes increasing complexity and problems with every
succeeding generation of the technology. We must attack the problems in
today&amp;rsquo;s WiFi as it is between us and almost all devices, much or all of
the time.&lt;/p&gt;

&lt;h2 id=&#34;goals-of-the-project&#34;&gt;Goals of the Project&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reduce latency on a single AP, single station connected at the
lowest rate (6mbits) to under 30ms under load, down from the
commonly observed 600ms or more, while not sacrificing peak
throughput under real world conditions&lt;/li&gt;
&lt;li&gt;Develop new packet scheduling and AQM techniques applicable to
aggregated, parking lot network types&lt;/li&gt;
&lt;li&gt;Improve the stack sufficiently for 802.11ac MU-MIMO to actually work&lt;/li&gt;
&lt;li&gt;Save the world&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;the-make-wi-fi-fast-plan&#34;&gt;The Make Wi-Fi Fast Plan&lt;/h2&gt;

&lt;p&gt;The current working draft is at:
&lt;a href=&#34;https://docs.google.com/document/d/1Se36svYE1Uzpppe1HWnEyat_sAGghB3kE285LElJBW4/edit&#34;&gt;https://docs.google.com/document/d/1Se36svYE1Uzpppe1HWnEyat_sAGghB3kE285LElJBW4/edit&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&#34;other-links&#34;&gt;Other Links&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Hardware:&lt;/strong&gt; Presently the most open wifi drivers are those
based on the ath9k and mt76 chipsets. All other drivers contain
binary blobs in precisely the places we need to hack on, and are
currently unsuitable for further development. We MAY acquire a
firmware license to deal with one or more 802.11ac chips. Read more
in the &lt;a href=&#34;https://www.bufferbloat.net/projects/make-wifi-fast/wiki/Hardware_Plan/&#34;&gt;Hardware Plan&lt;/a&gt; and the &lt;a href=&#34;https://www.bufferbloat.net/projects/make-wifi-fast/wiki/RFP/&#34;&gt;RFP&lt;/a&gt; pages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BQL on Everything:&lt;/strong&gt; It really doesn&amp;rsquo;t fit into the context of
make-wifi-fast, but an active effort to get BQL on more hardware
that can support it, and to get it better documented so that more
new drivers use it, would be good.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Re-working Wi-Fi:&lt;/strong&gt; Read the &lt;a href=&#34;https://www.bufferbloat.net/projects/make-wifi-fast/wiki/Wifi_Stack_Rework/&#34;&gt;Wifi Stack Rework&lt;/a&gt; page,
or more importantly, read the &lt;a href=&#34;https://www.usenix.org/conference/atc17/technical-sessions/presentation/hoilan-jorgesen&#34;&gt;Ending the Anomaly&lt;/a&gt; paper.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>What Can I Do About Bufferbloat?</title>
      <link>https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/</link>
      <pubDate>Fri, 10 Mar 2017 09:10:12 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/</guid>
      <description>

&lt;h1 id=&#34;what-can-i-do-about-bufferbloat&#34;&gt;What Can I Do About Bufferbloat?&lt;/h1&gt;

&lt;p&gt;Bufferbloat is high latency (or lag) that occurs when there&amp;rsquo;s other
traffic on your network.
This means that your network isn&amp;rsquo;t always responsive -
it&amp;rsquo;s wasting your time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does bufferbloat apply to me?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Watch the &lt;a href=&#34;https://www.youtube.com/watch?v=UICh3ScfNWI&#34;&gt;Home Internet Connections Are Unfair! (Bufferbloat)&lt;/a&gt;
video which gives an intuitive description of Bufferbloat.
Or read the more detailed
&lt;a href=&#34;https://randomneuronsfiring.com/best-bufferbloat-analogy-ever/&#34;&gt;Best Bufferbloat Analogy - Ever&lt;/a&gt;
blog post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OK - How do I get rid of Bufferbloat?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Measure the Bufferbloat:&lt;/strong&gt;
Use any of the tests below that measure latency both when
the line is idle &lt;em&gt;and&lt;/em&gt; during upload or download traffic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.waveform.com/tools/bufferbloat&#34;&gt;Waveform Bufferbloat Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://speedtest.net&#34;&gt;Speedtest.net Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://speed.cloudflare.com&#34;&gt;Cloudflare Speed Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://bufferbloat.libreqos.com/&#34;&gt;LibreQoS Bufferbloat Test&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the test shows latency below 15-25 msec, it means that
bufferbloat is under control.
If a test shows higher latency, you likely have bufferbloat.
For more details about testing,
read the &lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/Tests_for_Bufferbloat/&#34;&gt;Tests for Bufferbloat&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Possible Solutions:&lt;/strong&gt; There are lots of ways to throw time or money at this problem.
Most won&amp;rsquo;t work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Your ISP would love to sell you a faster connection, but link speed isn&amp;rsquo;t the problem -
it&amp;rsquo;s your router buffering more data than necessary.
This adds &lt;em&gt;delay&lt;/em&gt; that can never be cured by faster transmission rates.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Buying an expensive router (even one for &amp;ldquo;gaming&amp;rdquo;) won&amp;rsquo;t necessarily help,
since many commercial, off-the-shelf router manufacturers are clueless about excess buffering in their routers.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Twiddling the router&amp;rsquo;s QoS might make a difference,
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/#what-s-wrong-with-simply-configuring-qos&#34;&gt;but it&amp;rsquo;s a hassle, and only helps a bit.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead&amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Take Control of Your Network:&lt;/strong&gt;
No one else (not your router manufacturer,
not your ISP) has a strong incentive to fix Bufferbloat.
But once you take control, the network will stay fixed for all time,
and you can adapt to changing practices at your ISP or other vendors.&lt;/p&gt;

&lt;p&gt;You need to find a router vendor that understands
the relationship between
latency/responsiveness and bufferbloat,
and has firmware that uses one of the
Smart Queue Management algorithms such as
cake, fq_codel, PIE, or others to eliminate it.
Here are some options, from easy to harder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable SQM settings&lt;/strong&gt; if your router already has them.&lt;/p&gt;

&lt;p&gt;First, measure the link speed &lt;em&gt;without&lt;/em&gt; SQM
using one of the speed tests above.
Then turn on SQM, setting the up and down speed to the measured values above.
Keep running your speed test and adjusting the SQM speed settings
until the latency remains low while achieving good speeds.
See, for example, this description of a &lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/Getting_SQM_Running_Right/&#34;&gt;tuning session.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install an off-the-shelf router with SQM&lt;/strong&gt;
Several router vendors have a clue.
Here is a list of those we have found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://openwrt.org/#openwrt_one_router_officially_launched&#34;&gt;OpenWrt One&lt;/a&gt;
In November 2024, the OpenWrt project released its own router.
It incorporates the fq_codel/CAKE
algorithms as well those to minimize latency in Wifi.
It is now available from
&lt;a href=&#34;https://www.aliexpress.us/w/wholesale-openwrt-one.html&#34;&gt;AliExpress&lt;/a&gt;
in many countries.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://help.ubnt.com/hc/en-us/articles/220716608-EdgeRouter-Advanced-queue-CLI-examples&#34;&gt;Ubiquiti gear&lt;/a&gt; has fq_codel settings.
People say its EdgeRouter will handle over 400 mbps.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;https://support.eero.com/hc/en-us/articles/360000709886-What-is-eero-Labs-&#34;&gt;eero mesh routers&lt;/a&gt;
have a setting to
&amp;ldquo;optimize for conferencing and gaming&amp;rdquo; (their term for SQM.)
Their third generation devices
&lt;a href=&#34;https://www.reddit.com/r/eero/comments/qxbkcl/66_is_out/hl9nw1m/&#34;&gt;support SQM at speeds up to a gigabit/second.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;All the &lt;a href=&#34;https://www.gl-inet.com/&#34;&gt;GL.iNet&lt;/a&gt; routers
run a modified version of OpenWrt that contains SQM.
(Available at &lt;a href=&#34;https://www.amazon.com/s?k=gl.inet&#34;&gt;Amazon&lt;/a&gt;.)&lt;/li&gt;
&lt;li&gt;All &lt;a href=&#34;https://comcast.net&#34;&gt;Comcast/Xfinity&lt;/a&gt;
DOCSIS 3.1 RDK-B-based gateway models have now been updated
with DOCSIS-PIE AQM and all are achieving dramatically
improved working latency.
(See Footnote 59 of
&lt;a href=&#34;https://arxiv.org/ftp/arxiv/papers/2107/2107.13968.pdf&#34;&gt;&lt;em&gt;Improving Latency with Active Queue Management (AQM) During COVID-19&lt;/em&gt;&lt;/a&gt;
for model numbers.)&lt;/li&gt;
&lt;li&gt;Many other mesh router vendors claim to solve bufferbloat.
Check their spec&amp;rsquo;s or ask them about latency.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.untangle.com/index.php/Bufferbloat&#34;&gt;Untangle NG Firewall&lt;/a&gt; has fq_codel settings.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.ipfire.org/configuration/services/qos&#34;&gt;ipfire.org&lt;/a&gt; has fq_codel settings.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.pfsense.org/&#34;&gt;pfsense&lt;/a&gt; and &lt;a href=&#34;https://opnsense.org/&#34;&gt;OPNsense&lt;/a&gt;
have fq_codel and fq_PIE settings, courtesy of FreeBSD and
&lt;a href=&#34;https://www.freebsd.org/cgi/man.cgi?query=ipfw&amp;amp;sektion=8&amp;amp;apropos=0&amp;amp;manpath=FreeBSD+13.0-RELEASE+and+Ports&#34;&gt;ipfw/dummynet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;(Regrettably, the IQrouter from Evenroute.com is no longer on the market.)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install custom firmware.&lt;/strong&gt; All the projects below support some kind
of queue management based on FQ-CoDel and/or Cake.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://OpenWrt.org&#34;&gt;OpenWrt&lt;/a&gt; (version 22.03 or newer,
&lt;a href=&#34;https://openwrt.org/toh/start&#34;&gt;supported device list&lt;/a&gt;).
The &lt;a href=&#34;https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm&#34;&gt;Smart Queue Management guide&lt;/a&gt;
tells how to configure the &lt;em&gt;luci-app-sqm&lt;/em&gt; package.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.asuswrt-merlin.net&#34;&gt;Asuswrt-Merlin&lt;/a&gt; (ASUS routers only).
In Web GUI follow to &lt;strong&gt;Adaptive QoS → QoS&lt;/strong&gt;.
More customizations via Web GUI is available with &lt;a href=&#34;https://github.com/ttgapers/cakeqos-merlin&#34;&gt;CakeQOS-Merlin&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.dd-wrt.com&#34;&gt;DD-WRT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.gargoyle-router.com&#34;&gt;Gargoyle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://freshtomato.org&#34;&gt;Tomato&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tw641.github.io/&#34;&gt;Padavan (TW641&amp;rsquo;s CAKE Port)&lt;/a&gt; (142 legacy
MediaTek/Ralink models). Brings CAKE to Padavan firmware (Linux 3.4 / 4.4) while maintaining HWNAT and SFE acceleration.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.reddit.com/r/openwrt/comments/l1m801/rpi4_openwrt_tips/&#34;&gt;Raspberry Pi 4&lt;/a&gt; -
This link provides &amp;ldquo;some assembly required&amp;rdquo; instructions
for installing OpenWrt on a RPi4 and connecting it
between your ISP modem and your existing router to
control latency.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Call your router vendor&amp;rsquo;s support line&lt;/strong&gt;
if none of the above are possible.
You have the information from the latency tests.
Mention that the ping times get really high when someone is up/downloading
files, and that it really hurts your network performance.
Ask if they&amp;rsquo;re working on the problem.
Ask when they&amp;rsquo;re going to release a firmware update that solves it.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consider cake-autorate for variable-rate ISP links.&lt;/strong&gt;
LTE, cable modems, and Starlink can all change throughput rates
from morning to evening, or even from minute to minute.
The
&lt;a href=&#34;https://github.com/lynxthecat/cake-autorate&#34;&gt;cake-autorate&lt;/a&gt;
algorithm adapts to the current network conditions to
minimize latency.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your network&amp;rsquo;s responsiveness is in &lt;em&gt;your&lt;/em&gt; hands&amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read More&amp;hellip;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/Bufferbloat_FAQs/&#34;&gt;Bufferbloat FAQs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/#why-does-sqm-work-so-well&#34;&gt;Why does SQM work so well?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/#what-s-wrong-with-simply-configuring-qos&#34;&gt;What&amp;rsquo;s wrong with simply configuring QoS?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/#setting-up-a-router-manually&#34;&gt;Setting up SQM on a Router Manually&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://randomneuronsfiring.com/best-bufferbloat-analogy-ever/&#34;&gt;Best Bufferbloat Analogy &amp;mdash; Ever&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>More about Bufferbloat</title>
      <link>https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/</link>
      <pubDate>Fri, 10 Feb 2017 09:16:12 +0000</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/bloat/wiki/More_about_Bufferbloat/</guid>
      <description>

&lt;h1 id=&#34;more-about-bufferbloat&#34;&gt;More about Bufferbloat&lt;/h1&gt;

&lt;h2 id=&#34;what-is-bufferbloat&#34;&gt;What &lt;em&gt;is&lt;/em&gt; Bufferbloat?&lt;/h2&gt;

&lt;p&gt;Bufferbloat is the undesirable latency that comes from a router or other network equipment buffering too much data.
For a simple description of bufferbloat, read
&lt;a href=&#34;https://randomneuronsfiring.com/best-bufferbloat-analogy-ever/&#34;&gt;Best Bufferbloat Analogy - Ever.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For lots more details about the CoDel (and fq_codel) algorithm, see the
Codel wiki at: &lt;a href=&#34;http://www.bufferbloat.net/projects/codel/wiki/Wiki&#34;&gt;http://www.bufferbloat.net/projects/codel/wiki/Wiki&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&#34;why-does-sqm-work-so-well&#34;&gt;Why does SQM work so well?&lt;/h2&gt;

&lt;p&gt;Why do cake, fq_codel, PIE, etc. and other qdisc&amp;rsquo;s work so well? These smart
queue management (SQM) algorithms put each flow&amp;rsquo;s traffic into its own
queue. (A &amp;ldquo;flow&amp;rdquo; is typically defined as traffic from a single IP
addresses/port to another address/port.) Then the qdisc makes sure that
none of the queues get &amp;ldquo;too long&amp;rdquo;. To do this, the qdisc looks at all
the queues, and preferentially chooses to send packets from flows that
have no/small queue. If the queue for a flow gets large, the qdisc can
mark traffic with ECN, or drop a certain percentage of those packets to
allow congestion avoidance to kick in for that flow. (The various queue
management algorithms use different metrics to make these transmit/drop
decisions, avoid starvation, etc.)&lt;/p&gt;

&lt;h2 id=&#34;what-s-wrong-with-simply-configuring-qos&#34;&gt;What&amp;rsquo;s wrong with simply configuring QoS?&lt;/h2&gt;

&lt;p&gt;Quality of Service (QoS) settings will help, but won&amp;rsquo;t solve bufferbloat
completely. Why not? Any prioritization scheme works by pushing certain
packets to the head of the queue, so they&amp;rsquo;re transmitted first. Packets
farther back in the queue still must be sent eventually. New traffic
that hasn&amp;rsquo;t been prioritized gets added to the end of the queue, and
waits behind those previously queued packets. QoS settings don&amp;rsquo;t have
any way to inform the big senders that they&amp;rsquo;re sending too fast/too
much, so packets from those flows simply accumulate, increasing delay
for all.&lt;/p&gt;

&lt;p&gt;Furthermore, you can spend &lt;strong&gt;a lot&lt;/strong&gt; of time updating priorities,
setting up new filters, and checking to see whether VoIP, gaming, ssh,
netflix, torrent, etc. are &amp;ldquo;balanced&amp;rdquo;. (There is a whole
cottage industry in updating WonderShaper rule sets.
&lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/Wondershaper_Must_Die/&#34;&gt;They all have terrible flaws&lt;/a&gt;, and they don&amp;rsquo;t help a
lot.) Worst of all, these rules create a maintenance hassle. Each new
rule has to be adjusted in the face of new kinds of traffic. And if the
router changes, or speed changes, or there&amp;rsquo;s new traffic in the mix,
then they need to be adjusted again.&lt;/p&gt;

&lt;h2 id=&#34;setting-up-a-router-manually&#34;&gt;Setting up a Router Manually&lt;/h2&gt;

&lt;p&gt;If you can&amp;rsquo;t get SQM/fq_codel in your router, your strategy should be
to adjust the settings to control queue lengths first, then think about
QoS. To do this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remove all the QoS/Prioritization rules.&lt;/li&gt;
&lt;li&gt;Control the amount of data queued. If your router supports BQL in
the kernel and some kind of SQM/qdisc, such as fq_codel, PIE, etc.,
make sure they are enabled. In general, no configuration is required
at all. These changes are available in modern Linux kernels, the
OpenWrt and CeroWrt routers, and a growing number of other devices.
This one change automatically sets up the router to work well:

&lt;ul&gt;
&lt;li&gt;Small flows of data (pings, DNS, ssh sessions, gaming, VoIP,
SYN/Ack messages for TCP/web traffic, etc.)
go right through with minimal delay&lt;/li&gt;
&lt;li&gt;Large flows (Netflix, file uploads/downloads, filesharing, etc)
automatically adjust their rates&lt;/li&gt;
&lt;li&gt;All traffic gets a fair share of the bottleneck traffic capacity&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Measure. Try to detect if all your data types/flows are as
responsive as you like. We often find that there is no need for
further configuration because the fq_codel algorithm does such a
good job of giving priority to the flows that aren&amp;rsquo;t sending
much data.&lt;/li&gt;
&lt;li&gt;If you &lt;strong&gt;can&lt;/strong&gt; determine that some traffic needs to priority, then
set up some QoS rules. The number of rules will probably be small,
perhaps only applying to a couple specific traffic types.&lt;/li&gt;
&lt;li&gt;And finally&amp;hellip; If prioritization/QoS
doesn&amp;rsquo;t solve the problem, it may be necessary to get
more bandwidth. When SQM is in place, the need for prioritization
typically arises when there&amp;rsquo;s already too much data to send on a
long-term basis. Creating the rules simply determines which packets
go to the head of the queue, and which will be sent later. If there
is regularly more data than traffic capacity, QoS doesn&amp;rsquo;t
really help.&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>RRUL Chart Explanation</title>
      <link>https://www.bufferbloat.net/projects/bloat/wiki/RRUL_Chart_Explanation/</link>
      <pubDate>Tue, 27 Dec 2016 11:00:00 -0400</pubDate>
      <author>bloat@lists.bufferbloat.net (The Bufferbloat community)</author>
      <guid>https://www.bufferbloat.net/projects/bloat/wiki/RRUL_Chart_Explanation/</guid>
      <description>

&lt;h1 id=&#34;explaining-rrul-charts&#34;&gt;Explaining RRUL Charts&lt;/h1&gt;

&lt;p&gt;The &lt;a href=&#34;https://www.bufferbloat.net/projects/bloat/wiki/RRUL_Spec/&#34;&gt;Realtime Response Under Load (RRUL)&lt;/a&gt; test performs accurate, automated, and repeatable measurements of network performance. RRUL is especially well suited to measuring induced latency when heavy traffic is present. This latency is often called &amp;ldquo;bufferbloat&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;The charts on this page were created by &lt;a href=&#34;http://flent.org&#34;&gt;Flent,&lt;/a&gt; a Python program that runs the RRUL (and other) tests and creates graphs of the result. This page describes the charts created by the Flent program.&lt;/p&gt;

&lt;p&gt;An RRUL test run saturates the network by initiating eight data connections to/from a netperf server at a remote location (four simultaneous connections sending data in each direction). Each connection has a different diffserv class to compare their performance and fairness. In addition, the RRUL test measures latency across the network with ICMP or UDP pings.&lt;/p&gt;

&lt;h2 id=&#34;the-charts&#34;&gt;The Charts&lt;/h2&gt;

&lt;p&gt;Flent produces three major types of charts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#rrul-charts&#34;&gt;RRUL Three-plot Charts,&lt;/a&gt; showing download, upload, latency in three plots&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cumulative-distribution-function-cdf-plots&#34;&gt;Cumulative Distribution Function (CDF) charts&lt;/a&gt; that show the distribution of latency readings&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#flent-box-plots&#34;&gt;Box Plots&lt;/a&gt; show a comparison between multiple Flent test runs&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;rrul-three-plot-charts&#34;&gt;RRUL Three-Plot Charts&lt;/h3&gt;

&lt;p&gt;The RRUL test runs for 70 seconds by default: 5 seconds of idle (to give a baseline), 60 seconds of full-rate data transfer, and 5 more seconds of idle.
A three-plot RRUL Chart shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Download plot&lt;/strong&gt; showing the average download speed (Mbits/sec, in black) of the four diffserv connections (individual colors.) Multiply the average by four to get the actual throughput/link speed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upload plot&lt;/strong&gt; showing the average upload speed (Mbits/sec, black) of the four diffserv class connections (individual colors.) Multiply the average by four to get the actual throughput/link speed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Latency plot&lt;/strong&gt; showing the average latency (msec, in black) of all the connections.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Horizontal axis&lt;/strong&gt; for all plots is seconds, across the test duration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/rrul-good-bad.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;

&lt;p&gt;The image above shows two Flent RRUL runs, with &lt;strong&gt;good&lt;/strong&gt; &lt;em&gt;(on the left)&lt;/em&gt;
and &lt;strong&gt;poor&lt;/strong&gt; latency control &lt;em&gt;(on the right).&lt;/em&gt;
Here&amp;rsquo;s what the charts show:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Good latency control&lt;/strong&gt; Notice how the black (average) plot shows
constant traffic at 4x31mbps for download;
upload is constant at 4x2.8mbps,
and the latency is very steady around 15 msec.
&lt;a href=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/wndr3800-lede-piece-cake-135-12.all.png&#34; target=&#34;_blank&#34;&gt;(Full size)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Poor latency control&lt;/strong&gt; Although the black download and upload rates
are roughly the same, each of the four connections (in color)
show far more variability.
But most important, the latency jumps up from ~15 msec
when idle to 250 msec during the test.
This indicates bufferbloat.
&lt;a href=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/wndr3800-lede-cake-unlimited.all.png&#34; target=&#34;_blank&#34;&gt;(Full size)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; The measured download and upload rates tend to be lower than the full rated speed of the ISP connection. This is because the TCP Ack traffic uses a significant fraction (often as much as 20%) of the capacity in the opposite direction. This does not skew RRUL results, because all tests will have the same testing conditions.&lt;/p&gt;

&lt;h3 id=&#34;cumulative-distribution-function-cdf-plots&#34;&gt;Cumulative Distribution Function (CDF) Plots&lt;/h3&gt;

&lt;p&gt;The Cumulative Distribution Function charts (CDF) show the percentage of readings with latency below a certain time. The two charts below show the same test runs as the charts above: one (on the left) showing good latency control, while the one on the right shows poor control.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/cdf-good-bad.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Good latency control&lt;/strong&gt; &lt;em&gt;(on the left)&lt;/em&gt; Notice that most latency samples are below 15 msec, and nearly 100% are less than 20 msec.
&lt;a href=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/wndr3800-lede-piece-cake-135-12.cdf.png&#34; target=&#34;_blank&#34;&gt;(Full size)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Poor latency control&lt;/strong&gt; &lt;em&gt;(on the right)&lt;/em&gt; A small fraction (a few percent) of the samples are less than 50 msec; 50% are &amp;gt; 250 msec (12x longer); with a long tail that&amp;rsquo;s greater than a third of a second.
&lt;a href=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/wndr3800-lede-cake-unlimited.cdf.png&#34; target=&#34;_blank&#34;&gt;(Full size)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;flent-box-plots&#34;&gt;Flent Box Plots&lt;/h3&gt;

&lt;p&gt;In addition to displaying the results of the current run, Flent can save those results for later analysis. The Box Plot displays the result of multiple test runs to provide a comparison.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/wnddr3800-cake-comparison-small.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;

&lt;p&gt;The chart above shows four test runs &lt;a href=&#34;https://www.bufferbloat.net/projects/attachments/flent_charts/wnddr3800-cake-comparison.png&#34; target=&#34;_blank&#34;&gt;(Full size):&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;No SQM control (green):&lt;/strong&gt; The (total) download speed averaged a bit above 120 mbps (4 connections at 30 mbps), but the green rectangle indicated that the values between the 25th and 75th percentile varied between 110 and 140 mbps. The dotted lines show the full range of measured values were between 75 and 180 mbps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTB+fq_codel qdisc (orange):&lt;/strong&gt; The average download was lower: about 75 mbps, but with less variability and latency. (The lowered speed came from the router&amp;rsquo;s inability to process packets fast enough using HTB+fq_codel.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;layer cake qdisc (purple):&lt;/strong&gt; The more efficient layer cake algorithm allowed the router CPU to keep the download rate high while minimizing variability.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;piece of cake qdisc (red):&lt;/strong&gt; This gave a bit larger download speed bump (~130 mbps), with similar (low) variability.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note that all four plots show that upload speeds perform at the rated ISP link speed, and the last three qdisc&amp;rsquo;s (2-4) gave very good control over latency, with &amp;ldquo;piece of cake&amp;rdquo; being a slight winner.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Many thanks to Aaron Wood for permission to use images from his blog post about setting up SQM, QoS, fq_codel, and cake. Read more at:
&lt;a href=&#34;http://burntchrome.blogspot.com/2016/12/cake-latest-in-sqm-qos-schedulers.html&#34;&gt;http://burntchrome.blogspot.com/2016/12/cake-latest-in-sqm-qos-schedulers.html&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
