The Internet: IP Addresses and DNS
Hi! My name is Paola,
and I am a software engineer
at Microsoft. Let's talk about how the internet
works. My job relies on networks being able
to talk with one another, but back in the
1970s there was no standard method for this.
It took the work of Vint Cerf and Bob Kahn
to invent the internetworking protocol, to
make communication possible. This invention
laid the groundwork for what we now call the
internet. The internet is a network of networks.
It links billions of devices together all
around the globe. So maybe you're connected
with a laptop or a phone through wifi, then
that wifi connection connects to an internet
service provider (or ISP), and that ISP connects
you to billions and billions of devices around
the world through hundreds of thousands of
networks that are all interconnected. One
thing that most people do not appreciate is
that the internet is really a design philosophy
and an architecture expressed in a set of
protocols. A protocol is a well known set
of rules and standards, that if all parties
agree to use it will allow them to communicate
without trouble. How the internet actually
physically works is less important than the
fact that this design philosophy has allowed
the internet to adapt and absorb new communication
technologies. This is because in order for
a new technology to use the internet in some
fashion, it just needs to know which protocols
to work with. All the different devices on
the internet have unique addresses. An address
on the internet is just a number, similar
to a phone number or a sort of street address,
that's unique to each computer or device at
the edge of the network. This is similar to
how most homes and businesses have a mailing
address. You don't need to know a person to
send them a letter in the mail, but you do
need to know their address and how to write
the address properly so the letter can be
carried by a mail system to its destination.
The addressing system for computers on the
internet is similar and it forms part of one
of the most important protocols used in internet
communication simply called the internet protocol
or IP. A computer's address then is called
its IP address. Visiting a website is really
just your computer asking another computer
for information. Your computer sends a message
to the other computer's IP address and it
also sends along its origin address, so the
other computer knows where to send its response.
You may have seen an IP address. It's just
a bunch of numbers! These numbers are organized
in a hierarchy. Just like a home address has
a country, a city, a street, and a house number,
an IP address has many parts. Just like all
digital data, each of these numbers is represented
in bits. Traditional IP addresses are 32 bits
long, with 8 bits for each part of the address.
The earlier numbers usually identify the country
and regional network of the device. Then come
the subnetworks, and then finally the address
of the specific device. This version of IP
addressing is called IPv4. It was designed
in 1973 and was widely adopted in the early
80s, and provides for more than 4 billion
unique addresses for devices connecting to
the internet. But the internet has turned
out to be much more popular than even Vint
Cerf imagined and 4 billion unique addresses
won't be enough. We're now in the middle of
a multi-year transition to a longer IP address
format called IPv6, which uses 128 bits per
address and provides over 340 undecillion
unique addresses. That's more than enough
for every grain of sand on Earth to have its
own IP address. Most users never see or care
about internet addresses. A system called
the domain name system or DNS associates names
like www.example.com with the corresponding
addresses. Your computer uses the DNS to look
up domain names and get the associated IP
address which is used to connect your computer
to the destination on the internet. And it
goes a little something like this: (voice
1) "Hey, hi there, I want to go to www.code.org."
(voice 2) "Mm.. yeah I don't know the IP address
for that domain let me ask around. Hey, do
you know how to get to code.org?" (voice 3)
"Yeah, I got it right here it's 174.129.14.120."
(voice 2) "Oh okay, great, thanks. I'm gonna
write that down and save it for later in case
I need it again. Hey here's that address you
wanted." (voice 1) "Awesome! Thank you." So
how do we design a system for billions of
devices to find any one of billions of different
websites? There is no way one DNS server can
handle all the requests from all devices.
The answer is that DNS servers are connected
in a distributed hierarchy, and are divided
into zones, splitting up responsibility for
the major domains such as .org, .com, .net,
etc. DNS was originally created to be an open
and public communication protocol for government
and educational institutions. Because of its
openness, DNS is susceptible to cyber attacks.
An example attack is DNS spoofing. That's
when a hacker taps into a DNS server and changes
it to match a domain name with the wrong IP
address. This lets the attacker send people
to an imposter website. If this happens to
you, you are vulnerable for more problems
because you are using that fake website as
if it's real. The internet is huge and getting
bigger everyday. But the domain name system
and internet protocol are designed to scale,
no matter how much the internet grows.