Domain Names and the DNS Dilemma

Why we don't use IP addresses to browse the web, the role of ICANN, and the two critical HLD concepts: Bottlenecks and Single Points of Failure (SPOF).

April 12, 20263 min read3 / 7

In the last part, we saw how Joshua could technically connect to any server using just IP addresses. But I can't imagine a world where you have to type 142.250.190.46 just to check your email. We need something human.

Names vs. Numbers: The Phone Book Analogy

I like to think of IP addresses as being machine-readable. They are efficient for routers but impossible for us to memorize. Domain names (like google.com) are the human-readable labels we actually use.

It is exactly like your smartphone:

  • The IP Address is the raw phone number.
  • The Domain Name is the contact name in your list.
  • DNS (Domain Name System) is the global phone book that maps the two together.

ICANN: The Central Authority

When I first bought a domain name, I thought GoDaddy was the "owner." In reality, they are just brokers. The actual authority is a non-profit called ICANN (Internet Corporation for Assigned Names and Numbers).

ICANN maintains what is essentially a massive, centralized "hash map" of every registered domain name and its corresponding IP address.

The DNS Hierarchy: From Root to Authoritative Nameservers ExpandThe DNS Hierarchy: From Root to Authoritative Nameservers

The Centralization Trap: Bottlenecks and SPOFs

If we designed the internet so that every single device had to ping ICANN's servers to resolve a domain name, the whole system would collapse. This highlights two fundamental HLD concepts that I keep coming back to:

The Bottleneck

With 5 billion users and nearly a trillion connected devices, a single central server simply cannot handle the traffic. Like the narrow neck of a bottle, the server's processing power restricts the flow. The result? The entire internet becomes excruciatingly slow.

Single Point of Failure (SPOF)

This is the big one. If those central servers go offline - whether due to a crash or an attack - the entire internet "disappears." The websites are still running, but nobody can find them.

[!IMPORTANT] A good distributed system must be designed to avoid Single Points of Failure. If one part breaks, the rest of the world should keep moving.

Because a centralized model just can't handle the scale of the global internet, we need a better design. In the next part, I will show you how the real DNS uses a Hierarchical Architecture to solve this, and why Joshua's next problem wasn't the name - it was the physical hardware itself.

The Essentials

  1. DNS is the global phone book that translates human-readable domain names into machine-readable IP addresses - without it, every user would need to memorize raw IP addresses.
  2. A Bottleneck occurs when a single component becomes the limiting factor for the entire system - centralizing DNS resolution at ICANN would create exactly this.
  3. A Single Point of Failure (SPOF) is any component whose failure brings the entire system down - the first rule of distributed systems design is to eliminate them.

Further Reading and Watching