April 21st, 2020

Hard Stare

Moore's Law: I ATEN'T DEAD [tech blog post, by me]

Hmmm. For the first time, ever, really, I hit the limits of modern vs. decade-old wifi and networking.

My home broadband is 500Mb/s. Just now, what with quarantine and so on, I have had to set up a home office in our main bedroom. My "spare" Mac, the Mac mini, has been relegated to the guest room and my work laptop is set up on a desk in the bedroom. This means I can work in there while Jana looks after Ada in the front room, without disturbing me too much.

(Aside: I'm awfully glad I bought a flat big enough to allow this, even though my Czech friends and colleagues, and realtor, all thought I was mad to want one so big.)

The problem was that I was only getting 3/5 bars of wifi signal on the work Dell Latitude, and some intermittent connectivity problems – transient outages and slowdowns. Probably this is when someone uses their microwave oven nearby or something.

It took me some hours of grovelling around on my hands and knees – which is rather painful if one knee has metal bits in -- but I managed to suss out the previous owners' wiring scheme. I'd worked out that there was a cable to the middle room, and connected it, but I couldn't find the other end of the cable to the master bedroom.

So, I dug out an old ADSL router that one of my London ISPs never asked for back: a Netgear DGN-1000. According to various pages Google found, this has a mode where it can be used as a wireless repeater.

Well, not on mine. The hidden webpage is there, but the bridge option isn't. Dammit. I should have checked before I updated its firmware, shouldn't I?

Ah well. There's another old spare router lying around, an EE BrightBox, and this one can take an Ethernet WAN – it's the one that firewalled my FTTC connection. It does ADSL as well but I don't need that here. I had tried and failed to sell this one on Facebook, which meant looking it up and discovering that it can run OpenWRT.

So I tried it. It's quite a process -- you have to enable a hidden tiny webserver in the bootloader, use that to unlock the bootloader, then use the unlocked bootloader to load a new ROM. I did quite a lot of reading and discovered that there are driver issues with OpenWrt. It works, but apparently ADSL doesn't work (don't care, don't need it), but also, its wifi chip is not fully supported and with the FOSS driver it maxes out at 54Mb/s.

Sounds like quite a lot, but it isn't when your broadband is half-gigabit.

So I decided to see what could be done with the standard firmware, with its closed-source Broadcom wifi driver.

(Broadcom may employ one of my Great Heroines of Computing, the remarkable Sophie Wilson, developer of the ARM processor, but their record on open-sourcing drivers is not good.)

So I found a creative combination of settings to turn the thing into a simple access point as it was, without hacking it. Upstream WAN on Ethernet... OK. Disable login... OK. Disable routing, enable bridging... OK.

Swaths of the web interface are disappearing as I go. Groups of fields and even whole tabs vanish each time I click OK. Disable firewall... OK. Disable NAT... OK. Disable DHCP... OK.

Right, now it just bridges whatever on LAN4 onto LAN1-3 and wifi. Fine.

Connect it up to the live router and try...

And it works! I have a new access point, and 2 WLANs, which isn't ideal -- but the second WLAN works, and I can connect and get an Internet connection. Great!

So, I try through the wall. Not so good.

More crawling around and I find a second network cable in the living room that I'd missed. Plug it in, and the cable in the main bedroom comes alive! Cool!

So, move the access point in there. Connect to it, test... 65-70 Mb/s. Hmm. Not that great. Try a cable to it. 85 Mb/sec. Uninspiring.

Test the wifi connection direct to the main router...

Just over 300 Mb/s.


Oh bugger!

In other words, after some three hours' work and a fair bit of swearing, my "improved", signal-boosted connection is at best one-fifth as fast as the original one.

I guess the things are that firstly, my connection speed really wasn't as bad as I thought, and secondly, I was hoping with some ingenuity to improve it for free with kit I had lying around.

The former invalidates the latter: it's probably not worth spending money on improving something that is not in fact bad in the first place.

I don't recall when I got my fibre connection in Mitcham, but I had it for at least a couple of years, maybe even 3, so I guess around 2011-2012. It was blisteringly quick when I got it, but the speeds fell and fell as more people signed up and the contention on my line rose. Especially at peak times in the evenings. The Lodger often complained, but then, he does that anyway.

But my best fibre speeds in London were 75-80Mb/s just under a decade ago. My cable TV connection (i.e. IP over MPEG (!)) here in Prague is five times faster.

So the kit that was an adequate router/firewall then, which even supports a USB2 disk as some NAS, is now pitifully unequal to the task. It works fine but its maximum performance will actually reduce the speed of my home wifi, let alone its Fast Ethernet hub when now I need gigabit just for my broadband.

I find myself reeling a little from this.

It reminds me of my friend Noel helping me to cable up the house in Mitcham when I bought it in about 2002. Noel, conveniently, was a BT engineer.

We used Thin Ethernet. Yes, Cheapernet, yes, BNC connections etc. Possibly the last new deployment of 10base-2 in the world!

Why? Well, I had tons of it. Cables, T-pieces, terminators, BNC network cards in ISA or PCI flavours, etc. I had a Mac with BNC. I had some old Sun boxes with only BNC. It doesn't need switches or hubs or power supplies. One cable is the backbone for the whole building -- so fewer holes in the wall. Noel drilled a hole from the small bedroom into the garage, and one from the garage into the living room, and that was it. Strategic bit of gaffer tape and the job's a good 'un.

In 2002, 10 Mb/s was plenty.

At first it was just for a home LAN. Then I got 512kb/s ADSL via one of those green "manta ray" USB modems. Yes, modem, not router. Routers were too expensive. Only Windows could talk to them at first, so I built a Windows 2000 server to share the connection, with automatic fallback to 56k dialup to AOL (because I didn't pay call charges).

So the 10Mb/s network shared the broadband Internet, using 5% of its theoretical capacity.

Then I got 1Mb/s... Then 2Mb/s... I think I got an old router off someone for that at first. The Win 2K Server was a Pentium MMX/200MHz and was starting to struggle.

Then 8MB/s, via Bulldog, who were great: fast and cheap, and they not only did ADSL but the landline too, so I could tell BT to take a running jump. (Thereby hangs a tale, too.)

With the normal CSMA/CD Ethernet congestion, already at 8Mb/s, the home 10base-2 network was not much quicker than wifi -- but it was still worth it upstairs, where the wifi signal was weaker.

Then I got a 16Mb/s connection and now the Cheapernet became an actual bottleneck. It failed – the great weakness of 10base-2 is that a cable break anywhere brings down the entire LAN – and I never bothered to trace it. I just kept a small segment to link my Fast Ethernet switch to the old 10Mb/s hub for my testbed PC and Mac. By this point, I'd rented out my small bedroom too, so my main PC and server were in the dining room. That mean a small 100base-T star LAN under the dining table was all I needed.

So, yes, I've had the experience of networking kit being obsoleted by advances in other areas before – but only very gradually, and I was starting with 1980s equipment. It's a tribute to great design that early-'80s cabling remained entirely usable for 25 years or more.

But to find that the router from my state-of-the-art, high-speed broadband from just six years ago, when I emigrated, is now hopelessly obsolete and a significant performance bottleneck: that was unexpected and disconcerting.

Still, it's been educational. In several ways.

The thing that prompted the Terry Pratchett reference in my title is this:

A lot of people are still in deep denial about this, but x86 chips stopped getting very much quicker in about 2007 or so. The end of the Pentium 4 era, when Intel realised that they were never going to hit the 5 GHz clock that Netburst was aimed at, and went back to an updated Pentium Pro architecture, trading raw clock speeds for instructions-per-clock – as AMD had already done with the Sledgehammer core, the origin of AMD64.

Until then, since the 1960s, CPU power roughly doubled every 18 months. For 40 years.
8088: 4.77MHz.
8086: 8MHz.
80286: 6, 8, 12, 16 MHz.
80386: 16, 20, 25, 33 MHz.
80486: 25, 33; 40, 50; 66; 75, 100 MHz.
Pentium: 60, 66, 75, 90, 100; 120, 133; 166, 200, 233 MHz.
Pentium II: 233, 266, 300, 333, 350.
Pentium III: 333 up to 1GHz.
Pentium 4: topped out at about 3.5 GHz.
Core i7 is still around the same, with brief bursts of more, but it can't sustain it.

The reason was that adding more transistors kept getting cheaper, so processors went from 4-bit to 8-bit, to 16-bit, to 32-bit with a memory management unit onboard, to superscalar 32-bit with floating-point and Level 1 cache on-die, then with added SIMD multimedia extensions, then to 32-bit with out-of-order execution, to 32-bit with Level 2 cache on-die, to 64-bit...

And then they basically ran out of go-faster stuff to do with more transistors. There's no way to "spend" that transistor budget and make the processor execute code faster. So, instead, we got dual cores. Then quadruple cores.

More than that doesn't help most people. Server CPUs can have 24-32 or more cores now – twice that or more on some RISC chips – but it's no use in a general-purpose PC, so instead, the effort now goes to reducing power consumption instead.

Single-core execution speed, the most important benchmark for how fast stuff runs, now gets 10-15% faster every 18 months to 2 years, and has done for about a dozen years. Memory is getting bigger and a bit quicker, spinning HDs now reach vast capacities most standalone PCs will never need, so they're getting replaced by SSDs which themselves are reaching the point where they offer more than most people will ever want.

So my main Mac is 5 years old, and still nicely quick. My spare is 9 years old and perfectly usable. My personal laptops are all 5-10 years old and I don't need anything more.

The improvements are incremental, and frankly, I will take a €150 2.5 GHz laptop over a €1500 2.7 GHz laptop any day, thanks.

But the speeds continue to rise in less-visible places, and now, my free home router/firewall is nearly 10x faster than my 2012 free home router/firewall.

And I had not noticed at all until the last week.