One of the side-effects of working from home a lot – with or without a pandemic running wild – is that the residential IT equipment gets better.
Where the WIFI provided by the cable-modem-combi-device was “fine” initially, a “mesh”-system is now the acceptable minimum. I know people that go all-in and just plain hardwire every device considered to be important (looking at you, Playstation…).
I went middle-of-the-road on this one and am relatively happy with the Netgear Orbi (Base + Satellite) system from a few years ago. The WIFI signal coverage is good enough for all our devices and it’s easy enough to set up and keep updated.
Now, being the “prosumer” user at home, I also have a NAS system for storing backups, files, etc. This NAS connects via CAT5 to a small network hub that in turn connects to the Orbi-Satellite. And since this setup is contained in the office room, I decided to connect my laptop to the hub, too, hoping for much better file transfer speeds than going through the air.
Another aspect of this is that a good part of working from home consists of audio-/video-conferencing and whenever I copy a lot of data via WIFI, this takes bandwidth away from my partner’s Teams/Zoom/…-calls … (oops).
To hook up my 2019 MacBook Pro with a CAT5-cable an adapter is required (not a great decision by Apple to leave that as an extra), but from there on setting up the wired connection really is plug-plug-plug-plug-and-finally-play:
Happy, so far, but then…
I wouldn’t be writing this post if there wasn’t a twist to come at some point.
Every so often I noticed that the file transfer speed between my laptop and the NAS was slower than usual. And, of course, this had to be investigated.
So, the first thing I did was to guess’n’google™.
Looking at my setup (see diagram above) what would have been your guess about what caused the slow-down?
Maybe the USB/Lan adapter? Perhaps macOS doesn’t support this specific one properly?
I swapped that one for a Thunderbolt 3 docking station (what a good excuse to finally get that docking station…). And the network performance was good. And then it wasn’t again.
Maybe the cheap plastic network hub I had for years?
I swapped that one for a very well Amazon-rated one from Netgear. And the network performance was good. And then it wasn’t again.
Getting serious now
Clearly, some more thorough analysis was required here!
Usually, when I would start up the computer or disconnect and then reconnect the network cable the performance would be good.
Via macOS terminal I checked ifconfig and got this bit of info:
❯ ifconfig en7 en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=6407<RXCSUM,TXCSUM,VLAN_MTU,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM> ether c0:3e:ba:02:68:55 inet6 fe80::4fd:49d:3ae2:11d3%en7 prefixlen 64 secured scopeid 0x14 inet 192.168.1.18 netmask 0xffffff00 broadcast 192.168.1.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex>) status: active
This line that says “media: autoselect (1000baseT full-duplex)” shows that this is a 1 Gigabit Ethernet connection. And by using fancy network bandwidth calculators like copy calc I confirmed that this was in line with my “good performance” speed.
Next time the performance felt slower again, I checked ifconfig again and got this:
❯ ifconfig en7 en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=6407<RXCSUM,TXCSUM,VLAN_MTU,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM> ether c0:3e:ba:02:68:55 inet6 fe80::4fd:49d:3ae2:11d3%en7 prefixlen 64 secured scopeid 0x14 inet 192.168.1.18 netmask 0xffffff00 broadcast 192.168.1.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (100baseT <full-duplex>) status: active
Notice the missing 0 in the media line!
Who goes and steals zeroes?
At least at this point, it was clear that for some reason the connection speed had been down-negotiated. For some reason, the USB/Lan adapter and the network hub decided that 100 Mbit/s (“Fast” Ethernet, pah!) is probably enough for whatever I do.
So I did what every good self-supporting IT person would do:
Applied to my problem, this meant disconnecting and reconnecting the network cable and checking ifconfig afterward.
Sometimes this led to a nice Gigabit connection, sometimes it yielded a “Fast Ethernet” connection, even if I made double-sure the network cable was properly plugged in.
I assume that if you had some experience with network cabling you already have a pretty good suspicion about the actual cause of the issue.
What a 10x network speed difference looks like
It was this:
Compare the above picture of a “Fast (slow!) Ethernet” connector with the one below:
To stop any misguided machine learning algorithms from telling you that the yellow color means “speed”:
it’s the clear plastic clip that made the difference!
Or more precisely, the lack of it on the blue cable.
What I did not understand properly was that this clip does not only prevent the plug from accidentally being pulled out of the socket, which it also does. But equally important it presses the connection bits from the cable onto the connection bits from the socket. The clip literally pushes the plug down into the socket.
Without the clip the connection between plug and socket wires was too flaky to stabilize a Gigabit connection and so the speed got auto-down-negotiated.
Finally: replace everything, problem fixed
After replacing every part of my network hardware (ok, just the USB/Lan adapter, the hub, and the cable) I now enjoy the permanent 1 Gigabit Ethernet connection speed I was expecting from the start. And all that because of a little piece of broken plastic…
There you go, now you know!