DEV Community

Tech In Public
Tech In Public

Posted on Originally published at techinpublic.blogspot.com

Identity vs Location in Networking (Explained From First Principles)

Identity ≠ Location: The Software Idea That Explains DNS, Kubernetes, and Your Phone Contacts

Software Laws from First Principles — Law 13. New here? Start with the series intro: I Tried to Invent the Internet From Scratch Before Learning How It Works.

Identity answers “who are you?” Location answers “where can I reach you right now?” These are two different pieces of information, and almost every hard problem in networking, databases, and distributed systems comes from accidentally treating them as one. Here’s the distinction between identity vs location, discovered from first principles — including where I got it wrong.

The mistake I made (and you probably will too)

I was working through this with a set of examples: passport, GPS coordinate, house address, SIM card, email address. The task: sort each into identity or location.

I confidently put SIM card → both and email → both.

That felt right. It was wrong — and being wrong is the whole lesson. Let me walk it the way it actually unfolded.

Start with a person who moves

A person moves from Mumbai to Delhi. Does their identity change, or only their location?

Only location. The identity defines them — it’s unique and it stays. The location is temporary and can even be shared. That’s the first principle, and everything else is just testing it.

Testing the examples: which are identity, which are location

Passport → identity. Fly from India to Japan. Does your passport change? No. It says who you are, not where you are.

GPS coordinate → location. Can two people stand at the exact same coordinate? Yes. If two things can share it, it can’t identify one of them. Location.

House address → location. Feels like identity, but: move house, and the address changes while you didn’t. And five people in one house share it. Shared + changeable = location.

SIM card → here’s where I was wrong. I said “both.” Test it: take the SIM out and put it in another phone — did the SIM’s identity change? No. Travel Pune to Delhi — did it change? No. The SIM keeps one stable identity; only its relationship to a phone and its location move around it. The SIM is identity. What I’d mistaken for “location” was the mapping sitting next to it.

That mistake — seeing a stable identity tangled up with a changing mapping and calling the whole thing “both” — is exactly the mistake the software industry made for decades.

The hotel analogy that makes identity vs location click

You walk into a hotel and say: “I’d like to meet Rocky.”

Reception doesn’t ask “what’s his GPS coordinate?” They ask “which room is he in?”

Rocky stayed Rocky. Only the room changed. The hotel keeps a mapping:

Rocky  →  Room 402
Enter fullscreen mode Exit fullscreen mode

That mapping can change all day. Rocky doesn’t.

The pattern: identity, mapping, location

Whenever identity and location are different, you need a third thing between them:

Identity
   ↓
Mapping
   ↓
Location
Enter fullscreen mode Exit fullscreen mode

You see it everywhere once you have the lens:

Phone contacts: “Mom” is identity. Mom → +91… is the mapping. Her number changes; you update the mapping. You don’t rename her to “New Number.”

Google Maps: it says “drive to Pune Railway Station,” not “drive to latitude 18.52…”. Name (identity) → coordinates (location), via a mapping.

A company: Employee ID is identity. Desk number is location. The desk changes; the ID shouldn’t.

Why DNS exists: identity vs location on the internet

You type “google.com” — that’s an identity. The network resolves it to something like 142.250.x.x — that’s a location. The thing doing the resolving (DNS) is the mapping. It exists only because identity and location are different.

And Kubernetes: Pods come and go, their IPs change constantly. If clients depended on those changing IPs, everything would break every minute. So Kubernetes adds a stable thing in front — a Service — that holds a steady identity while the Pod locations churn behind it. Same hotel. Same mapping. You just discovered a core Kubernetes idea without touching Kubernetes

The takeaway: why separating identity and location matters

When identities stay stable but locations change, a directory becomes inevitable — something whose entire job is to keep the mapping current. That’s DNS, ARP, service discovery, load balancers, and your phone’s contact list, all at once.

Confuse identity with location and you get systems that break the moment something moves. Separate them, put a mapping in the middle, and things are free to move without anything breaking.

FAQ

What’s the difference between identity and location in networking?
Identity is who/what something is and stays stable (a domain name, a username, an employee ID). Location is where to reach it right now and can change (an IP address, a desk, a GPS coordinate). A mapping or directory connects the two.

Is an IP address identity or location?
Location. An IP tells you where to reach a machine on the network right now; it can change when the machine moves or restarts. The stable identity is usually a name (like a domain) that resolves to an IP.

Why does Kubernetes need Services?
Because Pod IPs (locations) change constantly, but clients need a stable identity to talk to. A Service is the stable identity in front of the shifting Pod locations — the mapping in the middle.

Is a domain name identity or location?
Identity. “google.com” stays the same while the IP address it points to can change. DNS is the mapping that turns the identity into a current location.

Top comments (0)