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