我们应该为不稳定的网络进行设计吗?
Should we design for iffy internet?

原始链接: https://bytes.zone/posts/should-we-design-for-iffy-internet/

2025年6月,布莱恩·希克斯分析了美国的互联网接入情况,为软件设计决策提供信息。虽然约97%的美国家庭拥有某种形式的互联网接入,但速度仍然是一个关键问题。作者将稳定的互联网定义为至少具有25Mbps下载速度和3Mbps上传速度的陆地连接。FCC的数据显示,在城市地区达到这一标准很常见,但在农村地区则要少得多。如果期望连接速度达到250/25 Mbps,则城市以外地区的覆盖率会大幅下降。 教育部的数据显示,2021年,虽然超过97%的学生拥有*某种*互联网接入,但近300万学生仅拥有智能手机接入,这意味着带宽有限。对于最低收入的四分之一人口而言,仍有5.6%的人缺乏互联网接入。 作者建议不要假设普遍存在高速互联网。应考虑您的软件在低速连接和计量网络上的性能,尤其是在农村地区。这项分析侧重于美国,并且没有考虑延迟问题,但要点仍然是:在软件设计中,可访问性应该是一个优先事项。

Hacker News 的讨论集中在设计即使在不可靠的网络连接下也能良好运行的网站和应用程序的重要性。一些用户分享了他们在网络信号较差的地区或地铁等交通工具上使用 Spotify 和 Apple Music 等服务时遇到的令人沮丧的经历,突出了强大的离线模式和缓存的必要性。讨论强调许多用户依赖于具有不同连接质量的移动设备。 参与者指出依赖公共互联网可用性地图的局限性,这些地图往往无法反映真实的 用户体验。帖子指出了高延迟、丢包以及许多开发人员未能考虑到的持续连接的假设等问题。讨论建议在带宽有限且延迟较高的设备和连接上测试应用程序,以及推广极简主义网站设计、服务器端渲染 (SSR) 和高效的数据传输。核心主题是通过针对不稳定网络访问的现实情况(而不仅仅是理想条件)进行设计,来优先考虑用户体验。
Hacker News 的讨论围绕着为“不稳定”的网络连接进行设计的必要性展开。用户分享了不可靠的移动网络体验,并强调许多应用程序在这种情况下会失效。一个关键点是,为糟糕的连接性设计对每个人都有益,尤其是在农村地区或信号较弱的用户。 参与者建议了一些策略,例如易于解析的加载状态、用户友好的超时警报和客户端处理。一位用户指出了始终在线网络连接的潜在不良激励机制,将其与对弹性互联网的需求(尤其是在冲突地区)进行了对比。 WhatsApp 和 OpenAI API 被引用为即使在间歇性连接下也能良好运行的示例。一位用户分享了他们解决移动网络信号问题的经验,并强调需要同时考虑弱信号和设备设置。总体共识是强烈支持优先考虑适应不可靠互联网连接的设计。
相关文章

原文

Brian Hicks, June 16, 2025

I keep hearing claims like this:

  • Not everyone in the US has access to stable, reliable internet, even in 2025.
  • Web developers should stop assuming people have fast internet connections and slim their payloads accordingly.

This seems intuitively true to me—programmers are gonna have better connectivity because that takes money, and programmers are well-paid. But what's the actual scope of the problem?

I dug around, and here's some data. My goal here is not to beat anyone over the head with "THOU SHALT NOT ASSUME GOOD INTERNET" but to give an idea about the scope of broadband rollout in the US in a way that can help inform choices we make when designing software.

If you don't feel like reading this whole thing, here's the bottom line up front: you can probably assume internet access in somewhere around 97% of US households, but you should not assume that it's better than around 25Mbps down and 3Mbps up, and latency may be significantly worse than you previously assumed. This is likely worse for B2C software than B2B.

I'm going to pull from two US government agencies here: the Federal Communications Commission (FCC)and the National Center for Education Statistics (NCES) (part of the Department of Education.) All the data I'm referencing was published well before the current administration started gutting the bureaucracy, so I think it's fairly reliable.

Assumptions

Before we begin, there are a bunch of ways to define "stable" or "reliable" internet connections. For the purposes of this post, I'm defining that as a terrestrial link with at least 25Mbps down and 3Mbps up.

  • Terrestrial because—well, have you ever tried to use a satellite connection for anything real? Latency is awful, and the systems tend to go down in bad weather. They also have had fairly low data caps historically so you had to use your connection judiciously, although this may be changing.
  • 25/3Mpbs because that's a fairly common cable package speed, and also around the minimum I’ve been able to use modern SaaS apps on without it getting ridiculously frustrating. Zoom says you need 1–4 Mbps in both directions to do a video call.

