this post was submitted on 06 Jul 2026
42 points (90.4% liked)

Explain Like I'm Five

21651 readers
152 users here now

Simplifying Complexity, One Answer at a Time!

Rules

  1. Be respectful and inclusive.
  2. No harassment, hate speech, or trolling.
  3. Engage in constructive discussions.
  4. Share relevant content.
  5. Follow guidelines and moderators' instructions.
  6. Use appropriate language and tone.
  7. Report violations.
  8. Foster a continuous learning environment.

founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] dfyx@lemmy.helios42.de 38 points 12 hours ago (4 children)

DNS is like a phone book for the internet.

Computers on the internet have IP addresses which are numbers like 104.26.9.209. Nobody really wants to remember dozens or even hundreds of those so we also give them names like lemmy.world which are a lot easier to remember. DNS is a service that you can ask "Hey, what's the IP address for lemmy.world?" and you get a reply like "You can reach lemmy.world under 104.26.9.209, 104.26.8.209 and 172.67.71.35. You may remember those for 256 seconds. After that, better ask me again in case they have moved."

In reality, it's a tiny bit more complex. For example, you can ask for different kinds of information, not just IP addresses and DNS servers talk to each other to efficiently distribute changes across the internet.

[–] BestBouclettes@jlai.lu 19 points 11 hours ago (2 children)

tiny bit more complex

Understatement of the year !

[–] slazer2au@lemmy.world 9 points 11 hours ago (1 children)

It's the reason every outage is always DNS.

[–] BestBouclettes@jlai.lu 11 points 10 hours ago* (last edited 10 hours ago) (2 children)

It's not DNS I'm pretty sure.
Turns out, it was DNS

[–] scytale@piefed.zip 4 points 8 hours ago
[–] slazer2au@lemmy.world 14 points 10 hours ago (1 children)
[–] Winning@lemmy.world 2 points 5 hours ago

Who splits a haiku into 4 lines

[–] dfyx@lemmy.helios42.de 2 points 8 hours ago (1 children)

DNS itself isn't that complex. We can ask for multiple things (A, AAAA, MX, NS, TXT, ...) and servers form a hierarchy so not everyone has to directly talk to the server that has authority over a domain. Maybe add DNSSEC if you feel fancy. That's about it.

The complexity comes from actually running these things at an enterprise or even global scale. Giving out different replies depending on who asks so everyone can contact a server that's geographically close to them. Load balancing between multiple nameservers. Aggressive caching. Failovers. Rights management. The reasons why DNS is the culprit for so many outages are a) the complexity we have layered on top of a relatively simple protocol and b) a lot of other stuff relies on DNS so problems spread super fast.

[–] BestBouclettes@jlai.lu 1 points 7 hours ago (1 children)

Oh yeah I'm well aware of DNS,. But I remember an article raising the alarm about the ever increasing complexity of the code behind it, and the progressive loss of knowledge due to it being a very old protocol.

[–] dfyx@lemmy.helios42.de 1 points 7 hours ago

I'm with you on the increasing complexity of code. That goes along with what I said about enterprise and global scale.

But loss of knowledge? Really? DNS is not some arcane knowledge limited to an inner circle who was there when it was invented. You can literally read RFC 1034 and RFC 1035 and know everything you need to build a basic working DNS server or client. The concepts are literally taught in every university course about networking because they are that important.

[–] Serinus@lemmy.world 3 points 7 hours ago (1 children)

It also allows the numbers to change at any time, since it updates a lot faster than a phone book.

[–] dfyx@lemmy.helios42.de 1 points 7 hours ago

Yes. That's why DNS has a TTL (time to live) in seconds in every response which specifies how long you should remember it before you ask again. The 256 seconds in my example are the real TTL that I got when asking for lemmy.world.

[–] jerkface@lemmy.ca 4 points 8 hours ago* (last edited 8 hours ago) (1 children)

A five year old has never heard of a phone book, let alone seen one. You've just expanded the problem without solving it.

[–] dfyx@lemmy.helios42.de 4 points 8 hours ago

That's why I didn't end it with the first sentence and instead dedicated a whole paragraph to what you do with it: you know a name and want to know the corresponding phone number / IP address.

[–] AmyAye@nord.pub 2 points 10 hours ago (2 children)

It may also be worth adding, this is done because computers work in numbers, and do not inderstand what a "lemmy.world" is at all, but they understand "104.26.9.209" just fine.

[–] dfyx@lemmy.helios42.de 4 points 9 hours ago* (last edited 9 hours ago) (1 children)

That's not true though. Your computer understands "lemmy.world" just as much or as little as "104.26.9.209". If it couldn't handle a string of letters, it couldn't ask a nameserver for the corresponding IP address either.

Explaining why we need IP addresses would include the ISO/OSI layer model, fixed size DEST fields in IP packet headers, subnets, routing techniques, BGP and a lot more.

I could explain all that but it would take hours even when talking to someone who has a rough understanding of network technology and probably days when talking to a (virtual) 5-year-old. In the end it boils down to "Using numbers is more efficient" not to "Using names is impossible" and that must suffice for an ELI5.

[–] AmyAye@nord.pub 1 points 8 hours ago (1 children)

104.26.9.209 is a bunch of 8 bit numbers. Lemmy.world is a bunch of translation from ascii to numbers to something meaningful. It directly understand 01101000000110100000100111010001 as on off electrical signals.

[–] dfyx@lemmy.helios42.de 2 points 8 hours ago* (last edited 7 hours ago)

And your point is? Yes, everything on a PC is a list of numbers. That alone doesn't make an IP address (four 8-bit numbers / one 32-bit number) inherently more meaningful than the ASCII representation of a domain name (eleven 8-bit numbers in the case of "lemmy.world"). The mapping between a letter and its ASCII code is literally one of the most basic things a computer does.

The advantage comes from IP addresses having a fixed length, from IPv4 addresses being relatively short overall (IPv6 is 16 bytes which is about the same as many domains) and from prefixes being used for routing so you don't need a directory of every single IP address at every router (roughly analogous to country and area codes in phone numbers). None of that is relevant for understanding DNS and none of it means that computers don't "understand" text.

Edit to fully illustrate my point: IP addresses could just as well be strings like "de/hetzner/falkenstein12/rack42/server23". That would work. It would take up a lot of memory and be much slower than what we have but it would absolutely be possible to build a version of the internet that uses that instead of opaque numbers. And it would still need DNS on top because nobody wants to remember (or even know) where a website's server is physically located.

[–] Janx@piefed.social 4 points 9 hours ago

To be fair, I don't think most of us understand what a lemmy.world is...