Falsehoods Programmers Believe About LANs
dreamstation.systems
dreamstation.systems
Programmers think the models they use are perfect.
"Predictable" assumes there is an observer making a guess, but we all live by the knowledge that our assumptions may be wrong. We care less about that, and more about whether the system behaves consistently.
Consistent behavior is either a bug or a feature depending on what was expected. The system just is, man, and that's what we need.
"Nobody sits like this rock sits. You rock, rock. The rock just sits and is. You show us how to just sit here and that's what we need."
If a residential LAN is RFC1918 and has no NAT, then it is still a LAN... without internet access.
Then the "A & !A" fallacy of "MAC addresses can’t be changed. MAC addresses can be changed."
Just kind of a mess. Would be more interesting to explore the edge cases rather than throw out half-truths and 0.05% instances.
I like the GNOME 2006 era though.
The biggest fallacy here, though, and not stated, is that "LAN" is a meaningful concept.
If one thinks all the assumptions in the article are bogus, then I agree there's no definition of the term.
>99% of the time, being natted and/or having private address space is the definition.
Whereas I find it kinda unlikely that someone both knows what a DHCP server is, and holds a belief that there is only ever exactly one on their network?
> Wi-Fi and Ethernet clients are equivalent peers on the LAN. > Wi-Fi and Ethernet clients aren’t equivalent peers on the LAN.
To be honest I don't know what this is supposed to be telling me. They can or can't be on the same VLAN? They could have different or the same QoL? If we hammer traffic on both at the same time bad things may or may not happen?
> Only IPv4 is running on my LAN. > Only IP is running on my LAN. > Okay, only IP, IPX/SPX, Phase IV, AppleTalk, VINES, NetBEUI, or SNA are running on my LAN. > Seriously?
Practically I'm not sure how this affects someone writing a networked application. Sure, IPv4/IPv6, but if I get a bug report in the year 2026 that my application is broken because it doesn't work on the AppleTalk network, it gets a WONTFIX.
Sure, maybe if I'm writing a low-level network driver or maintaining a mainframe application these are things I have to care about. I think that may be the difference between the other posts and this post - non-experts in Onomastics and Chronology deal with names and dates all the time, hence resulting in issues like government websites not accepting Ng as a last name because it is less than 3 characters or not allowing entering February 29th as a birthday.
* two people who say they are on the same LAN agree on what the LAN is
huh? 1.2.3.0/23 is a valid host address, it doesn't have to be Layer-3 only or whatever. it's just basic subnetting.
I've never heard of a LAN without IP addresses. Is that a thing? I'd assume that no IP addresses means you can't even use TCP/IP at all, right? Is there something else you'd use instead?
However the article is about falsehoods programmers believe about LANs. If you are writing some kind of driver and assume all traffic you receive is IP traffic and don't verify the header, you are going to have a bad time.
So Ethernet communicates with frames. You can simply send frames across a purely Ethernet network. Or, you can take a PDU from an upper layer, encapsulate it as Ethernet frame, and send it across. Most LAN protocols are flexible like that.
https://en.wikipedia.org/wiki/Frame_(networking)
https://en.wikipedia.org/wiki/Network_packet
https://en.wikipedia.org/wiki/Protocol_data_unit#Internet_pr...
And TFA provides a list of upper-layer protocols that may be encountered on a LAN today: "IP, IPX/SPX, Phase IV, AppleTalk, VINES, NetBEUI, or SNA".
NetBIOS and NetBEUI are particularly interesting here, because NetBIOS Frames did use IEEE 802.2 LLC, while NBT uses TCP/IP for NetBIOS transport.
Barring "very buggy software," when is this false?
Edit: fair point. Maybe not.
<guy with messy hair>Aliens</guy with messy hair>
(Also can happen if ARP is not working correctly, which can be a right PITA to debug).
This isn't even that recent. I remember doing ARP poisoning exactly once and then being surprised that it didn't work everywhere.
This isn't even that recent. I remember doing ARP poisoning exactly once and then being surprised that it didn't work everywhere.
I think the falsehood here is that same IPv4 subnet = same link layer network, but that doesn't have to be the case.
There'd better be or your network is probably hosed.