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.