[HN Gopher] Building a Space-Based ISP
___________________________________________________________________
Building a Space-Based ISP
Author : dinosaurs
Score : 105 points
Date : 2021-05-12 06:51 UTC (16 hours ago)
(HTM) web link (stackoverflow.blog)
(TXT) w3m dump (stackoverflow.blog)
| nynx wrote:
| Starlink is super exciting from an emerging technologies
| perspective ---- (relatively) cheap satellite production,
| commercialized laser links, commercialized phased-array tx/rs,
| among others. These open up very interesting possibilities down
| the road.
|
| These posts always have a thread about people wanting to work for
| spacex, but because of my pseudo-anonymity, I don't feel bad
| about starting it: Does anyone know if spacex does fall or spring
| embedded software internships?
| lutorm wrote:
| https://www.spacex.com/internships/
| nynx wrote:
| Unfortunately, it still says summer 2021.
| p1mrx wrote:
| I think the most exciting part is their use of electric ion
| propulsion to maintain low earth orbit. If SpaceX ever goes
| bankrupt or something, the satellites will passively deorbit
| within 5 years or so.
| marsokod wrote:
| No need for that actually. They will deorbit within a year if
| left completely dead, and within a couple of month if they
| have a single button "start deorbiting" that uses the
| electric propulsion.
|
| But more importantly, their propulsion allows them to launch
| at a very low orbit. This is a very good method for a
| constellation as they can see all the early failures (the
| beginning of the bathtub curve) happen at a very low orbit
| and reduce the cost of ground testing.
|
| Their orbital debris management strategy is one of the best I
| have seen.
| cryptonector wrote:
| And launching to lower orbits means higher payload to orbit
| per launch which means they can launch more of their
| constellation per launch. (Although they probably a larger
| constellation at those orbits just due to how short the
| orbital periods are.)
| mnd999 wrote:
| Puff piece. Starlink is fundamentally not about providing
| broadband to anyone. It's landgrabbing a finite resource - low-
| earth orbit space - before it's worth is recognised by those who
| should be regulating it.
|
| The broadband itself might be nice or it might be awful. It
| doesn't actually matter because that was never the point.
| admissionsguy wrote:
| Is it scarce, though? Couldn't you put more constellations at
| the same orbits +/- a couple of kms? In any case, I would
| expect the spectrum rights to be much scarcer than the space,
| and they are well regulated.
| cryptonector wrote:
| Exactly, spectrum is the scarce resource here, and it already
| is regulated. There is no need for additional regulation
| regarding that, and there already is regulation of orbits
| between FCC and FAA.
| zlynx wrote:
| It is about making money. Starlink is a money generating system
| that makes use of low cost launch made possible by SpaceX.
|
| If it does use up most of the low orbit space it is because
| SpaceX is the only company that is even capable of launching
| that many satellites and making money on it. Until there is
| another challenger there is zero point in complaining, because
| competition is not even an option.
|
| Since it is low orbit it is self limiting problem. Any low
| orbit satellite has a limited lifetime of a few years without
| power.
| Diederich wrote:
| > Starlink is fundamentally not about providing broadband to
| anyone.
|
| This reply brought to you over a robust, fast, low latency and
| reliable Starlink connection.
| kevin_thibedeau wrote:
| Wait til you have 1000 neighbors vying for bandwidth.
| benlivengood wrote:
| The most pessimistic estimate I've seen paid for by the
| cable industry is here: https://ecfsapi.fcc.gov/file/102081
| 68836021/FBA_LEO_RDOF_Ass...
|
| Only if each subscriber is using an average of 15-20 Mbps
| during peak times will about 50% of subscribers see some
| throttling.
|
| Interestingly they only showed a single graph of average
| bandwidth over time from a cable company to estimate needs
| for SpaceX. No clue if they actually separated it out by
| time zone for each coverage area in their actual analysis.
| Diederich wrote:
| Starlink isn't about directly competing against high
| density fiber connected internet. It's about everyone else.
| ctdonath wrote:
| And cheap. $99/mo for competitive data service literally
| anywhere is amazingly cheap.
| ctdonath wrote:
| Right, it's not about taking a major share & expansion of a
| trillion-dollar industry with payout starting immediately, it's
| about staking out a thin fraction of (literally) empty space
| and waiting decades for others to start needing small portions
| of it.
|
| Because $99/month * 12 months * 10 years * 1,000,000,000
| customers = $11.88T isn't the point to a man who literally
| needs a trillion dollars to pull off the grandest mega-project
| ever.
| cryptonector wrote:
| It's not clear what you're saying. Are you saying that SpaceX
| will end up consuming too much of a precious resource? Or
| something else?
|
| Anyways, I don't buy that SpaceX will end up consuming too
| much of a precious resource. Even if it were so, what would
| be a fair way to share that resource, and who even with?!
| There's only one announced competitor to Starlink at this
| time, and they're not even remotely close to being
| operational. What makes SpaceX able to put up Starlink at
| such low cost (compared to its earning potential) is that
| SpaceX has lowered launch costs for itself (and others) by a
| lot, and they're working to lower those costs even more. What
| is "fair" when a company works so hard to lower costs and
| increase availability? Is it to punish them so others get a
| chance to compete at higher costs??
| ctdonath wrote:
| Sorry about the mess, that comment was dripping with
| sarcasm.
|
| 1. There's a lot of room up there, and actually claiming &
| using it is a normal process for civilizing frontiers.
|
| 1b. Handwaving about "underappreciated precious resources"
| is a waste of opportunity. I get the sentiment, but belongs
| in the 3rd part of the aphorism "lead, follow, or get out
| of the way."
|
| 2. Saying "SpaceX isn't in it for the money" is ridiculous,
| considering they could gross >$10T in the next decade with
| it, at ridiculously low expenditure.
|
| 2b. In that timeframe, other businesses would be just
| barely starting to seek out a small fraction of that
| "precious resource".
| cryptonector wrote:
| Thank you!
| ctdonath wrote:
| Additional napkin math:
|
| If we're going to take the "precious resource" argument
| seriously, let's. One Starlink satellite can earn
| ~$25M/year, setting the value of that slot. This seems a
| reasonable value for LEO "homesteading"; if someone wants
| it, that's a fair price to pay. And I do mean fair,
| seeing as it's SpaceX inventing the technology, building
| the satellites, staking claims, and otherwise being
| first-mover and pioneer of LEO on a colonizing scale (so
| to speak). That includes the value of serving 25,000
| people per satellite at $100/month. Want that orbital
| property? pay the trailblazer that made that parcel
| valuable. (As for "Earth's population has a fair share" -
| no, they didn't do squat for it beyond what one was
| already paid for to get SX there. Anyone is free to go
| there now and lay claim. Government involvement should be
| nothing more than collecting cost of tracking claims and
| resolving disputes.)
| wmf wrote:
| I guess orbital space could be auctioned instead of
| homesteaded but SpaceX could probably afford to outbid
| Kepler and OneWeb anyway.
| cryptonector wrote:
| Then we get to argue whether they'd pay the U.S., the UN,
| or... some other entity. Naturally the U.S. gets to tax
| space access by U.S. businesses, but let's not kid
| ourselves, it'd be just a tax and wouldn't benefit the
| public consumer of space-based networking nor SpaceX's
| competitors. An auction would be a lot like a tax where
| you can lose the opportunity, and where the tax can be
| upbid a great deal.
|
| No, sorry, I think as long as SpaceX continues to work to
| lower costs and increase access then to get in their way
| would be a terrible mistake.
| generalizations wrote:
| It's a cynical perspective, but the downvotes are unwarranted.
| It's worth comparing to McDonalds, where a large proportion of
| the corporation's worth is in the real estate they hold.
| lucb1e wrote:
| Okay but it's not as if mcdonald's bought the land under
| false pretenses and now uses it for any purpose since it's
| theirs. Claiming that the internet access is just a pretense
| for "land" grabbing when the company neither owns the space
| afterwards nor can switch businesses to something more
| nefarious and lucrative with the existing devices... it makes
| no sense.
| jsharf wrote:
| The alternative is waiting literally 10-20 years for anyone
| else to catch up.
| cryptonector wrote:
| Or, hey! slow SpaceX down with regulation!1!!
| wmf wrote:
| So what is the high-value use of low-earth orbit other than
| broadband and why doesn't SpaceX do that directly?
| HALtheWise wrote:
| The article ends with this nugget about C++ shared memory state
| management, but I don't have the background to know exactly what
| they're referring to. Does anyone recognize this pattern and feel
| able to explain it to mere mortals?
|
| > "We also have different tools so that any state that is
| persisted through the application is managed in a very particular
| place in memory. This lets us know it is being properly shared
| between the computers. What you don't want is a situation where
| one of the computers takes a radiation hit, a bit flips, and it's
| not in a shared memory with the other computers, and it can kind
| of run off on its own."
| azernik wrote:
| Essentially:
|
| They have one address range for shared (i.e. subject to syncing
| across all replicas) memory, and a separate one for non-shared
| (single-replica) memory.
|
| Cross-replica data is presumably subject to their agreement
| algorithm, checking that the different computers reach the same
| (within some error bars) results; you want to arrange things so
| that there are frequent checkpoints at which the conflict
| resolution system can say "a bad write happened at this point,
| I should disregard whatever this computer said from that point
| until it recovers".
|
| i.e. you want local memory to use as scratch space for
| performance reasons, but to make sure that there isn't a long
| runway for errors to happen and decisions to be made before the
| shared-memory checker notices a mistake. To ensure this
| happens, you want manual control over which memory allocator
| handles which data.
| HALtheWise wrote:
| That makes sense. One part I'm still not clear on is how you
| accomplish a "restore" to fix the broken state of a process
| with a bitflip. Is it enough to simply copy all the shared
| state memory over as a block and jump into executing it? That
| seems like it would require the invariant that shared memory
| never references private memory, and I'm not sure how to
| statically enforce that.
| azernik wrote:
| "Restore" is reboot. Usually these are called "watchdog
| circuits", which you may have heard of from more mundane
| embedded applications.
|
| Once you've rebooted, yeah, you need to copy over the
| shared state from another of the processes.
| ncmncm wrote:
| You probably have hardware that watches ECC flags. For a
| correctable one-bit flip, it triggers a read-and-then-
| write. For a two-bit flip, it might just kill and restart
| the process, or reset the whole machine. As long as it
| doesn't happen too often, it's fine: the whole system
| (constellation and ground nodes) are designed to
| accommodate such events.
| ncmncm wrote:
| This is very common when controlling equipment in C++.
|
| Technically, all C++ programs control equipment. Differences
| include that one program may run for weeks or even years, and
| is mostly the only program running, or the only one on a core.
| This happens from microcontrollers on up to servers with a TB
| of RAM running, say, high-frequency trading, and in networks of
| hundreds of those, running weather simulations.
|
| The program typically does all its heap allocation at startup.
| There is no reference-counting _std::shared_ptr_. You might
| have lots of _std::vector <std::unique_ptr<T>>_, _std::string_
| , the works, but they all get provisioned in the first second
| or two, and then just used thereafter. If anything goes wrong,
| you don't try to do anything clever or sophisticated; you just
| kill and restart, or even re-boot, and start over from scratch.
| That is fine if it doesn't happen too often, so you make sure
| it doesn't.
|
| For communication between programs, some of the memory set up
| is shared, with a header containing _std::atomic
| <std::uint64_t>_ sequence counters that each process can watch
| and compare against its last copy to know when something
| changed. Most commonly, actual messages show up on a ring
| buffer, so you don't need to act on them immediately; as long
| as you pick them up before they get lapped, you're good. If you
| get lapped, you might need to reset the whole system; so you
| make sure not to get lapped, by making the ring buffers big
| enough and by picking up messages soon enough. With big enough
| ring buffers and careful scheduling, you can leave all the bulk
| data there and just use it before it gets overwritten, avoiding
| expensive copies.
|
| Often, once the program starts up, it does no more system calls
| at all, doing all its work by reading and writing shared
| memory, and maybe poking at hardware registers. On Linux one
| usually isolates cores doing this, with "isolcpus=..." on boot,
| and "nohz_full=...", "rcu_nocbs=...", "rcu_nocb_poll" etc. The
| ring buffers tend to live in hugepages ("hugepages=50000"),
| often just files opened in /dev/hugepages. This is all a
| simpler alternative to a
| unikernel/parakernel/demikernel/blatherkernel.
|
| You might _also_ have ephemeral processes that run just long
| enough to do a job and then quit, running on their own pool of
| cores and using their own pool of memory. This is usually how
| you administer the system: ssh in, look around, exit.
| cute_boi wrote:
| "Starlink is currently in orbit at 340 miles"
|
| Can we please stop using miles etc :( I am tired when people
| makes mistake like this.
| ncmncm wrote:
| Yes, the useful unit is light-milliseconds: $
| units You have: 340 mi You want: light ms
| * 1.8251859 / 0.5478894
|
| So, 3.6 ms round-trip. In practice, the route will be slanted,
| so could just exceed 5 ms. $ sudo apt install
| units
|
| Once the constellation is mature, certain _very-high-paying_
| subscribers will get the packets forwarded from one satellite
| to the next via laser links, across oceans, before being
| downlinked, and get there a few ms before packets dawdling
| along on fiber links below 0.7c, to trigger securities trades
| ahead of the crowd acting on now-ancient information. The time
| by fiber from Singapore to New York is on the order of 90 ms,
| where Starlink ought to get them there in well under 70 ms,
| leaving a good 20 ms to arbitrage. In investment banking, they
| say " _a microsecond is an eon, a millisecond is an eternity_
| ".
|
| Even just between New York and London, they can gain a few ms
| headway, enough to dominate.
|
| It would not be surprising if the US military, and maybe some
| others, will have access to satellite-to-satellite routing.
| (They have their own WGS, "Wideband Global SATCOM", but it is
| GEO, thus high-latency.)
|
| AFAIK, only the polar-orbit nodes have inter-satellite laser
| links, thus far, so this is a phenomenon of the near future,
| not the present. Other things to expect in the near future are
| lofting them with a few TB of storage, to minimize uplink
| bandwidth by edge-serving Disney and Netflix blockbusters; and
| multicast downlinks for real-time soccer games and maybe even
| time-binned shows.
| nonameiguess wrote:
| Military already has this:
| https://en.wikipedia.org/wiki/Wideband_Global_SATCOM
|
| The SpaceX edge here is making this kind of thing cheaper and
| scalable to the point that a global community of hundreds of
| millions of users can multiplex signals on it, but for a
| sufficiently well-funded organization with fewer users, it
| was already possible.
| izend wrote:
| The military system is orbiting at 32,000km, the latency is
| much higher than Starlink.
| cryptonector wrote:
| Why was this downvoted though?
| ncmncm wrote:
| This one guy watches and downvotes everything I post,
| lately.
| NetOpWibby wrote:
| And continues to, welp. Someone apparently has time
| today.
| VWWHFSfQ wrote:
| what should they use
| azernik wrote:
| Kilometers.
|
| If they're writing for a US audience and absolutely need
| miles, put one or the other in parens after the "main" one.
| krapht wrote:
| People who get irritated over units of measure are
| themselves irritating. It is not so hard to round, double
| it 4 times and then divide by 10.
| skissane wrote:
| When US-based companies put things in US measurements and
| don't provide metric conversions, it makes me (as a non-
| American) feel like they aren't thinking about their non-
| US customers. It appears parochial.
|
| Miles I can roughly convert in my head, but I have really
| no idea what a gallon or a fluid ounce is. I remember a
| pound is a bit under 500 grams but can't remember how
| many ounces in a pound. Fahrenheit to Celsius, I know
| there is a 5/9 and a 32 involved, but I don't remember
| exactly what to do with them.
|
| What makes it worse here is that the original measurement
| was in kilometres - kilometres are the standard unit for
| measuring orbital altitudes in the space industry, even
| in the US-based space industry - and someone has gone to
| the trouble of converting that to miles and then omitting
| to include the original measurement.
| lutorm wrote:
| For practical purposes, I get by 99% of the time with 1
| (statute) mile == 1.5km.
| cryptonector wrote:
| The conversion factor is very close to the golden number,
| so if you just remember the Fibonacci sequence up to
| around 89 you'll be able to do mental conversions easily
| enough.
|
| E.g., what's 65mph in kmh? Well, the nearest Fibonacci
| number to 65 is 55, so 65 == 55 + 10, and the next
| Fibonacci number to 55 is 89, so 65mph will be 89kmh +
| ??, now we turn to 10mph and notice it's 8 + 2, so it's
| really 13kmh + 3kmh, which brings us to 65mph ~= 89kmh +
| 13kmh + 3kmh = 105kmh. My calculator says the actual
| conversion of 65mph to kmh is 104.60736, so... that's
| really close!
|
| This is a very fun little mental exercise to do.
| Obviously it works in both directions.
|
| Let's apply it to 340mi. The bracketing Fb numbers are
| 233 and 377. 377 - 340 == 33. Next after 377 is 610, so
| 377mi ~= 610km. Next after 33 is 55, so 340mi = 377mi -
| 33mi ~= 610km - 55km = 555km. My calculator says it's
| 547.17696km. Close!!
___________________________________________________________________
(page generated 2021-05-12 23:01 UTC)