Giovanni's blog: The Sierpiński triangle ideal of Internet bandwidth for applications
Saturday, June 6, 2026
The Sierpiński triangle ideal of Internet bandwidth for applications
I've had this want for a while, but I haven't been able to put it in words because I have not found a good metaphor for what I am trying to accomplish. While newer fiber optic internet and 5G carriers have been able to deliver magnitudes more bandwidth, a lingering problem for speed issues concerns gaps in service, and how to maintain optimum connectivity when bandwidth is intermittent or slows to a crawl, for whatever reason. For example, when internet is throttled to just 128kbps, one can implement a data saver mode on smartphones to limit background services and notifications. But there isn't really an easy or quick way to check ALL the services, nor toggle them all without spending an hour in the settings. It took me around 2 weeks to get accustomed to some of the finer-grained controls on my Android phone, in not only enabling Data Saver mode, which I have used for years in certain instances, but the permission levels and amount of times apps will "ping home" (a server somewhere). To do that, it's best to disable unused or lightly used apps altogether. You can check how much data certain apps use, as there is a Settings page which will show you how many MB or KB were used in the past 7 days or so. That may or may not be representative of more typical months, but you may be able to get a ballpark idea of what's using much of your bandwidth, and on 128Kbps, every byte counts.<br>A few days ago, I downloaded Hugo. It took me several tries, because I realized I couldn't browse other websites while it was downloading. The chances of it interrupting the download was too high. But even then, I still had interruptions. Eventually I got it. Then yesterday, I wanted to download the Go language. Similar issue. I thought there might be some congestion, because I couldn't figure out why it was running at 25-50% of the speed it should be capable of. I was only getting 32-64KBps. Hugo and Go were both around 60MB, so in ideal conditions they would only take an hour to download. For people who develop websites, 128Kbps is not really going to be useful or practical, especially if there's a lof other apps one needs to download. Today I started downloading Git (even though I should have an older copy somewhere), and ran into the same issue. It's only running at 1.6-3.2KB/s. On Windows, it might say there's more data downloading, although typically it's an average. With only one device connected to the hotspot, it's possible the website is throttling, or more likely, the network is running only at 1/2 speed.<br>The increasing size of websites is not a new problem. A 2015 talk was given on it, and it had been observed many years before that too. So I thought, what if there was a way to dynamically control how much data is being sent AND requested whenever network conditions change? There would need to be several components working in tandem, and I can count at least 3. For example on the client side, an application will actively monitor the bandwidth, and adjust the amount of data being requested. the network card can optionally forward this information to both the host and the client, or it can be counted locally (often a network monitor does this). The host could also slow down the speed, or extend the time to renew, so that the connection doesn't get permanently terminated. Of course, with dynamic conditions, it might not always sync with what the other side is seeing, and thus the counter would need to update quite rapidly, so that there isn't late requests for slow connections when a hiccup already passed.<br>One metaphor that I think best help visualize it is the Sierpiński triangle:
six magnitudes of triangle sizes<br>This metaphor may make more sense if you grew up with 5 magnitudes slower internet. In the 90's my first modem was a 14.4K dial up modem on a Pentium 100MHz PC. That translates into 1.8KB/s in ideal internet conditions- if the server was actually able to provide the maximum speed that you were requesting. Often times it would fall under 1024 bytes and one wouldn't see "KB/s" but "bytes per second." Yes, that slow. But I don't care about that. What I care about is that apps can be designed to be smart enough to not fail completely and become utterly useless, or worse, need to restart their download and waste even more bandwidth because they cannot save every packet that arrived. Each packet in a torrent should have instructions on how to recompile it. I think it involves a checksum but more secure files might even use some other technique to ensure it hasn't been tampered with by some malicious file sharerer. So the question I would ask a search engine, but haven't gotten around to finding the long explanation, is how do modern browsers manage a typical download whenever it briefly gets interrupted? Do they websites provide header...