Falsehoods Programmers Believe About Networks
Nov 7 · 2 min read
In 2010, Patrick McKenzie wrote his Falsehoods Programmers Believe About Names, listing of 40 assumptions programmers and systems designers made that were false.
I’ve been connecting things to networks for over 20 years, and I’ve seen my share of assumptions made about networks, so he’s my personal take on falsehoods programmers believe about networks:
- The network uses RFC1918 IP addresses
- This network block will be unique — globally
- A (home) network is always a /24 network
- IPv4 is available
- There’s no IPv6 on the network
- If there’s IPv6, it can be turned off
- There is a DHCP server on the network
- The IP assigned by DHCP won’t change when you try and renew it
- You can turn off DHCP on the network
- You can turn on DHCP on the network
- The default gateway and the DHCP server are the same device
- The default gateway and the DNS server are the same device
- There is a DNS server
- That IP address will never change
- You can ping the default gateway
- Or at least one other device on the network?
- You can reach google.com (or any other hardcoded domain)
- You can reach the internet
- The MTU size is always 1500
- No one uses PPP anymore
- No one uses multicast anymore
- But if I want to use it, Multicast over WiFi is just fine, right?
- WiFi and wired connections can be treated the same
- I can block non TCP + UDP packets and everything will keep working
- Keepalives are ‘free’ so use them often (Satellite Links aren’t free!)
- WiFi is ‘free’ (vs. 3G/LTE). Sometimes WiFi is over satellite, and it isn’t free
- Latency will always be below 2000ms (or some other arbitrary value)
- A network interface has an IP address
- A network interface has a MAC address
- A network interface has only 1 MAC address
- A network interface has no address?!
- MAC addresses are unique
- I can tell the device type by looking at the MAC address (because no-one would spoof one. Or steal one. Or make it up.)
- No one uses the Locally Administered bit of a MAC address
- No one would set the multicast bit on the source MAC (and violate 802.3)
- Switches don’t filter MAC addresses without being told to
- 127.0.0.1 is the only loopback IP ever used
- VLAN’s fix segregation issues, and are equivalent to physical segregation
- VLAN gateways would never leak packets (like ARP) between VLANs
- None of the above matters in an IPv6 only network
I can probably tell you at least one story behind every one of these, some more humorous than others, and few that cost me at least some of my hair. As IPv6 becomes more common, it’ll be interesting to add to this list — as after nearly 40 years of IPv4, these issues are still occurring with newly made devices daily!
