Starlink has bufferbloat. Bad.
 help / color / mirror / Atom feed
From: Ulrich Speidel <u.speidel@auckland.ac.nz>
To: starlink@lists.bufferbloat.net
Subject: [Starlink] Re: Starlink looking less niche as its retail presence expands
Date: Fri, 26 Sep 2025 08:08:54 +1200	[thread overview]
Message-ID: <91ccf1a3-5c78-4a57-8c16-e312c231b6a0@auckland.ac.nz> (raw)
In-Reply-To: <30473.1758822310@obiwan.sandelman.ca>

On 26/09/2025 5:45 am, Michael Richardson via Starlink wrote:
> I think the only thing worse than bufferbloat is varying bandwidth rates.
> That's because the only way to use that bandwidth is to introduce bufferbloat :-)
> It was the cablemodem burst mechanism that clued Jim into bufferbloat.
>
> So my related question is, if they could mitigate, they likely can't do it
> continuously, so things will up/down.  The IETF now has a SCONE WG, with the
> aim of inserting signals into QUIC traffic about bandwidth available.
> Yes, meddling by middle boxes.  Ick.
>
> Could Starlink even do this given the lack of L3 processing along the
> entire link?  At least according to Dr. Pan's diagrams.
> (An L2 hop could well mess with packets too).
> Ideally, one or more of the satellites involved in the ISL would
> know what the current bandwidth to a given terminal is, and could inform the
> end system.
I'd expect almost any modern communication system these days to operate 
with a more complex protocol stack than just the good old textbook OSI 
... so your "L2" may actually be sitting on top of a layer running UDP 
over IP, for example. In that sense, L2 and L3 as labels mean very 
little these days, and issues at one layer can actually come about as a 
result of this complexity, having been introduced further down the stack.
>
> The two questions:
> 1. are the limits/conditions stable enough for long enough that the available
>     bandwidth could be communicated back to the uplink?

Um yes, but I wouldn't work on the assumption of shared bandwidth (in 
the sense of "sharing the same Ethernet cable" here). The 
uplink/downlink bandwidth an end user on Starlink gets is almost 
certainly determined by the assignment of a time slot or slots on a 
certain frequency (beam) subband(s). You could add other parameters to 
this (e.g., spreading code, polarisation, ...). This is an assignment 
made by Starlink's scheduler, and the only thing that's certain here is 
that for a given satellite, the maximum total number of frequency 
subbands and time slots is fixed. These have to be shared between all 
users of the satellite. Quite how many slots someone gets therefore 
depends on the number of other users and whatever they get, plus 
whatever Starlink might want / need to reserve for regulatory and other 
reasons.

Of course, every 15 seconds, things change: Existing users get handed 
over to new satellites, new users join the present one, and slots get 
redistributed. Switching to user perspective, getting handed over to a 
new satellite at the 15 second point means potentially getting a 
completely different share of bandwidth. Even staying with the same 
satellite does. Whatever the cwnd value of participating TCP sockets is 
at that point, it's not adapted to what you're dealing with here.

>
> 2. assuming, yes, what would the best place to do the SCONE marking?
>
>      >> Let's recap: Spectrum's boxed in, and power is boxed in. That imposes
>      >> a hard limit on total capacity (look up the Shannon-Hartley Capacity
>      >> Theorem if you don't believe me). This capacity is all that Starlink
>      >> has to share among its users in a cell. No matter how many satellites
>      >> they launch or how big the rocket. Add more users in a cell, and the
>      >> capacity per user there has to go down. Law of nature.
>
> And users will need to know what they have on a minute-by-minute basis so
> that they avoid screwing themselves, let alone their neighbours.
> Packets going up the link, then being dropped, is just wasted.

Now there's also the data that's in transit from the Internet to the 
user. That'll have to hit a queue somewhere, from where it then gets 
uplinked to the satellite that serves the user it's destined for. Given 
that TCP senders out there have the RFC-given right to transmit data 
whenever they think fit, the Internet has zero control over when a TCP 
segment hits that queue, however. Now imagine that it hits that queue 
just before the user in question gets handed over to a different 
satellite ... and it doesn't make it out of the queue before the user 
gets passed on. Then where does that data go? I think it was Geoff 
Huston who told me that he'd observed packet loss at the handover times 
and that's probably what he was looking at here.

-- 
****************************************************************
Dr. Ulrich Speidel

School of Computer Science

Room 303S.594 (City Campus)

The University of Auckland
u.speidel@auckland.ac.nz
http://www.cs.auckland.ac.nz/~ulrich/
****************************************************************




  parent reply	other threads:[~2025-09-25 20:09 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <175876550514.1555.8294777204829819629@gauss>
2025-09-25 17:45 ` Michael Richardson
2025-09-25 18:21   ` J Pan
2025-09-25 18:31   ` Marc Blanchet
2025-09-25 18:41     ` Spencer Sevilla
2025-09-25 18:53       ` David Lang
2025-09-25 18:55         ` Spencer Sevilla
2025-09-25 20:08   ` Ulrich Speidel [this message]
2025-09-26 13:11   ` Sebastian Moeller
     [not found] <175883435104.1555.15600582277556656536@gauss>
2025-09-25 21:32 ` Michael Richardson
2025-09-17 16:54 [Starlink] " the keyboard of geoff goodfellow
2025-09-17 18:20 ` [Starlink] " Inemesit Affia
2025-09-17 18:47   ` Frantisek Borsik
2025-09-17 19:04     ` Inemesit Affia
2025-09-17 23:02       ` Ulrich Speidel
2025-09-24 23:39         ` Luis A. Cornejo
2025-09-25 13:24         ` Inemesit Affia

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=91ccf1a3-5c78-4a57-8c16-e312c231b6a0@auckland.ac.nz \
    --to=u.speidel@auckland.ac.nz \
    --cc=starlink@lists.bufferbloat.net \
    /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