The more I get into it the more I’m convinced that the most important skill in programming is lexicography.
Caching and race conditions
what happened to cache invalidation?
Networking Issues is probably Cache Invalidation in Disguise.
…it’s dns again isn’t it
No, definitely not!
…
…
but actually yes
If you visit the site via its IP address, it says no.
Source: I made that up.
Surprise SNI error
Low TTL of dns entries is there to avoid classical Cache Invalidation, so kind of…
I keep seeing “networking is hard” come up here. Where is this coming from? Is it IPv6 or something?
I started in networks.
The volume of people who work in technology that don’t understand networking is astonishing. I probably spent more time explaining how a web proxy works than I did actually setting things up.
Firewall rules? Spells and magic. Routing? Unpossible! DNS? Forget it, I’m going home.
People lack the necessary motivation. I explained DHCP, IP, and ports to my kids in like 10 minutes. Because otherwise they couldn’t play Minecraft together.
It’s always DNS…
Subnetting and the difference between
/8and/24or/32and how you allocate IP addresses between them has always been crazy for me to grasp.I feel like if I could finally understand that after 20 years … I’d be happy but no here I am, effectively ignorant to it and looking at networking wizards as true wizards
Networking is so easy nowadays. Just plug a network cable into your device and it mostly works out of the box. Don’t you guys remember the bad old times of coax cables and token ring?
Imagine providing a public WiFi before 1993, even if you ignore the fact that WiFis had a cable back then.
WiFis had a cable back then

I’m not old enough to having been bothered by network rings and grew up with the high-tech that were end resistors.
OP might be suffering from cache misses. (Or maybe hasn’t yet learnt about it.)
deleted by creator
Distributed systems.
There are only two hard things in Computer Science: cache invalidation and naming things.
— Widely attributed to Phil Karlton
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.
— Leon Bambrick 2010-01-01
There’s actually only one and it’s my coworkers.
Human-human interface configuration falls under networking issues. And naming things, now that I think about it.
And occasionally off-by-one issues :(
It’s possible your coworkers are the ones dealing with those issues, and you just never notice.
0 based indexing of course, so what’s the joke? oh, mixing up count and max index is a hardship you get over after a couple of years, but it comes back sometimes.
The more you move through the networking stack, the more you start seeing OB1 error potentials.
Many protocols have packet ids starting from (and wrapping back to) 1. Modbus registers start from 1, but stored in memory offset 0.
Packet lengths can either include or exclude the length itself. E.g. packet length 200 in a protocol could either mean the length is followed by 200 bytes of data; or 1 byte containing the length + 199 data; or even 4 bytes length + 196 data (off by four!)
It’s a wild world out there.
off by one is a margin not an error
Off-by-one errors are real errors. A common mistake rookie developers make (or used to make, anyway) is forgetting that arrays are zero-indexed when creating an array, then seeing the value that should be in
array[n-1]when they readarray[n].Another common off-by-one error is double counting: Some accumulators don’t do all their processing in the same function, and occasionally one thing will be checked for inclusion twice, causing the accumulator to have one more element than it should.
Tell that to the array out of bounds exception!











