1 00:00:00,901 --> 00:00:04,498 (upbeat piano and drum music) 2 00:00:10,024 --> 00:00:11,551 - Hi. My name is Paola, 3 00:00:11,551 --> 00:00:14,501 and I am a software engineer at Microsoft. 4 00:00:14,501 --> 00:00:17,077 Let's talk about how the internet works. 5 00:00:17,077 --> 00:00:19,933 My job relies on networks being able 6 00:00:19,933 --> 00:00:21,930 to talk with one another. 7 00:00:21,930 --> 00:00:24,774 But back in the 1970s, there was no 8 00:00:24,774 --> 00:00:26,956 standard method for this. 9 00:00:26,956 --> 00:00:29,821 It took the work of Vint Cerf and Bob Kahn 10 00:00:29,821 --> 00:00:32,126 to invent the Internetworking Protocol 11 00:00:32,126 --> 00:00:34,308 to make communication possible. 12 00:00:34,638 --> 00:00:36,570 This invention laid the groundwork 13 00:00:36,570 --> 00:00:38,975 for what we now call the internet. 14 00:00:39,566 --> 00:00:42,045 - The internet is a network of networks. 15 00:00:42,045 --> 00:00:45,503 It links billions of devices together all around the globe. 16 00:00:46,723 --> 00:00:48,706 Maybe you're connected with a laptop 17 00:00:48,706 --> 00:00:50,903 or a phone through wifi. 18 00:00:50,903 --> 00:00:52,525 But then that wifi connection 19 00:00:52,525 --> 00:00:55,716 connects to an Internet Service Provider, or ISP. 20 00:00:55,716 --> 00:00:58,363 And that ISP connects you to billions and billions 21 00:00:58,363 --> 00:01:00,196 of devices around the world 22 00:01:00,196 --> 00:01:02,123 through hundreds of thousands of networks 23 00:01:02,123 --> 00:01:04,045 that are all interconnected. 24 00:01:05,465 --> 00:01:08,682 One thing that most people do not appreciate, 25 00:01:08,682 --> 00:01:12,142 is that the internet is really a design philosophy 26 00:01:12,142 --> 00:01:16,108 and an architecture expressed in a set of protocols. 27 00:01:16,598 --> 00:01:19,629 A protocol is a well-known set of rules and standards that, 28 00:01:19,629 --> 00:01:21,417 if all parties agree to use it, 29 00:01:21,417 --> 00:01:23,781 will allow them to communicate without trouble. 30 00:01:24,927 --> 00:01:28,799 How the internet actually physically works is less important 31 00:01:28,799 --> 00:01:31,761 than the fact that this design philosophy has allowed 32 00:01:31,761 --> 00:01:33,920 the internet to adapt and absorb 33 00:01:33,920 --> 00:01:36,239 new communication technologies. 34 00:01:36,239 --> 00:01:38,464 This is because in order for a new technology 35 00:01:38,464 --> 00:01:40,650 to use the internet in some fashion, 36 00:01:40,650 --> 00:01:43,455 it just needs to know which protocols to work with. 37 00:01:44,763 --> 00:01:46,782 All the different devices on the internet 38 00:01:46,782 --> 00:01:48,489 have unique addresses. 39 00:01:48,489 --> 00:01:50,865 An address on the internet is just a number, 40 00:01:50,865 --> 00:01:54,082 similar to a phone number, or a sort of street address 41 00:01:54,082 --> 00:01:56,248 that's unique to each computer or device 42 00:01:56,248 --> 00:01:57,682 at the edge of the network. 43 00:01:59,314 --> 00:02:01,755 This is similar to how most homes and businesses have 44 00:02:01,755 --> 00:02:03,099 a mailing address. 45 00:02:03,099 --> 00:02:04,499 You don't need to know a person 46 00:02:04,499 --> 00:02:05,829 to send them a letter in the mail, 47 00:02:05,829 --> 00:02:08,344 but you do need to know their address, 48 00:02:08,344 --> 00:02:10,141 and how to write the address properly, 49 00:02:10,141 --> 00:02:12,335 so the letter can be carried by the mail system 50 00:02:12,335 --> 00:02:13,886 to its destination. 51 00:02:14,246 --> 00:02:15,854 The addressing system for computers 52 00:02:15,854 --> 00:02:17,724 on the internet is similar, 53 00:02:18,114 --> 00:02:20,645 and it forms part of one of the most important 54 00:02:20,645 --> 00:02:23,354 protocols used in internet communication, 55 00:02:23,354 --> 00:02:26,235 simply called the Internet Protocol, or IP. 56 00:02:26,958 --> 00:02:30,072 A computer's address, then, is called its IP address. 57 00:02:30,514 --> 00:02:33,222 Visiting a website is really just your computer asking 58 00:02:33,222 --> 00:02:35,299 another computer for information. 59 00:02:35,299 --> 00:02:37,627 Your computer sends a message to the other computer's 60 00:02:37,627 --> 00:02:41,011 IP address, and it also sends along its origin address 61 00:02:41,011 --> 00:02:43,673 so the other computer knows where to send its response. 62 00:02:45,751 --> 00:02:47,895 - You may have seen an IP address. 63 00:02:47,895 --> 00:02:49,743 It's just a bunch of numbers. 64 00:02:50,043 --> 00:02:52,795 These numbers are organized in a hierarchy. 65 00:02:53,425 --> 00:02:55,685 Just like a home address has a country, 66 00:02:55,685 --> 00:02:58,635 a city, a street, and a house number, 67 00:02:58,635 --> 00:03:01,242 an IP address has many parts. 68 00:03:01,472 --> 00:03:03,250 Just like all digital data, 69 00:03:03,250 --> 00:03:06,250 each of these numbers is represented in bits. 70 00:03:06,655 --> 00:03:09,985 Traditional IP addresses are 32 bits long, 71 00:03:09,985 --> 00:03:13,540 with eight bits for each part of the address. 72 00:03:13,540 --> 00:03:15,947 The earlier numbers usually identify 73 00:03:15,947 --> 00:03:18,653 the country and regional network of the device. 74 00:03:18,653 --> 00:03:20,570 Then come the subnetworks. 75 00:03:20,570 --> 00:03:23,925 And then, finally, the address of the specific device. 76 00:03:24,435 --> 00:03:28,485 This version of IP addressing is called IPv4. 77 00:03:28,485 --> 00:03:30,968 It was designed in 1973, 78 00:03:30,968 --> 00:03:33,386 and widely adopted in the early '80s, 79 00:03:33,386 --> 00:03:36,729 and provides for more than 4 billion unique addresses 80 00:03:36,729 --> 00:03:39,527 for devices connecting to the internet. 81 00:03:39,797 --> 00:03:43,170 But the internet has turned out to be much more popular 82 00:03:43,170 --> 00:03:45,339 than even Vint Cerf imagined, 83 00:03:45,339 --> 00:03:48,677 and 4 billion unique addresses won't be enough. 84 00:03:48,677 --> 00:03:51,461 We're now in the middle of a multi-year transition 85 00:03:51,461 --> 00:03:55,793 to a longer IP address format called IPv6, 86 00:03:55,793 --> 00:03:59,545 which uses 128 bits per address, 87 00:03:59,545 --> 00:04:04,545 and provides over 340 undecillion unique addresses. 88 00:04:05,130 --> 00:04:08,009 That's more than enough for every grain of sand on Earth 89 00:04:08,009 --> 00:04:09,990 to have its own IP address. 90 00:04:10,805 --> 00:04:14,869 - Most users never see or care about internet addresses. 91 00:04:14,869 --> 00:04:18,160 A system called the Domain Name System, or DNS, 92 00:04:18,160 --> 00:04:22,065 associates names, like www.example.com, 93 00:04:22,065 --> 00:04:24,050 with the corresponding addresses. 94 00:04:24,050 --> 00:04:27,185 Your computer uses the DNS to look up domain names 95 00:04:27,185 --> 00:04:30,206 and get the associated IP address, which is used 96 00:04:30,206 --> 00:04:33,099 to connect your computer to the destination on the internet. 97 00:04:33,099 --> 00:04:34,999 - [Voiceover] And it goes a little something like this. 98 00:04:34,999 --> 00:04:35,619 - Hey, hi there. 99 00:04:35,619 --> 00:04:39,450 I want to go to www.code.org 100 00:04:41,313 --> 00:04:45,011 - Yeah, well I don't know the IP address for that domain. 101 00:04:45,011 --> 00:04:46,729 Let me ask around. 102 00:04:46,859 --> 00:04:49,836 Hey, anyone know how to get to a... 103 00:04:50,396 --> 00:04:52,022 code.org? 104 00:04:53,292 --> 00:04:54,347 - Yeah, I got it right here. 105 00:04:54,347 --> 00:04:57,270 It's 174 dot 129 106 00:04:57,270 --> 00:05:00,184 dot 14 dot 120. 107 00:05:00,514 --> 00:05:01,842 - Oh, okay, great. Thanks. 108 00:05:01,842 --> 00:05:04,096 Yeah, I'm gonna write that down and save it for later 109 00:05:04,096 --> 00:05:05,078 in case I need it. 110 00:05:05,078 --> 00:05:06,758 Hey, here's that address you wanted. 111 00:05:07,048 --> 00:05:08,574 - Awesome. Thank you. 112 00:05:10,527 --> 00:05:13,792 (piano flourish) 113 00:05:13,792 --> 00:05:17,359 - So how do we design a system for billions of devices 114 00:05:17,359 --> 00:05:21,108 to find any one of billions of different websites? 115 00:05:21,388 --> 00:05:24,097 There is no way one DNS server 116 00:05:24,097 --> 00:05:27,413 can handle all of the requests from all devices. 117 00:05:27,633 --> 00:05:30,513 The answer is that DNS servers are connected 118 00:05:30,513 --> 00:05:33,816 in a distributed hierarchy, and are divided into zones, 119 00:05:33,822 --> 00:05:36,915 splitting up responsibility for the major domains 120 00:05:36,915 --> 00:05:40,899 such as .org, .com, .net, et cetera. 121 00:05:41,829 --> 00:05:44,129 DNS was originally created to be 122 00:05:44,129 --> 00:05:47,116 an open and public communication protocol 123 00:05:47,116 --> 00:05:49,871 for government and educational institutions. 124 00:05:49,871 --> 00:05:51,589 Because of its openness, 125 00:05:51,589 --> 00:05:54,706 DNS is susceptible to cyber attacks. 126 00:05:55,247 --> 00:05:58,399 An example attack is DNS spoofing. 127 00:05:58,399 --> 00:06:01,724 That's when a hacker taps into a DNS server 128 00:06:01,724 --> 00:06:04,450 and changes it to match a domain name 129 00:06:04,450 --> 00:06:06,725 with the wrong IP address. 130 00:06:06,985 --> 00:06:11,588 This lets the attacker send people to one imposter website. 131 00:06:11,588 --> 00:06:13,364 If this happens to you, 132 00:06:13,364 --> 00:06:15,694 you are vulnerable for more problems 133 00:06:15,694 --> 00:06:19,783 because you are using that fake website as if it is real. 134 00:06:21,443 --> 00:06:25,597 The internet is huge, and getting bigger every day. 135 00:06:25,597 --> 00:06:28,599 But the Domain Name System and Internet Protocol 136 00:06:28,599 --> 00:06:30,485 are designed to scale, 137 00:06:30,485 --> 00:06:32,885 no matter how much the internet grows.