From: "David P. Reed" <dpreed@deepplum.com>
To: "warren ponder" <wponder11@gmail.com>
Cc: starlink@lists.bufferbloat.net
Subject: Re: [Starlink] FQ_Codel
Date: Wed, 8 Jun 2022 16:49:23 -0400 (EDT) [thread overview]
Message-ID: <1654721363.567314628@apps.rackspace.com> (raw)
In-Reply-To: <CACnq21cR0KBgfuAyat6eYJH5urOhJ9U2MVxxh-NE8CjQDL6xEA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4274 bytes --]
No, I don't think so. However, a hidden (not often discussed) way that using FQ-codel in a home router works is that you have to artificially restrict the total bitrate in both directions used by your home router to talk to the access provider link.
Typically, it is recommended to use 95% of the upload/download speeds of that link as the limit. This forces packets to be dropped when the constraint is exceeded. Now this forces congestion control signals (dropped packets) to be observed by both ends. (In a cable DOCSIS system, this allows the edge to manage the throughput of the CMTS for the local endpoint, because the CMTS won't drop packets when it should - because configuring DOCSIS 3.1 CMTS's is often done in a way that causes bufferbloat in CMTS. DOCSIS 2 always had bufferbloat in the CMTS).
Starlink doesn't sell you a stable "max rate" - instead that rate varies depending on traffic, and can't be easily measured.
So to configure the dishy or an edge router connected to it correctly, you need to enforce such a limit such that it actually causes FQ-codel to see dropped packets.
On Wednesday, June 8, 2022 3:12pm, "warren ponder" <wponder11@gmail.com> said:
So this is really helpful. Is it fair to say then that end users with SQM and fq_codel on a Starlink connection should essentially not turn on SQM.and.just leave it off?
On Wed, Jun 8, 2022, 11:47 AM David P. Reed <[ dpreed@deepplum.com ]( mailto:dpreed@deepplum.com )> wrote:
I'm just going to remind folks that fixing bufferbloat in Starlink won't be possible with FQ-Codel in the CPE equipment. If that were possible, it could be fixed entirely in a box sitting between the dishy and the user's "home network".
Evidence exists that the bulk of the "bloat" can exist, not just in the dishy, but also in the central "access point" where satellites in a coverage region direct all the traffic from and to the public Internet. This connection from the region becomes bloated if the inbound link and outbound link become "underprovisioned" for peak rates of all the served dishy terminals.
That public-Internet to StarLink access point (is there a more distinct, precise name) can develop a very long delay queue. For the same reason that bufferbloat always gets designed in - memory is cheap and plentiful, so instead of dropping packets to minimize latency, the link just stores packets until multiple seconds worth of traffic build up on one or both ends of that link.
This problem can be solved only by dropping packets (with packet drop rate mitigated by ECN-marking) to match the desired round-trip latency across the entire Internet. Typically, this queue size should max out and start dropping packets at about 2 * cross-Internet desired latency * bit-rate of this link.
Cross-Internet desired latency can be selected these days by using light-speed in fiber between one side of the North American continent and the other - around 15 msec. is appropriate. (which should be the worst case end-to-end latency observed using Starlink, and is around the 20 msec. number bandied about by Musk - though he really never understood what end-to-end latency means).
Now it may be that the dishy itself also has such bloat built in, which would make FQ-Codel in the dishy also important.
The problem called bufferbloat occurs whenever ANY router on ANY end-to-end shared path allows such queueing delay to accumulate before shortening the queue.
It really frustrates me that memory keeps being added to router outbound buffers anywhere. And it may be that the reason is that almost nobody who designs packet forwarding systems understands Queueing Theory at all! It certainly doesn't help that "packet drops" (even one or two per second) are considered a failure of the equipment.
FQ-codel is great, but why it works is that it makes the choice of what packet to drop far better (by being fair and a little bit elastic). However, the lack of FQ-Codel doesn't fix system-level bufferbloat.
_______________________________________________
Starlink mailing list
[ Starlink@lists.bufferbloat.net ]( mailto:Starlink@lists.bufferbloat.net )
[ https://lists.bufferbloat.net/listinfo/starlink ]( https://lists.bufferbloat.net/listinfo/starlink )
[-- Attachment #2: Type: text/html, Size: 7189 bytes --]
next prev parent reply other threads:[~2022-06-08 20:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.63.1654706837.1281.starlink@lists.bufferbloat.net>
2022-06-08 18:47 ` David P. Reed
2022-06-08 19:12 ` warren ponder
2022-06-08 20:49 ` David P. Reed [this message]
2022-06-08 21:30 ` Dave Taht
2022-06-09 8:58 ` Sebastian Moeller
2022-06-09 0:12 ` Stuart Cheshire
2022-06-09 0:21 ` David Lang
2022-06-09 1:11 ` Dave Taht
2022-06-09 2:01 ` David Lang
2022-06-09 8:50 ` Sebastian Moeller
2022-06-06 16:20 Warren Ponder
2022-06-08 16:47 ` Dave Taht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/starlink.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1654721363.567314628@apps.rackspace.com \
--to=dpreed@deepplum.com \
--cc=starlink@lists.bufferbloat.net \
--cc=wponder11@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox