From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from au-smtp-delivery-117.mimecast.com (au-smtp-delivery-117.mimecast.com [103.96.23.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 134043CB45 for ; Sun, 14 May 2023 22:42:11 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=auckland.ac.nz; s=mimecast20200506; t=1684118529; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=q5J9769huRUq1kewbybtvb9kvaVp4RX/ga1YZOMCKsE=; b=EWO5N0GZEyklBAiuTgHUK35JdDCyrWxXm5PlDE6Zj1WlfFGdfXZwHS4uzSSPlJqHvr/0T/ nJf+LLDpXg6G7NVbHNGe5AvY3M40J7A70ZCfvKALxpyQkENIsuWPSd8Qsgfg2E8Cio5uq3 R7P/9feyl+BCgTu3SdHM4zZgshXkBcI= Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01lp2234.outbound.protection.outlook.com [104.47.71.234]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id au-mta-50-369zBqPSP7KCRp9gyOBJJQ-1; Mon, 15 May 2023 12:42:07 +1000 X-MC-Unique: 369zBqPSP7KCRp9gyOBJJQ-1 Received: from SY4PR01MB6979.ausprd01.prod.outlook.com (2603:10c6:10:142::13) by SY4PR01MB8534.ausprd01.prod.outlook.com (2603:10c6:10:1cf::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:42:01 +0000 Received: from SY4PR01MB6979.ausprd01.prod.outlook.com ([fe80::68d5:4e6b:745e:197e]) by SY4PR01MB6979.ausprd01.prod.outlook.com ([fe80::68d5:4e6b:745e:197e%7]) with mapi id 15.20.6387.030; Mon, 15 May 2023 02:42:01 +0000 Message-ID: Date: Mon, 15 May 2023 14:41:58 +1200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 To: David Lang Cc: "starlink@lists.bufferbloat.net" References: <0no84q43-s4n6-45n8-50or-12o3rq104n99@ynat.uz> <48b00469-0dbb-54c4-bedb-3aecbf714a1a@auckland.ac.nz> <728orr66-1432-751p-263q-sqopr12s20sq@ynat.uz> <077e6ad1-d7cc-2d57-39f8-e9646bea32a5@auckland.ac.nz> <09552rq0-0n24-0pqo-4085-n918r0n71138@ynat.uz> From: Ulrich Speidel In-Reply-To: <09552rq0-0n24-0pqo-4085-n918r0n71138@ynat.uz> X-ClientProxiedBy: SYCPR01CA0038.ausprd01.prod.outlook.com (2603:10c6:10:e::26) To SY4PR01MB6979.ausprd01.prod.outlook.com (2603:10c6:10:142::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SY4PR01MB6979:EE_|SY4PR01MB8534:EE_ X-MS-Office365-Filtering-Correlation-Id: c358625d-6696-425d-acbf-08db54edf5b8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: GhoKDHo1F2nAU9W+nEjuN5R6mBDqsfx4uRgpIsV4ArcDU63mGuVi6r6Iv1WlHlGgIzDfMe9K1KEoopjTFxPt1TGblhzpQI33l8lb6/LDOlFu/UWywD8OLvv3eEiO9+uMa34y0o/2IajVnxCNP/3f3BHSFNOXy8TqDFiG17DDiSlZ5GSpXZsL4ZWiOQDW7yEALqVui2kNDp8tEZ0/C1944keKkZmHl0WpgeIhe0i3+CPYqK9bBnFHTdMMfc27rmcpDkoGJMdW0gvr/iknjkJN85zfk9lguwWXwXF3nTryXttTDaSLJ1IqqRAD/S5UrxbgYTk6sAmwQ2rGHZ3wBpvf7Af/t95tX9NNReDtjo5Bb10mEwx6xMYUYKNbiLKjTu7fxUka/tsP74B9czJRLSdzBPqHQPQ8CnVsTwu5Knk5uWkXV2AVDhn7vrGtXvChS6KIa7k8mqloLZldSu+5MUjRjseBX9jQyVEzy/898Rv0mNcuHBjB2ZuyCOc0aVRm3NAMAFrvkzm4H0dQXwDtz2pDiI8OSCvcJkFWQC+3GYXzB2wsRUK4dQUeH7P0F7lZWz7TuGSgO55mV0Z7HJJWROWGkOsHQ8fYsiAgD/M0SedVu3lrbcfjCxvUHcBZn6WSVHoqu3Q/Eq6czznXDA5TPGHDqr+ubdOaZK3PEanjhfKBiVAfM3aRhTsPeoCIz4PhXkAh X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SY4PR01MB6979.ausprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(396003)(39860400002)(366004)(376002)(346002)(451199021)(478600001)(86362001)(66574015)(31696002)(83380400001)(6506007)(186003)(6512007)(53546011)(38100700002)(166002)(36756003)(33964004)(6666004)(6486002)(2616005)(966005)(30864003)(66556008)(66476007)(66946007)(2906002)(4326008)(6916009)(316002)(786003)(5660300002)(8936002)(8676002)(31686004)(41300700001)(43740500002)(45980500001); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WG9Qa2dOUXlyaTJGTzBWYUlQRG1ES1lPQWQySEVnUjlUNTVMRUVCVU10Ym9x?= =?utf-8?B?MVUrRVgzMnA3MnpsM1M1K1Zpc3VDMk9CZjFjYmN1OFFadUN5UHdBaUNzRmdF?= =?utf-8?B?TlFrSGJTSFBSZzZlZTJpWEw5djBLZEs5aStBUUc1NkJ4VG4yOFdTQmNHTXg2?= =?utf-8?B?aHFWUm9vQzdWQjdmM2VGQXhrY0tJYXdSQ2kyVFBpUGRRVTJmc0dtNVpaalJn?= =?utf-8?B?LzBuUis3Z1lCaDZtSzR3a0Jod24xdGlXcklCTGNsNytCaGEvZ1JTVTdGZFE0?= =?utf-8?B?RWIxd20wNG9yNVpNSyt6czNiSFhUVlJwcm9idWpsTEM3KzV5ZmJ3dldJYVVh?= =?utf-8?B?NmtDZGpVVWNRWE5ETG00bnJRVUNOVlduT2pMYzdUTktWa0pVaXpRa25QTnJW?= =?utf-8?B?WG4yRCtVc3hRV3ZScGhQZncwYjlGbW9mV0lmRGpWSjJXVTdvZUlKVHZGR1NN?= =?utf-8?B?K0tnU0tzbGNHalpRSmN2VlhmdTg1TW5VNEE5SlVYTEhiUkdrV1ZhTm5aVEx5?= =?utf-8?B?YTkyWHJyV0FqVnZEc1Q1Mzl3Ull0RThOR1p2Y3hGRm5UQXJZa2huY1hTT1lI?= =?utf-8?B?M1FwelhoWEt5L2JUMnJiVVZ0d0MxMkNmbkdGMll2WjJPK1ZqNlByd2pvTFBp?= =?utf-8?B?aElWWDhITDJCd1ZxVWVmcll0T2lkcUR5UkE2TVVJUXN2bEFIYWptKzMzeDkz?= =?utf-8?B?WVBpdjVQUG00VHdvYlhXd3dZMmVHeDZrYUx1OHc4ZFBJZnprZGx0bTRBTWs5?= =?utf-8?B?TC80d1VRKzRZSStYOHBpYkdNQ2NjZUwwSkx4bjJrblJPOUtIS3dtZnhuQUlL?= =?utf-8?B?cXJyVlhvaXh4V1dYT09ZWWNGZ254ekwvMXpaQWVYaDhXbDlGNmQrZG9Odm8w?= =?utf-8?B?cWx2cmNVa1M0TjZpKy9WVnMvR1VPNVRhU1F4RUlIUjRTK0FNekNBQVZ2V1M0?= =?utf-8?B?TjJQRUFXY0traVlpbW95NUc4RnpZMjc5cnZqZDlSaDN6VkhrVG1YZGQ2bVBD?= =?utf-8?B?M0pZZCszRWZCT0wvd1R5YmVabU9KRk1QcVRBYi9KT255eHN2TkkzQlFkSElV?= =?utf-8?B?VlZ4R0xwdEZsUHlBbytZR3ErTFRubk8yU2tBQzU1cm5YK0NmV0JSZms5SWtD?= =?utf-8?B?YlRsWEp2UkhQYnJwS1JlT0VXWlRTcll4eXFXQktwNVVXMk9YaVVXc2FWWTha?= =?utf-8?B?Y2pJYVNGd2hTQjNGMll0aFBlSytubFBTVXZ3SlRoT0U5enBIc1A5WmQrZVhW?= =?utf-8?B?T05VcitHM291MzlreHpyYk9UK0JLbEx2c1hjTHU4TExncllKeGlKaG1YVmJF?= =?utf-8?B?cGM3bHhuUFZjcUkva3UyMVpDNlBENlBDMkc1c1RFdGIydng4L09kRGVtQklm?= =?utf-8?B?UDV4eGdKYlZwMGtlZmJyVmRIbHpUbk9vUVZuMmpZN3JZUkg2cHRySUMvempu?= =?utf-8?B?NzAzSWl4QytvZGYvMXZnaGNockNtcUpWKzFySXVLRFNCVnREbkFta3FnbjRT?= =?utf-8?B?RElwTk0yRjEzMFgvcENyUUJPakZqVVpHMDZMUDB6WDAwalJoaEtoZUdxMkJX?= =?utf-8?B?M3NSL052UFlwVHpobVkrSlFORUdOMExvY294VnloWTZMeHpVbWh4ZjNnSThG?= =?utf-8?B?Y1BYR3VlTTl6MUJHQzRhT3pqYWJmWjljL0UyUVcwcytyMmRwd1JIbnNJc1hs?= =?utf-8?B?dEpKUE03b21sQlgvcGRFcXJ2a0RrTHhLUVY3MUYxdWVpWlVXQ21WK3JtOVdp?= =?utf-8?B?ODZpZW80OGRFcFNlZ1FQc2dRd2dzQmRINWRzbzNjOGR2VGh5R3VSMlM4cnUv?= =?utf-8?B?bWNITXBXbmNGY2w0LzV2RURZTUI5OXRvL25EMGZveU1xNXR5M2pVaDhtUVVO?= =?utf-8?B?eUtMWVpzYVVQOXhPL3JCWDIrMnlNTFB4TVdkSXE5dVJqbzVUN3ZKRGlUcFNk?= =?utf-8?B?czM3SEVqR3JPNVlmT3B6ZXhEbmFTdHhEWFRjU2orS2lYTWduckY1eVBQcWtG?= =?utf-8?B?dXc3NDJEU29SaU9PSWkvbGdRYnBTbENqSGE3YlMxSnFEeEEvMGpON2duWFht?= =?utf-8?B?elhMc29OVllxeDhYZDlEdFdCSFl0dElKL0tUM1M0Smw5UzJ6MTI4SDhmWnJr?= =?utf-8?B?VXVDbldhVnIzTFlQVllMUUF5NXFzNVdDN1lpQnFBSERxTXl2NXA3TC9aYkJr?= =?utf-8?B?Tm10YTJTRDc4dktGdkNKL3hCS0RNbW44L2ZtVFJuR0pTSWR1WERYRWxwalRm?= =?utf-8?B?WmtqNncxMVZSWklTa3NKWnB2eVl3PT0=?= X-OriginatorOrg: auckland.ac.nz X-MS-Exchange-CrossTenant-Network-Message-Id: c358625d-6696-425d-acbf-08db54edf5b8 X-MS-Exchange-CrossTenant-AuthSource: SY4PR01MB6979.ausprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:42:01.1608 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d1b36e95-0d50-42e9-958f-b63fa906beaa X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mR39Nr29bImExSBGL+5IsEbolncxvnXPl60bh4FRcwULBr4lw8HXwJVszAX6W6leOMhmQOChbW14mToFslkrbZa/122VPDiSw6svJBeQSso= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY4PR01MB8534 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: auckland.ac.nz Content-Type: multipart/alternative; boundary="------------VwbT1EGtcBCJZU8Ekgvkz7Lo" Content-Language: en-US Subject: Re: [Starlink] Starlink hidden buffers X-BeenThere: starlink@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Starlink has bufferbloat. Bad." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 May 2023 02:42:12 -0000 --------------VwbT1EGtcBCJZU8Ekgvkz7Lo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 14/05/2023 9:00 pm, David Lang wrote: > On Sun, 14 May 2023, Ulrich Speidel wrote: > > >> I just discovered that someone is manufacturing an adapter so you=20 > no longer > >> have > >> to cut the cable > >> > >>=20 > https://www.amazon.com/YAOSHENG-Rectangular-Adapter-Connect-Injector/dp/B= 0BYJTHX4P=20 > =20 > > >>=20 > > > >> > > I'll see whether I can get hold of one of these. Cutting a cable on a > > university IT asset as an academic is not allowed here, except if it=20 > doesn't > > meet electrical safety standards. > > > > Alternatively, has anyone tried the standard Starlink Ethernet=20 > adapter with a > > PoE injector instead of the WiFi box? The adapter above seems to be=20 > like the > > Starlink one (which also inserts into the cable between Dishy and=20 > router). > > that connects you a 2nd ethernet port on the router, not on the dishy > > I just ordered one of those adapters, it will take a few weeks to arrive. How do we know that the Amazon version doesn't do the same? > > >> > Put another way: If you have a protocol (TCP) that is designed to > >> > reasonably > >> > expect that its current cwnd is OK to use for now is put into a=20 > situation > >> > where there are relatively frequent, huge and lasting step changes i= n > >> > available BDP within subsecond periods, are your underlying=20 > assumptions > >> > still > >> > valid? > >> > >> I think that with interference from other APs, WIFI suffers at=20 > least as much > >> unpredictable changes to the available bandwidth. > > > Really? I'm thinking stuff like the sudden addition of packets from > > potentially dozens of TCP flows with large cwnd's? > > vs losing 90% of your available bandwidth to interference?? I think=20 > it's going > to be a similar problem Hm. Not convinced, but I take your point... > > >> > >> > I suspect they're handing over whole cells, not individual users,=20 > at a > >> time. > >> > >> I would guess the same (remember, in spite of them having launched=20 > >4000 > >> satellites, this is still the early days, with the network changing=20 > as more > >> launching) > >> > >> We've seen that it seems that there is only one satellite serving=20 > any cell > >> one time. > > > But the reverse is almost certainly not true: Each satellite must serve > > multiple cells. > > true, but while the satellite over a given area will change, the usage=20 > in that > area isn't changing that much Exactly. But your underlying queue sits on the satellite, not in the area. > > >> But remember that the system does know how much usage there is in the > >> cell before they do the handoff. It's unknown if they do anything with > >> that, or > >> if they are just relaying based on geography. We also don't know=20 > what the > >> bandwidth to the ground stations is compared to the dishy. > > > Well, we do know for NZ, sort of, based on the licences Starlink has=20 > here. > > what is the ground station bandwith? https://rrf.rsm.govt.nz/ui/search/licence - seach for "Starlink" ...all NZ licences in all their glory. Looking at Starlink SES=20 (satellite earth station) TX (which is the interesting direction I guess): - Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 29750.000000 TX=20 (BW =3D 500 MHz) - Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 28850.000000 TX=20 (BW =3D 500 MHz) - Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 28350.000000 TX=20 (BW =3D 500 MHz) - Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 28250.000000 TX=20 (BW =3D 500 MHz) - Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 27750.000000 TX=20 (BW =3D 500 MHz) So 2.5 GHz up, licensed from 6 ground stations. Now I'm not convinced=20 that they would use all of those from all locations simultaneously=20 because of the risk of off-beam interference. They'll all be=20 transmitting south, ballpark. If there was full re-use at all ground=20 stations, we'd be looking at 15 GHz. If they are able to re-use on all=20 antennas at each ground station, then we're looking at 9 golf balls each=20 in Puwera, Te Hana, Clevedon, Hinds and Cromwell, and an unknown number=20 at Awarua. Assuming 9 there, we'd be looking at 135 GHz all up max. Awarua and Cromwell are 175 km apart, Hinds another 220 km from=20 Cromwell, then it's a hop of about 830 km to Clevedon, and from there=20 another 100 km to Te Hana, which is another 53 km from Puwera, so=20 keeping them all out of each other's hair all the time might be a bit=20 difficult. Lots of other interesting info in the licenses, such as EIRP, in case=20 you're wanting to do link budgets. > > >> And remember that for every cell that a satellite takes over, it's=20 > also > >> giving away one cell at the same time. > > > Yes, except that some cells may have no users in them and some of=20 > them have a > > lot (think of a satellite flying into range of California from the=20 > Pacific, > > dropping over-the-water cells and acquiring land-based ones). > > >> I'm not saying that the problem is trivial, but just that it's not=20 > unique > > > What makes me suspicious here that it's not the usual bufferbloat=20 > problem is > > this: With conventional bufferbloat and FIFOs, you'd expect standing=20 > queues, > > right? With Starlink, we see the queues emptying relatively=20 > occasionally with > > RTTs in the low 20 ms, and in some cases under 20 ms even. With=20 > large ping > > packets (1500 bytes). > > it's not directly a bufferbloat problem, bufferbloat is a side effect=20 > (At most) > > we know that the avaialble starlink bandwidth is chopped into=20 > timeslots (sorry, > don't remember how many), and I could see the possibility of there=20 > being the > same number of timeslots down to the ground station as up from the=20 > dishies, and > if the bottleneck is at the uplink from the ground station, then=20 > things would > queue there. > > As latency changes, figuring out if it's extra distance that must be=20 > traveled, > or buffering is hard. does the latency stay roughly the same until the=20 > next > satellite change? or does it taper off? Good question. You would expect step changes in physical latency between=20 satellites, but also gradual change related to satellite movement. Plus=20 of course any rubble thrown into any queue by something suddenly turning=20 up on that path. Don't forget that it's not just cells now, we're also=20 talking up- and downlink for the laser ISLs, at least in some places. > > If it stays the same, I would suspect that you are actually hitting a=20 > different > ground station and there is a VPN backhaul to your egress point to the=20 > regular > Internet (which doesn't support mobile IP addresses) for that cycle.=20 > If it > tapers off, then I could buy bufferbloat that gets resolved as TCP=20 > backs off. Yes, quite sorting out which part of your latency is what is the million=20 dollar question here... We saw significant RTT changes here during the recent cyclone over=20 periods of several hours, and these came in steps (see below), with the=20 initial change being a downward one. Averages are over 60 pings (the=20 time scale isn't 100% true as we used "one ping, one second" timing) here. We're still not sure whether to attribute this to load change or ground=20 station changes. There were a lot of power outages, especially in=20 Auckland's lifestyle block belt, which teems with Starlink users, but=20 all three North Island ground stations were also in areas affected by=20 power outages (although the power companies concerned don't provide the=20 level of detail to establish whether they were affected). It's also not=20 clear what, if any, backup power arrangements they have). At ~25 ms, the=20 step changes in RTT are too large be the result of a switch in ground=20 stations, though, the path differences just aren't that large. You'd=20 also expect a ground station outage to result in longer RTTs, not=20 shorter ones, if you need to re-route via another ground station. One=20 explanation might be users getting cut off if they relied on one=20 particular ground station for bent pipe ops - but that would not explain=20 this order of magnitude effect as I'd expect that number to be small. So=20 maybe power outages at the user end after all. But that would then tell=20 us that these are load-dependent queuing delays. Moreover, since those=20 load changes wouldn't have involved the router at our site, we can=20 conclude that these are queue sojourn times in the Starlink network. > > my main point in replying several messages ago was to point out other=20 > scenarios > where the load changes rapidly and/or the available bandwidth changes=20 > rapidly. > And you are correct that it is generally not handled well by common=20 > equipment. > > I think that active queue management on the sending side of the=20 > bottleneck will > handle it fairly well. It doesn't have to do calculations based on=20 > what the > bandwidth is, it just needs to know what it has pending to go out. Understood - but your customer for AQM is the sending TCP client, and=20 there are two questions here: (a) Does your AQM handle rapid load=20 changes and (b) how do your TCP clients actually respond to your AQM's=20 handling? > > David Lang --=20 **************************************************************** Dr. Ulrich Speidel School of Computer Science Room 303S.594 (City Campus) The University of Auckland u.speidel@auckland.ac.nz =20 http://www.cs.auckland.ac.nz/~ulrich/ **************************************************************** --------------VwbT1EGtcBCJZU8Ekgvkz7Lo Content-Type: multipart/related; boundary="------------TJoyp0JF1noXUbYNz9OLlfby" --------------TJoyp0JF1noXUbYNz9OLlfby Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On 14/05/2023 9:00 pm, David Lang wrote:
=20 On Sun, 14 May 2023, Ulrich Speidel wrote:

>> I just discovered that someone is manufacturing an adapter so you no longer
>> have
>> to cut the cable
>>
>> https://www.ama= zon.com/YAOSHENG-Rectangular-Adapter-Connect-Injector/dp/B0BYJTHX4P
>> <https://www= .amazon.com/YAOSHENG-Rectangular-Adapter-Connect-Injector/dp/B0BYJTHX4P= >
>>
> I'll see whether I can get hold of one of these. Cutting a cable on a
> university IT asset as an academic is not allowed here, except if it doesn't
> meet electrical safety standards.
>
> Alternatively, has anyone tried the standard Starlink Ethernet adapter with a
> PoE injector instead of the WiFi box? The adapter above seems to be like the
> Starlink one (which also inserts into the cable between Dishy and router).

that connects you a 2nd ethernet port on the router, not on the dishy

I just ordered one of those adapters, it will take a few weeks to arrive.
How do we know that the Amazon version doesn't do the same?

>> > Put another way: If you have a protocol (TCP) that is designed to
>> > reasonably
>> > expect that its current cwnd is OK to use for now is put into a situation
>> > where there are relatively frequent, huge and lasting step changes in
>> > available BDP within subsecond periods, are your underlying assumptions
>> > still
>> > valid?
>>
>> I think that with interference from other APs, WIFI suffers at least as much
>> unpredictable changes to the available bandwidth.

> Really? I'm thinking stuff like the sudden addition of packets from
> potentially dozens of TCP flows with large cwnd's?

vs losing 90% of your available bandwidth to interference?? I think it's going
to be a similar problem
Hm. Not convinced, but I take your point...

>>
>> > I suspect they're handing over whole cells, not individual users, at a
>> time.
>>
>> I would guess the same (remember, in spite of them having launched >4000
>> satellites, this is still the early days, with the network changing as more
>> launching)
>>
>> We've seen that it seems that there is only one satellite serving any cell
>> one time.

> But the reverse is almost certainly not true: Each satellite must serve
> multiple cells.

true, but while the satellite over a given area will change, the usage in that
area isn't changing that much
Exactly. But your underlying queue sits on the satellite, not in the area.

>> But remember that the system does know how much usage there is in the
>> cell before they do the handoff. It's unknown if they do anything with
>> that, or
>> if they are just relaying based on geography. We also don't know what the
>> bandwidth to the ground stations is compared to the dishy.

> Well, we do know for NZ, sort of, based on the licences Starlink has here.

what is the ground station bandwith?

https://rrf.rsm.govt.nz/ui/search/licence - seach for= "Starlink"

...all NZ licences in all their glory. Looking at Starlink SES (satellite earth station) TX (which is the interesting direction I guess):

- Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 29750.000000 TX (BW =3D 500 MHz)
- Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 28850.000000 TX (BW =3D 500 MHz)
- Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 28350.000000 TX (BW =3D 500 MHz)
- Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 28250.000000 TX (BW =3D 500 MHz)
- Awarua, Puwera, Hinds, Clevedon, Cromwell, Te Hana: 27750.000000 TX (BW =3D 500 MHz)

So 2.5 GHz up, licensed from 6 ground stations. Now I'm not convinced that they would use all of those from all locations simultaneously because of the risk of off-beam interference. They'll all be transmitting south, ballpark. If there was full re-use at all ground stations, we'd be looking at 15 GHz. If they are able to re-use on all antennas at each ground station, then we're looking at 9 golf balls each in Puwera, Te Hana, Clevedon, Hinds and Cromwell, and an unknown number at Awarua. Assuming 9 there, we'd be looking at 135 GHz all up max.

Awarua and Cromwell are 175 km apart, Hinds another 220 km from Cromwell, then it's a hop of about 830 km to Clevedon, and from there another 100 km to Te Hana, which is another 53 km from Puwera, so keeping them all out of each other's hair all the time might be a bit difficult.

Lots of other interesting info in the licenses, such as EIRP, in case you're wanting to do link budgets.


>> And remember that for every cell that a satellite takes over, it's also
>> giving away one cell at the same time.

> Yes, except that some cells may have no users in them and some of them have a
> lot (think of a satellite flying into range of California from the Pacific,
> dropping over-the-water cells and acquiring land-based ones).
>> I'm not saying that the problem is trivial, but just that it's not unique

> What makes me suspicious here that it's not the usual bufferbloat problem is
> this: With conventional bufferbloat and FIFOs, you'd expect standing queues,
> right? With Starlink, we see the queues emptying relatively occasionally with
> RTTs in the low 20 ms, and in some cases under 20 ms even. With large ping
> packets (1500 bytes).

it's not directly a bufferbloat problem, bufferbloat is a side effect (At most)

we know that the avaialble starlink bandwidth is chopped into timeslots (sorry,
don't remember how many), and I could see the possibility of there being the
same number of timeslots down to the ground station as up from the dishies, and
if the bottleneck is at the uplink from the ground station, then things would
queue there.

As latency changes, figuring out if it's extra distance that must be traveled,
or buffering is hard. does the latency stay roughly the same until the next
satellite change? or does it taper off?
Good question. You would expect step changes in physical latency between satellites, but also gradual change related to satellite movement. Plus of course any rubble thrown into any queue by something suddenly turning up on that path. Don't forget that it's not just cells now, we're also talking up- and downlink for the laser ISLs, at least in some places.

If it stays the same, I would suspect that you are actually hitting a different
ground station and there is a VPN backhaul to your egress point to the regular
Internet (which doesn't support mobile IP addresses) for that cycle. If it
tapers off, then I could buy bufferbloat that gets resolved as TCP backs off.

Yes, quite sorting out which part of your latency is what is the million dollar question here...

We saw significant RTT changes here during the recent cyclone over periods of several hours, and these came in steps (see below), with the initial change being a downward one. Averages are over 60 pings (the time scale isn't 100% true as we used "one ping, one second" timing) here.


We're still not sure whether to attribute this to load change or ground station changes. There were a lot of power outages, especially in Auckland's lifestyle block belt, which teems with Starlink users, but all three North Island ground stations were also in areas affected by power outages (although the power companies concerned don't provide the level of detail to establish whether they were affected). It's also not clear what, if any, backup power arrangements they have). At ~25 ms, the step changes in RTT are too large be the result of a switch in ground stations, though, the path differences just aren't that large. You'd also expect a ground station outage to result in longer RTTs, not shorter ones, if you need to re-route via another ground station. One explanation might be users getting cut off if they relied on one particular ground station for bent pipe ops - but that would not explain this order of magnitude effect as I'd expect that number to be small. So maybe power outages at the user end after all. But that would then tell us that these are load-dependent queuing delays. Moreover, since those load changes wouldn't have involved the router at our site, we can conclude that these are queue sojourn times in the Starlink network.


my main point in replying several messages ago was to point out other scenarios
where the load changes rapidly and/or the available bandwidth changes rapidly.
And you are correct that it is generally not handled well by common equipment.

I think that active queue management on the sending side of the bottleneck will
handle it fairly well. It doesn't have to do calculations based on what the
bandwidth is, it just needs to know what it has pending to go out.
Understood - but your customer for AQM is the sending TCP client, and there are two questions here: (a) Does your AQM handle rapid load changes and (b) how do your TCP clients actually respond to your AQM's handling?

David Lang
--=20
****************************************************************
Dr. Ulrich Speidel

School of Computer Science

Room 303S.594 (City Campus)

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



--------------TJoyp0JF1noXUbYNz9OLlfby Content-Type: image/png; name="gabrielle_rtt_pl.png" Content-Disposition: inline; filename="gabrielle_rtt_pl.png" Content-Id: Content-Transfer-Encoding: base64 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 LwAAAABJRU5ErkJggg== --------------TJoyp0JF1noXUbYNz9OLlfby-- --------------VwbT1EGtcBCJZU8Ekgvkz7Lo--