The FCC's broadband map lets you set both these criteria. Let's have a look at it.

The FCC Broadband Map

The FCC tracks access to broadband internet in the US. As a result, they publish a map that's more accurate than the maps you see from ISPs. This isn't completely error-free, but individuals and companies can both submit data on coverage at a street address level and challenge inaccuracies in the existing data. For our purposes, I think it's good enough!

I'm going to grab some screenshots of the map to fix it at the current data for discussion. That way we can get an idea about regional coverage.

Strangely, they don't let you zoom out enough to grab a screenshot of the whole country so I'm going to look at the west. That'll get both urban and rural coverage, as well as several famously internet-y locations (San Francisco Bay Area, Seattle.)

If you want to follow along or compare how the data has changed since this post was published, you can get the map yourself at broadbandmap.fcc.gov.

First, here's a hex map of coverage using the criteria we set above. The darker each hex is, the higher the percent coverage within it. Dark blue is 100%, white is 0%, grays or faded blues are in between.

A map of the western US with a color scale overlaid showing access to broadband. Higher-population areas are shown to have better access, generally, with the exception of the Dakotas which have excellent access throughout the states.

This shows pretty much what I'd expect: coverage is fine in and around cities and less great in rural areas. (The Dakotas are an interesting exception; there's a co-op up there that connected a ton of folks with gigabit fiber. Pretty cool!)

Although, remember that these are minimum criteria. When I'm building software, I'm mostly doing it on my home internet. A test just now says I get 367/71Mpbs. What does the country look like if I were to expect all my users to have similar connections? The map lets us filter for 250/25; let's look:

A map of the western US with a color scale overlaid showing access to broadband at a higher level. Rural areas show much less availability than in the previous map, although access in the Dakotas is still excellent.

Cities are pretty much unchanged, but rural coverage gets much worse. (Except again for North Dakota, the reigning champion of rural fiber.)

So what does this tell us about how we should design software? One big takeaway: if you design for the availability of fast internet connections, you'll exclude many people in rural areas.

This may or may not be OK for your market—"good internet" tends to be in population centers, and population centers tend to contain more businesses and consumers. You have to make that call!

However, it's also worth keeping in mind that this is a map of commercial availability, not market penetration. Hypothetically, you could get the average speed of a US residential internet connection, but the FCC doesn't make such a statistic available.

However, we have another source of data!

Student Internet Access

The US Department of Education occasionally tracks student internet access. Since classwork and homework have moved more online (especially during the early days of COVID) it's useful data for policy-making. The most recent data I could find is from 2021 but it gives us both a baseline for internet availability and some demographic data. Unfortunately, they don't track bandwidth, just raw availability. Still useful, though.

Here are the top-line statistics for all students in the US across several versions of the report:

Category% Available 2019% Available 2021Difference
Any internet access94.6%97.1%+2.5
Smartphone-only6.5%4.5%-2.0
No internet Access5.4%2.9%-2.5

In 2021, they say that these statistics cover 66,108,000 students, which means 2.97 million students only had mobile access as of 2021.

Access gets worse, of course, with lower household income. Here's how those stats look for the lowest quartile:

Category% Available 2019% Available 2021Difference
Any internet access88.6%94.4%+5.8
Smartphone-only14.1%9.8%-4.3
No internet access11.4%5.6%-5.8

Despite the fact that these numbers are going down, that's still a huge number of people in absolute terms (1.87 million students in this category with only mobile access.)

What Do We Do With This Information?

So that's a lot of words to say this: despite gains in the last couple of years, it's still not safe to assume that every user of your software either has access to stable internet, or is willing and able to pay to get high speeds.

That said, I'm deliberately not making any moral judgments here. If you think you're in a situation where you can ignore this data, I'm not going to come after you. But if you dismiss it out of hand, you're likely going to be putting your users (and business) in a tough spot.

I think it's worth considering a couple of scenarios in the parts of your software that someone interacts with regularly:

  1. What if that person is on a slow link? If you've never had bad internet access, maybe think of this as plane wifi. Rural satellite connections behave very similarly: high latency, speed and (sometimes) low data caps.
  2. What if that person is on a mobile/metered/capped network? Remember that 4G is like 5/1Mbps, and 3G is even worse. Big downloads are probably not a great idea.

This is also a very US-centric view, plus it doesn't consider latency from distance between your data center and your user's device. Still, though, I think this shows that this problem is real and we should take it into account when designing software.

联系我们 contact @ memedata.com