All language subtitles for internet_primer-720p-en

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian Download
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 0 00:00:00,000 --> 00:00:04,580 1 00:00:04,580 --> 00:00:06,580 DOUG LLOYD: If you've been watching these videos 2 00:00:06,580 --> 00:00:09,030 in the order which we recommend, we're about to undergo 3 00:00:09,030 --> 00:00:10,260 bit of a culture shift. 4 00:00:10,260 --> 00:00:13,093 Because now, we're going to start talking about the internet and web 5 00:00:13,093 --> 00:00:13,669 technologies. 6 00:00:13,669 --> 00:00:15,835 So up until now, we've really been doing a lot of C. 7 00:00:15,835 --> 00:00:17,370 >> And when we've been running our programs, 8 00:00:17,370 --> 00:00:19,500 we have been running them from the command line. 9 00:00:19,500 --> 00:00:23,080 That's pretty much how the users have been interacting with the programs 10 00:00:23,080 --> 00:00:23,760 that we write. 11 00:00:23,760 --> 00:00:26,859 They pick something to prompt, something happens in the terminal window, 12 00:00:26,859 --> 00:00:27,650 and then it's done. 13 00:00:27,650 --> 00:00:30,957 >> Sometimes you might have persistent data that remains afterwards. 14 00:00:30,957 --> 00:00:32,040 But that's pretty much it. 15 00:00:32,040 --> 00:00:33,081 It's at the command line. 16 00:00:33,081 --> 00:00:34,775 It's the only way the user can interact. 17 00:00:34,775 --> 00:00:36,650 From this point forward, we're going to start 18 00:00:36,650 --> 00:00:39,980 transitioning so that the users can interact with our websites. 19 00:00:39,980 --> 00:00:42,688 So we're going to be writing websites, which aren't written in C, 20 00:00:42,688 --> 00:00:46,600 but are written in a variety of other programming languages, including PHP, 21 00:00:46,600 --> 00:00:50,810 and it's sort of helper languages, HTML, CSS, and the like. 22 00:00:50,810 --> 00:00:53,130 So we're going to start talking about those things. 23 00:00:53,130 --> 00:00:55,740 >> Before we get into web programming itself, 24 00:00:55,740 --> 00:00:58,720 I think it's probably a good idea to take a step back and talk 25 00:00:58,720 --> 00:01:02,720 about how computers and humans interact over the web. 26 00:01:02,720 --> 00:01:07,520 So this video is really a primer, a basic guide, to the internet. 27 00:01:07,520 --> 00:01:10,951 Now, the caveat here is the CS50 is not a networking class. 28 00:01:10,951 --> 00:01:13,700 So what we're going to be talking about here is pretty high level. 29 00:01:13,700 --> 00:01:17,240 We're not going to get into any low level 30 00:01:17,240 --> 00:01:19,540 details of how all this stuff works. 31 00:01:19,540 --> 00:01:21,290 If you're interested in that, I'd strongly 32 00:01:21,290 --> 00:01:24,580 recommend taking a class on computer networking. 33 00:01:24,580 --> 00:01:26,540 And we might even tell white lie or two just 34 00:01:26,540 --> 00:01:31,590 for the purposes of making the general understanding clear. 35 00:01:31,590 --> 00:01:35,780 >> So with that said, let's talk about how we interact with the internet. 36 00:01:35,780 --> 00:01:37,570 So here we are. 37 00:01:37,570 --> 00:01:38,430 Here's us. 38 00:01:38,430 --> 00:01:41,096 We're pretty looking forward to getting onto the internet, which 39 00:01:41,096 --> 00:01:42,810 as we all know, is chock full of cats. 40 00:01:42,810 --> 00:01:45,210 >> Now do we just connect to the internet like this? 41 00:01:45,210 --> 00:01:46,360 Well, probably not. 42 00:01:46,360 --> 00:01:48,620 Intuitively, you know that, say for example, 43 00:01:48,620 --> 00:01:51,190 when you change your Wi-Fi network on your computer, 44 00:01:51,190 --> 00:01:54,010 you don't see one called internet unless that just so happens 45 00:01:54,010 --> 00:01:58,870 to be the name of your local Wi-Fi. 46 00:01:58,870 --> 00:01:59,370 Right? 47 00:01:59,370 --> 00:02:00,880 >> It's usually something like home. 48 00:02:00,880 --> 00:02:03,338 Or if you're at work, it might be the name of your company. 49 00:02:03,338 --> 00:02:05,340 There's not just one option called internet. 50 00:02:05,340 --> 00:02:09,710 And so something or some things exist in between when 51 00:02:09,710 --> 00:02:11,490 we want to connect to the internet. 52 00:02:11,490 --> 00:02:12,740 What are some of those things? 53 00:02:12,740 --> 00:02:14,110 Well, we're going to talk about that. 54 00:02:14,110 --> 00:02:16,180 We're also going to talk about some of the important things 55 00:02:16,180 --> 00:02:18,710 we need in order to be able to connect to the internet. 56 00:02:18,710 --> 00:02:21,214 And the first of these things is an IP address. 57 00:02:21,214 --> 00:02:23,380 So you've probably heard the term IP address before. 58 00:02:23,380 --> 00:02:24,630 What does it mean? 59 00:02:24,630 --> 00:02:28,270 Well, an IP address is basically a unique identifier 60 00:02:28,270 --> 00:02:30,820 of your computer on a network. 61 00:02:30,820 --> 00:02:33,640 Just like every home or office has a unique address 62 00:02:33,640 --> 00:02:36,660 to which one could send a mail. 63 00:02:36,660 --> 00:02:40,750 >> Similarly, every computer if it wants to receive data or send data, 64 00:02:40,750 --> 00:02:43,040 needs to have a unique address. 65 00:02:43,040 --> 00:02:45,720 So that when information is sent or received, 66 00:02:45,720 --> 00:02:49,720 it's being sent from or received to the correct location. 67 00:02:49,720 --> 00:02:52,660 This addressing scheme, as I said, is called IP addressing. 68 00:02:52,660 --> 00:02:57,690 IP is stands for Internet Protocol, which we'll talk about again shortly. 69 00:02:57,690 --> 00:03:00,230 >> Now, what does IP addressing look like? 70 00:03:00,230 --> 00:03:04,330 Well, the scheme basically was, when it was first implemented, 71 00:03:04,330 --> 00:03:07,846 to give every computer a unique 32-bit address. 72 00:03:07,846 --> 00:03:08,720 That's a lot of bits. 73 00:03:08,720 --> 00:03:10,900 That's 4 billion addresses. 74 00:03:10,900 --> 00:03:14,190 >> And generally, instead of using hexadecimal notation, which 75 00:03:14,190 --> 00:03:18,450 we've used previously in the context of pointers in C to talk about addresses, 76 00:03:18,450 --> 00:03:21,580 we usually represent IP addresses in a little bit more 77 00:03:21,580 --> 00:03:24,370 of a human friendly way, representing them 78 00:03:24,370 --> 00:03:28,680 as four clusters of 8 bits represented as decimal numbers. 79 00:03:28,680 --> 00:03:34,920 Because humans don't frequently speak hexadecimal, unless you're programming. 80 00:03:34,920 --> 00:03:38,400 But people who use the internet aren't necessarily programmers. 81 00:03:38,400 --> 00:03:41,660 >> And so making it easy and accessible for them 82 00:03:41,660 --> 00:03:45,430 to be able to talk about what their IP address is in case they maybe 83 00:03:45,430 --> 00:03:47,690 need to call up somebody to troubleshoot something, 84 00:03:47,690 --> 00:03:51,610 it's better to make it in the more common conventional decimal number 85 00:03:51,610 --> 00:03:52,880 format. 86 00:03:52,880 --> 00:03:57,570 And so an IP address just looks pretty much like this, w.x.y.z, 87 00:03:57,570 --> 00:04:00,650 where each one of those letters represents a non-negative value 88 00:04:00,650 --> 00:04:02,960 in the range of 0 to 255. 89 00:04:02,960 --> 00:04:07,950 Recall that an 8-bit number can hold 256 distinct values. 90 00:04:07,950 --> 00:04:10,520 >> And so that's why our range is 0 to 255. 91 00:04:10,520 --> 00:04:15,030 And we have four clusters of 8 bits for a grand total of 32 bits. 92 00:04:15,030 --> 00:04:17,920 And so an IP address might look something like this. 93 00:04:17,920 --> 00:04:24,120 This is sort of a generic default IP address, 123.45.67.89. 94 00:04:24,120 --> 00:04:28,850 All of them are in the range of 0 to 255, so that's a valid IP address. 95 00:04:28,850 --> 00:04:34,040 >> Here at Harvard University, all of our IP addresses start with 140.247. 96 00:04:34,040 --> 00:04:37,130 That's just the way that the IP addresses in this geographic area 97 00:04:37,130 --> 00:04:38,130 have been assigned. 98 00:04:38,130 --> 00:04:42,750 And so this might be an IP address that might exist here at Harvard. 99 00:04:42,750 --> 00:04:46,810 >> So as I said, if every IP address is 32 bits, we have about 4 billion 100 00:04:46,810 --> 00:04:49,290 to give out, a little more than 4 billion. 101 00:04:49,290 --> 00:04:51,470 But we can kind of see a problem, right? 102 00:04:51,470 --> 00:04:53,190 What's the world population right now? 103 00:04:53,190 --> 00:04:56,560 >> Well, it's somewhere north of 7 billion people. 104 00:04:56,560 --> 00:04:58,800 And in the Western world at least, most people 105 00:04:58,800 --> 00:05:02,644 have more than one device capable of internet connectivity. 106 00:05:02,644 --> 00:05:03,560 I have one right here. 107 00:05:03,560 --> 00:05:04,880 And I have another one in my pocket. 108 00:05:04,880 --> 00:05:06,340 And I have one back in my office. 109 00:05:06,340 --> 00:05:07,387 >> And so that's three. 110 00:05:07,387 --> 00:05:09,970 And that doesn't even count the ones that I have at home, too. 111 00:05:09,970 --> 00:05:12,160 And so that's kind of a problem, right? 112 00:05:12,160 --> 00:05:15,380 We have at least 7 billion people and only 4 billion addresses. 113 00:05:15,380 --> 00:05:18,719 >> And every device is supposed to be uniquely identified. 114 00:05:18,719 --> 00:05:21,260 We have developed some workarounds to deal with this problem, 115 00:05:21,260 --> 00:05:23,240 something called a private IP address, which we're not 116 00:05:23,240 --> 00:05:24,573 going to get into in this video. 117 00:05:24,573 --> 00:05:31,920 But basically, it allows further the web, the internet, to kind of fake 118 00:05:31,920 --> 00:05:35,610 out a little bit that you have a unique address by having private addresses 119 00:05:35,610 --> 00:05:38,730 and then funneling them through one single address, which 120 00:05:38,730 --> 00:05:41,220 is shared by many different computers. 121 00:05:41,220 --> 00:05:43,200 >> But that's really not a long term fix. 122 00:05:43,200 --> 00:05:45,250 Even that fixed isn't going to last forever. 123 00:05:45,250 --> 00:05:50,030 And so we need to have a different way of dealing with this. 124 00:05:50,030 --> 00:05:51,904 >> So as I said, we had about 4 billion. 125 00:05:51,904 --> 00:05:53,820 But that's not going to be good enough, right? 126 00:05:53,820 --> 00:05:56,540 And so the way that it has been decided there we're 127 00:05:56,540 --> 00:05:59,240 going to deal with this is to make longer IP addresses. 128 00:05:59,240 --> 00:06:03,344 Instead of 32-bit addresses, we're going to have 128-bit addresses. 129 00:06:03,344 --> 00:06:05,260 So instead of 4 billion addresses, we're going 130 00:06:05,260 --> 00:06:11,130 to have that huge number of addresses, which is 340 billion billion billion 131 00:06:11,130 --> 00:06:14,150 billion, so a lot of IP addresses. 132 00:06:14,150 --> 00:06:18,240 >> And this new scheme is called IPv6 is commonly how it's referred. 133 00:06:18,240 --> 00:06:21,242 The old scheme being IPv4. 134 00:06:21,242 --> 00:06:23,450 It's a bit of a problem in that this problem has been 135 00:06:23,450 --> 00:06:25,470 known about for a really long time. 136 00:06:25,470 --> 00:06:28,025 137 00:06:28,025 --> 00:06:32,201 >> And you'll see this a lot in the context of computers and computing. 138 00:06:32,201 --> 00:06:33,700 We're good at anticipating problems. 139 00:06:33,700 --> 00:06:36,449 But we're bad at dealing with them even though we know about them. 140 00:06:36,449 --> 00:06:38,340 So IPv6 has been around for a while. 141 00:06:38,340 --> 00:06:40,510 And only in the last couple years have we actually 142 00:06:40,510 --> 00:06:47,190 started phasing in these IPv6 addresses to phase out the IPv4 addresses. 143 00:06:47,190 --> 00:06:49,520 But some places do have them. 144 00:06:49,520 --> 00:06:52,200 And they look similar to a regular IP address. 145 00:06:52,200 --> 00:06:53,520 But they are a lot longer. 146 00:06:53,520 --> 00:06:59,900 >> So instead of now having four clusters of 8 bytes for your address, 147 00:06:59,900 --> 00:07:03,580 we now have eight clusters of 16 bytes. 148 00:07:03,580 --> 00:07:06,680 And 8 times 16 is 128. 149 00:07:06,680 --> 00:07:11,210 And we represent these in the less conventional hexadecimal form. 150 00:07:11,210 --> 00:07:16,930 Because having 16-bit numbers means that instead of being a range of 0 to 255, 151 00:07:16,930 --> 00:07:20,350 We'd have a range of 0 to 65,535. 152 00:07:20,350 --> 00:07:22,470 >> And so having a bunch of those stuck together 153 00:07:22,470 --> 00:07:24,680 would be very difficult to read. 154 00:07:24,680 --> 00:07:27,480 And so we usually use hex just out of convenience. 155 00:07:27,480 --> 00:07:31,180 And so a typical IPv6 address might look something like this. 156 00:07:31,180 --> 00:07:35,860 >> It's certainly a lot longer than the IPv4 address we've seen before. 157 00:07:35,860 --> 00:07:39,280 But this would be a valid IPv6 address. 158 00:07:39,280 --> 00:07:41,570 This one is also about IPv6 address. 159 00:07:41,570 --> 00:07:44,331 >> This one happens to belong to Google. 160 00:07:44,331 --> 00:07:46,080 And notice there's a bunch of zeros there. 161 00:07:46,080 --> 00:07:47,930 Sometimes these addresses can get so long. 162 00:07:47,930 --> 00:07:50,530 And since we're still pretty early in IPv6, 163 00:07:50,530 --> 00:07:54,250 sometimes there can be big chunks of zeros in there that we don't need. 164 00:07:54,250 --> 00:08:01,920 >> If you're reading this out loud, it's 2001.4860.4860.0.0.0.0.8844. 165 00:08:01,920 --> 00:08:03,325 It's kind of a lot, right? 166 00:08:03,325 --> 00:08:05,450 So if you see a bunch of zeros, you might sometimes 167 00:08:05,450 --> 00:08:08,990 see an IPv6 address like this, where they omit the zeros 168 00:08:08,990 --> 00:08:10,959 and use a double colon instead. 169 00:08:10,959 --> 00:08:11,750 This is OK, though. 170 00:08:11,750 --> 00:08:14,610 Because we know that there are supposed to be eight distinct chunks. 171 00:08:14,610 --> 00:08:17,190 And so by implication, we see four. 172 00:08:17,190 --> 00:08:20,620 So we know that there must be four sets of zeros like this, that fill it in. 173 00:08:20,620 --> 00:08:23,760 >> So sometimes, you might see an IPv6 address not having 174 00:08:23,760 --> 00:08:26,650 eight separated chunks like we do here. 175 00:08:26,650 --> 00:08:28,760 You might see it looking like this. 176 00:08:28,760 --> 00:08:31,310 And that just means that everything you don't see in 177 00:08:31,310 --> 00:08:37,450 between where that double colon is is just zero separated. 178 00:08:37,450 --> 00:08:37,998 >> So, OK. 179 00:08:37,998 --> 00:08:40,039 We know a little bit more about IP addresses now. 180 00:08:40,039 --> 00:08:41,250 But how do we get them? 181 00:08:41,250 --> 00:08:44,727 We can't just pick the one we want. 182 00:08:44,727 --> 00:08:47,810 If we did that, we might end up fighting somebody for the same IP address. 183 00:08:47,810 --> 00:08:50,050 Or somebody might have chosen it previously. 184 00:08:50,050 --> 00:08:52,799 If we try and take it, we're going to run into a bit of a problem. 185 00:08:52,799 --> 00:08:56,300 And so we can't just pick the IP address that we want. 186 00:08:56,300 --> 00:08:58,410 >> So the way that we get an IP address is somewhere 187 00:08:58,410 --> 00:09:02,960 between our computer and the internet, that big internet out there, 188 00:09:02,960 --> 00:09:07,500 there's something called a DHCP server, a Dynamic Host Configuration Protocol 189 00:09:07,500 --> 00:09:08,630 server. 190 00:09:08,630 --> 00:09:09,960 It's a big mouthful of text. 191 00:09:09,960 --> 00:09:12,670 But really all it does is it assigns you an IP address. 192 00:09:12,670 --> 00:09:16,960 >> Your DHCP server has a list of addresses that it can validly assign. 193 00:09:16,960 --> 00:09:18,160 And it gives you one. 194 00:09:18,160 --> 00:09:19,743 That's pretty much all there is to it. 195 00:09:19,743 --> 00:09:23,810 Now before DHCP, this task of assigning addresses 196 00:09:23,810 --> 00:09:25,106 fell to a system administrator. 197 00:09:25,106 --> 00:09:27,730 So an actual person would have to manually assign your computer 198 00:09:27,730 --> 00:09:30,670 and address when you connected to a network. 199 00:09:30,670 --> 00:09:34,307 So DHCP just sort of automates this process of giving you an IP address. 200 00:09:34,307 --> 00:09:35,390 But that's how you get it. 201 00:09:35,390 --> 00:09:37,431 It's just a program running somewhere between you 202 00:09:37,431 --> 00:09:40,920 and the internet that has a bank of IP addresses that it can give out. 203 00:09:40,920 --> 00:09:43,170 And when you connect to the network, it gives you one. 204 00:09:43,170 --> 00:09:44,660 So let's revisit this diagram. 205 00:09:44,660 --> 00:09:49,660 Somewhere between you and the internet, there's a DHCP server. 206 00:09:49,660 --> 00:09:50,160 OK. 207 00:09:50,160 --> 00:09:51,500 So that's good. 208 00:09:51,500 --> 00:09:53,537 Now, let's talk about DNS. 209 00:09:53,537 --> 00:09:55,370 So we've talked although these IP addresses. 210 00:09:55,370 --> 00:09:57,840 And we know that if we're going to uniquely identify 211 00:09:57,840 --> 00:10:01,740 a device on the internet, it has to have a unique address. 212 00:10:01,740 --> 00:10:04,150 >> And we could visit that address if we wanted to. 213 00:10:04,150 --> 00:10:09,600 But you've probably never typed in something like 192.168.1.0 214 00:10:09,600 --> 00:10:11,490 into your browser, right? 215 00:10:11,490 --> 00:10:13,980 You don't type in numbers into your browser. 216 00:10:13,980 --> 00:10:19,410 You usually type in human readable names like google.com or cs50.harvard.edu, 217 00:10:19,410 --> 00:10:20,640 right? 218 00:10:20,640 --> 00:10:22,880 >> Those aren't IP addresses, though. 219 00:10:22,880 --> 00:10:27,320 So exists this service called the Domain Name 220 00:10:27,320 --> 00:10:33,990 System, DNS, that translates IP addresses to human comprehensible words 221 00:10:33,990 --> 00:10:37,690 or phrases that are much more memorable than remembering a set of four numbers 222 00:10:37,690 --> 00:10:40,430 or, soon, a set of eight hexadecimal numbers. 223 00:10:40,430 --> 00:10:42,400 That would be really challenging, right? 224 00:10:42,400 --> 00:10:45,560 >> Think about before the days of cell phones. 225 00:10:45,560 --> 00:10:47,730 You had your memorize your friend's phone numbers. 226 00:10:47,730 --> 00:10:49,230 It might have gotten tough after a little while. 227 00:10:49,230 --> 00:10:51,190 And similarly, if you want to visit a bunch of websites, 228 00:10:51,190 --> 00:10:53,570 you probably don't want to remember a bunch of numbers. 229 00:10:53,570 --> 00:10:56,640 You'd rather remember a bunch of words. 230 00:10:56,640 --> 00:11:01,930 >> So this mapping, this translating, of sets of numbers to human readable names 231 00:11:01,930 --> 00:11:04,520 kind of makes DNS the yellow pages of the web. 232 00:11:04,520 --> 00:11:06,270 And you can think about it as if it's just 233 00:11:06,270 --> 00:11:14,305 a huge list running from 0.0.0.0 all the way down to 255.255.255.255, which 234 00:11:14,305 --> 00:11:21,490 would be the highest possible-- that's the full range from 0s to 255s of all 4 235 00:11:21,490 --> 00:11:25,525 billion-ish IPv4 addresses. 236 00:11:25,525 --> 00:11:27,400 I made up the ones on the top and the bottom. 237 00:11:27,400 --> 00:11:30,500 But the one in the middle there is actually an IP address. 238 00:11:30,500 --> 00:11:38,440 So if we visited 74.125.202.138, apparently that translates to that site 239 00:11:38,440 --> 00:11:40,490 there, io-- what the heck is that? 240 00:11:40,490 --> 00:11:46,290 Well, not every name that maps is actually clear what it is, right? 241 00:11:46,290 --> 00:11:48,920 >> So sometimes somebody who owns an IP address 242 00:11:48,920 --> 00:11:52,090 might name their host something that they're actually not. 243 00:11:52,090 --> 00:11:55,442 For example, that IP address if you went there, is actually just google.com. 244 00:11:55,442 --> 00:11:57,540 But Google has a lot of different servers. 245 00:11:57,540 --> 00:11:59,322 >> And they can't call them all google.com. 246 00:11:59,322 --> 00:12:03,530 So they have their own internal system for translating 247 00:12:03,530 --> 00:12:09,125 google.com to whatever server actually is connected to that IP address. 248 00:12:09,125 --> 00:12:11,250 And then there's another system that exists between 249 00:12:11,250 --> 00:12:15,120 to translate that gobbledygook here to google.com. 250 00:12:15,120 --> 00:12:16,830 But we won't get into that. 251 00:12:16,830 --> 00:12:18,920 >> And similarly for IPv6s, we're also going 252 00:12:18,920 --> 00:12:22,089 to have a yellow pages that'll be a lot bigger. 253 00:12:22,089 --> 00:12:23,880 And similarly, in the middle there-- it was 254 00:12:23,880 --> 00:12:26,496 tough to find an IPv6 address that was legitimate. 255 00:12:26,496 --> 00:12:27,620 But I found one for Google. 256 00:12:27,620 --> 00:12:30,460 >> But it's Google's Irish website. 257 00:12:30,460 --> 00:12:34,170 But if you went to that IPv6 address, if your browser was IPv6 capable, 258 00:12:34,170 --> 00:12:36,940 that would bring you to Google's Irish homepage. 259 00:12:36,940 --> 00:12:39,460 So there you go. 260 00:12:39,460 --> 00:12:41,830 >> But this isn't entirely true, right? 261 00:12:41,830 --> 00:12:43,710 This the system seems cumbersome, right? 262 00:12:43,710 --> 00:12:47,220 If there's a huge list of 4 billion things to have to look up, 263 00:12:47,220 --> 00:12:48,270 that's pretty big. 264 00:12:48,270 --> 00:12:52,634 There's no yellow pages of the world, right? 265 00:12:52,634 --> 00:12:54,800 If you still get the yellow pages delivered to you-- 266 00:12:54,800 --> 00:12:56,841 I got mine the other day, and I just recycled it. 267 00:12:56,841 --> 00:12:59,070 But if you do get the yellow pages delivered to you, 268 00:12:59,070 --> 00:13:02,120 you don't get a book that's every phone number that exists on the planet, 269 00:13:02,120 --> 00:13:02,620 right? 270 00:13:02,620 --> 00:13:05,500 You get a list of the local phone numbers, 271 00:13:05,500 --> 00:13:07,670 the ones you're most likely to call. 272 00:13:07,670 --> 00:13:09,400 >> And that's actually what DNS is. 273 00:13:09,400 --> 00:13:12,860 If you think about it, DNS is really the local yellow pages. 274 00:13:12,860 --> 00:13:17,350 And large DNS servers like google.coms, they 275 00:13:17,350 --> 00:13:19,180 are actually just more like libraries that 276 00:13:19,180 --> 00:13:25,470 have a copy of all of the local yellow pages or all of the local DNS records. 277 00:13:25,470 --> 00:13:29,520 So there's really no one repository of the full DNS of the internet, 278 00:13:29,520 --> 00:13:32,410 just like there's no one yellow pages of the world. 279 00:13:32,410 --> 00:13:36,450 >> There are all these local small scale DNSs that exist out there. 280 00:13:36,450 --> 00:13:39,010 And there are services that aggregate them together. 281 00:13:39,010 --> 00:13:42,174 But they depend on those smaller DNS systems 282 00:13:42,174 --> 00:13:45,340 updating their information, so that they have the most accurate information. 283 00:13:45,340 --> 00:13:48,500 >> So again, this analogy is large aggregating 284 00:13:48,500 --> 00:13:51,910 DNS systems are like libraries that have a copy 285 00:13:51,910 --> 00:13:56,410 of every yellow pages of the world. 286 00:13:56,410 --> 00:13:58,350 They don't themselves update those books. 287 00:13:58,350 --> 00:14:01,620 They depend on the books coming in, so they can update the information 288 00:14:01,620 --> 00:14:04,560 if they need it. 289 00:14:04,560 --> 00:14:07,700 >> So the DNS system is not a giant block. 290 00:14:07,700 --> 00:14:11,026 It's decentralized across many, many servers. 291 00:14:11,026 --> 00:14:13,400 So now we know that somewhere between us and the internet 292 00:14:13,400 --> 00:14:18,350 there exists a DNS server as well as a DHCP server. 293 00:14:18,350 --> 00:14:20,910 >> Now, access points, what our access points? 294 00:14:20,910 --> 00:14:23,840 Well, access points you're probably pretty familiar with from actually 295 00:14:23,840 --> 00:14:24,964 connecting to the internet. 296 00:14:24,964 --> 00:14:28,820 That's the network that you choose, the home or your work network 297 00:14:28,820 --> 00:14:30,310 or what have you. 298 00:14:30,310 --> 00:14:32,597 >> And I'm generalizing the concept of an access point 299 00:14:32,597 --> 00:14:33,930 here for purposes of this video. 300 00:14:33,930 --> 00:14:35,721 But there are actually a lot of things that 301 00:14:35,721 --> 00:14:38,766 can be rolled up into access points. 302 00:14:38,766 --> 00:14:41,890 There are concepts of routers, which is sort of a general term that we use. 303 00:14:41,890 --> 00:14:45,940 >> But there are also switches and things actually called 304 00:14:45,940 --> 00:14:49,070 access points that are separate from this general concept of an access 305 00:14:49,070 --> 00:14:49,780 point. 306 00:14:49,780 --> 00:14:54,510 But basically what happens is with IPv4, I 307 00:14:54,510 --> 00:14:57,030 said we have this concept of private addresses, right? 308 00:14:57,030 --> 00:15:03,680 And instead of every machine having a unique IP address, which 309 00:15:03,680 --> 00:15:07,720 we have run out of, because we're over 4 billion devices 310 00:15:07,720 --> 00:15:09,860 trying to connect to the internet, what we do 311 00:15:09,860 --> 00:15:12,810 is instead assign an IP address to a router. 312 00:15:12,810 --> 00:15:15,960 That router or access point just in your home, for example. 313 00:15:15,960 --> 00:15:19,280 >> And the router's job as to sort of act as a traffic cop, 314 00:15:19,280 --> 00:15:23,540 allowing everybody who's connected to that router to use the same IP 315 00:15:23,540 --> 00:15:25,115 address to get out. 316 00:15:25,115 --> 00:15:25,990 Does that make sense? 317 00:15:25,990 --> 00:15:29,414 So everybody at your home has a private IP address. 318 00:15:29,414 --> 00:15:31,830 They can't connect to the internet, or the internet rather 319 00:15:31,830 --> 00:15:34,870 can't speak to them, through that private address. 320 00:15:34,870 --> 00:15:37,656 They can only speak to them through the address in the router. 321 00:15:37,656 --> 00:15:39,530 And it's the router's job to take information 322 00:15:39,530 --> 00:15:42,900 that you're sending the router and direct it to the correct place 323 00:15:42,900 --> 00:15:46,890 and for information that's coming into the router for the router 324 00:15:46,890 --> 00:15:48,860 to send it to you. 325 00:15:48,860 --> 00:15:52,470 >> So the routers are really the devices here-- particularly a router 326 00:15:52,470 --> 00:15:59,010 in your home, the most common sort of usage case for most people-- 327 00:15:59,010 --> 00:16:00,870 that has the public IP address. 328 00:16:00,870 --> 00:16:03,910 That's the device that's connected to the internet. 329 00:16:03,910 --> 00:16:07,190 And you connect to the router to have information flow 330 00:16:07,190 --> 00:16:09,910 through it on your behalf. 331 00:16:09,910 --> 00:16:14,420 >> As I said, a modern home network, the router and switch and access point 332 00:16:14,420 --> 00:16:16,420 are all kind of bundled up into a single device. 333 00:16:16,420 --> 00:16:19,240 Sometimes a modem is bundled in there as well. 334 00:16:19,240 --> 00:16:20,800 That's usually just called a router. 335 00:16:20,800 --> 00:16:23,210 But it's really all of those things together. 336 00:16:23,210 --> 00:16:27,870 >> Large scale business networks or so-called Wide Area Networks, WANS, 337 00:16:27,870 --> 00:16:29,570 actually keep these devices separate. 338 00:16:29,570 --> 00:16:30,470 They have a switch. 339 00:16:30,470 --> 00:16:31,550 They have routers. 340 00:16:31,550 --> 00:16:33,510 They have multiple access points. 341 00:16:33,510 --> 00:16:36,250 >> For example, at a university you'll see things 342 00:16:36,250 --> 00:16:40,300 that look like so-called routers mounted are all around campus. 343 00:16:40,300 --> 00:16:44,120 Those are all access points that flow into routers, switches, et cetera, 344 00:16:44,120 --> 00:16:45,250 to pass information along. 345 00:16:45,250 --> 00:16:49,120 Because these networks are so big that one single access point 346 00:16:49,120 --> 00:16:51,870 can't cover its large area. 347 00:16:51,870 --> 00:16:54,990 >> And so these large networks, business networks, et cetera, 348 00:16:54,990 --> 00:16:57,710 split these into separate devices, so the network and scale 349 00:16:57,710 --> 00:16:59,780 and grow if needed. 350 00:16:59,780 --> 00:17:04,180 So again, somewhere between us and the internet, we have an access point. 351 00:17:04,180 --> 00:17:05,430 And that's what we connect to. 352 00:17:05,430 --> 00:17:08,992 And through there, we can get to the internet. 353 00:17:08,992 --> 00:17:10,700 As I said at the beginning of this video, 354 00:17:10,700 --> 00:17:12,540 this is not a course on networking. 355 00:17:12,540 --> 00:17:13,990 So this is not the entire story. 356 00:17:13,990 --> 00:17:15,109 And I've kind of glossed over it. 357 00:17:15,109 --> 00:17:17,150 And maybe I've left you even a little bit confused 358 00:17:17,150 --> 00:17:18,670 as to what some of these things are. 359 00:17:18,670 --> 00:17:19,329 But that's OK. 360 00:17:19,329 --> 00:17:20,599 >> We don't need the whole story. 361 00:17:20,599 --> 00:17:25,250 It's enough for us to know moving forward just basically a little bit 362 00:17:25,250 --> 00:17:27,450 about how the internet works. 363 00:17:27,450 --> 00:17:30,670 So what we know is we have these private networks at our house. 364 00:17:30,670 --> 00:17:32,880 >> And we connect to a router. 365 00:17:32,880 --> 00:17:36,674 And that router is connected to the internet at large. 366 00:17:36,674 --> 00:17:38,090 But what is the internet at large? 367 00:17:38,090 --> 00:17:39,930 I keep saying this, but what is it? 368 00:17:39,930 --> 00:17:43,610 >> Well, it's really just all these individual networks at my house, 369 00:17:43,610 --> 00:17:47,460 and at your house, and at every other house, that are connected together. 370 00:17:47,460 --> 00:17:52,030 It's an interconnected network, an inter-net. 371 00:17:52,030 --> 00:17:53,840 So instead of thinking about the internet 372 00:17:53,840 --> 00:17:59,080 as this giant cloud, this ethereal thing that exists out there, 373 00:17:59,080 --> 00:18:02,470 it's really just a connection among all of these networks. 374 00:18:02,470 --> 00:18:03,500 >> So here we go. 375 00:18:03,500 --> 00:18:04,752 We have our local network. 376 00:18:04,752 --> 00:18:07,210 And we're not the only person probably on our local network 377 00:18:07,210 --> 00:18:08,335 trying to use the internet. 378 00:18:08,335 --> 00:18:10,940 There's probably several of us trying to get in. 379 00:18:10,940 --> 00:18:13,870 >> And we're not the only network that exists in the world, right? 380 00:18:13,870 --> 00:18:18,300 There are other networks, too, that are trying to connect to the internet. 381 00:18:18,300 --> 00:18:21,400 But the internet is not, again, a separate entity. 382 00:18:21,400 --> 00:18:25,592 >> It's just a set of rules that allow these networks, these small networks, 383 00:18:25,592 --> 00:18:27,300 the blue, the purple, and the red network 384 00:18:27,300 --> 00:18:28,980 here, to communicate with each other. 385 00:18:28,980 --> 00:18:31,230 So there's no thing they're all connecting to. 386 00:18:31,230 --> 00:18:35,010 They're all just connected to each other, right? 387 00:18:35,010 --> 00:18:37,710 >> And so somewhere on these networks exists the services 388 00:18:37,710 --> 00:18:39,095 that we actually want. 389 00:18:39,095 --> 00:18:41,220 So maybe in the blue network is where Google lives. 390 00:18:41,220 --> 00:18:43,303 And in the purple network is where Facebook lives. 391 00:18:43,303 --> 00:18:46,310 And in the red network, well, maybe that's where all those cats are. 392 00:18:46,310 --> 00:18:49,440 >> And so if we want to get information about cats, 393 00:18:49,440 --> 00:18:55,166 we just traverse this chain of networks to get the information we want. 394 00:18:55,166 --> 00:18:57,040 And here, I've represented the network as all 395 00:18:57,040 --> 00:18:58,414 being able to talk to each other. 396 00:18:58,414 --> 00:19:00,300 And we can only talk to the network. 397 00:19:00,300 --> 00:19:01,910 But the network can't talk back to us. 398 00:19:01,910 --> 00:19:03,326 >> But that's not true either, right? 399 00:19:03,326 --> 00:19:04,610 This is all a two-way street. 400 00:19:04,610 --> 00:19:07,860 Information can flow through networks back and forth. 401 00:19:07,860 --> 00:19:09,007 >> How does it do that? 402 00:19:09,007 --> 00:19:11,090 Well, the internet's really a system of protocols. 403 00:19:11,090 --> 00:19:11,970 And we're going to start talking about what 404 00:19:11,970 --> 00:19:14,130 those protocols are in future videos. 405 00:19:14,130 --> 00:19:16,940 >> But again, the internet is not a separate thing. 406 00:19:16,940 --> 00:19:20,760 It's a set of rules that defines how networks communicate, 407 00:19:20,760 --> 00:19:23,410 these small networks, these local network that we're used to, 408 00:19:23,410 --> 00:19:26,600 the people in our house, the people at our school, the people at our job, 409 00:19:26,600 --> 00:19:29,160 all sharing a network. 410 00:19:29,160 --> 00:19:31,900 And how these networks interconnect and talk to each other, 411 00:19:31,900 --> 00:19:34,160 that's actually what the internet's all about. 412 00:19:34,160 --> 00:19:36,090 So let's, in a future video, talk about some 413 00:19:36,090 --> 00:19:38,940 of the protocols that comprise the internet to hopefully 414 00:19:38,940 --> 00:19:42,320 give you a bit more of a well-rounded understanding. 415 00:19:42,320 --> 00:19:43,320 I'm Doug Lloyd. 416 00:19:43,320 --> 00:19:45,260 This is CS50. 417 00:19:45,260 --> 00:19:47,351 34737

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.