1 00:00:02,420 --> 00:00:08,580 The Internet: IP Addresses and DNS 2 00:00:10,190 --> 00:00:13,940 Hi! My name is Paola, and I am a software engineer 3 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 4 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. 5 00:00:26,489 --> 00:00:32,668 It took the work of Vint Cerf and Bob Kahn to invent the internetworking protocol, to 6 00:00:32,668 --> 00:00:38,559 make communication possible. This invention laid the groundwork for what we now call the 7 00:00:38,559 --> 00:00:44,469 internet. The internet is a network of networks. It links billions of devices together all 8 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 9 00:00:51,230 --> 00:00:56,999 that wifi connection connects to an internet service provider (or ISP), and that ISP connects 10 00:00:56,999 --> 00:01:01,600 you to billions and billions of devices around the world through hundreds of thousands of 11 00:01:01,600 --> 00:01:09,270 networks that are all interconnected. One thing that most people do not appreciate is 12 00:01:09,270 --> 00:01:15,640 that the internet is really a design philosophy and an architecture expressed in a set of 13 00:01:15,640 --> 00:01:20,300 protocols. A protocol is a well known set of rules and standards, that if all parties 14 00:01:20,300 --> 00:01:26,300 agree to use it will allow them to communicate without trouble. How the internet actually 15 00:01:26,300 --> 00:01:31,910 physically works is less important than the fact that this design philosophy has allowed 16 00:01:31,910 --> 00:01:37,710 the internet to adapt and absorb new communication technologies. This is because in order for 17 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 18 00:01:42,610 --> 00:01:49,140 to work with. All the different devices on the internet have unique addresses. An address 19 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, 20 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 21 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 22 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 23 00:02:09,110 --> 00:02:14,190 the address properly so the letter can be carried by a mail system to its destination. 24 00:02:14,190 --> 00:02:19,870 The addressing system for computers on the internet is similar and it forms part of one 25 00:02:19,870 --> 00:02:25,340 of the most important protocols used in internet communication simply called the internet protocol 26 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 27 00:02:31,900 --> 00:02:36,620 just your computer asking another computer for information. Your computer sends a message 28 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 29 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 30 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 31 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 32 00:03:02,270 --> 00:03:09,520 digital data, each of these numbers is represented in bits. Traditional IP addresses are 32 bits 33 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 34 00:03:16,470 --> 00:03:22,470 and regional network of the device. Then come the subnetworks, and then finally the address 35 00:03:22,470 --> 00:03:30,470 of the specific device. This version of IP addressing is called IPv4. It was designed 36 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 37 00:03:36,050 --> 00:03:41,420 unique addresses for devices connecting to the internet. But the internet has turned 38 00:03:41,420 --> 00:03:47,340 out to be much more popular than even Vint Cerf imagined and 4 billion unique addresses 39 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 40 00:03:53,260 --> 00:04:03,660 format called IPv6, which uses 128 bits per address and provides over 340 undecillion 41 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 42 00:04:08,780 --> 00:04:15,739 own IP address. Most users never see or care about internet addresses. A system called 43 00:04:15,739 --> 00:04:23,410 the domain name system or DNS associates names like www.example.com with the corresponding 44 00:04:23,410 --> 00:04:29,160 addresses. Your computer uses the DNS to look up domain names and get the associated IP 45 00:04:29,160 --> 00:04:33,290 address which is used to connect your computer to the destination on the internet. And it 46 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." 47 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 48 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." 49 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 50 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 51 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 52 00:05:20,120 --> 00:05:27,889 websites? There is no way one DNS server can handle all the requests from all devices. 53 00:05:27,889 --> 00:05:33,000 The answer is that DNS servers are connected in a distributed hierarchy, and are divided 54 00:05:33,000 --> 00:05:40,699 into zones, splitting up responsibility for the major domains such as .org, .com, .net, 55 00:05:40,699 --> 00:05:48,030 etc. DNS was originally created to be an open and public communication protocol for government 56 00:05:48,030 --> 00:05:55,370 and educational institutions. Because of its openness, DNS is susceptible to cyber attacks. 57 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 58 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 59 00:06:09,479 --> 00:06:15,740 to an imposter website. If this happens to you, you are vulnerable for more problems 60 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 61 00:06:23,870 --> 00:06:30,790 bigger everyday. But the domain name system and internet protocol are designed to scale, 62 00:06:30,790 --> 00:06:35,210 no matter how much the internet grows.