1 00:00:00,000 --> 00:00:03,395 >> [Muziek] 2 00:00:03,395 --> 00:00:13,100 3 00:00:13,100 --> 00:00:15,570 >> DAVID J. MALAN: Dus ik gewoon wilde stillen aan. 4 00:00:15,570 --> 00:00:18,260 Ik zou precies wat Scaz echo gezegd over institutioneel geheugen. 5 00:00:18,260 --> 00:00:20,350 CS50 is rond voor zo'n 20 jaar op Harvard. 6 00:00:20,350 --> 00:00:22,280 De realiteit is, uit de senioren naar beneden, 7 00:00:22,280 --> 00:00:25,045 Er is jaarlijks geruststelling dat de eerstejaars, de tweedejaarsstudenten, 8 00:00:25,045 --> 00:00:26,870 en de kinderen en Ook de senioren nemen 9 00:00:26,870 --> 00:00:30,360 CS50, dat je uiteindelijk doet het prima. 10 00:00:30,360 --> 00:00:32,680 >> De realiteit is, studenten niet nalaten CS50. 11 00:00:32,680 --> 00:00:35,740 In feite, in zeldzame gevallen waar we Es of Fs hebt gehad, 12 00:00:35,740 --> 00:00:37,990 het is echt geweest vanwege verzachtende omstandigheden, 13 00:00:37,990 --> 00:00:39,840 of het nu medische of persoonlijke. 14 00:00:39,840 --> 00:00:41,830 Ds zijn ongelooflijk zeldzaam ook. 15 00:00:41,830 --> 00:00:45,270 En ik kan gemakkelijk zeggen dat, hoewel we meestal niet statistieken bekend te maken, 16 00:00:45,270 --> 00:00:48,450 maar aangezien er geen institutioneel geheugen hier dan ook, 17 00:00:48,450 --> 00:00:51,810 een meerderheid van de studenten in CS50 heb uiteindelijk krijgt een reeks cijfers. 18 00:00:51,810 --> 00:00:54,720 Een aanzienlijk deel belanden eindigend in de B-serie ook. 19 00:00:54,720 --> 00:00:57,490 >> Dus hoewel je misschien wel gelijkstellen in je geest drieën 20 00:00:57,490 --> 00:01:00,690 met 60% en dus Ds of Cs en dergelijke, 21 00:01:00,690 --> 00:01:02,530 het is echt niet lijn met de werkelijkheid. 22 00:01:02,530 --> 00:01:05,238 In feite, bedoelen we precies wat we zeggen het begin van de term 23 00:01:05,238 --> 00:01:08,380 dat zoveel studenten in CS50, zowel in Cambridge en hier in New Haven, 24 00:01:08,380 --> 00:01:10,220 hebben een CS natuurlijk nooit eerder genomen. 25 00:01:10,220 --> 00:01:13,090 En wat inderdaad uiteindelijk telt is waar je terecht komt in week 12 26 00:01:13,090 --> 00:01:15,882 ten opzichte van uzelf in week nul. 27 00:01:15,882 --> 00:01:17,590 Nu hebben we meerdere tracks in de loop 28 00:01:17,590 --> 00:01:20,548 zoals u weten-- minder comfortabel, meer comfortabele, ergens tussenin. 29 00:01:20,548 --> 00:01:23,790 En inderdaad, als je statistieken van deze week de quiz, 30 00:01:23,790 --> 00:01:27,460 niet ontmoedigd als, vooral als je voelt dat je rond het gemiddelde 31 00:01:27,460 --> 00:01:30,780 of onder het gemiddelde of de mediaan, vooral omdat we niet per se 32 00:01:30,780 --> 00:01:33,560 neem al die demografische houdend met mid-semester 33 00:01:33,560 --> 00:01:35,000 met het sorteren statistieken. 34 00:01:35,000 --> 00:01:37,250 >> Met andere woorden, we weten statistisch per jaar 35 00:01:37,250 --> 00:01:39,570 dat studenten die minder comfortabel, doe een beetje slechter op de quiz. 36 00:01:39,570 --> 00:01:42,050 En studenten die meer comfortabele doe een beetje beter op de quiz. 37 00:01:42,050 --> 00:01:45,430 Maar per die belofte in de syllabus en ook in de eerste week van lezingen, 38 00:01:45,430 --> 00:01:46,880 we nemen dat allemaal in aanmerking. 39 00:01:46,880 --> 00:01:48,900 >> Inderdaad, bij jareneind, wat we uiteindelijk doen 40 00:01:48,900 --> 00:01:52,154 is het normaliseren van alle scores over secties, zowel in Cambridge 41 00:01:52,154 --> 00:01:54,570 en nu hier in New Haven, Dit betekent inachtneming 42 00:01:54,570 --> 00:01:57,310 de ongelijksoortige stijlen, de ongelijksoortige hardheid, de ander soort 43 00:01:57,310 --> 00:02:00,722 van persoonlijkheden die het individu TA hebben hier en in Cambridge 44 00:02:00,722 --> 00:02:02,930 zodat je niet op een nadeel zelfs als je gewoon 45 00:02:02,930 --> 00:02:06,120 gebeuren hebben een TF of TA moest die een beetje moeilijker is geweest op jou 46 00:02:06,120 --> 00:02:07,170 in je gedachten. 47 00:02:07,170 --> 00:02:10,139 >> Twee, houden we rekening met het comfort niveau en de feitelijke achtergrond, of het ontbreken 48 00:02:10,139 --> 00:02:13,310 daarvan, bij het nemen quiz scores in aanmerking. 49 00:02:13,310 --> 00:02:14,830 Dus die twee zijn ingecalculeerd. 50 00:02:14,830 --> 00:02:17,142 Aan het eind van de dag, want het is altijd het geval 51 00:02:17,142 --> 00:02:19,100 dat een student belandde in een minder comfortabele sectie 52 00:02:19,100 --> 00:02:24,250 wanneer hij of zij echt behoorde in een in-tussen of vice versa, 53 00:02:24,250 --> 00:02:26,230 alles is zo ongelooflijk geïndividualiseerd. 54 00:02:26,230 --> 00:02:29,560 Inderdaad, u geërgerd aan ons op te krijgen het einde van de looptijd als we te laat 55 00:02:29,560 --> 00:02:32,630 het indienen van uw kwaliteiten want met Scaz, en Jason, en Andy en ik, 56 00:02:32,630 --> 00:02:35,430 en het team zal hebben gedaan in Cambridge is letterlijk 57 00:02:35,430 --> 00:02:38,480 hebben honderden e-mails heen en weer met alle honderd van de cursussen 58 00:02:38,480 --> 00:02:41,279 Tas, hier en in Cambridge, ze vragen wat 59 00:02:41,279 --> 00:02:44,070 ze denken van al hun studenten op basis van een ontwerp van de rangen. 60 00:02:44,070 --> 00:02:46,230 En alles wat er na is ongelooflijk geïndividualiseerd. 61 00:02:46,230 --> 00:02:49,230 Dus voor zover wij dat je te leren kennen in kantooruren, secties, en nog veel meer, 62 00:02:49,230 --> 00:02:51,350 dat alles ook rekening wordt gehouden. 63 00:02:51,350 --> 00:02:55,210 >> Dus hoewel we de neiging om te gebruiken deze vijf puntsschaal, alsjeblieft, maak jezelf 64 00:02:55,210 --> 00:02:57,492 vanuit de veronderstelling dat drie is inderdaad 60%. 65 00:02:57,492 --> 00:02:58,450 Het is bedoeld goed. 66 00:02:58,450 --> 00:03:01,360 En de assistenten betalen op termijn start 67 00:03:01,360 --> 00:03:04,050 om te proberen om scores te houden in tweeën en drieën, 68 00:03:04,050 --> 00:03:06,590 en fours variëren, zodat we eigenlijk ruimte om te groeien. 69 00:03:06,590 --> 00:03:08,610 En we eigenlijk hebben een maatstaf die 70 00:03:08,610 --> 00:03:11,086 wij kunnen u nuttige geven feedback over hoe je doet 71 00:03:11,086 --> 00:03:12,210 en hoe je vordert. 72 00:03:12,210 --> 00:03:15,130 Dus neem neem dat ter harte. 73 00:03:15,130 --> 00:03:20,565 >> Zijn er vragen die ik kan helpen pakken of zorgen die ik kan helpen verzachten? 74 00:03:20,565 --> 00:03:23,800 Of toezeggingen kan ik proberen te houden? 75 00:03:23,800 --> 00:03:24,690 Nee? 76 00:03:24,690 --> 00:03:25,330 OK. 77 00:03:25,330 --> 00:03:26,010 >> Prima. 78 00:03:26,010 --> 00:03:28,970 Dus met dat gezegd, dit is CS50. 79 00:03:28,970 --> 00:03:31,670 Dit is het begin van week zes hier in New Haven. 80 00:03:31,670 --> 00:03:33,820 Laten we beginnen met een korte dimmen van de verlichting 81 00:03:33,820 --> 00:03:37,439 op het podium voor de inhoud van vandaag te stellen. 82 00:03:37,439 --> 00:03:38,105 [VIDEO AFSPELEN] 83 00:03:38,105 --> 00:03:44,045 [Muziek] 84 00:03:44,045 --> 00:03:46,600 -Hij Kwam met een boodschap. 85 00:03:46,600 --> 00:03:50,300 86 00:03:50,300 --> 00:03:52,900 Met een protocol al zijn eigen. 87 00:03:52,900 --> 00:04:06,417 88 00:04:06,417 --> 00:04:13,090 Hij kwam tot een wereld van koele firewalls, onverschillig routers, en de gevaren veel erger 89 00:04:13,090 --> 00:04:16,079 de dood. 90 00:04:16,079 --> 00:04:21,079 Hij is snel, hij is sterk, hij is TCP / IP. 91 00:04:21,079 --> 00:04:23,120 En hij heeft uw adres. 92 00:04:23,120 --> 00:04:25,820 93 00:04:25,820 --> 00:04:29,268 Strijders van het net. 94 00:04:29,268 --> 00:04:29,917 >> [END AFSPELEN] 95 00:04:29,917 --> 00:04:31,000 DAVID J. MALAN: Oké. 96 00:04:31,000 --> 00:04:32,030 Dit is CS50. 97 00:04:32,030 --> 00:04:33,820 Dit is het begin van week zes. 98 00:04:33,820 --> 00:04:37,270 En dit is het begin van onze blik op het internet en web programmeren. 99 00:04:37,270 --> 00:04:41,220 En, misschien wel het meest spannende, vandaag markeert de overgang voor ons 100 00:04:41,220 --> 00:04:43,780 van onze opdrachtregel wereld van C naar het web 101 00:04:43,780 --> 00:04:47,020 gebaseerde wereld van PHP en HTML, en CSS en SQL en JavaScript, 102 00:04:47,020 --> 00:04:49,800 en zo veel meer, dat is aan de horizon. 103 00:04:49,800 --> 00:04:53,390 >> Maar eerst is het onder onze aandacht gekomen in het lopen over de campus, dat er 104 00:04:53,390 --> 00:04:57,914 een aantal sanitaire hier New Haven genaamd de Harvard kamer, die 105 00:04:57,914 --> 00:04:59,080 is een beetje grijs hier buiten. 106 00:04:59,080 --> 00:05:03,830 Maar inderdaad, iemand ging naar de tijd en de kosten van het etsen in Harvard kamer 107 00:05:03,830 --> 00:05:05,700 Op deze kamer hier. 108 00:05:05,700 --> 00:05:07,790 Bedankt daarvoor. 109 00:05:07,790 --> 00:05:11,020 Ik kan niet zeggen dat we een analoog in Cambridge nog, 110 00:05:11,020 --> 00:05:14,060 maar ik denk dat we een klein project voor onszelf nu wanneer we teruggaan. 111 00:05:14,060 --> 00:05:15,890 Dus dank u voor dat. 112 00:05:15,890 --> 00:05:18,340 >> Dus een snelle terugblik op waar we vorige week gebleven 113 00:05:18,340 --> 00:05:21,010 en waar je naartoe gaat dit komende week met problemen stellen vijf. 114 00:05:21,010 --> 00:05:24,350 Dus in het probleem van de vijf, dan heb je de uitgedaagd om een ​​spellingscontrole uit te voeren. 115 00:05:24,350 --> 00:05:26,630 En om dat te doen, zult u overhandigde een vrij grote tekst 116 00:05:26,630 --> 00:05:29,160 bestand met als 140.000 woorden Engels. 117 00:05:29,160 --> 00:05:32,610 En u zult worden uitgedaagd om te beslissen een gegevensstructuur waarmee je 118 00:05:32,610 --> 00:05:35,340 willen al die woorden te laden in het geheugen en in het RAM, 119 00:05:35,340 --> 00:05:38,470 en vervolgens implementeren van een aantal functies, waarvan er één gaat worden controleren. 120 00:05:38,470 --> 00:05:41,555 Waardoor, wanneer voorbij een argument, een woord, uw functie cheque 121 00:05:41,555 --> 00:05:43,430 gewoon zal hebben te zeggen waar of onwaar, 122 00:05:43,430 --> 00:05:44,990 Dit is een woord in het woordenboek. 123 00:05:44,990 --> 00:05:47,110 >> Maar je gaat sommige hebben ontwerp discretie en uitdagingen 124 00:05:47,110 --> 00:05:48,568 als het gaat om de uitvoering van die. 125 00:05:48,568 --> 00:05:51,250 In de eenvoudigste uitvoering, je kon zeker 126 00:05:51,250 --> 00:05:53,960 implementeren van een spellingscontrole in de onderliggende woordenboek 127 00:05:53,960 --> 00:05:55,380 met wat voor soort data structuur? 128 00:05:55,380 --> 00:05:57,796 Je hoeft alleen maar een hele winkel stelletje strings in het geheugen? 129 00:05:57,796 --> 00:06:00,074 Wat is de weg om te antwoorden vanaf week twee misschien? 130 00:06:00,074 --> 00:06:00,740 Publiek: Array. 131 00:06:00,740 --> 00:06:01,500 DAVID J. MALAN: U kunt een array gebruiken. 132 00:06:01,500 --> 00:06:02,750 En dat is nog niet zo slecht. 133 00:06:02,750 --> 00:06:05,631 Maar je hoeft niet per se weten tevoren hoe groot van een array 134 00:06:05,631 --> 00:06:08,630 je gaat nodig hebben, als je niet weet het bestand noodzakelijk op voorhand. 135 00:06:08,630 --> 00:06:10,110 Dus je gaat te hebben om Gebruik een klein beetje van bedrog 136 00:06:10,110 --> 00:06:11,970 zoals malloc, zoals we begonnen met het gebruik. 137 00:06:11,970 --> 00:06:13,977 Of we kunnen pakken die betrekking hebben door het gebruik van 138 00:06:13,977 --> 00:06:16,810 welke andere gegevensstructuur die is een soort van een marginale verbetering 139 00:06:16,810 --> 00:06:17,894 op een array? 140 00:06:17,894 --> 00:06:18,810 Publiek: Linked lijst. 141 00:06:18,810 --> 00:06:21,270 DAVID J. MALAN: Als een gekoppelde lijst, waarin we wat dynamiek. 142 00:06:21,270 --> 00:06:22,686 Maar er is een beetje meer kosten. 143 00:06:22,686 --> 00:06:24,150 We hebben wijzers te handhaven. 144 00:06:24,150 --> 00:06:25,890 En je hebt nog niet deze gecodeerde up, maar er is zeker 145 00:06:25,890 --> 00:06:28,473 om een ​​beetje meer complexiteit dan alleen met behulp van vierkante haakjes 146 00:06:28,473 --> 00:06:30,080 en springen rond een array. 147 00:06:30,080 --> 00:06:33,340 >> Maar een scala van looptijd, als u op zoek bent naar een woord, 148 00:06:33,340 --> 00:06:34,179 misschien log n. 149 00:06:34,179 --> 00:06:35,970 Maar nogmaals, het misschien een beetje niet-triviale 150 00:06:35,970 --> 00:06:38,734 op te bouwen die array niet kennen het formaat vooraf. 151 00:06:38,734 --> 00:06:41,150 Een gekoppelde lijst echter, als je gewoon slaan een stelletje snaren 152 00:06:41,150 --> 00:06:43,300 in een gekoppelde lijst, wat is uw bovengrens 153 00:06:43,300 --> 00:06:46,920 op lopende tijd zal zijn om te zoeken voor of kijk een woord in die lijst? 154 00:06:46,920 --> 00:06:47,700 >> Publiek: n. 155 00:06:47,700 --> 00:06:50,575 >> DAVID J. MALAN: Ja, grote O van n of lineaire omdat in het ergste geval, 156 00:06:50,575 --> 00:06:52,640 het woord is als een Z-woord helemaal aan het eind. 157 00:06:52,640 --> 00:06:55,350 En als gevolg van een gekoppelde lijst, omdat die pijlen standaard 158 00:06:55,350 --> 00:06:58,280 in een enkelvoudig gelinkte lijst, alleen gaan van de ene richting naar de andere, 159 00:06:58,280 --> 00:06:59,590 je kunt niet springen rond. 160 00:06:59,590 --> 00:07:01,160 Je moet ze allemaal te volgen. 161 00:07:01,160 --> 00:07:05,505 >> Zodat we aan het eind van vorige week voorgesteld, week vijf, dat er betere manieren. 162 00:07:05,505 --> 00:07:08,727 En in feite is de heilige graal zou echt constant tijd 163 00:07:08,727 --> 00:07:10,560 waardoor wanneer je wilt opzoeken van een woord, je 164 00:07:10,560 --> 00:07:13,370 ontvang direct antwoord ongeacht hoeveel woorden reeds 165 00:07:13,370 --> 00:07:14,350 in uw woordenboek. 166 00:07:14,350 --> 00:07:17,680 >> Dit is vertolking van een kunstenaar wat je een hash tafel zou kunnen noemen. 167 00:07:17,680 --> 00:07:21,900 En een hash-tabel is een soort van een mooi amalgaam van een array-- verticaal opgestelde 168 00:07:21,900 --> 00:07:26,416 hier, maar because-- en vervolgens een gekoppelde list-- horizontaal hier te tekenen. 169 00:07:26,416 --> 00:07:28,790 En de hash tabel kan worden uitgevoerd in trossen manieren. 170 00:07:28,790 --> 00:07:34,110 Dit fragment uit een leerboek gebeurt om deze mensen geboortedata gebruiken 171 00:07:34,110 --> 00:07:38,940 de wijze waarop het wordt beslissing waar iemands naam te zetten. 172 00:07:38,940 --> 00:07:41,230 Dit is dus een woordenboek als u van namen. 173 00:07:41,230 --> 00:07:45,240 En om te versnellen zetten benamingen in deze gegevensstructuur, 174 00:07:45,240 --> 00:07:49,280 ze kijken naar, blijkbaar, deze mensen's geboorte dateert ten opzichte van een maand. 175 00:07:49,280 --> 00:07:50,570 >> Dus het is 1-31. 176 00:07:50,570 --> 00:07:52,910 En vergeet februari en hoek gevallen als dat. 177 00:07:52,910 --> 00:07:57,050 En als je verjaardag is op januari 1 of 1 februari of december 1, 178 00:07:57,050 --> 00:07:59,890 je gaat eindigen op de eerste keten boven. 179 00:07:59,890 --> 00:08:02,150 Als uw geboortedatum is zoals de 25ste van de maand, 180 00:08:02,150 --> 00:08:04,567 je gaat eindigen bij emmer nummer 25. 181 00:08:04,567 --> 00:08:07,400 En als er al iemand daar in een van deze locaties, wat 182 00:08:07,400 --> 00:08:10,470 je begint te doen met deze gekoppelde lijsten samen te stikken 183 00:08:10,470 --> 00:08:14,320 zodat u een willekeurige kan hebben aantal mensen, of wat dan ook, 184 00:08:14,320 --> 00:08:15,580 op die locatie. 185 00:08:15,580 --> 00:08:18,400 >> Dus je hebt een soort van een mix van constante tijd voor hashing. 186 00:08:18,400 --> 00:08:21,160 En hash iets betekent nemen als input als een persoon, 187 00:08:21,160 --> 00:08:25,360 of zijn of haar naam, of zijn of haar geboorte datum, en dan beslissen op sommige uitgang 188 00:08:25,360 --> 00:08:29,780 gebaseerd op dat, net als kijken naar hun verjaardag en het afgeven van een tot en met 31. 189 00:08:29,780 --> 00:08:31,900 >> Dus dan u zou kunnen hebben een beetje van de lineaire tijd, 190 00:08:31,900 --> 00:08:34,429 maar in werkelijkheid, en zoals in het geval van het probleem van de vijf, 191 00:08:34,429 --> 00:08:36,220 we zijn niet van plan om werken in P ingesteld vijf 192 00:08:36,220 --> 00:08:40,059 zo veel over asymptotische running tijd, zoals de theoretische traagheid 193 00:08:40,059 --> 00:08:41,809 waarmee een algoritme zou kunnen lopen. 194 00:08:41,809 --> 00:08:44,330 We gaan naar de zorg over het werkelijke aantal seconden 195 00:08:44,330 --> 00:08:47,350 en het werkelijke bedrag van het geheugen, het werkelijke aantal bytes geheugen 196 00:08:47,350 --> 00:08:48,140 u gebruikt. 197 00:08:48,140 --> 00:08:52,710 Dus eerlijk gezegd, met een enorme keten van als een miljoen mensen 198 00:08:52,710 --> 00:08:56,710 is pretty damn langzaam als u op zoek bent voor een naam in een lijst van grootte miljoen. 199 00:08:56,710 --> 00:08:59,830 >> Maar wat als je verdelen dat de lijst in 31 delen? 200 00:08:59,830 --> 00:09:04,400 Zoeken 1/31 van die super lange lijst, in de werkelijkheid, 201 00:09:04,400 --> 00:09:05,741 is zeker gaat om sneller te zijn. 202 00:09:05,741 --> 00:09:07,240 Asymptotisch, het is hetzelfde. 203 00:09:07,240 --> 00:09:08,860 Je bent gewoon te delen met een constante factor. 204 00:09:08,860 --> 00:09:10,651 En herinner me dat we Gooi die dingen weg. 205 00:09:10,651 --> 00:09:13,486 Maar in werkelijkheid, het gaat om 31 keer sneller. 206 00:09:13,486 --> 00:09:16,110 En dat is wat we gaan beginnen te leverage in P ingesteld vijf. 207 00:09:16,110 --> 00:09:18,750 >> Dus P set vijf te ook stelt voor dat u overwegen 208 00:09:18,750 --> 00:09:21,810 wat verfijndere gegevensstructuur genoemd trie. 209 00:09:21,810 --> 00:09:24,420 En een trie is slechts een boom als datastructuur. 210 00:09:24,420 --> 00:09:26,672 Maar in plaats van kleine cirkels of rechthoeken 211 00:09:26,672 --> 00:09:28,380 als we blijven tekenen voor nodes, het eigenlijk 212 00:09:28,380 --> 00:09:30,840 heeft volledige arrays bij de knooppunten. 213 00:09:30,840 --> 00:09:33,430 En ook al is dit een beetje abstract hier om naar te kijken, 214 00:09:33,430 --> 00:09:35,450 Zamyla in de P reeks lopen door middel loopt u 215 00:09:35,450 --> 00:09:37,580 tot in detail op dit punt. 216 00:09:37,580 --> 00:09:39,980 Dit is een datastructuur dat nogal slim 217 00:09:39,980 --> 00:09:44,130 zou elke node wordt een array van de grootte 26, A tot Z of nul 218 00:09:44,130 --> 00:09:45,320 tot 25. 219 00:09:45,320 --> 00:09:49,260 En als je wilt invoegen een persoon noem in dit datastructuur of vinden 220 00:09:49,260 --> 00:09:53,990 hem of haar, wat je doet, als de naam zoals Maxwell, M-A-X-W-E-L-L, 221 00:09:53,990 --> 00:09:57,900 je eerst kijken naar M. En dan heb je direct naar de overeenkomstige M locatie 222 00:09:57,900 --> 00:09:59,100 in de eerste array. 223 00:09:59,100 --> 00:10:02,400 Je springt dan naar A, de eerste locatie in de volgende matrix, 224 00:10:02,400 --> 00:10:03,610 na de pijlen. 225 00:10:03,610 --> 00:10:08,300 Dan X, dan W, dan E, dan L, dan L, en dan misschien een aantal speciale einde 226 00:10:08,300 --> 00:10:11,850 karakter, sommige sentinel dat zegt een woord houdt hier op. 227 00:10:11,850 --> 00:10:14,780 >> En wat is er leuk aan dit-- en in gedachten houden dat het beeld hier, 228 00:10:14,780 --> 00:10:16,797 merken hoe randen van elke serie zijn afgesneden. 229 00:10:16,797 --> 00:10:19,630 Dat is alleen maar omdat dit ding zou zijn enorme en gruwelijke te kijken 230 00:10:19,630 --> 00:10:20,338 aan op het scherm. 231 00:10:20,338 --> 00:10:21,820 Dus het is een uittreksel. 232 00:10:21,820 --> 00:10:25,920 Wat er leuk is aan deze aanpak is dat als er een miljoen namen al 233 00:10:25,920 --> 00:10:30,890 in deze gegevensstructuur, hoeveel stappen doet het me naar Maxwell te voegen? 234 00:10:30,890 --> 00:10:36,450 M-A-X-W-E-L-L-- als zeven-ish stappen te voegen of te zoeken naar Maxwell. 235 00:10:36,450 --> 00:10:39,320 >> Stel dat er een biljoen namen in deze datastructuur. 236 00:10:39,320 --> 00:10:41,900 Hoeveel stappen duurt het me om te zoeken naar Maxwell? 237 00:10:41,900 --> 00:10:43,450 M-A-x-- nog zeven. 238 00:10:43,450 --> 00:10:45,770 >> En daarin ligt de zogenaamde constante tijd. 239 00:10:45,770 --> 00:10:47,960 Als we aannemen dat woorden zijn zeker begrensd 240 00:10:47,960 --> 00:10:52,150 20 tekens, of 46 tekens, of een redelijk kleine integer, 241 00:10:52,150 --> 00:10:53,790 dan is het effectief constant. 242 00:10:53,790 --> 00:10:57,790 En zo inbrengen en zoeken een trie is super snel. 243 00:10:57,790 --> 00:10:59,540 Natuurlijk hebben we nooit krijgt alles gratis. 244 00:10:59,540 --> 00:11:02,740 En hoewel je waarschijnlijk niet dook P set nog vijf, 245 00:11:02,740 --> 00:11:06,596 welke prijs zijn we waarschijnlijk te betalen krijgen die grotere efficiëntie qua tijd? 246 00:11:06,596 --> 00:11:07,470 >> Publiek: Memory. 247 00:11:07,470 --> 00:11:08,390 >> DAVID J. MALAN: Memory, toch? 248 00:11:08,390 --> 00:11:10,240 Ik bedoel, we hebben niet getekend het hele plaatje hier. 249 00:11:10,240 --> 00:11:12,823 Dit uittreksel uit het handboek heeft niet alle arrays opgesteld. 250 00:11:12,823 --> 00:11:16,687 Er is een enorme hoeveelheid geheugen en gewoon null pointers die niet worden gebruikt. 251 00:11:16,687 --> 00:11:17,520 Dus het is een afweging. 252 00:11:17,520 --> 00:11:21,050 En het zal worden overgelaten aan u in P ingesteld vijf om te beslissen op welke manier u wilt gaan. 253 00:11:21,050 --> 00:11:24,460 >> Nu dit idee van hashing als terzijde, is eigenlijk super voorkomt. 254 00:11:24,460 --> 00:11:27,980 Dus om hash een waarde betekent, vrij gewoon, om iets als input nemen 255 00:11:27,980 --> 00:11:29,220 en output produceren. 256 00:11:29,220 --> 00:11:31,270 Dus een hash-functie is slechts een algoritme. 257 00:11:31,270 --> 00:11:34,990 >> En in het algemeen, een hash functies doel in het leven is om iets als input nemen 258 00:11:34,990 --> 00:11:39,655 en produceren een aantal als output, zoals de nummer één met 31 of A tot Z, 259 00:11:39,655 --> 00:11:40,960 nul tot 25. 260 00:11:40,960 --> 00:11:44,250 Dus het duurt een complex uitgang en krimpt het naar beneden om iets 261 00:11:44,250 --> 00:11:46,310 dat is een beetje meer nuttig en beheersbaar. 262 00:11:46,310 --> 00:11:49,250 >> En zo blijkt in een zeer populaire functie 263 00:11:49,250 --> 00:11:51,160 dat de beveiliging wereld de menselijke wereld 264 00:11:51,160 --> 00:11:53,060 gebruikt voor de komende jaren wordt genoemd SHA1. 265 00:11:53,060 --> 00:11:56,260 Dit is een vrij chique wiskundige formule die in wezen doet dat. 266 00:11:56,260 --> 00:11:58,870 >> Je neemt een echt grote brok van nullen en ones-- 267 00:11:58,870 --> 00:12:01,530 een megabyte kon lang, een gigabyte long-- 268 00:12:01,530 --> 00:12:05,930 en het krimpt het neer aan slechts een paar stukjes, een paar stukjes, 269 00:12:05,930 --> 00:12:09,082 zodat u een nummer als één tot en met 31, of A tot Z. 270 00:12:09,082 --> 00:12:11,540 Maar in werkelijkheid, het is een beetje groter dan alleen A tot Z. 271 00:12:11,540 --> 00:12:16,640 >> Helaas, we zijn aan de vooravond van wat iemand speels genaamd de SHAppening 272 00:12:16,640 --> 00:12:19,840 waarbij de wereld is het punt eindigen in waarschijnlijk enkele maanden 273 00:12:19,840 --> 00:12:22,617 tijd, omdat de onderzoekers, alleen deze afgelopen week, 274 00:12:22,617 --> 00:12:25,700 een rapport dat in tegenstelling tot gepubliceerde wat security onderzoekers hebben gedacht 275 00:12:25,700 --> 00:12:29,810 enige tijd door alleen uitgaven ongeveer, wat was het, 276 00:12:29,810 --> 00:12:33,420 Ik denk dat het was $ 175,000-- veel geld, 277 00:12:33,420 --> 00:12:36,540 maar niet buiten het bereik van bijzonder slecht slechteriken, 278 00:12:36,540 --> 00:12:41,560 of bijzonder slecht countries-- $ 175.000 kon kopen u veel gehuurde server 279 00:12:41,560 --> 00:12:42,690 de ruimte in de cloud. 280 00:12:42,690 --> 00:12:44,619 En we zullen terug te komen de cloud het duurde niet lang. 281 00:12:44,619 --> 00:12:47,410 Maar het betekent gewoon huren server ruimte op als de servers van Microsoft, 282 00:12:47,410 --> 00:12:50,285 of Google of Amazon of de zoals waar je kunt betalen met de minuut 283 00:12:50,285 --> 00:12:51,670 computers van iemand anders te gebruiken. 284 00:12:51,670 --> 00:12:54,250 >> En het blijkt dat als je kunt betalen iemand anders om hun computers te lenen 285 00:12:54,250 --> 00:12:56,730 en run code die je hebt geschreven op en gebruiken vrij chique 286 00:12:56,730 --> 00:13:01,580 wiskunde, kan je in wezen cijfer hoe iemands hash-functie is 287 00:13:01,580 --> 00:13:05,320 werken, en gezien de output, reverse engineering wat haar inbreng is. 288 00:13:05,320 --> 00:13:08,590 En voor doeleinden van vandaag, volstaat te zeggen, dit is slecht. 289 00:13:08,590 --> 00:13:12,540 Omdat SHA1 en hash functies alsof het zijn super vaak 290 00:13:12,540 --> 00:13:17,050 gebruikt in beveiligingstoepassingen, versleutelde verbindingen op het web, 291 00:13:17,050 --> 00:13:21,890 banktransacties, mobiele encryptie voor uw mobiele telefoons en dergelijke. 292 00:13:21,890 --> 00:13:24,880 En dus elke keer dat iemand vindt een manier om te keren 293 00:13:24,880 --> 00:13:28,510 ingenieur een van deze technologieën of breken, kan slechte dingen gebeuren. 294 00:13:28,510 --> 00:13:30,300 >> Nu al de wereld dit wist. 295 00:13:30,300 --> 00:13:31,310 Dit was te verwachten. 296 00:13:31,310 --> 00:13:34,670 En de wereld is sindsdien verhuisde van SHA1 naar SHA256, 297 00:13:34,670 --> 00:13:37,320 dat is gewoon een mooie manier om zeggen dat ze gebruik maken van grotere bits. 298 00:13:37,320 --> 00:13:40,570 En in feite, zelfs CS50 eigen website upgrade vorig jaar to-- 299 00:13:40,570 --> 00:13:43,290 niet dat we voor staan ​​al deze vele bedreigingen proberen bij de PDF's te krijgen 300 00:13:43,290 --> 00:13:46,520 en whatnot-- maar website CS50's gebruikt de grotere hashfunctie, 301 00:13:46,520 --> 00:13:47,980 wat betekent dat we veilig zijn. 302 00:13:47,980 --> 00:13:50,020 Zodat al uw PDF-bestanden veilig zijn, maar niet 303 00:13:50,020 --> 00:13:52,880 se uw geld of iets vooral private of persoonlijke 304 00:13:52,880 --> 00:13:53,380 gebruiken. 305 00:13:53,380 --> 00:13:56,550 Check sp dat URL als u wilt zoals sommige extra details. 306 00:13:56,550 --> 00:13:59,840 >> Dus probleem set vijf is inderdaad aan de horizon. 307 00:13:59,840 --> 00:14:01,560 Quiz één is deze komende woensdag. 308 00:14:01,560 --> 00:14:04,479 Maar maak je gebruik maken van het kantoor uur, zowel vanavond en morgen. 309 00:14:04,479 --> 00:14:07,770 En ook gebruik maken van de kantooruren, Als je beschikbaar, direct na deze bent. 310 00:14:07,770 --> 00:14:11,550 Het personeel en ik zal blijven hangen en doen meer casual Q & A in aanvulling op vanavond. 311 00:14:11,550 --> 00:14:16,610 En laat me sterk mee hier, voor die van ons hier in New Haven-- 312 00:14:16,610 --> 00:14:19,360 dus het is absoluut per Scaz's opmerkingen voelde, ik ben er zeker van, 313 00:14:19,360 --> 00:14:21,140 als een beetje een moeizame strijd. 314 00:14:21,140 --> 00:14:24,627 En door de reputatie, als je nog niet hebt geleerd of gehoord 315 00:14:24,627 --> 00:14:27,710 van enkele vrienden aan Harvard, weet hier zijn enkele nieuwe institutioneel geheugen. 316 00:14:27,710 --> 00:14:30,790 P set vijf soort soort neigt de moeilijkste in CS50 zijn, 317 00:14:30,790 --> 00:14:32,590 of de meest uitdagende Voor de meeste studenten. 318 00:14:32,590 --> 00:14:37,180 >> Maar wat dat betekent is dat we bijna aan de top van deze heuvel. 319 00:14:37,180 --> 00:14:38,270 En ik bedoel dit. 320 00:14:38,270 --> 00:14:40,728 Het is de meest uitdagende, maar het is ook de meest lonende 321 00:14:40,728 --> 00:14:43,560 dat anders vrijwel elke andere inleidende informatica 322 00:14:43,560 --> 00:14:47,980 Natuurlijk in de VS die we kennen, de meeste studenten niet een intro eindigen 323 00:14:47,980 --> 00:14:51,400 Natuurlijk hebben reeds uitgevoerde dingen zoals bomen, en probeert, 324 00:14:51,400 --> 00:14:52,880 en hash tabellen en dergelijke. 325 00:14:52,880 --> 00:14:54,770 >> En ik hoop, en wij hopen dat u bent 326 00:14:54,770 --> 00:14:57,280 hebben een enorm gevoel tevredenheid zelfs 327 00:14:57,280 --> 00:15:00,760 Als de twee weken via welke je naar dat de tevredenheid 328 00:15:00,760 --> 00:15:02,490 voelt een beetje als dit. 329 00:15:02,490 --> 00:15:05,250 Maar laat me gerust, we slechts vier sets P gelaten. 330 00:15:05,250 --> 00:15:07,380 Dus een soort van die top is in zicht. 331 00:15:07,380 --> 00:15:12,370 >> Aan de andere kant van het, geloof ons, het is gewoon glooiende heuvels en wolken. 332 00:15:12,370 --> 00:15:16,000 En laten we zeggen, puppies aan de andere kant. 333 00:15:16,000 --> 00:15:18,340 Dus je hoeft alleen te hangen daar een beetje langer. 334 00:15:18,340 --> 00:15:22,050 Ik bedoel, zelfs als we beginnen om de overgang in de wereld van web programmeren, 335 00:15:22,050 --> 00:15:26,060 je zult zien dat de dingen become-- dit is eigenlijk schattig. 336 00:15:26,060 --> 00:15:29,680 337 00:15:29,680 --> 00:15:33,490 OK, we zullen deze URL later posten. 338 00:15:33,490 --> 00:15:36,140 Je zult ook dat we vinden het bereiken van een soort plateau 339 00:15:36,140 --> 00:15:38,150 waar alles inderdaad nog steeds verfijnd 340 00:15:38,150 --> 00:15:40,170 en uitdagende door ontwerp, maar je bent niet 341 00:15:40,170 --> 00:15:42,590 gaat om het gevoel dat we zijn voortdurend omhoog gaat deze heuvel. 342 00:15:42,590 --> 00:15:44,390 Dus neem wat comfort in dat. 343 00:15:44,390 --> 00:15:47,409 >> Dus zonder verder oponthoud, laten we beginnen deze markt overgang te maken 344 00:15:47,409 --> 00:15:49,950 in het semester aan de wereld van het web, en echt de wereld 345 00:15:49,950 --> 00:15:51,420 met die van ons allemaal meer vertrouwd. 346 00:15:51,420 --> 00:15:53,753 We hebben internet apparaten gekregen in onze zakken, op onze bureaus, 347 00:15:53,753 --> 00:15:55,127 in onze rugzakken en dergelijke. 348 00:15:55,127 --> 00:15:56,210 Hoe doet al dit werk? 349 00:15:56,210 --> 00:15:59,077 En hoe kunnen we beginnen met het schrijven code dat is niet super geheimzinnige 350 00:15:59,077 --> 00:16:01,910 en in sommige knipperende tekst prompt dat geen van je vrienden of familie 351 00:16:01,910 --> 00:16:04,659 zijn ooit zal willen communiceren met, maar iets wat je kunt zetten 352 00:16:04,659 --> 00:16:06,660 op hun telefoons of op hun webbrowsers, 353 00:16:06,660 --> 00:16:09,010 of op welke apparaten met die zij met elkaar omgaan. 354 00:16:09,010 --> 00:16:10,430 >> Dus hier is iemand thuis. 355 00:16:10,430 --> 00:16:14,040 En de binnenkant van dit huis is een paar laptops, een paar oude school desktop 356 00:16:14,040 --> 00:16:17,470 computers, zoiets als een router of hub in het midden, 357 00:16:17,470 --> 00:16:20,310 en dan een soort van kabel of DSL-modem. 358 00:16:20,310 --> 00:16:24,560 En dan is er het internet, in het algemeen getekend als een wolk daarboven in de hemel. 359 00:16:24,560 --> 00:16:29,230 >> Dus deze foto, hoewel een beetje soort gedateerd, 360 00:16:29,230 --> 00:16:32,604 zeker vangt wat de meesten van heeft u waarschijnlijk in uw huizen, 361 00:16:32,604 --> 00:16:35,520 of effectief wat jullie allemaal hebben in uw slaapzalen, of appartementen, 362 00:16:35,520 --> 00:16:36,480 of iets dergelijks. 363 00:16:36,480 --> 00:16:40,010 >> Dus wat er werkelijk gaande is wanneer je probeert te gebruiken het internet vandaag? 364 00:16:40,010 --> 00:16:42,010 Dus elke computer op internet, zo blijkt, 365 00:16:42,010 --> 00:16:46,860 moet een uniek adres hebben, net als we in de echte wereld behoefte 366 00:16:46,860 --> 00:16:52,050 een postadres, zoals 51 Prospect Street, New Haven, Connecticut, of 33 367 00:16:52,050 --> 00:16:54,170 Oxford Street, Cambridge, Massachusetts. 368 00:16:54,170 --> 00:16:58,520 Dus doe computers op het internet hebben een zodat deze zich op unieke adressering. 369 00:16:58,520 --> 00:17:01,180 >> Dat is zo dat wanneer een computer wil elkaar praten, 370 00:17:01,180 --> 00:17:04,525 het kan een bericht te sturen en de hoogte van de ontvanger aan wie 371 00:17:04,525 --> 00:17:05,900 moet het antwoord terug te sturen. 372 00:17:05,900 --> 00:17:07,900 Dus het is gewoon een soort van intuïtief gevoel misschien 373 00:17:07,900 --> 00:17:09,980 dat alles hebben een adres van een soort. 374 00:17:09,980 --> 00:17:11,240 >> Maar hoe krijg je een adres krijgen? 375 00:17:11,240 --> 00:17:13,589 Nou, als je op krijgt hier campus, of u naar huis gaat 376 00:17:13,589 --> 00:17:15,760 en u op uw laptop of desktop computer, 377 00:17:15,760 --> 00:17:17,770 en of de stekker in of verbinding te maken met Wi-Fi, 378 00:17:17,770 --> 00:17:19,569 het blijkt dat er is een speciale server 379 00:17:19,569 --> 00:17:22,089 Op de meeste netwerken een zogenaamde DHCP-server. 380 00:17:22,089 --> 00:17:23,880 Maakt echt niet uit wat dit betekent, 381 00:17:23,880 --> 00:17:26,660 maar het is Dynamic Host Configuration protocol, dat is gewoon 382 00:17:26,660 --> 00:17:29,760 een mooie manier om te zeggen, dit is een computer die ofwel Yale heeft, 383 00:17:29,760 --> 00:17:32,600 of Harvard heeft of Comcast heeft, of Verizon heeft, 384 00:17:32,600 --> 00:17:35,100 of uw bedrijf, waarvan het doel in het leven, 385 00:17:35,100 --> 00:17:38,810 als het hoort iemand nieuw toegevoegde het netwerk is hier te zeggen, 386 00:17:38,810 --> 00:17:40,010 Gebruik dit adres. 387 00:17:40,010 --> 00:17:42,790 >> Zodat wij mensen niet hoeven te harde code in onze computers 388 00:17:42,790 --> 00:17:44,040 wat onze unieke adres. 389 00:17:44,040 --> 00:17:47,070 We draaien het gewoon op, opent de deksel, en een of andere manier deze server 390 00:17:47,070 --> 00:17:52,210 op het lokale netwerk alleen vertelt me ​​dat mijn adres is 51 Prospect Street, of 33 391 00:17:52,210 --> 00:17:53,940 Oxford Street, of iets dergelijks. 392 00:17:53,940 --> 00:17:56,000 >> Nu is het niet van plan om zo breedsprakig als dat. 393 00:17:56,000 --> 00:18:00,210 Nogal wat ik ga krijgen is een numeriek adres genoemd een IP-adres. 394 00:18:00,210 --> 00:18:01,960 IP betekent Internet Protocol. 395 00:18:01,960 --> 00:18:06,025 En de kans is op dit moment in je leven, u waarschijnlijk gehoord of gezien het woord IP, 396 00:18:06,025 --> 00:18:08,140 of in het algemeen gegooid rond misschien. 397 00:18:08,140 --> 00:18:10,720 Maar in feite, het is vrij ongecompliceerd een ding. 398 00:18:10,720 --> 00:18:13,610 >> Een IP-adres is slechts een decimaalgetal, 399 00:18:13,610 --> 00:18:17,150 wat betekent dat het iets dot iets dot dot iets iets. 400 00:18:17,150 --> 00:18:21,980 En elk van deze nog wat gebeurt een getal tussen 0 en 255 is. 401 00:18:21,980 --> 00:18:26,710 >> Dus op basis van vijf plus weken van de CS50, indien deze getallen elk van 0 tot 255, 402 00:18:26,710 --> 00:18:28,713 hoeveel bits per van die hekjes? 403 00:18:28,713 --> 00:18:29,420 >> Publiek: Acht. 404 00:18:29,420 --> 00:18:30,100 >> DAVID J. MALAN: Het moet acht. 405 00:18:30,100 --> 00:18:31,933 Dus in totaal, hoeveel bit is een IP-adres? 406 00:18:31,933 --> 00:18:32,710 Publiek: 32. 407 00:18:32,710 --> 00:18:33,820 >> DAVID J. MALAN: Zo 32. 408 00:18:33,820 --> 00:18:35,830 8 plus 8 plus 8 plus 8 is 32. 409 00:18:35,830 --> 00:18:38,767 Hoeveel de totale IP-adressen kan er in de wereld? 410 00:18:38,767 --> 00:18:39,600 Publiek: 4 miljard. 411 00:18:39,600 --> 00:18:42,410 DAVID J. MALAN: Zo ongeveer vier miljard want dat is 2 van de 32 macht. 412 00:18:42,410 --> 00:18:44,410 En als je niet kunt soort grok dat in je geest, 413 00:18:44,410 --> 00:18:47,470 weet alleen dat 32-bits waarden kan zo groot als 4 miljard 414 00:18:47,470 --> 00:18:49,140 als het allemaal positieve waarden. 415 00:18:49,140 --> 00:18:52,500 Dus dat betekent dat er 4 miljard mogelijk IP-adressen in de wereld. 416 00:18:52,500 --> 00:18:55,090 >> En grappig verhaal, we zijn soort van het opraken van hen. 417 00:18:55,090 --> 00:18:59,720 En in feite is het een groot probleem in dat de wereld zag ook dit probleem te komen, 418 00:18:59,720 --> 00:19:03,639 maar niet noodzakelijkerwijs gereageerd in de snelste manier mogelijk. 419 00:19:03,639 --> 00:19:05,680 En inderdaad, als je eenmaal hebt afgewerkt CS50 en begon 420 00:19:05,680 --> 00:19:06,950 aandacht in de tech wereld, zult u 421 00:19:06,950 --> 00:19:08,520 zien is dit zeer vaak thematische. 422 00:19:08,520 --> 00:19:12,260 >> Bijvoorbeeld, als we gaan echt oude school tegenwoordig, Y2K. 423 00:19:12,260 --> 00:19:13,570 Dat was niet echt een verrassing. 424 00:19:13,570 --> 00:19:15,700 Net als iedereen wist 1000 jaar dat 425 00:19:15,700 --> 00:19:20,250 was-- meer dan duizend years-- dat dat werd uiteindelijk gaat gebeuren. 426 00:19:20,250 --> 00:19:23,295 Toch we gereageerd te erg veel op het laatste moment. 427 00:19:23,295 --> 00:19:24,420 En dat is weer gebeurt. 428 00:19:24,420 --> 00:19:26,740 Dus vandaag zullen we praten over IP versie 4. 429 00:19:26,740 --> 00:19:29,250 Maar weet dat de wereld is eindelijk 430 00:19:29,250 --> 00:19:31,590 rond te upgraden naar iets genaamd IPv6, 431 00:19:31,590 --> 00:19:34,540 die in plaats van 32-bits adressen, uses-- iedereen 432 00:19:34,540 --> 00:19:36,443 wil een gok, hoeveel bits te nemen? 433 00:19:36,443 --> 00:19:37,310 >> Publiek: 64? 434 00:19:37,310 --> 00:19:38,380 >> DAVID J. MALAN: Goede gok, maar nee. 435 00:19:38,380 --> 00:19:39,975 We eindelijk proberen vooruit te komen van de curve. 436 00:19:39,975 --> 00:19:40,558 >> Publiek: 128. 437 00:19:40,558 --> 00:19:43,490 DAVID J. MALAN: 128, die is een freaking groot aantal 438 00:19:43,490 --> 00:19:46,250 IP-adressen, omdat dat is net als 2 keer, 2 keer, 439 00:19:46,250 --> 00:19:49,620 2 keer, een heleboel keer Tweeën up van 4 miljard euro. 440 00:19:49,620 --> 00:19:50,530 >> Dus als nieuwsgierig. 441 00:19:50,530 --> 00:19:54,110 Het blijkt out-- en ik dit enkel googled om dit te vinden out-- Yale computers, 442 00:19:54,110 --> 00:19:58,910 hier bij Yale, vaak beginnen deze numbers-- 130,132 dot iets, 443 00:19:58,910 --> 00:20:00,669 en 128,36 dot iets. 444 00:20:00,669 --> 00:20:02,710 Maar er is zeker uitzonderingen over de hele linie 445 00:20:02,710 --> 00:20:05,334 afhankelijk van de afdeling en gebouw en campus je bent op. 446 00:20:05,334 --> 00:20:09,310 Harvard neiging hebben 140,247 of 128,103. 447 00:20:09,310 --> 00:20:11,530 En dit is in het algemeen nutteloze informatie, 448 00:20:11,530 --> 00:20:13,260 maar het is iets wat je zou nu opmerken. 449 00:20:13,260 --> 00:20:15,593 Wanneer je begint rondneuzen instellingen op uw computers, 450 00:20:15,593 --> 00:20:18,540 je zou kunnen beginnen om deze merken soorten patronen duurde niet lang. 451 00:20:18,540 --> 00:20:23,470 >> Maar als je thuis bent en hebben een Apple AirPort of een Linksys-apparaat, 452 00:20:23,470 --> 00:20:26,560 of een D-Link, of wat het ook is je ouders of broers en zussen geïnstalleerd 453 00:20:26,560 --> 00:20:28,890 in uw huis, goed wat u waarschijnlijk 454 00:20:28,890 --> 00:20:30,800 is wat een eigen IP-adres genoemd. 455 00:20:30,800 --> 00:20:34,850 En deze waren eigenlijk een mooi, tijdelijke oplossing 456 00:20:34,850 --> 00:20:38,050 het probleem van running Kort op IP-adressen. 457 00:20:38,050 --> 00:20:40,382 >> En wat u kunt doen met thuisnetwerken, typically-- 458 00:20:40,382 --> 00:20:42,340 en eerlijk gezegd, zelfs Yale en Harvard beginnen 459 00:20:42,340 --> 00:20:46,840 om dit te doen in verschillende areas-- is dat je kan een heleboel computers geven 460 00:20:46,840 --> 00:20:50,360 één IP-adres, zolang je een speciaal apparaat voor hen, 461 00:20:50,360 --> 00:20:52,410 iets wat een router genoemd, of het kan worden opgeroepen 462 00:20:52,410 --> 00:20:54,060 een proxy of een aantal andere zaken. 463 00:20:54,060 --> 00:20:56,710 Maar een bepaald apparaat dat heeft dat een IP-adres. 464 00:20:56,710 --> 00:20:59,450 En dan achter dat inrichting, in een gebouw, 465 00:20:59,450 --> 00:21:03,030 binnen een huis of een appartement, kunnen worden elk aantal computers, die allemaal 466 00:21:03,030 --> 00:21:06,460 een IP-adres dat begint met één van deze cijfers hier. 467 00:21:06,460 --> 00:21:08,590 En zolang die computer weet hoe om te zetten 468 00:21:08,590 --> 00:21:10,900 de omroepinstallatie aan het privé-adres, 469 00:21:10,900 --> 00:21:13,340 alles kan soort werk zoals verwacht. 470 00:21:13,340 --> 00:21:17,290 >> Maar het omgekeerde hiervan is dat als je thuis bent en je hebt een broer of zus, 471 00:21:17,290 --> 00:21:19,650 en beide van jullie zijn bezoek aan enkele website, 472 00:21:19,650 --> 00:21:23,520 dat de website niet weten of het je of je broer of zus een bezoek aan de website, 473 00:21:23,520 --> 00:21:26,780 omdat u lijken hetzelfde persoon omdat al uw gegevens 474 00:21:26,780 --> 00:21:30,050 gaat door die router of dat centraal punt. 475 00:21:30,050 --> 00:21:32,220 >> Maar genoeg over deze lagere niveau details. 476 00:21:32,220 --> 00:21:37,770 Laten we eens een kijkje nemen op hoe de IP-adressen Soms komen misschien in de media 477 00:21:37,770 --> 00:21:41,370 en hoe we nu kunnen beginnen te ruïneren, eerlijk gezegd, nog meer shows voor u. 478 00:21:41,370 --> 00:21:45,010 Als we konden dimmen verlichting gedurende enkele seconden. 479 00:21:45,010 --> 00:21:46,550 >> [VIDEO AFSPELEN] 480 00:21:46,550 --> 00:21:49,310 >> -Het Is een 32-bits op IPP 4 adres. 481 00:21:49,310 --> 00:21:50,650 >> -IP ES internet-- 482 00:21:50,650 --> 00:21:52,800 >> -Eigen Netwerk, Tamia privé-netwerk. 483 00:21:52,800 --> 00:22:05,670 484 00:22:05,670 --> 00:22:08,145 Ze is zo geweldig. 485 00:22:08,145 --> 00:22:09,630 -Kom Op Charlie. 486 00:22:09,630 --> 00:22:11,750 DAVID J. MALAN: Het is een spiegel IP-adres. 487 00:22:11,750 --> 00:22:15,093 Ze lieten ons te kijken welke ze doet in real time. 488 00:22:15,093 --> 00:22:16,285 >> [END AFSPELEN] 489 00:22:16,285 --> 00:22:17,130 >> DAVID J. MALAN: OK. 490 00:22:17,130 --> 00:22:18,480 Dus een paar problemen met deze. 491 00:22:18,480 --> 00:22:22,740 Dus een, wat we zoeken bij hier op het scherm 492 00:22:22,740 --> 00:22:25,290 wordt een code geschreven in een taal genaamd Objective-C, 493 00:22:25,290 --> 00:22:28,020 dat is een soort van een opvolger de C taal die we doen. 494 00:22:28,020 --> 00:22:30,150 Dit heeft absoluut niets te maken met de programmering. 495 00:22:30,150 --> 00:22:32,399 In feite, zo goed als ik kan vertellen, Dit is een tekenprogramma 496 00:22:32,399 --> 00:22:38,360 dat iemand gedownload van de internet of andere manier met kleurpotloden. 497 00:22:38,360 --> 00:22:43,660 >> Misschien minder flagrante is dat dit IP-adres, geldig of ongeldig? 498 00:22:43,660 --> 00:22:44,520 >> Publiek: ongeldig. 499 00:22:44,520 --> 00:22:48,479 >> DAVID J. MALAN: ongeldig, omdat 275 is uiteraard niet tussen 0 en 255. 500 00:22:48,479 --> 00:22:51,770 Ook dat is waarschijnlijk OK maar, want u niet wilt stelletje gekken 501 00:22:51,770 --> 00:22:54,790 die zijn als het pauzeren van tv op hun TiVo en dan een bezoek aan de IP te zien 502 00:22:54,790 --> 00:22:56,290 als er daadwerkelijk iets daar. 503 00:22:56,290 --> 00:22:58,200 Zodat men een beetje minder ongehoorde. 504 00:22:58,200 --> 00:23:00,990 Maar beseffen ook dat is soort van overal om ons heen. 505 00:23:00,990 --> 00:23:04,980 >> Dus natuurlijk, niemand van ons ooit echt typen numerieke adressen 506 00:23:04,980 --> 00:23:06,410 in onze browsers. 507 00:23:06,410 --> 00:23:09,580 Het zou een soort van een slechte zaak als Google, Google bezoeken, 508 00:23:09,580 --> 00:23:15,060 je moest naar 123.46.57.89. 509 00:23:15,060 --> 00:23:17,007 En de hele wereld had gewoon onthouden. 510 00:23:17,007 --> 00:23:19,090 En eerlijk gezegd, hebben we soort van eerder gezien deze kwestie. 511 00:23:19,090 --> 00:23:24,130 Terug in de dag wanneer mensen niet doen hebben mobiele telefoons en lijsten met contactpersonen, 512 00:23:24,130 --> 00:23:27,640 en bedrijven daadwerkelijk still-- eigenlijk, Ik denk dat bedrijven nog steeds 800 513 00:23:27,640 --> 00:23:30,600 getallen en de like--, maar je over het algemeen zie nummers geadverteerd 514 00:23:30,600 --> 00:23:36,480 zoals 1-800-COLLECT, C-O-L-L-E-C-T. Omdat niemand kan echt herinneren, 515 00:23:36,480 --> 00:23:39,754 bij het zien van een advertentie op een bus of billboard, wat iemand het nummer is, 516 00:23:39,754 --> 00:23:42,420 maar ze kunnen waarschijnlijk hogere waarschijnlijkheid, herinner me een woord. 517 00:23:42,420 --> 00:23:44,530 >> Dus we hebben dezelfde soort systeem ter wereld 518 00:23:44,530 --> 00:23:48,290 van het internet, waardoor er een domeinnaam-systeem, zodat we mensen kunnen 519 00:23:48,290 --> 00:23:52,340 typt google.com, facebook.com, yale.edu, harvard.edu, 520 00:23:52,340 --> 00:23:56,140 en laat de computers figuur wat het bijbehorende IP- 521 00:23:56,140 --> 00:23:58,480 adres is voor een bepaalde naam. 522 00:23:58,480 --> 00:24:01,620 >> En de manier waarop je dit doet in de echte wereld is dat voor $ 10 per jaar 523 00:24:01,620 --> 00:24:05,900 misschien $ 50 per jaar, kunt u een domein te kopen noemen, of een domeinnaam echt huren. 524 00:24:05,900 --> 00:24:09,860 En dan wie u betaalt om die domeinnaam te huren, 525 00:24:09,860 --> 00:24:14,069 je ze vertellen wie in de wereld weet wat uw IP-adres is. 526 00:24:14,069 --> 00:24:16,360 En we zullen niet naar deze gaan bijzonderheden, maar velen van u 527 00:24:16,360 --> 00:24:18,750 zou willen, voor de uiteindelijke projecten, om daadwerkelijk aanmelden 528 00:24:18,750 --> 00:24:22,120 voor uw eigen web hosting bedrijf, hetzij voor gratis 529 00:24:22,120 --> 00:24:23,500 of voor een paar dollar per maand. 530 00:24:23,500 --> 00:24:26,100 Sommigen van u zou willen kopen, voor een paar dollar, uw eigen domeinnaam, 531 00:24:26,100 --> 00:24:28,900 gewoon voor de lol of om een ​​bedrijf te starten of een persoonlijke site of dergelijke. 532 00:24:28,900 --> 00:24:30,880 >> En beseffen dat alle van die zal uiteindelijk 533 00:24:30,880 --> 00:24:35,260 neer om u te vertellen van de wereld Wat IP-adres van de server is. 534 00:24:35,260 --> 00:24:37,740 En dan zijn deze DNS servers eigenlijk zorg 535 00:24:37,740 --> 00:24:39,910 informeren de rest van de wereld. 536 00:24:39,910 --> 00:24:41,830 Dus al een DNS-server heeft, kortom, binnen 537 00:24:41,830 --> 00:24:44,780 van het geheugen is als de equivalent van een Google spreadsheet 538 00:24:44,780 --> 00:24:49,420 of een Excel spreadsheet met ten minste twee kolommen, waarvan er namen 539 00:24:49,420 --> 00:24:52,100 zoals harvard.edu en yale.edu en google.com. 540 00:24:52,100 --> 00:24:55,870 En de andere kolom de corresponderende IP-adres of IP 541 00:24:55,870 --> 00:24:56,382 adressen. 542 00:24:56,382 --> 00:24:57,590 En we kunnen eigenlijk zien. 543 00:24:57,590 --> 00:24:59,881 Dus op mijn Mac-- en u kunt Dit doen op Windows-computers 544 00:24:59,881 --> 00:25:04,330 als goed-- als ik het openen van een terminal venster hier heel graag de ene in CD50 IDE, 545 00:25:04,330 --> 00:25:08,190 de meeste computers hebben een commando genaamd nslookup, naam server opzoeken. 546 00:25:08,190 --> 00:25:12,380 En als ik iets in te typen als yale.edu en druk op Enter, wat 547 00:25:12,380 --> 00:25:19,250 Ik moet zien als mijn netwerk werkt als het voor meerdere tests voor de les deed 548 00:25:19,250 --> 00:25:24,584 began-- laten we proberen google.com. 549 00:25:24,584 --> 00:25:26,390 Natuurlijk nu niets werkt. 550 00:25:26,390 --> 00:25:27,190 Dat is geweldig. 551 00:25:27,190 --> 00:25:30,660 Oké, staan ​​voor een moment. 552 00:25:30,660 --> 00:25:32,100 nslookup google.com. 553 00:25:32,100 --> 00:25:35,570 554 00:25:35,570 --> 00:25:38,660 >> Nou, laten we zien of de werkelijke internet-- geen. 555 00:25:38,660 --> 00:25:39,700 Dat is wat er gebeurd is. 556 00:25:39,700 --> 00:25:43,090 Oh mijn god, oke. 557 00:25:43,090 --> 00:25:45,490 De Wi-Fi brak. 558 00:25:45,490 --> 00:25:47,410 >> Hey, wil weten wat mijn IP adres? 559 00:25:47,410 --> 00:25:49,722 Prima. 560 00:25:49,722 --> 00:25:50,820 YaleSecure. 561 00:25:50,820 --> 00:25:53,330 Dit is hoe je problemen op te lossen dingen als een computer wetenschapper. 562 00:25:53,330 --> 00:25:54,617 We draaien de Wi-Fi uit te schakelen. 563 00:25:54,617 --> 00:25:57,480 564 00:25:57,480 --> 00:25:59,450 OK. 565 00:25:59,450 --> 00:26:02,610 >> En eigenlijk, Scaz, doe je het erg inloggen ons in de veilige één? 566 00:26:02,610 --> 00:26:06,246 Anders meer tests zijn-- OK, dank u Yale-- of op het punt te breken. 567 00:26:06,246 --> 00:26:07,370 Ik wil gaan op YaleSecure. 568 00:26:07,370 --> 00:26:09,880 569 00:26:09,880 --> 00:26:11,870 Oh, en misschien zullen we OK. 570 00:26:11,870 --> 00:26:12,686 Misschien zijn we terug. 571 00:26:12,686 --> 00:26:16,810 572 00:26:16,810 --> 00:26:19,733 En dat is hoe, als een computer wetenschapper repareren van een computer. 573 00:26:19,733 --> 00:26:22,000 [Applaus] 574 00:26:22,000 --> 00:26:23,220 Prima. 575 00:26:23,220 --> 00:26:27,160 Dus waar ik was binnen deze zogenaamde terminal venster, 576 00:26:27,160 --> 00:26:32,270 en als ik nslookup yale.edu, daar gaan we. 577 00:26:32,270 --> 00:26:38,350 Dus ik terug voor het eerst het IP-adres van de de DNS-server die mijn laptop wordt gebruikt. 578 00:26:38,350 --> 00:26:41,610 Dus naast een DHCP server die hebben we gesproken over een moment geleden vertellen 579 00:26:41,610 --> 00:26:44,720 mijn laptop wat mijn IP adres is, dat de DHCP-server 580 00:26:44,720 --> 00:26:46,860 vertelt me ​​ook wat DNS-server te gebruiken. 581 00:26:46,860 --> 00:26:48,860 Anders zou ik heb dit handmatig invoeren. 582 00:26:48,860 --> 00:26:50,359 >> Maar dat is niet zo interessant. 583 00:26:50,359 --> 00:26:54,310 Wat ik zorg over is dat dit de IP-adres van de website van Yale blijkbaar. 584 00:26:54,310 --> 00:26:55,470 Dus in feite, laten we proberen dit. 585 00:26:55,470 --> 00:27:02,710 Laat me gaan in een browser en ga http: // en dan is dat het IP-adres, 586 00:27:02,710 --> 00:27:04,220 en druk op Enter. 587 00:27:04,220 --> 00:27:06,700 En laat ons zien. 588 00:27:06,700 --> 00:27:09,587 Dat is hoe anders je kunt bezoek Yale websites. 589 00:27:09,587 --> 00:27:10,920 Nu is het niet zo memorabel. 590 00:27:10,920 --> 00:27:12,220 Zoals, de pre-Frosh waarschijnlijk niet gaan 591 00:27:12,220 --> 00:27:15,310 om dit bijzondere adres onthouden indien verteld om daar te bezoeken na een bezoek. 592 00:27:15,310 --> 00:27:16,580 Maar het lijkt te werken. 593 00:27:16,580 --> 00:27:21,179 En dus DNS eigenlijk gewoon laat ons toe veel meer mensvriendelijke adressen. 594 00:27:21,179 --> 00:27:23,220 Maar ze doen niet noodzakelijkerwijs gewoon op een antwoord. 595 00:27:23,220 --> 00:27:25,640 >> In feite, als je een echt grote tech bedrijf, 596 00:27:25,640 --> 00:27:27,620 wilt u waarschijnlijk hebben veel servers. 597 00:27:27,620 --> 00:27:29,027 En zelfs dit is misleidend. 598 00:27:29,027 --> 00:27:31,110 Dus Yale doet waarschijnlijk niet hebben slechts een webserver. 599 00:27:31,110 --> 00:27:34,150 Google heeft waarschijnlijk niet slechts 10 of zo webservers. 600 00:27:34,150 --> 00:27:36,960 Google vooral waarschijnlijk heeft duizenden webservers 601 00:27:36,960 --> 00:27:40,030 over de hele wereld die kunnen reageren op verzoeken van mensen zoals wij. 602 00:27:40,030 --> 00:27:43,870 >> Maar ze ook een technologie genaamd gebruiken load balancing, die lang verhaal kort, 603 00:27:43,870 --> 00:27:48,810 heeft slechts een paar apparaten in de wereld verspreiden over meer servers de belasting. 604 00:27:48,810 --> 00:27:52,320 Dus het is net zoiets als een spinnenweb als zult u de verzending van de aanvragen. 605 00:27:52,320 --> 00:27:54,380 Maar voor nu, alles wat interessant voor vandaag 606 00:27:54,380 --> 00:27:56,870 is dat een domeinnaam zoals google.com zelfs kunnen 607 00:27:56,870 --> 00:28:00,100 hebben meerdere IP-adressen als dat. 608 00:28:00,100 --> 00:28:04,610 >> Maar hoe doet al onze data daadwerkelijk terug te krijgen en weer toen in het einde? 609 00:28:04,610 --> 00:28:08,320 Nou, het blijkt dat er deze dingen riep routers op het internet. 610 00:28:08,320 --> 00:28:10,980 En wat is een router aan de mate dat je al weet? 611 00:28:10,980 --> 00:28:13,730 En ik heb het woord een paar gebruikt tijden in de context van een huis, 612 00:28:13,730 --> 00:28:17,155 maar in eenvoudige bewoordingen, wat doet een router doen? 613 00:28:17,155 --> 00:28:18,780 Geef me gewoon een gok op basis van zijn naam? 614 00:28:18,780 --> 00:28:20,082 >> Publiek: Dus een weg of een pad? 615 00:28:20,082 --> 00:28:21,790 DAVID J. MALAN: So Het is een weg of een weg. 616 00:28:21,790 --> 00:28:23,980 Dus een route is een straat of pad, absoluut. 617 00:28:23,980 --> 00:28:27,000 En een router, zodat een apparaat dat eigenlijk routes informatie 618 00:28:27,000 --> 00:28:29,690 zou gegevens tussen de punten A en B. bewegen 619 00:28:29,690 --> 00:28:31,920 >> En zo in fact-- en dit is misschien als 620 00:28:31,920 --> 00:28:34,510 je Google afbeeldingen van routers over de hele wereld, alles wat je 621 00:28:34,510 --> 00:28:35,900 zijn cheesy marketing diagrammen. 622 00:28:35,900 --> 00:28:38,550 En dus dit is een soort van de meest vertegenwoordiger die ik kon vinden 623 00:28:38,550 --> 00:28:39,841 dat zag er lichtjes interessant. 624 00:28:39,841 --> 00:28:44,170 Elk van deze punten of lichtpuntjes wereldwijd vertegenwoordigt een router. 625 00:28:44,170 --> 00:28:47,210 En elk van hen heeft een lijn tussen een andere router. 626 00:28:47,210 --> 00:28:49,090 >> Want inderdaad, er zijn duizenden, waarschijnlijk 627 00:28:49,090 --> 00:28:52,560 miljoenen routers rond de wereld, waarvan sommige in onze huizen 628 00:28:52,560 --> 00:28:56,070 en op onze campussen, maar veel die eigendom zijn van grote bedrijven 629 00:28:56,070 --> 00:29:00,250 en zijn verbonden zodat als ik willen sommige gegevens van sturen aan de Yale 630 00:29:00,250 --> 00:29:04,430 terug naar huis om Cambridge, Yale waarschijnlijk heeft geen enkele kabel, zeker, 631 00:29:04,430 --> 00:29:05,650 direct naar Harvard. 632 00:29:05,650 --> 00:29:07,399 En Yale heeft niet één kabel gaan 633 00:29:07,399 --> 00:29:10,010 MIT, of Stanford, of naar Berkeley, of Google, 634 00:29:10,010 --> 00:29:11,820 of een aantal bestemmingen. 635 00:29:11,820 --> 00:29:14,760 >> Integendeel, Yale en Harvard, en iedereen op internet 636 00:29:14,760 --> 00:29:17,610 heeft één of meer routers aangesloten, misschien 637 00:29:17,610 --> 00:29:18,810 aan de rand van de campus. 638 00:29:18,810 --> 00:29:21,690 Zodat wanneer mijn gegevens wil campus Yale verlaten, 639 00:29:21,690 --> 00:29:24,770 gaat dat dichtstbijzijnde router zoals die door één van deze punten. 640 00:29:24,770 --> 00:29:27,940 En dan die router cijfers te komen of te sturen op deze manier, of op deze manier, 641 00:29:27,940 --> 00:29:33,440 of op deze manier, of op deze manier op basis op een andere tafel in het geheugen, 642 00:29:33,440 --> 00:29:36,870 een Excel-bestand of Google spreadsheet die in één kolom 643 00:29:36,870 --> 00:29:41,315 zegt, als uw IP-adres begint met de nummer een, gaan op deze manier. 644 00:29:41,315 --> 00:29:43,690 Als je IP-adres begint met een nummer twee, gaan op die manier. 645 00:29:43,690 --> 00:29:47,040 En zo kun je het breken numeriek naar de router verzenden 646 00:29:47,040 --> 00:29:49,040 gegevens elke welke manier. 647 00:29:49,040 --> 00:29:51,419 >> En we kunnen soort zien dit als goed. 648 00:29:51,419 --> 00:29:54,210 Laten we doorgaan in deze terminal venster weer, en laat me doorgaan 649 00:29:54,210 --> 00:30:00,700 en traceren van de route naar, laten we zeggen, www.mit.edu, 650 00:30:00,700 --> 00:30:02,970 dat is een paar honderd mijl afstand. 651 00:30:02,970 --> 00:30:04,500 Dat was echt verdomd snel. 652 00:30:04,500 --> 00:30:06,290 >> Dus wat is er gebeurd? 653 00:30:06,290 --> 00:30:10,360 Dus in slechts zeven stappen, en in slechts vier milliseconden, 654 00:30:10,360 --> 00:30:14,660 Ik stuurde de gegevens via internet van hier aan de Yale aan het MIT. 655 00:30:14,660 --> 00:30:18,240 Elk van deze rijen, kunt u misschien denk vertegenwoordigt wat nu? 656 00:30:18,240 --> 00:30:19,060 >> Publiek: Een router. 657 00:30:19,060 --> 00:30:20,101 >> DAVID J. MALAN: Een router. 658 00:30:20,101 --> 00:30:24,090 Dus inderdaad, het lijkt erop dat er ongeveer zeven of zo routers, 659 00:30:24,090 --> 00:30:29,350 of zes routers in tussen mij fysiek hier Yale Law School 660 00:30:29,350 --> 00:30:31,612 en de website van MIT's daar. 661 00:30:31,612 --> 00:30:34,570 En wat we kunnen verzamelen van deze is als follows-- en laat me opruimen. 662 00:30:34,570 --> 00:30:38,180 Ik ga het opnieuw uit te voeren met een commando line argument van q 1 tot en gewoon zeggen, 663 00:30:38,180 --> 00:30:39,300 geef me een query. 664 00:30:39,300 --> 00:30:40,800 Standaard trace route doet drie. 665 00:30:40,800 --> 00:30:42,350 En dat is waarom we zagen trossen getallen. 666 00:30:42,350 --> 00:30:44,850 Ik wil minder nummers te zien alleen maar om de output schoner te houden. 667 00:30:44,850 --> 00:30:46,280 En laten we zien wat er gebeurt. 668 00:30:46,280 --> 00:30:49,220 >> Dus voor welke reden dan ook, iemand aan de Yale gedachte 669 00:30:49,220 --> 00:30:54,130 het grappig om te spreken zou je standaardrouter arubacentral, die 670 00:30:54,130 --> 00:30:57,920 is vlan of virtual LAN, virtuele omgeving 671 00:30:57,920 --> 00:30:59,810 netwerk 30-- zodat u waarschijnlijk ten minste 672 00:30:59,810 --> 00:31:03,050 29 others-- router.net.yale.internal. 673 00:31:03,050 --> 00:31:06,660 En .internal hier is een soort van een nep- top level domein bedoeld om alleen worden gebruikt 674 00:31:06,660 --> 00:31:07,210 op de campus. 675 00:31:07,210 --> 00:31:10,335 En let op de corresponderende IP-adres van die router, waar het is hier 676 00:31:10,335 --> 00:31:13,920 op de campus, is 172.28.204.129. 677 00:31:13,920 --> 00:31:17,470 Het duurde 36 milliseconden om van hier naar daar. 678 00:31:17,470 --> 00:31:18,050 >> Grappig verhaal. 679 00:31:18,050 --> 00:31:19,716 We zullen weer terug naar dat in slechts een moment. 680 00:31:19,716 --> 00:31:22,920 Maar nu de tweede router-- aan die blijkbaar arubacentral 681 00:31:22,920 --> 00:31:25,790 heeft een soort van fysieke verbinding meeste likely-- 682 00:31:25,790 --> 00:31:27,249 de mensen niet de moeite te benoemen. 683 00:31:27,249 --> 00:31:30,373 De Yale mensen niet de moeite naamgeving want het is de binnenkant van je netwerk 684 00:31:30,373 --> 00:31:30,940 het schijnt. 685 00:31:30,940 --> 00:31:32,520 En dus het heeft alleen een IP-adres. 686 00:31:32,520 --> 00:31:34,660 >> Maar dan een derde router hier op Yale netwerk 687 00:31:34,660 --> 00:31:36,700 Dat is waarschijnlijk een beetje verder weg nog steeds 688 00:31:36,700 --> 00:31:41,330 cen10g wordt genoemd, ongeacht dat asr.net.yale.internal. 689 00:31:41,330 --> 00:31:43,040 En het heeft ook een IP-adres. 690 00:31:43,040 --> 00:31:44,990 >> Waarom zijn deze nummers soort fluctuerende? 691 00:31:44,990 --> 00:31:47,890 2,9, 1,4, 36? 692 00:31:47,890 --> 00:31:48,840 Routers krijgen druk. 693 00:31:48,840 --> 00:31:50,420 En ze krijgen overbelaste en back-up. 694 00:31:50,420 --> 00:31:53,200 Er zijn duizenden mensen op deze campus met behulp van het internet op dit moment. 695 00:31:53,200 --> 00:31:56,050 Er is een honderd mensen in dit kamer met behulp van internet op dit moment. 696 00:31:56,050 --> 00:31:59,030 >> En dus wat er gebeurt is dat de routers zou kunnen krijgen overbelast. 697 00:31:59,030 --> 00:32:01,350 En dus die tijd zou fluctueren een beetje. 698 00:32:01,350 --> 00:32:04,620 Dus dat is waarom ze niet per se verhogen onomwonden. 699 00:32:04,620 --> 00:32:07,510 >> Maar dingen soort interessant in stap vier. 700 00:32:07,510 --> 00:32:13,040 Blijkbaar tussen Yale en Stap vier is een andere hop. 701 00:32:13,040 --> 00:32:16,480 En waar is de router in stap vier waarschijnlijk? 702 00:32:16,480 --> 00:32:17,410 >> PUBLIEK: [onverstaanbaar] 703 00:32:17,410 --> 00:32:19,410 >> DAVID J. MALAN: JFK misschien, misschien op de luchthaven. 704 00:32:19,410 --> 00:32:21,950 Maar om wat voor reden dan ook, systeembeheerders, dus 705 00:32:21,950 --> 00:32:24,140 geeks die servers draaien jaar hebben genoemd routers 706 00:32:24,140 --> 00:32:25,600 Na de dichtstbijzijnde luchthaven code. 707 00:32:25,600 --> 00:32:27,420 Dus JFK betekent waarschijnlijk het is gewoon ergens 708 00:32:27,420 --> 00:32:29,970 in New York, misschien in Manhattan of een van de stadsdelen. 709 00:32:29,970 --> 00:32:34,460 nyc2 geeft, vermoedelijk, een ander router die is ergens in New York. 710 00:32:34,460 --> 00:32:37,140 >> Ik weet niet goed waar de rij zes is hier, router nummer zes. 711 00:32:37,140 --> 00:32:40,110 quest.net een grote ISP, internet service provider, 712 00:32:40,110 --> 00:32:43,240 dat biedt internet connectiviteit tot grote plaatsen als Yale en anderen. 713 00:32:43,240 --> 00:32:47,110 En dan deze laatste, dat lijkt erop dat MIT niet eens 714 00:32:47,110 --> 00:32:50,180 hebben hun eigen website in Cambridge noodzakelijkerwijs 715 00:32:50,180 --> 00:32:52,090 maar ze hebben uitbesteed hun website, 716 00:32:52,090 --> 00:32:55,150 althans de fysieke servers een bedrijf genaamd Akamai. 717 00:32:55,150 --> 00:32:57,940 En Akamai eigenlijk recht naar beneden de weg van het MIT in Cambridge 718 00:32:57,940 --> 00:32:58,790 het blijkt. 719 00:32:58,790 --> 00:33:02,360 >> Maar beseffen ook dat zelfs gedacht je gaat www.mit.edu, 720 00:33:02,360 --> 00:33:05,200 We kon echt worden gestuurd overal ter wereld. 721 00:33:05,200 --> 00:33:06,960 >> En laten we zien ergens anders in de wereld. 722 00:33:06,960 --> 00:33:09,240 Laat me gaan en te wissen dit scherm en in plaats daarvan 723 00:33:09,240 --> 00:33:15,240 traceren van de route, maar een keer, dus te vragen een, naar www.cnn.co.jp, 724 00:33:15,240 --> 00:33:18,390 de Japanse home page voor CNN, de nieuwssite. 725 00:33:18,390 --> 00:33:20,660 En als ik druk op Enter nu, Laten we afwachten wat er gebeurt. 726 00:33:20,660 --> 00:33:23,610 We gaan weer beginnen bij arubacentral. 727 00:33:23,610 --> 00:33:26,510 We gaan vervolgens naar de naamloos router, een paar meer. 728 00:33:26,510 --> 00:33:29,527 Dus het 12 hop naar Japan dit keer. 729 00:33:29,527 --> 00:33:30,860 En laten we zien wat we kunnen sprokkelen. 730 00:33:30,860 --> 00:33:32,450 >> Dus hetzelfde hop, zelfde hop. 731 00:33:32,450 --> 00:33:35,170 Iets anders nu. 732 00:33:35,170 --> 00:33:36,380 Deze is interessant. 733 00:33:36,380 --> 00:33:40,870 Dus ik ben hier gissen, stamford1 is een weinige steden verderop in Connecticut ook. 734 00:33:40,870 --> 00:33:43,810 Deze routers in rij zes en zeven hebben geen namen. 735 00:33:43,810 --> 00:33:46,370 Maar dit is een soort van geweldig. 736 00:33:46,370 --> 00:33:53,310 >> Wat lijkt te zijn tussen de routers in stap zeven en acht? 737 00:33:53,310 --> 00:33:54,760 En waarom heb je zoveel zeggen? 738 00:33:54,760 --> 00:33:55,260 Ja? 739 00:33:55,260 --> 00:33:56,060 >> Publiek: Oceaan. 740 00:33:56,060 --> 00:33:57,640 >> DAVID J. MALAN: Waarschijnlijk een oceaan. 741 00:33:57,640 --> 00:34:01,366 We weten dat het waar is als, intuïtief, toch? 742 00:34:01,366 --> 00:34:04,790 Maar we kunnen zo veel soort bevestigen van de soort van empirisch waarom? 743 00:34:04,790 --> 00:34:06,860 Wat is er veranderd tussen rijen zeven en acht? 744 00:34:06,860 --> 00:34:09,429 745 00:34:09,429 --> 00:34:14,739 >> Het kostte veel meer tijd om te gaan wat deze naamloze router zeven is, 746 00:34:14,739 --> 00:34:18,670 waarschijnlijk ergens in de vasteland van de VS, aan stap acht, 747 00:34:18,670 --> 00:34:22,639 die waarschijnlijk ergens in Japan gebaseerd op de domeinnaam van .jp daar. 748 00:34:22,639 --> 00:34:25,719 En dus die extra honderd iets milliseconden 749 00:34:25,719 --> 00:34:28,960 of 90 of zo milliseconde het resultaat van onze data gaan 750 00:34:28,960 --> 00:34:31,100 over een vrij grote hoeveelheid water. 751 00:34:31,100 --> 00:34:34,570 >> Nu nieuwsgierig, lijkt het erop dat misschien dat de kabel gaat in de hele Verenigde Staten. 752 00:34:34,570 --> 00:34:37,070 Als we echt gaan boven de West Coast naar Japan te krijgen, 753 00:34:37,070 --> 00:34:39,111 het is een soort van de lange weg als we de andere kant op. 754 00:34:39,111 --> 00:34:41,400 Dus het is niet helemaal duidelijk wat er fysiek. 755 00:34:41,400 --> 00:34:43,830 Maar het feit dat iedere extra hop inderdaad 756 00:34:43,830 --> 00:34:46,020 duurde aanzienlijk langer dan elk ander, is het 757 00:34:46,020 --> 00:34:50,440 vrij goede bevestiging dat CNN's Japanse webserver is waarschijnlijk inderdaad 758 00:34:50,440 --> 00:34:51,310 in Japan. 759 00:34:51,310 --> 00:34:54,089 En het is zeker verder weg dan MIT is. 760 00:34:54,089 --> 00:34:56,380 En het is vermeldenswaard ook, uw gegevens is niet noodzakelijk 761 00:34:56,380 --> 00:34:58,794 naar de reizen kortste afstand. 762 00:34:58,794 --> 00:35:00,960 In feite, als je speelt rond met trace route thuis 763 00:35:00,960 --> 00:35:04,170 net plukken willekeurige websites, u Misschien vindt u dat alleen maar om een ​​email te sturen 764 00:35:04,170 --> 00:35:06,490 of om een ​​website te bezoeken dat is hier in New Haven, 765 00:35:06,490 --> 00:35:09,200 soms uw gegevens zou eerst neem een ​​omweg, naar beneden gaan naar DC, 766 00:35:09,200 --> 00:35:10,450 en kom dan terug. 767 00:35:10,450 --> 00:35:12,860 En dat is alleen maar omdat van de dynamische routing beslissingen 768 00:35:12,860 --> 00:35:14,650 dat deze computers maken. 769 00:35:14,650 --> 00:35:18,930 >> Nu gewoon voor de lol, het productieteam getrimd een van deze video's voor ons 770 00:35:18,930 --> 00:35:20,807 om gewoon een beetje meer beknopt. 771 00:35:20,807 --> 00:35:23,640 Maar om ons een korte zin te geven hier-- en we kunnen de lichten verlaten on-- 772 00:35:23,640 --> 00:35:32,363 over hoeveel bekabeling eigenlijk dragen al onze gegevens. 773 00:35:32,363 --> 00:35:33,029 [VIDEO AFSPELEN] 774 00:35:33,029 --> 00:35:36,023 [Muziek] 775 00:35:36,023 --> 00:36:31,911 776 00:36:31,911 --> 00:36:32,777 [END AFSPELEN] 777 00:36:32,777 --> 00:36:35,860 DAVID J. MALAN: Alle netwerken video hebben koele klinkende muziek blijkbaar. 778 00:36:35,860 --> 00:36:38,084 Dus dat is gewoon een te krijgen gevoel van hoeveel hebben 779 00:36:38,084 --> 00:36:39,500 er aan de hand onder de motorkap. 780 00:36:39,500 --> 00:36:41,355 >> Maar laten we eens kijken naar een iets lager niveau nu 781 00:36:41,355 --> 00:36:44,150 wat data daadwerkelijk doorkruisen van die lijnen, 782 00:36:44,150 --> 00:36:46,720 en zelfs draadloos te gaan in een kamer als dit. 783 00:36:46,720 --> 00:36:49,580 >> Dus het blijkt dat wanneer u een verzoek een webpagina, of stuur een e-mail, 784 00:36:49,580 --> 00:36:53,670 of ontvangen van een webpagina of een e-mail, of Gchat een bericht of een Facebook-bericht, 785 00:36:53,670 --> 00:36:57,800 of dergelijke, dat niet alleen een grote brok bits draadloos stromende 786 00:36:57,800 --> 00:37:00,600 door de lucht of elektronisch op een draad. 787 00:37:00,600 --> 00:37:03,680 Integendeel, het verzoek of respons meestal 788 00:37:03,680 --> 00:37:05,810 chunked in afzonderlijke stukken. 789 00:37:05,810 --> 00:37:08,880 >> Dus met andere woorden, wanneer u een verzoeken om een ​​andere computer, 790 00:37:08,880 --> 00:37:10,980 of je terug van een reactie een andere computer-- 791 00:37:10,980 --> 00:37:15,800 veronderstellen zoals, bijvoorbeeld, indien unfamiliar-- als te veel mensen 792 00:37:15,800 --> 00:37:18,400 lijken deze dagen-- zijn als onbekend met dit-- 793 00:37:18,400 --> 00:37:20,200 dit fellow-- deze kerel. 794 00:37:20,200 --> 00:37:23,950 Dus veronderstel dat dit is een boodschap die Ik wil sturen naar iemand in de rug. 795 00:37:23,950 --> 00:37:28,930 Wie in het terug zou willen ontvangt een foto van Rick Astley vandaag? 796 00:37:28,930 --> 00:37:29,805 Oké, wat is uw naam? 797 00:37:29,805 --> 00:37:30,590 >> Publiek: Cole. 798 00:37:30,590 --> 00:37:31,306 >> DAVID J. MALAN: Wat is het? 799 00:37:31,306 --> 00:37:31,672 >> Publiek: Cole. 800 00:37:31,672 --> 00:37:32,040 >> DAVID J. MALAN: Holt? 801 00:37:32,040 --> 00:37:32,540 H-O? 802 00:37:32,540 --> 00:37:33,711 PUBLIEK: C-O-L-E. 803 00:37:33,711 --> 00:37:34,960 DAVID J. MALAN: C-O-L-E, Cole. 804 00:37:34,960 --> 00:37:35,520 Sorry. 805 00:37:35,520 --> 00:37:36,430 C-O-L-E. 806 00:37:36,430 --> 00:37:36,930 Prima. 807 00:37:36,930 --> 00:37:40,990 Dus als ik wil Cole deze sturen foto hier, dit weet je 808 00:37:40,990 --> 00:37:42,410 is een soort van een grote foto, rechts? 809 00:37:42,410 --> 00:37:44,472 Dit kan een paar zijn kilobytes, een paar megabytes, 810 00:37:44,472 --> 00:37:45,930 vooral als het een hoge resolutie. 811 00:37:45,930 --> 00:37:48,660 En ik heb niet echt willen stoppen iedereen van het gebruik van internet 812 00:37:48,660 --> 00:37:50,680 net terwijl ik dit echt stuur grote, hoge kwaliteit beeld 813 00:37:50,680 --> 00:37:52,138 van Rick Astley de hele kamer. 814 00:37:52,138 --> 00:37:55,310 Ik wil graag van uw gegevens te blijven doorkruisen het netwerk en de Wi-Fi 815 00:37:55,310 --> 00:37:56,100 ook. 816 00:37:56,100 --> 00:38:00,100 >> En zo sense-- en dit maakt herstelbaar elektronisch, 817 00:38:00,100 --> 00:38:01,780 niet zozeer in de echte wereld. 818 00:38:01,780 --> 00:38:04,904 Eigenlijk, dit gaat meerdere te hebben betekenissen Als je mijn audio nemen. 819 00:38:04,904 --> 00:38:08,360 Dus als ik scheur deze in de helft als dit hier, 820 00:38:08,360 --> 00:38:11,912 dit nu kunnen reizen de internet efficiënter 821 00:38:11,912 --> 00:38:13,120 want het is een stuk kleiner. 822 00:38:13,120 --> 00:38:16,780 Dus met een lagere waarschijnlijkheid gaat het te botsen met het verkeer van iemand anders 823 00:38:16,780 --> 00:38:17,650 op het internet. 824 00:38:17,650 --> 00:38:21,240 >> En dus wat uw computer inderdaad doet wanneer u een bericht wilt sturen naar Cole 825 00:38:21,240 --> 00:38:24,917 is er brokken van een bericht als dit in kleinere stukken, fragmenten zo te zeggen. 826 00:38:24,917 --> 00:38:28,000 En dan zet ze binnen van wat zullen we een soort van virtuele enveloppen noemen. 827 00:38:28,000 --> 00:38:29,620 >> Dus ik heb vier papieren enveloppen hier. 828 00:38:29,620 --> 00:38:32,690 En ik heb pre-telde hen, één, twee, drie en vier. 829 00:38:32,690 --> 00:38:35,800 En wat ik ga doen aan de voorzijde van deze, net als een normale mailing, 830 00:38:35,800 --> 00:38:38,000 wordt ga ik de naam Cole's daar te zetten. 831 00:38:38,000 --> 00:38:41,270 En vervolgens bij de top, ik ga mijn naam daar te zetten, 832 00:38:41,270 --> 00:38:44,995 David, zodat het eerste pakket Ik stuur die er op het internet 833 00:38:44,995 --> 00:38:47,620 ziet er een beetje iets als wordt de opvallende kenmerken 834 00:38:47,620 --> 00:38:50,830 waarvan dat het een aan te pakken, een van adres, 835 00:38:50,830 --> 00:38:52,670 en een aantal, zo dat hopelijk 836 00:38:52,670 --> 00:38:55,680 volstaat informatie Cole om dit bericht te reconstrueren. 837 00:38:55,680 --> 00:38:58,820 >> Dus laat ik hetzelfde te doen hier, de same here, en dezelfde hier 838 00:38:58,820 --> 00:39:01,310 het schrijven van zijn naam in de Naar veld op alle van hen. 839 00:39:01,310 --> 00:39:04,240 En dan laten we doorgaan en zet deze foto's binnen. 840 00:39:04,240 --> 00:39:06,540 >> Dus hier is een pakket dat is klaar om te gaan. 841 00:39:06,540 --> 00:39:09,780 Hier is een ander pakket dat is klaar om te gaan. 842 00:39:09,780 --> 00:39:14,100 Hier is een derde pakket dat is klaar om te gaan. 843 00:39:14,100 --> 00:39:16,870 En hier is een vierde pakket dat klaar is om te gaan. 844 00:39:16,870 --> 00:39:19,849 >> En nu, wat interessant is over hoe het internet in de praktijk werkt 845 00:39:19,849 --> 00:39:22,140 is dat hoewel ik heb vier pakketten, die allemaal 846 00:39:22,140 --> 00:39:24,730 bestemd zijn voor eenzelfde locatie, zijn ze niet per se 847 00:39:24,730 --> 00:39:26,870 naar dezelfde route gevolgd. 848 00:39:26,870 --> 00:39:32,070 En dus hoewel ik kunnen deze inleveren pakketten af ​​naar de dichtstbijzijnde router 849 00:39:32,070 --> 00:39:36,660 laten we zeggen, als je wilt stuur ze alle kanten op, laten we eens kijken 850 00:39:36,660 --> 00:39:40,706 wat er werkelijk gebeurt, is het doel van de die hen uiteindelijk naar Cole. 851 00:39:40,706 --> 00:39:44,850 852 00:39:44,850 --> 00:39:48,770 En inderdaad, ze al niet noodzakelijkerwijze dezelfde richting. 853 00:39:48,770 --> 00:39:50,510 En dat is prima. 854 00:39:50,510 --> 00:39:52,480 Dit is een beetje lastig en Oprah stijl vandaag. 855 00:39:52,480 --> 00:39:56,540 >> En nu, laat me met opzet neem dat een terug. 856 00:39:56,540 --> 00:40:00,196 En nu Cole, als je wilt monteer het als beste wat je kunt. 857 00:40:00,196 --> 00:40:06,610 858 00:40:06,610 --> 00:40:10,180 Natuurlijk kunnen we raden wat de conclusie hier gaat worden. 859 00:40:10,180 --> 00:40:12,600 Je gaat te hebben 3/4 Rick Astley in slechts een moment. 860 00:40:12,600 --> 00:40:15,920 861 00:40:15,920 --> 00:40:19,291 En wat is echter de implicatie dat? 862 00:40:19,291 --> 00:40:20,540 Je wilt proberen om het te houden? 863 00:40:20,540 --> 00:40:23,540 We hebben wel een camera wees op je af als je wilt 864 00:40:23,540 --> 00:40:26,226 om te poseren met Rick Astley hier. 865 00:40:26,226 --> 00:40:28,610 866 00:40:28,610 --> 00:40:29,510 Daar gaan we. 867 00:40:29,510 --> 00:40:30,410 Heerlijk. 868 00:40:30,410 --> 00:40:33,230 >> Maar je lijkt te ontbreken een fragment van Rick Astley. 869 00:40:33,230 --> 00:40:37,015 Dus het blijkt dat het internet wordt over het algemeen gedreven door niet alleen IP, 870 00:40:37,015 --> 00:40:39,890 maar in feite hebben we aan het horen begin van de lezing in die video-- 871 00:40:39,890 --> 00:40:42,473 en je hebt waarschijnlijk dit gezien acroniem meer often-- wat werkelijk 872 00:40:42,473 --> 00:40:44,360 is het protocol dat u de neiging om te horen? 873 00:40:44,360 --> 00:40:45,120 >> PUBLIEK: TCP / IP. 874 00:40:45,120 --> 00:40:48,090 >> DAVID J. MALAN: TCP / IP, dat is gewoon een combinatie 875 00:40:48,090 --> 00:40:49,940 van twee protocollen, een zogenaamde IP. 876 00:40:49,940 --> 00:40:52,640 Die weer, is gewoon de set conventies via welke we 877 00:40:52,640 --> 00:40:54,740 pakken elke computer op het internet. 878 00:40:54,740 --> 00:40:56,930 En dan TCP, die dient een ander doel. 879 00:40:56,930 --> 00:41:00,110 >> TCP is een protocol dat u meestal in combinatie 880 00:41:00,110 --> 00:41:04,410 IP, dat onder andere dingen, garandeert de levering. 881 00:41:04,410 --> 00:41:08,860 In feite, is het TCP protocol zou dat een van de pakketten merken 882 00:41:08,860 --> 00:41:10,930 blijkbaar niet te krijgen Cole, want hij lijkt 883 00:41:10,930 --> 00:41:12,830 te ontbreken nummer vier van de vier. 884 00:41:12,830 --> 00:41:16,530 En dus wat TCP, een protocol doet, is het vertelt Cole, 885 00:41:16,530 --> 00:41:19,850 hey Cole, als je alleen ontvangen drie van de vier pakketten, 886 00:41:19,850 --> 00:41:22,600 me welke je vertellen ontbreken, wezen, 887 00:41:22,600 --> 00:41:25,570 en dan is mijn doel in het leven moet zijn om opnieuw te verzenden die. 888 00:41:25,570 --> 00:41:28,580 >> En dus als ik ook de verzender, TCP, 889 00:41:28,580 --> 00:41:31,810 Ik moet dan een nieuwe packet-- dit niet gerimpeld één hier-- 890 00:41:31,810 --> 00:41:35,980 doorgifte alleen dit stuk het, zodat uiteindelijk Cole heeft 891 00:41:35,980 --> 00:41:38,280 een complete herinnering, als er niets anders. 892 00:41:38,280 --> 00:41:43,000 Maar zo, dat uiteindelijk de gegevens daadwerkelijk krijgt om de juiste bestemming. 893 00:41:43,000 --> 00:41:48,020 >> Maar helaas, het schrijven van de naam Cole aan de voorzijde niet voldoende, per se. 894 00:41:48,020 --> 00:41:50,270 En echt, ik zou niet schrijven Naam Cole's, maar waarschijnlijk 895 00:41:50,270 --> 00:41:51,655 Zijn IP-adres op de envelop. 896 00:41:51,655 --> 00:41:52,780 En ik zou niet schrijven David. 897 00:41:52,780 --> 00:41:56,550 Ik zou mijn IP adres op de envelop te schrijven zodat de computers kan eigenlijk 898 00:41:56,550 --> 00:41:57,999 communiceren heen en weer. 899 00:41:57,999 --> 00:42:00,540 Maar het blijkt dat computers kan veel meer dan serveren doen 900 00:42:00,540 --> 00:42:01,900 foto's van Rick Astley. 901 00:42:01,900 --> 00:42:05,340 Ze kunnen ook opnieuw en e-mails, chatberichten. 902 00:42:05,340 --> 00:42:09,780 Ze kunnen dingen doen, zoals de overdracht van bestanden, en een willekeurig aantal andere instrumenten 903 00:42:09,780 --> 00:42:12,330 u gebruikt op het internet, servers kunnen doen deze dagen. 904 00:42:12,330 --> 00:42:15,300 >> En alleen maar omdat een bedrijf, of een school, of een persoon 905 00:42:15,300 --> 00:42:19,420 wil een webserver en een e-mailserver en een praatje server, 906 00:42:19,420 --> 00:42:21,420 betekent niet dat je drie computers nodig. 907 00:42:21,420 --> 00:42:26,200 Je kunt gewoon een computer hebben draaien meerdere diensten, om zo te zeggen. 908 00:42:26,200 --> 00:42:29,190 >> En dus wanneer Cole ontvangt een bericht als dat, hoe 909 00:42:29,190 --> 00:42:32,940 doet zijn computer weten of tonen aan dat beeld in zijn browser, 910 00:42:32,940 --> 00:42:37,730 of Gchat, of Facebook Messenger, of in een aantal andere instrumenten? 911 00:42:37,730 --> 00:42:40,430 >> Zo blijkt ook dat als envelop is extra stuk 912 00:42:40,430 --> 00:42:43,070 van de informatie die bekend staat als een poortnummer. 913 00:42:43,070 --> 00:42:45,240 En een poortnummer enkel een aantal inderdaad, 914 00:42:45,240 --> 00:42:48,342 maar het unieke identificatie niet de computer, maar de service. 915 00:42:48,342 --> 00:42:49,550 En er is trossen van deze. 916 00:42:49,550 --> 00:42:51,258 Dus het blijkt dat in de wereld, mensen 917 00:42:51,258 --> 00:42:57,095 een paar dergelijke treden conventies, waarvan sommige hiervan. 918 00:42:57,095 --> 00:42:59,220 Dus er is iets genaamd File Transfer Protocol. 919 00:42:59,220 --> 00:42:59,870 Het is vrij gedateerd. 920 00:42:59,870 --> 00:43:00,970 Het is volledig onzeker. 921 00:43:00,970 --> 00:43:02,320 Veel mensen gebruiken het nog steeds. 922 00:43:02,320 --> 00:43:04,240 En het maakt gebruik van poort nummer 21. 923 00:43:04,240 --> 00:43:07,250 Met andere woorden, indien het versturen van een bestand via FTP, 924 00:43:07,250 --> 00:43:10,570 de enveloppe niet alleen over verzender en het IP-adres van de ontvanger, 925 00:43:10,570 --> 00:43:14,020 het zou ook de nummer 21, zodat de ontvangende computer weet oh, dit 926 00:43:14,020 --> 00:43:17,280 is een bestand, geen e- of een chatbericht. 927 00:43:17,280 --> 00:43:19,016 >> 25 is SMTP. 928 00:43:19,016 --> 00:43:20,516 Hoeveel van jullie ooit heb gebruikt SMTP? 929 00:43:20,516 --> 00:43:22,850 930 00:43:22,850 --> 00:43:23,380 Fout. 931 00:43:23,380 --> 00:43:24,490 Bijna al die je hebt. 932 00:43:24,490 --> 00:43:28,730 Als je ooit hebt gebruikt e-mail, je hebt gebruikt SMTP, Simple Mail Transfer Protocol, 933 00:43:28,730 --> 00:43:32,300 dat is gewoon een mooie manier om te zeggen, Dit is het type computer of dienst 934 00:43:32,300 --> 00:43:34,600 dat stuurt uw e-mail uitgaande. 935 00:43:34,600 --> 00:43:38,780 >> En als je ooit hebt gezien, zoals acroniemen POP of IMAP, en er is een paar anderen, 936 00:43:38,780 --> 00:43:40,670 Dat zijn voor het opnemen e, typisch. 937 00:43:40,670 --> 00:43:42,650 Dat betekent dat het een andere dienst. 938 00:43:42,650 --> 00:43:45,850 Het is software dat iemand schreef dat stuurt naar of luistert 939 00:43:45,850 --> 00:43:48,880 op een specifiek poortnummer zo dat het geen e-mails heeft verwarren 940 00:43:48,880 --> 00:43:50,360 met andere type data. 941 00:43:50,360 --> 00:43:55,500 >> Nu het web is HTTP, wat nummer 80, en ook de poort 443. 942 00:43:55,500 --> 00:43:57,590 En inderdaad, alhoewel Wij mensen gelukkig 943 00:43:57,590 --> 00:43:59,610 hoeft dit niet te doen, elke keer dat u bezoekt 944 00:43:59,610 --> 00:44:05,810 een website als http://www.yale.edu, de browser 945 00:44:05,810 --> 00:44:07,790 is gewoon soort handig omdat het 946 00:44:07,790 --> 00:44:10,970 ervan uitgaande dat u wilt numerieke poort 80. 947 00:44:10,970 --> 00:44:15,710 We weten al dat DNS kunnen achterhalen wat het IP-adres van www.yale.edu. 948 00:44:15,710 --> 00:44:17,970 Maar de computer is gewoon zal afleiden dat u 949 00:44:17,970 --> 00:44:21,560 wil poort 80, want je gebruikt Chrome of IE, of een andere browser. 950 00:44:21,560 --> 00:44:24,930 Maar ik kon technisch doen colon 80. 951 00:44:24,930 --> 00:44:28,520 En dan kan ik expliciet vertellen mijn browser, stuur dan een pakje of meer 952 00:44:28,520 --> 00:44:32,080 van informatie aan www.yale.edu vraagt ​​de huidige homepage. 953 00:44:32,080 --> 00:44:36,070 Maar specifiek, adres het aan Yale IP op poort 80 954 00:44:36,070 --> 00:44:39,190 zodat ik eigenlijk back Yale webserver. 955 00:44:39,190 --> 00:44:42,229 >> Nu onmiddellijk verdwijnt omdat browsers net 956 00:44:42,229 --> 00:44:44,020 besluiten dat we niet moeten mensen verwarren 957 00:44:44,020 --> 00:44:46,810 door het hebben van nog meer mysterieuze informatie zoals colon 80. 958 00:44:46,810 --> 00:44:50,640 En eerlijk gezegd, browsers zoals Chrome niet eens 959 00:44:50,640 --> 00:44:55,464 laten u meer HTTP, of de dikke darm, of de slash slash, of de schuine streep, 960 00:44:55,464 --> 00:44:58,380 in zekere zin, omdat ze proberen om dingen eenvoudiger voor gebruikers. 961 00:44:58,380 --> 00:45:01,080 In een andere zin, het is gewoon een soort van een user experience thing-- 962 00:45:01,080 --> 00:45:02,720 laten we ontdoen van een aantal van de rommel. 963 00:45:02,720 --> 00:45:05,405 Maar het verbergt een aantal van deze onderliggende details. 964 00:45:05,405 --> 00:45:09,360 >> En in feite, niemand van ons waarschijnlijk ooit http meer typen. 965 00:45:09,360 --> 00:45:12,060 U typt gewoon in iets zoals www.harvard.edu. 966 00:45:12,060 --> 00:45:15,310 En nogmaals, Chrome waakt dat u wilt HTTP. 967 00:45:15,310 --> 00:45:18,970 Maar er zijn ook andere protocollen dat we zeker zouden kunnen worden gebruikt. 968 00:45:18,970 --> 00:45:24,480 >> Dus gezien dit alles, als je nu een soort van die op de zogenaamde techniek hat, 969 00:45:24,480 --> 00:45:27,417 hoe dingen genaamd firewalls werken? 970 00:45:27,417 --> 00:45:29,750 Dus bent u waarschijnlijk over het algemeen vertrouwd zijn met de firewall, 971 00:45:29,750 --> 00:45:30,990 niet zozeer in de fysieke zin. 972 00:45:30,990 --> 00:45:32,470 Dus terug in de dag, en nog steeds aan deze dag, 973 00:45:32,470 --> 00:45:35,430 als je hebt, zoals strip winkelcentra voor bijvoorbeeld dat veel winkels hebben, 974 00:45:35,430 --> 00:45:38,500 algemeen de muren ertussen individuele winkels of winkels 975 00:45:38,500 --> 00:45:43,180 firewalls zijn in de zin dat ze hebben speciale isolatie 976 00:45:43,180 --> 00:45:45,310 zodat als brand breekt uit in een winkel, 977 00:45:45,310 --> 00:45:48,210 het doet niet per se verspreid naar de winkel naast de deur. 978 00:45:48,210 --> 00:45:51,710 >> De computer wereld heeft ook firewalls dat er iets anders te doen. 979 00:45:51,710 --> 00:45:52,798 Wat doet een vuurbal doen? 980 00:45:52,798 --> 00:45:53,298 Ja? 981 00:45:53,298 --> 00:45:55,290 >> PUBLIEK: In principe ze afgesneden verbinding 982 00:45:55,290 --> 00:45:59,493 als ze iets tegenkomen zoals, bijvoorbeeld, 983 00:45:59,493 --> 00:46:01,361 ze hebben het aantal id verklaringen. 984 00:46:01,361 --> 00:46:04,340 En als er iets gebeurt, ze snijden de verbinding. 985 00:46:04,340 --> 00:46:07,570 Net als dit kwaadaardige aanvallen [Onverstaanbaar] van uw computer, of-- 986 00:46:07,570 --> 00:46:08,630 >> DAVID J. MALAN: OK goed. 987 00:46:08,630 --> 00:46:11,220 Ja, en in feite je bent zelfs gaan een beetje verder 988 00:46:11,220 --> 00:46:14,590 in iets beschrijven dat zou kunnen zijn riep een intrusion detection-systeem, 989 00:46:14,590 --> 00:46:18,305 of IDS voor de korte, waarbij je eigenlijk hebben regels gedefinieerd. 990 00:46:18,305 --> 00:46:22,140 En als je begint te zien verdachte gedrag, moet je proberen om een ​​einde te maken aan het. 991 00:46:22,140 --> 00:46:24,250 >> En een firewall, eerlijk gezegd, op een netwerk-niveau, 992 00:46:24,250 --> 00:46:26,821 is nog dommer en eenvoudiger dan algemeen. 993 00:46:26,821 --> 00:46:29,070 En er zijn verschillende types van firewalls in de wereld. 994 00:46:29,070 --> 00:46:31,569 Maar degene die werken op het niveau we praten today-- 995 00:46:31,569 --> 00:46:35,330 IP en TCP-- zelfs werken meer onomwonden. 996 00:46:35,330 --> 00:46:39,180 >> Bijvoorbeeld, als je Yale systeem beheerders, of Harvard-systeem 997 00:46:39,180 --> 00:46:42,020 beheerders, of een Big Broer op een bepaald bedrijf, 998 00:46:42,020 --> 00:46:45,040 en je wilde al voorkomen dat uw studenten of al uw medewerkers 999 00:46:45,040 --> 00:46:47,619 van het gaan naar facebook.com, alles wat je hoeft te doen 1000 00:46:47,619 --> 00:46:50,160 is ervoor te zorgen dat al hun netwerkverkeer, allereerst, 1001 00:46:50,160 --> 00:46:51,850 gaat door middel van een speciaal apparaat. 1002 00:46:51,850 --> 00:46:53,030 Laten we noemen het een firewall. 1003 00:46:53,030 --> 00:46:54,910 >> En dat is prima, want u kunt uw router maken 1004 00:46:54,910 --> 00:46:57,618 hetzelfde als een firewall als je dezelfde soort software 1005 00:46:57,618 --> 00:46:58,940 op dezelfde machine. 1006 00:46:58,940 --> 00:47:01,780 Dus als alle leerlingen of werknemers verkeer 1007 00:47:01,780 --> 00:47:04,450 gaat door dit centrale firewall, hoe 1008 00:47:04,450 --> 00:47:08,540 zouden wij mensen te blokkeren uit te gaan naar facebook.com, bijvoorbeeld? 1009 00:47:08,540 --> 00:47:10,780 Wat zou het systeem administrator moeten doen? 1010 00:47:10,780 --> 00:47:11,370 Iemand anders? 1011 00:47:11,370 --> 00:47:12,911 Laten we proberen om rond te gaan. 1012 00:47:12,911 --> 00:47:15,074 >> PUBLIEK: [onverstaanbaar] 1013 00:47:15,074 --> 00:47:16,365 DAVID J. MALAN: Zeg dat nog eens? 1014 00:47:16,365 --> 00:47:19,215 Publiek: Het moet gewoon ingehaald in het systeem. 1015 00:47:19,215 --> 00:47:22,487 Dus zet Facebook in 127.0.0-- 1016 00:47:22,487 --> 00:47:23,820 DAVID J. MALAN: Oh, interessant. 1017 00:47:23,820 --> 00:47:27,290 Dus je kunt eigenlijk dan hack uw DNS-systeem. 1018 00:47:27,290 --> 00:47:31,180 Dit is inderdaad een manier kon je dit doen waarbij elke keer een Yale student trekt 1019 00:47:31,180 --> 00:47:34,670 up www.facebook.com, alle van ons hier vandaag op de campus 1020 00:47:34,670 --> 00:47:38,590 gebruikt Yale DNS-server, Yale omdat de DHCP-server gaf ons 1021 00:47:38,590 --> 00:47:39,580 dat adres. 1022 00:47:39,580 --> 00:47:42,490 Dus ja, je kon soort dingen of breken conventie breken 1023 00:47:42,490 --> 00:47:49,190 door gewoon te zeggen, ja, adres facebook.com is nep, 1024 00:47:49,190 --> 00:47:52,530 1.2.3.4 is, wat eigenlijk niet legitiem. 1025 00:47:52,530 --> 00:47:53,930 Of misschien is het 278. 1026 00:47:53,930 --> 00:47:57,460 wat was in de tv-show een daarnet zo dat niemand van ons 1027 00:47:57,460 --> 00:47:59,176 kan eigenlijk een bezoek facebook.com. 1028 00:47:59,176 --> 00:48:00,590 >> Dus stel Yale deed. 1029 00:48:00,590 --> 00:48:03,336 Veronderstel Yale wilde houden je uit facebook.com. 1030 00:48:03,336 --> 00:48:05,700 En daarom zijn ze veranderde de DNS-instellingen 1031 00:48:05,700 --> 00:48:08,812 om u een nep IP geven Adres voor facebook.com. 1032 00:48:08,812 --> 00:48:10,616 Hoe reageer je? 1033 00:48:10,616 --> 00:48:12,990 Technisch, niet-- oh, nu iedereen wil om deel te nemen. 1034 00:48:12,990 --> 00:48:13,490 OK, ja. 1035 00:48:13,490 --> 00:48:16,190 PUBLIEK: U typt gewoon in de eigenlijke IP-adres van Facebook. 1036 00:48:16,190 --> 00:48:16,710 >> DAVID J. MALAN: OK, goed. 1037 00:48:16,710 --> 00:48:19,350 Dus we konden enkel type in de eigenlijke IP-adres van Facebook, 1038 00:48:19,350 --> 00:48:21,090 net zoals ik deed met de website van Yale. 1039 00:48:21,090 --> 00:48:24,636 En als de Facebook-server is geconfigureerd ondersteunen dat zij inderdaad werkt. 1040 00:48:24,636 --> 00:48:26,510 Het is een lichte pijn in de nek, want nu we 1041 00:48:26,510 --> 00:48:30,220 moet niet vergeten een aantal willekeurige 32-bits waarde, maar dat zou kunnen werken. 1042 00:48:30,220 --> 00:48:31,622 Wat zou je doen? 1043 00:48:31,622 --> 00:48:32,121 Ja. 1044 00:48:32,121 --> 00:48:35,117 >> Publiek: Je zou kunnen veranderen deze instellingen [onverstaanbaar]. 1045 00:48:35,117 --> 00:48:37,700 DAVID J. MALAN: Ja, je kon zelfs uw DNS-instellingen te wijzigen. 1046 00:48:37,700 --> 00:48:40,480 Dus in feite is dit eigenlijk vrij nuttig, eerlijk gezegd, 1047 00:48:40,480 --> 00:48:45,590 als je in een luchthaven, of als je bent in een cafe, of iets dat 1048 00:48:45,590 --> 00:48:48,834 heeft schilferige internet waarbij soms de DNS-server gewoon stopt met werken. 1049 00:48:48,834 --> 00:48:51,000 Dus ook ik af en toe doen dit, niet voor kwaadaardige, I 1050 00:48:51,000 --> 00:48:52,750 wil Facebook gebruiken doeleinden, maar echt 1051 00:48:52,750 --> 00:48:56,344 omdat ik lijken een netwerk verbinding, maar niets werkt. 1052 00:48:56,344 --> 00:48:58,260 Zo een van de eerste dingen die ik try-- en je 1053 00:48:58,260 --> 00:49:01,710 Dit kan op Windows, maar too-- op mijn Mac, als ik naar Network. 1054 00:49:01,710 --> 00:49:03,330 En ik kies mijn Wi-Fi-verbinding. 1055 00:49:03,330 --> 00:49:04,750 En ik ga naar Advanced. 1056 00:49:04,750 --> 00:49:06,080 En ik ga naar DNS. 1057 00:49:06,080 --> 00:49:08,260 Dit zijn de drie IP-adressen die Yale 1058 00:49:08,260 --> 00:49:10,290 is het geven van me om drie DNS-servers. 1059 00:49:10,290 --> 00:49:14,110 Het doel is dan voor mij om elke proberen een van deze adressen op te lossen. 1060 00:49:14,110 --> 00:49:15,946 >> Maar ik kan overschrijven deze door het doen van een plus. 1061 00:49:15,946 --> 00:49:18,333 En iedereen wil een DNS-server voor te stellen? 1062 00:49:18,333 --> 00:49:19,120 >> PUBLIEK: 8.8.8.8? 1063 00:49:19,120 --> 00:49:20,578 >> DAVID J. MALAN: Oh, je bent geweldig. 1064 00:49:20,578 --> 00:49:21,650 Ja, 8.8.8.8. 1065 00:49:21,650 --> 00:49:26,170 Zodat Google, zegen hun harten, kocht het IP-adres 8.8.8.8, 1066 00:49:26,170 --> 00:49:29,560 omdat het soort ziet eruit als Gs waarschijnlijk, en het is makkelijk te onthouden. 1067 00:49:29,560 --> 00:49:34,820 Maar inderdaad, nu heb ik mijn geconfigureerd computer aan Google's DNS-server te gebruiken. 1068 00:49:34,820 --> 00:49:38,050 >> Dus nu als ik naar yale.edu, het is nog steeds aan het werk. 1069 00:49:38,050 --> 00:49:40,100 Maar ik ben niet met behulp van Yale DNS-servers meer. 1070 00:49:40,100 --> 00:49:44,430 En als ik naar facebook.com, al die kijken ups 1071 00:49:44,430 --> 00:49:45,960 gaan om te gaan door Google. 1072 00:49:45,960 --> 00:49:49,120 >> Dus aan de ene kant, ik heb slim omzeild het lokale systeem 1073 00:49:49,120 --> 00:49:51,810 beheerders gewoon door begrijpen hoe een netwerk werkt. 1074 00:49:51,810 --> 00:49:53,360 Maar ik ben het betalen van een prijs. 1075 00:49:53,360 --> 00:49:54,740 Niets is gratis. 1076 00:49:54,740 --> 00:49:56,096 Wat heb ik gewoon opgegeven? 1077 00:49:56,096 --> 00:50:00,180 1078 00:50:00,180 --> 00:50:02,250 Wat heb ik gewoon opgegeven? 1079 00:50:02,250 --> 00:50:06,090 Jullie allemaal slimme mensen die gebruikt 8.8.8.8, want het is cool 1080 00:50:06,090 --> 00:50:10,440 of lost problemen op, wat heb je gedaan al die tijd? 1081 00:50:10,440 --> 00:50:11,910 >> PUBLIEK: Traveling verder? 1082 00:50:11,910 --> 00:50:15,201 >> DAVID J. MALAN: Misschien verder reizen, omdat Google is waarschijnlijk niet zo 1083 00:50:15,201 --> 00:50:16,770 dicht als de server in de straat. 1084 00:50:16,770 --> 00:50:18,420 Maar meer worrisomely. 1085 00:50:18,420 --> 00:50:18,920 Ja? 1086 00:50:18,920 --> 00:50:20,940 >> Publiek: Dus nu Google weet waar je naartoe gaat. 1087 00:50:20,940 --> 00:50:23,856 >> DAVID J. MALAN: Google weet letterlijk elke website die u bezoekt, 1088 00:50:23,856 --> 00:50:26,080 want je bent letterlijk hen te vragen, he Google, 1089 00:50:26,080 --> 00:50:28,360 kunt u yale.edu vertalen voor mij? 1090 00:50:28,360 --> 00:50:32,430 Of hey Google, kun je vertalen Deze andere website-adres voor mij 1091 00:50:32,430 --> 00:50:33,334 in een IP-adres. 1092 00:50:33,334 --> 00:50:35,750 En dus they're-- ik heb geen idee waar je het over hebt. 1093 00:50:35,750 --> 00:50:38,080 En dus ze weten alles over jou. 1094 00:50:38,080 --> 00:50:42,180 Dus beseffen dat dit is een gratis service met een doel vanuit hun perspectief 1095 00:50:42,180 --> 00:50:42,680 ook. 1096 00:50:42,680 --> 00:50:44,420 Maar het kan zeker je uit een binden. 1097 00:50:44,420 --> 00:50:46,380 >> Nu alleen maar om een ​​ander aan te pakken kwestie die vaak opkomt 1098 00:50:46,380 --> 00:50:48,640 onder studenten, vooral wanneer u internationale reizen 1099 00:50:48,640 --> 00:50:50,765 in bepaalde landen, zoals China, waar er inderdaad 1100 00:50:50,765 --> 00:50:54,559 is een Great Firewall of China, waarbij de overheid er blokken vrij 1101 00:50:54,559 --> 00:50:56,100 een beetje van het verkeer op verschillende niveaus. 1102 00:50:56,100 --> 00:50:58,141 Je hoeft niet om gewoon blokkeren het verkeer op het niveau 1103 00:50:58,141 --> 00:51:01,240 we hier praten, DNS of anderszins, je kunt het blokkeren op andere niveaus. 1104 00:51:01,240 --> 00:51:04,030 >> En in feite, alleen maar om duidelijk zijn, een firewall 1105 00:51:04,030 --> 00:51:08,400 kan nog eenvoudiger dan alleen opereren het hebben van de systeembeheerders veranderen 1106 00:51:08,400 --> 00:51:09,500 DNS-instellingen. 1107 00:51:09,500 --> 00:51:12,920 Een firewall, een apparaat tussen ons en de rest van de wereld, 1108 00:51:12,920 --> 00:51:16,850 kon gewoon elke uitgaande blokkeren verzoeken om het IP-adres 1109 00:51:16,850 --> 00:51:21,240 voor Facebook op poort 80 of het IP-adres voor harvard.edu, 1110 00:51:21,240 --> 00:51:22,580 of het IP adres van om het even wat. 1111 00:51:22,580 --> 00:51:26,280 Dus een firewall kunt kijken naar je enveloppen 'IP-adressen en zelfs de haven 1112 00:51:26,280 --> 00:51:29,384 getallen en als Yale wilde, het kan net ons allemaal stoppen 1113 00:51:29,384 --> 00:51:32,550 van zelfs via FTP meer, dat zou een goede zaak, omdat het waarschijnlijk 1114 00:51:32,550 --> 00:51:34,320 inderdaad een onveilig protocol. 1115 00:51:34,320 --> 00:51:37,620 Yale zou zelfs kunnen stoppen met ons van bezoek aan het geheel van de baan 1116 00:51:37,620 --> 00:51:42,632 gewoon door alle poort te blokkeren verkeer op nummer 80 ook. 1117 00:51:42,632 --> 00:51:43,840 Dus dat zou een andere manier zijn. 1118 00:51:43,840 --> 00:51:45,740 En er is zelfs liefhebber manieren. 1119 00:51:45,740 --> 00:51:47,770 >> Maar als je op reis bent in het buitenland bijvoorbeeld, 1120 00:51:47,770 --> 00:51:50,740 of als je in een internetcafé, of als je ergens bent waar er 1121 00:51:50,740 --> 00:51:53,179 verstoppingen of bedreigingen, wat kunt u doen? 1122 00:51:53,179 --> 00:51:56,220 Nou, als je naar beneden de straat op Starbucks of u reist in een luchthaven, 1123 00:51:56,220 --> 00:51:58,780 over het algemeen kun je gewoon hop op de Wi-Fi door te kiezen 1124 00:51:58,780 --> 00:52:04,631 als, JFK Wi-Fi van LaGuardia Wi-Fi, of Logan Airport Wi-Fi, of wat niet. 1125 00:52:04,631 --> 00:52:05,880 En het is niet versleuteld, toch? 1126 00:52:05,880 --> 00:52:06,949 Er is geen hangslot. 1127 00:52:06,949 --> 00:52:09,490 En je bent waarschijnlijk niet gevraagd voor een gebruikersnaam en wachtwoord. 1128 00:52:09,490 --> 00:52:11,240 Je bent gewoon gevraagd met een aantal domme vorm 1129 00:52:11,240 --> 00:52:15,260 te zeggen als, ben ik het eens dat alleen te gebruiken 30 minuten, of iets dergelijks. 1130 00:52:15,260 --> 00:52:18,761 >> Maar er is geen encryptie tussen u en Starbucks WiFi 1131 00:52:18,761 --> 00:52:20,760 punt, de dingen die met de antennes op de muur. 1132 00:52:20,760 --> 00:52:24,840 Er is geen encryptie tussen u en Wi-Fi-signalen van de luchthaven. 1133 00:52:24,840 --> 00:52:29,060 >> En zo technisch, dat griezelig persoon zitten een paar zetels af van je 1134 00:52:29,060 --> 00:52:31,970 in Starbucks of op de luchthaven zou kunnen zijn, met de juiste software, 1135 00:52:31,970 --> 00:52:35,164 kijken naar al uw draadloze het verkeer op zijn of haar laptop. 1136 00:52:35,164 --> 00:52:37,080 Het is niet zo moeilijk om zet een laptop in wat er is 1137 00:52:37,080 --> 00:52:39,880 riep promiscue modus, die zoals de naam al doet vermoeden, 1138 00:52:39,880 --> 00:52:41,760 betekent dat je soort los van de regels. 1139 00:52:41,760 --> 00:52:44,740 En het luistert gewoon niet alleen voor het verkeer bedoeld voor het, 1140 00:52:44,740 --> 00:52:47,700 maar ook voor iedereen anders is verkeer binnen bereik. 1141 00:52:47,700 --> 00:52:50,550 >> En door die logica, het kan zien alle informatiepakketten 1142 00:52:50,550 --> 00:52:51,360 u ontvangt. 1143 00:52:51,360 --> 00:52:53,510 En als die pakketten zijn niet versleuteld, u 1144 00:52:53,510 --> 00:52:56,680 worden om jezelf in gevaar uw e-mails, of uw berichten, 1145 00:52:56,680 --> 00:52:58,620 of iets anders krijgen blootgesteld. 1146 00:52:58,620 --> 00:53:01,220 >> Dus zelfs als je in het buitenland bent niet maar je bent gewoon in Starbucks, 1147 00:53:01,220 --> 00:53:03,800 of je bent op een willekeurig persoon Wi-Fi die niet is gecodeerd, 1148 00:53:03,800 --> 00:53:05,410 een VPN is een goede zaak. 1149 00:53:05,410 --> 00:53:07,410 Een VPN is een virtual private network. 1150 00:53:07,410 --> 00:53:09,480 En het is een technologie die u toelaat om te hebben 1151 00:53:09,480 --> 00:53:14,560 een gecodeerde, een roerei connection-- liefhebber dan Caesar of Vigenere-- 1152 00:53:14,560 --> 00:53:17,420 tussen uw laptop, of je telefoon, of uw bureaublad, 1153 00:53:17,420 --> 00:53:22,460 en een server elders, zoals een server op de campus van Yale. 1154 00:53:22,460 --> 00:53:25,840 >> En als je reist abroad-- en in feite is dit in hotels vind je 1155 00:53:25,840 --> 00:53:26,560 altijd. 1156 00:53:26,560 --> 00:53:28,580 En vooral als aspirant- informatici 1157 00:53:28,580 --> 00:53:32,090 waarin jullie misschien, als geeks, willen andere dan 80 poorten, 1158 00:53:32,090 --> 00:53:35,770 en andere dan 443-- havens en in feite voor het probleem te stellen zes, 1159 00:53:35,770 --> 00:53:39,280 we gaan om te spelen met meerdere TCP-poorten alleen door keuze-- veel 1160 00:53:39,280 --> 00:53:42,940 van hotels en winkels, en netwerken alleen dat soort dingen te blokkeren 1161 00:53:42,940 --> 00:53:45,970 omdat ze een beetje naïef, of onwetendheid, denk gewoon 1162 00:53:45,970 --> 00:53:48,010 dat niemand nodig die andere havens. 1163 00:53:48,010 --> 00:53:51,150 >> En zo met behulp van een VPN kunt u omzeilen dit soort beperkingen, 1164 00:53:51,150 --> 00:53:54,050 want wat een VPN doet is het laat je bij Starbucks, 1165 00:53:54,050 --> 00:53:58,630 of de luchthaven, of waar dan ook in de wereld encryptedly om verbinding te maken met yale.edu, 1166 00:53:58,630 --> 00:54:02,950 enkele server hier op de campus, en tunnel, zogezegd, 1167 00:54:02,950 --> 00:54:06,570 al uw verkeer van de plaats waar je bent door middel van Yale, op welk punt 1168 00:54:06,570 --> 00:54:08,720 Het gaat dan naar de eindbestemming. 1169 00:54:08,720 --> 00:54:11,150 >> Maar door het versleutelen van het, je geven dergelijke voorkomen 1170 00:54:11,150 --> 00:54:15,380 van filters of het opleggen die sommige lokale netwerk heeft opgelegd. 1171 00:54:15,380 --> 00:54:17,980 En plus, heb je een veel robuuster verdediging 1172 00:54:17,980 --> 00:54:19,730 tegen griezelige mensen om je heen die misschien 1173 00:54:19,730 --> 00:54:21,300 te proberen te luisteren op uw verkeer. 1174 00:54:21,300 --> 00:54:24,591 Er kan nog griezelige mensen hier terug naar huis aan de Yale kijken uw verkeer 1175 00:54:24,591 --> 00:54:28,440 zoals het komt uit de VPN, maar in ieder geval je de dreiging hebt geduwd verder weg. 1176 00:54:28,440 --> 00:54:30,490 En het is ook hier een afweging. 1177 00:54:30,490 --> 00:54:33,645 >> Nu natuurlijk, als je in China of zelfs in het café, 1178 00:54:33,645 --> 00:54:35,770 en je bent tunneling alle uw verkeer door middel van Yale, 1179 00:54:35,770 --> 00:54:37,590 welke prijs betalen we misschien? 1180 00:54:37,590 --> 00:54:38,272 >> Publiek: Snelheid. 1181 00:54:38,272 --> 00:54:39,480 DAVID J. MALAN: Snelheid, toch? 1182 00:54:39,480 --> 00:54:41,430 Er moet wat wiskunde te zijn of een fanciness betrokken 1183 00:54:41,430 --> 00:54:42,574 in de feitelijke codering. 1184 00:54:42,574 --> 00:54:44,990 Er kunnen duizenden mijlen van afstand of duizenden 1185 00:54:44,990 --> 00:54:47,250 mijlen van de kabels tussen u en Yale. 1186 00:54:47,250 --> 00:54:49,800 En het is echt slecht als je bent in China, bijvoorbeeld, 1187 00:54:49,800 --> 00:54:51,650 en u wilt bezoeken een website in China. 1188 00:54:51,650 --> 00:54:54,230 En zo uw gegevens gaat de VS, en dan terug naar China 1189 00:54:54,230 --> 00:54:56,620 gewoon omdat je het versleutelen het door deze tunnel. 1190 00:54:56,620 --> 00:54:59,960 >> Maar het lost technische en problemen gelijk werk. 1191 00:54:59,960 --> 00:55:02,050 Maar het komt allemaal neer op Deze eenvoudige ideeën. 1192 00:55:02,050 --> 00:55:06,530 En Harvard, voor wie nieuwsgierig, heeft men hier ook bij vpn.harvard.edu, 1193 00:55:06,530 --> 00:55:09,150 die werkt net als Yale. 1194 00:55:09,150 --> 00:55:12,580 >> Dus met al dat gezegd, waarom is dit hele netwerk nuttig? 1195 00:55:12,580 --> 00:55:14,080 En wat kunnen we gaan doen met het? 1196 00:55:14,080 --> 00:55:15,630 Nou, laten we dit nu echt. 1197 00:55:15,630 --> 00:55:17,610 Dit is de afkorting waarmee de meesten van ons 1198 00:55:17,610 --> 00:55:22,140 zijn waarschijnlijk super familiar-- HTTP kunnen wat staat voor Hyper Text Transfer 1199 00:55:22,140 --> 00:55:22,950 protocol. 1200 00:55:22,950 --> 00:55:26,460 En dit betekent gewoon dat dit is de taal, het protocol 1201 00:55:26,460 --> 00:55:29,140 dat webbrowsers en webserver spreken. 1202 00:55:29,140 --> 00:55:31,437 >> De P in HTTP is inderdaad een protocol. 1203 00:55:31,437 --> 00:55:33,270 En een protocol is gewoon een set van conventies. 1204 00:55:33,270 --> 00:55:36,690 We hebben gezien IP-- internet protocol-- TCP-- transmissie controle 1205 00:55:36,690 --> 00:55:38,290 protocol-- en HTTP. 1206 00:55:38,290 --> 00:55:40,570 Maar wat is dit stomme ding van een protocol? 1207 00:55:40,570 --> 00:55:41,930 Het is gewoon een set van conventies. 1208 00:55:41,930 --> 00:55:43,760 >> Dus als ik een soort van naar beneden komen hier, en ik wil je te begroeten. 1209 00:55:43,760 --> 00:55:44,930 Ik zou zeggen hallo, mijn naam is David. 1210 00:55:44,930 --> 00:55:45,600 >> Publiek: Luis. 1211 00:55:45,600 --> 00:55:46,475 >> DAVID J. MALAN: Luis. 1212 00:55:46,475 --> 00:55:49,360 We hebben dit domme mens conventie van handen schudden hier. 1213 00:55:49,360 --> 00:55:50,570 Maar dat is een protocol, toch? 1214 00:55:50,570 --> 00:55:51,470 Ik verlengde mijn hand. 1215 00:55:51,470 --> 00:55:52,530 Luis stak zijn hand uit. 1216 00:55:52,530 --> 00:55:53,070 Wij deden dit. 1217 00:55:53,070 --> 00:55:54,790 En dan compleet, gedaan. 1218 00:55:54,790 --> 00:55:58,100 >> En dat is precies het zelfde geest van een computer protocol 1219 00:55:58,100 --> 00:56:02,770 waar zoals in HTTP, wat er gebeurt is dit. 1220 00:56:02,770 --> 00:56:05,520 Als u de computer op het hier links, en er is een aantal web 1221 00:56:05,520 --> 00:56:07,230 server is er aan de rechterkant. 1222 00:56:07,230 --> 00:56:11,130 En de computer links wil informatie aanvragen van die server. 1223 00:56:11,130 --> 00:56:13,140 Het is een soort van een bi-directionele werking. 1224 00:56:13,140 --> 00:56:15,800 De browser links vraagt ​​voor sommige webpagina. 1225 00:56:15,800 --> 00:56:18,404 De server op de rechter reageert met een aantal webpagina. 1226 00:56:18,404 --> 00:56:20,570 En we zullen zien wat vorm die in slechts een moment. 1227 00:56:20,570 --> 00:56:24,311 >> En het blijkt dat die computers-- dat de browser en de server of client 1228 00:56:24,311 --> 00:56:25,310 en de server, om zo te zeggen. 1229 00:56:25,310 --> 00:56:28,120 Net als een restaurant waar de client is vragen om iets, 1230 00:56:28,120 --> 00:56:31,670 en de server brengt hem of haar something-- krijgen 1231 00:56:31,670 --> 00:56:33,170 is een soort van het sleutelwoord. 1232 00:56:33,170 --> 00:56:38,560 Letterlijk binnenzijde van de envelop mijn browser stuurt van hier naar een web- 1233 00:56:38,560 --> 00:56:40,880 server is het woord te krijgen. 1234 00:56:40,880 --> 00:56:42,700 Zoals ik wil het nieuws van vandaag te krijgen. 1235 00:56:42,700 --> 00:56:45,370 Ik wil mijn krijgen Facebook nieuwsfeed, of I 1236 00:56:45,370 --> 00:56:47,330 willen sommige pagina te krijgen van de server. 1237 00:56:47,330 --> 00:56:50,760 >> In het bijzonder, dit is wat is gaat aan de binnenkant van de enveloppe. 1238 00:56:50,760 --> 00:56:53,810 Dus ik, met Cole, in wezen Cole stuurde een antwoord. 1239 00:56:53,810 --> 00:56:56,750 Als je je voorstellen dat Cole eigenlijk wilde een foto van Rick Astley, 1240 00:56:56,750 --> 00:57:00,700 hij zou me een verzoek hebben gestuurd Soortgelijke geest daarvan. 1241 00:57:00,700 --> 00:57:04,670 Binnenkant van zijn envelop naar me, waar de Ik ben nu aan het spelen van de rol van Google, 1242 00:57:04,670 --> 00:57:08,270 zou een verzoek dat letterlijk zegt, en dan een voorwaartse slash-- 1243 00:57:08,270 --> 00:57:10,636 en je hebt waarschijnlijk gezien slashes in de URL's voor. 1244 00:57:10,636 --> 00:57:13,260 Het betekent geef me de standaard pagina, de standaard Rick Astley 1245 00:57:13,260 --> 00:57:14,560 foto in dit geval. 1246 00:57:14,560 --> 00:57:20,100 >> En door de manier, Cole spreekt de taal HTTP versie 1.1, of het protocol 1.1. 1247 00:57:20,100 --> 00:57:22,090 En het blijkt dat er's een oudere versie 1.0. 1248 00:57:22,090 --> 00:57:23,910 Maar computers gebruiken meestal 1,1. 1249 00:57:23,910 --> 00:57:27,840 >> De tweede lijn is een nuttig ding dat zal terug komen om misschien het duurde niet lang. 1250 00:57:27,840 --> 00:57:31,900 Maar het is gewoon een specificatie voor mij, de ontvanger, dat het ding wil ik 1251 00:57:31,900 --> 00:57:33,586 is www.google.com. 1252 00:57:33,586 --> 00:57:36,340 Want het is heel goed mogelijk deze dagen voor tientallen, 1253 00:57:36,340 --> 00:57:39,510 honderden websites met verschillende domeinnamen voor alle 1254 00:57:39,510 --> 00:57:40,735 wonen op dezelfde server. 1255 00:57:40,735 --> 00:57:42,860 Het gaat niet om waar te zijn zo veel in het geval van Google. 1256 00:57:42,860 --> 00:57:45,261 Maar in een kleiner bedrijf geval zou absoluut. 1257 00:57:45,261 --> 00:57:47,260 Dus Cole is gewoon een soort van de invoering van de envelop, 1258 00:57:47,260 --> 00:57:50,840 door de manier, wanneer dit bereikt uw IP adres op poort 80, 1259 00:57:50,840 --> 00:57:54,450 gewoon zeker dat je weet Ik wil www.google.com, niet 1260 00:57:54,450 --> 00:57:56,740 sommige andere willekeurige website op dezelfde server. 1261 00:57:56,740 --> 00:58:00,360 >> Wat ik dan reageren op Cole met, aan het eind van de dag, een beeld. 1262 00:58:00,360 --> 00:58:02,920 Maar bovenop dat beeld binnenzijde van de omhulling 1263 00:58:02,920 --> 00:58:05,600 is eigenlijk wat tekst, waar ik zeggen, OK. 1264 00:58:05,600 --> 00:58:07,970 Ik spreek HTTP versie 1.1 ook. 1265 00:58:07,970 --> 00:58:09,200 200. 1266 00:58:09,200 --> 00:58:11,730 Dat is een status-code die de meesten van ons hebben waarschijnlijk 1267 00:58:11,730 --> 00:58:14,185 nooit gezien, want het betekent OK. 1268 00:58:14,185 --> 00:58:16,810 En dat is goed, want het betekent dat ik met succes te reageren 1269 00:58:16,810 --> 00:58:18,040 op het verzoek van Cole's. 1270 00:58:18,040 --> 00:58:21,930 >> Welke nummers je waarschijnlijk gezien op het web die niet in orde zijn? 1271 00:58:21,930 --> 00:58:22,780 >> Publiek: 404. 1272 00:58:22,780 --> 00:58:24,830 >> DAVID J. MALAN: 404-- bestand niet gevonden. 1273 00:58:24,830 --> 00:58:27,520 Dus inderdaad, elke keer dat je hebt gezien een van die vervelende bestand niet 1274 00:58:27,520 --> 00:58:31,010 gevonden fouten, omdat de webpagina is dood, 1275 00:58:31,010 --> 00:58:34,190 of omdat u verkeerd gespelde een URL, dat betekent 1276 00:58:34,190 --> 00:58:37,600 dat de kleine envelop die uw computer ontvangen van de server 1277 00:58:37,600 --> 00:58:42,670 bevatte een bericht HTTP 1.1, 404-- niet gevonden. 1278 00:58:42,670 --> 00:58:44,930 Dat bestand of dat verzoek je maakte is niet gevonden. 1279 00:58:44,930 --> 00:58:48,660 >> Bovendien binnenzijde van de omhulling meestal is deze lijn, het type content. 1280 00:58:48,660 --> 00:58:51,080 Soms is het HTML, iets wat we zullen snel zien. 1281 00:58:51,080 --> 00:58:52,225 Soms is het een JPEG. 1282 00:58:52,225 --> 00:58:53,100 Soms is het een GIF. 1283 00:58:53,100 --> 00:58:56,060 Soms is het een filmbestand, een audio-bestand, een aantal dingen. 1284 00:58:56,060 --> 00:59:00,059 Zodat de binnenkant van de envelop is slechts een kleine hint over wat ik ontvang. 1285 00:59:00,059 --> 00:59:03,100 Er is andere status codes ook, sommige waarvan we verkennen in P ingesteld zes, 1286 00:59:03,100 --> 00:59:05,890 en je zult struikelen over P stelde zeven en / of acht. 1287 00:59:05,890 --> 00:59:08,580 Maar sommige hier, net als 404 die we hebben gezien. 1288 00:59:08,580 --> 00:59:11,700 Verboden, 403, betekent als de permissies verkeerd zijn, 1289 00:59:11,700 --> 00:59:14,740 als je niet soort correct geconfigureerd. 1290 00:59:14,740 --> 00:59:17,830 301 en 302, zien we zelden visueel. 1291 00:59:17,830 --> 00:59:19,150 Maar ze betekenen omleiden. 1292 00:59:19,150 --> 00:59:21,650 Elke keer dat u één bent gegaan URL en je hebt magische geweest 1293 00:59:21,650 --> 00:59:24,410 ergens anders gestuurd, dat is omdat de browser heeft teruggestuurd 1294 00:59:24,410 --> 00:59:27,210 een envelop met daarin het nummer 301 of 302, 1295 00:59:27,210 --> 00:59:30,790 en de URL die het wil je browser naar plaats. 1296 00:59:30,790 --> 00:59:32,010 >> 500 is verschrikkelijk. 1297 00:59:32,010 --> 00:59:34,842 Je zult het zien duurde niet lang, waarschijnlijk in P set zes of P stelde zeven. 1298 00:59:34,842 --> 00:59:37,050 En het betekent meestal er is een aantal bug in de code, 1299 00:59:37,050 --> 00:59:40,000 want inderdaad we zullen schrijven code die reageert op web verzoeken. 1300 00:59:40,000 --> 00:59:42,110 En je hebt net een aantal fout in de logica of syntax, 1301 00:59:42,110 --> 00:59:43,820 en de server het niet aankan. 1302 00:59:43,820 --> 00:59:47,460 >> Dus laten we zien hoe we nu kunnen profiteren en begrijpen deze verzoeken als volgt. 1303 00:59:47,460 --> 00:59:50,716 Als ik naar, laten we zeggen, google.com. 1304 00:59:50,716 --> 00:59:55,240 Laat me gaan naar www.google.com. 1305 00:59:55,240 --> 01:00:01,220 En omwille demonstratie's, laten we zie, ik moet hier Instellingen te gaan. 1306 01:00:01,220 --> 01:00:03,180 Ik ga naar zoekinstellingen. 1307 01:00:03,180 --> 01:00:08,236 En Google heeft steeds vervelend features, maar handige functies. 1308 01:00:08,236 --> 01:00:11,110 Dus Google heeft dit ding zoals instant resultaten waar je begint te typen, 1309 01:00:11,110 --> 01:00:12,889 automatisch dingen start verschijnen. 1310 01:00:12,889 --> 01:00:14,680 En dat is allemaal prima en technisch bruikbare, 1311 01:00:14,680 --> 01:00:16,420 en we zullen begrijpen het duurde niet lang hoe dit werkt. 1312 01:00:16,420 --> 01:00:18,429 Maar voor nu, ik ben het draaien off direct resultaat, 1313 01:00:18,429 --> 01:00:20,720 want ik wil mijn browser soort werk oude school zo 1314 01:00:20,720 --> 01:00:22,940 dat ik kan zien wat er gaande is. 1315 01:00:22,940 --> 01:00:23,840 >> Dus nu ben ik hier terug. 1316 01:00:23,840 --> 01:00:25,090 En ik wil zoeken voor katten. 1317 01:00:25,090 --> 01:00:30,351 En merk ik zie een aantal suggesties, een aantal zeer goedaardige suggesties 1318 01:00:30,351 --> 01:00:30,850 gelukkig. 1319 01:00:30,850 --> 01:00:34,730 En nu als ik druk op Enter, Laten we afwachten wat er gebeurt. 1320 01:00:34,730 --> 01:00:35,850 >> Er zijn dus enkele katten. 1321 01:00:35,850 --> 01:00:37,540 En de top hit is op Wikipedia. 1322 01:00:37,540 --> 01:00:39,820 Maar vandaag geven we over de technologie die hier boven. 1323 01:00:39,820 --> 01:00:42,479 Dus de URL die ik heb is deze verzonden is hier. 1324 01:00:42,479 --> 01:00:44,520 En er is een aantal dingen die ik niet echt begrijpen. 1325 01:00:44,520 --> 01:00:47,430 >> Dus ik ga om verder te gaan, omdat Ik weet dat soort van hoe Google werkt, 1326 01:00:47,430 --> 01:00:50,700 en ik ga dit destilleren URL in zijn eenvoudigste vorm. 1327 01:00:50,700 --> 01:00:52,510 En nu ga ik druk op enter opnieuw. 1328 01:00:52,510 --> 01:00:53,360 En het werkt nog steeds. 1329 01:00:53,360 --> 01:00:55,800 Ik heb een pagina met resultaten over katten. 1330 01:00:55,800 --> 01:00:58,460 >> Maar let op de eenvoud van mijn URL. 1331 01:00:58,460 --> 01:01:00,820 Het blijkt dat dit is hoe veel van het web werkt. 1332 01:01:00,820 --> 01:01:03,500 Het web is gewoon een hele stelletje computers 1333 01:01:03,500 --> 01:01:05,320 draaien van software die ingang te nemen. 1334 01:01:05,320 --> 01:01:07,480 Het is niet touwtje stijl ingang. 1335 01:01:07,480 --> 01:01:09,670 Het is niet de opdrachtregel argumenten, zoals we gewend zijn. 1336 01:01:09,670 --> 01:01:13,449 Ze nemen input, deze web servers, via de URL's vaak. 1337 01:01:13,449 --> 01:01:15,240 En elke keer dat je hebt zocht naar iets, 1338 01:01:15,240 --> 01:01:17,448 elke keer dat je bent aangemeld bij Facebook, elke keer dat je hebt 1339 01:01:17,448 --> 01:01:20,090 iets gedaan interactief met een webpagina, wat je doet 1340 01:01:20,090 --> 01:01:24,340 effectief indienen van een formulier, zodat om tekstvakken, selectievakjes speak--, 1341 01:01:24,340 --> 01:01:27,880 kleine cirkels, en wat al niet dat sturen informatie van u naar de server. 1342 01:01:27,880 --> 01:01:31,960 >> En het blijkt dat het web server weet om te kijken naar die URL 1343 01:01:31,960 --> 01:01:36,040 en ontleden het, net als blik bij het karakter voor teken op zoek naar iets 1344 01:01:36,040 --> 01:01:38,000 interessante na een vraagteken. 1345 01:01:38,000 --> 01:01:40,910 Want na een vraagteken, het blijkt, gaat komen 1346 01:01:40,910 --> 01:01:42,730 een bos van belangrijke waarde paren. 1347 01:01:42,730 --> 01:01:44,570 Ik bedoel sleutel = waarde. 1348 01:01:44,570 --> 01:01:48,130 En dan als er multiple-- misschien een ampersand, een aantal andere belangrijke = value, 1349 01:01:48,130 --> 01:01:50,200 ampersand, key = waarde. 1350 01:01:50,200 --> 01:01:54,560 >> Dus we hebben soort gezien dit idee voordat waar iets heeft een waarde. 1351 01:01:54,560 --> 01:01:55,880 Het is gewoon een nieuw formaat hier. 1352 01:01:55,880 --> 01:01:59,040 En ik weet gewoon, volgens afspraak, Google gebruikt q voor query. 1353 01:01:59,040 --> 01:02:02,670 En dan als ik wil zoeken voor honden, I handmatig zoeken naar honden als dat. 1354 01:02:02,670 --> 01:02:06,360 En dan ben ik blijkbaar krijgen sommige zoekresultaten met honden. 1355 01:02:06,360 --> 01:02:07,727 >> Zodat lijkt interessant. 1356 01:02:07,727 --> 01:02:10,060 En inderdaad, wat is er aan de hand onder de motorkap is dit. 1357 01:02:10,060 --> 01:02:11,460 Laat me dit te doen. 1358 01:02:11,460 --> 01:02:13,620 Dit is a-- laten zien. 1359 01:02:13,620 --> 01:02:16,320 Laat me terug over te gaan hier voor een ogenblik. 1360 01:02:16,320 --> 01:02:19,810 >> We zullen zien dat er andere manieren om informatie te verstrekken. 1361 01:02:19,810 --> 01:02:25,340 Dus als ik in te loggen op Facebook, of Gmail, of enige andere populaire website, 1362 01:02:25,340 --> 01:02:30,720 Het lijkt soort van slecht als wat ik typte in het zoekvak eindigt in mijn URL, 1363 01:02:30,720 --> 01:02:32,850 in de adresbalk van mijn browser. 1364 01:02:32,850 --> 01:02:33,690 Waarom? 1365 01:02:33,690 --> 01:02:35,395 Waarom is dat licht zorgelijk? 1366 01:02:35,395 --> 01:02:39,567 1367 01:02:39,567 --> 01:02:40,067 Ja? 1368 01:02:40,067 --> 01:02:41,380 PUBLIEK: Typ een wachtwoord. 1369 01:02:41,380 --> 01:02:41,720 DAVID J. MALAN: Ja. 1370 01:02:41,720 --> 01:02:44,000 Dus wat als wat ik heb getypt in is mijn wachtwoord? 1371 01:02:44,000 --> 01:02:47,881 Ik soort wil het niet zo duidelijk zichtbaar in de adresbalk van mijn browser. 1372 01:02:47,881 --> 01:02:50,630 Eén, omdat mijn vervelende kamergenoot heeft de neiging om te kijken over mijn schouder, 1373 01:02:50,630 --> 01:02:53,980 en hij of zij kan nu zien, ook al het was kogels toen ik typ het in, 1374 01:02:53,980 --> 01:02:54,810 kleine cirkels. 1375 01:02:54,810 --> 01:02:56,010 Nu is het in mijn adresbalk. 1376 01:02:56,010 --> 01:02:59,270 >> Bovendien, wat is waar over dingen je de neiging om te typen in de adresbalk. 1377 01:02:59,270 --> 01:03:00,230 >> PUBLIEK: [onverstaanbaar] 1378 01:03:00,230 --> 01:03:01,505 >> DAVID J. MALAN: Wat is dat? 1379 01:03:01,505 --> 01:03:02,630 Publiek: Het wordt uitgezonden. 1380 01:03:02,630 --> 01:03:03,510 DAVID J. MALAN: Het wordt uitgezonden. 1381 01:03:03,510 --> 01:03:05,102 En ook, het wordt herinnerd. 1382 01:03:05,102 --> 01:03:07,060 Want de volgende keer je dingen typt daar, 1383 01:03:07,060 --> 01:03:10,440 vaak autocompletes en onthoudt wat je eerder hebt getypt. 1384 01:03:10,440 --> 01:03:13,850 En dus is er deze echte geschiedenis dat uw broer of zus, of je kamergenoot, 1385 01:03:13,850 --> 01:03:16,830 of wie dan ook kan wandelen door naar vrij veel zien elke website 1386 01:03:16,830 --> 01:03:19,760 u hebt bezocht, want het is ingelogd dat adresbalk. 1387 01:03:19,760 --> 01:03:22,790 >> Bovendien, stel dat je wilt een foto uploaden naar Facebook. 1388 01:03:22,790 --> 01:03:26,520 Hoe in de wereld bent u gaan naar een foto in een URL te zetten? 1389 01:03:26,520 --> 01:03:30,217 >> Nou, het blijkt dat je kunt doen in sommige weg, maar het is zeker niet voor de hand liggend. 1390 01:03:30,217 --> 01:03:33,050 En dus is er deze andere manier verzenden van informatie in een envelop 1391 01:03:33,050 --> 01:03:35,680 niet via een GET, maar via iets genaamd POST. 1392 01:03:35,680 --> 01:03:38,060 En in theorie, lijkt vrijwel hetzelfde. 1393 01:03:38,060 --> 01:03:41,270 In plaats van het woord, zeggen we POST, en dezelfde soort format. 1394 01:03:41,270 --> 01:03:43,310 >> Bijvoorbeeld is dit een screenshot van wat 1395 01:03:43,310 --> 01:03:46,920 het zou kunnen uitzien als ik probeer in te loggen in Facebook, die mij stuurt naar een bestand 1396 01:03:46,920 --> 01:03:51,230 genaamd login.php, dat is eigenlijk nog steeds aan deze dag zo genoemd. 1397 01:03:51,230 --> 01:03:53,910 Het is dezelfde bestandsnaam Mark gaf het vele jaren geleden. 1398 01:03:53,910 --> 01:03:58,520 Het is het programma dat hij schreef in PHP via waarmee gebruikers kunnen inloggen op de website. 1399 01:03:58,520 --> 01:04:00,370 >> Maar je moet sturen sommige extra input. 1400 01:04:00,370 --> 01:04:05,170 En dan gaat het na de bestandsnaam net als voorheen met cats-- 1401 01:04:05,170 --> 01:04:09,720 q = cats-- kan lager gaan in het verzoek, dieper in de enveloppe je 1402 01:04:09,720 --> 01:04:12,440 zal waar niemand het kan zien, en waar het niet eindigen 1403 01:04:12,440 --> 01:04:15,670 in de browser bar van de gebruiker, en dus niet onthouden voor mensen om snoop 1404 01:04:15,670 --> 01:04:16,290 rond. 1405 01:04:16,290 --> 01:04:21,260 >> En dus even mijn e-mailadres en mijn nep wachtwoord daadwerkelijk te gaan. 1406 01:04:21,260 --> 01:04:27,400 Als Facebook wordt gebruikt niet HTTP maar HTTPS, 1407 01:04:27,400 --> 01:04:30,710 Deze zullen allemaal worden gecodeerd, roerei, ala Caesar of Vigenere, 1408 01:04:30,710 --> 01:04:34,960 maar meer fancily zodat niemand kan eigenlijk zien dit verzoek. 1409 01:04:34,960 --> 01:04:38,120 >> En zo ja, elke keer dat je hebt een URL die begint met https, 1410 01:04:38,120 --> 01:04:39,560 het betekent alleen dat het versleuteld. 1411 01:04:39,560 --> 01:04:42,710 Maar aan het eind van de dag, wat eigenlijk binnenkant van deze enveloppen? 1412 01:04:42,710 --> 01:04:44,070 Dit was super laag niveau. 1413 01:04:44,070 --> 01:04:46,240 En gelukkig, we zijn niet zal noodzakelijkerwijs 1414 01:04:46,240 --> 01:04:49,310 zo laag niveau gaan elke keer naar beginnen met het schrijven interessante software. 1415 01:04:49,310 --> 01:04:51,060 We kunnen beginnen te nemen de ideeën van één week 1416 01:04:51,060 --> 01:04:54,020 door vijf, aannemen dat er nu is deze infrastructuur die 1417 01:04:54,020 --> 01:04:57,160 laat ons software te schrijven die actief is op het web, 1418 01:04:57,160 --> 01:05:00,120 en het gaat om ons komende week te beginnen 1419 01:05:00,120 --> 01:05:01,840 op zoek naar iets genaamd HTML. 1420 01:05:01,840 --> 01:05:04,750 Dit is het spul dat is zelfs dieper binnenkant van de omhulling, 1421 01:05:04,750 --> 01:05:06,150 maar het is het spul dat we gaat het schrijven te beginnen. 1422 01:05:06,150 --> 01:05:08,020 En het is het spul meer interessant, we zijn 1423 01:05:08,020 --> 01:05:11,420 gaat om programma's te schrijven dat start automatisch genereren 1424 01:05:11,420 --> 01:05:15,410 zodat onze websites zijn niet hard gecodeerd, maar neem input en produceren output. 1425 01:05:15,410 --> 01:05:18,810 >> Dit is misschien wel de eenvoudigste web pagina die u kunt maken in de wereld. 1426 01:05:18,810 --> 01:05:23,000 Ik kan inderdaad openstellen iets stoms zoals TextEdit 1427 01:05:23,000 --> 01:05:26,160 op mijn Mac, die net geeft mij een eenvoudige tekst venster zoals dit. 1428 01:05:26,160 --> 01:05:29,510 PC-gebruikers hebben Notepad.ext, dat is zeer vergelijkbaar in de geest. 1429 01:05:29,510 --> 01:05:33,212 >> En ik kan letterlijk typen out dit-- DOCTYPE HTML, 1430 01:05:33,212 --> 01:05:34,420 die ziet er een beetje cryptisch. 1431 01:05:34,420 --> 01:05:35,850 Maar we zullen hierop terugkomen. 1432 01:05:35,850 --> 01:05:38,730 HTML, met die rare haakjes en schuine strepen, 1433 01:05:38,730 --> 01:05:42,240 de binnenkant van die ik nu ga zeggen hier komt het hoofd van mijn webpagina. 1434 01:05:42,240 --> 01:05:45,220 Binnenkant van dat, ik heb net weet, en je zult snel weten, 1435 01:05:45,220 --> 01:05:47,850 dat ik de titel van mijn website kan zetten. 1436 01:05:47,850 --> 01:05:49,720 En dan onder de hoofd van de webpagina is 1437 01:05:49,720 --> 01:05:51,972 ga naar de zogenaamde lichaam van de webpagina. 1438 01:05:51,972 --> 01:05:54,180 En ik ben gewoon inspringen net zoals in C van de soort te houden 1439 01:05:54,180 --> 01:05:57,620 dingen goed leesbaar stilistisch. 1440 01:05:57,620 --> 01:06:04,745 En nu ga ik om dit op te slaan als een bestand op mijn bureaublad, genaamd hello.html. 1441 01:06:04,745 --> 01:06:06,770 >> En ik ga het zeggen ja, HTML gebruiken. 1442 01:06:06,770 --> 01:06:09,690 Niet veranderen in .txt, zelfs maar dit alles is een tekstbestand, 1443 01:06:09,690 --> 01:06:12,130 net als een C-programma geschreven met een tekstverwerker. 1444 01:06:12,130 --> 01:06:15,080 Hoewel niet in CS50 IDE op ogenblik, net hier op mijn Mac. 1445 01:06:15,080 --> 01:06:18,490 >> En als ik nu naar mijn desktop, je zult zien hello.html. 1446 01:06:18,490 --> 01:06:20,720 Als ik dubbelklik deze, het zal openen Chrome. 1447 01:06:20,720 --> 01:06:23,260 En hoewel dit bestand gebeurt om te leven op mijn bureaublad, 1448 01:06:23,260 --> 01:06:26,550 dat is misschien wel de eenvoudigste webpagina Ik kon maken. 1449 01:06:26,550 --> 01:06:30,080 >> Merk op dat de titel van het tab weg omhoog top is hello wereld. 1450 01:06:30,080 --> 01:06:32,470 Het lichaam van de webpagina is inderdaad hello wereld. 1451 01:06:32,470 --> 01:06:35,830 En alles wat ik heb gedaan te krijgen op dit punt voeren, 1452 01:06:35,830 --> 01:06:38,342 of schrijf een nieuwe taal, genaamd HTML. 1453 01:06:38,342 --> 01:06:40,300 Het is niet een programmering taal zoals C. Er is 1454 01:06:40,300 --> 01:06:42,508 niet naar omstandigheden, en loops, en functies. 1455 01:06:42,508 --> 01:06:46,560 Het is een opmaaktaal, waarin geval je gewoon vertellen de ontvangende 1456 01:06:46,560 --> 01:06:48,410 programma wat je wilt doen. 1457 01:06:48,410 --> 01:06:51,195 Dit betekent hey browser, hier komt een HTML-pagina. 1458 01:06:51,195 --> 01:06:53,040 Hey browser, hier komt het hoofd van mijn pagina. 1459 01:06:53,040 --> 01:06:55,130 Hey browser, hier komt het lichaam van mijn pagina. 1460 01:06:55,130 --> 01:06:57,100 Hey browser, dat is het voor het lichaam. 1461 01:06:57,100 --> 01:06:59,350 Dat is het voor de HTML-pagina. 1462 01:06:59,350 --> 01:07:03,560 >> En met die eenvoudige definities alleen, zullen we snel zien dat men, 1463 01:07:03,560 --> 01:07:05,122 we kunnen deze vertegenwoordigen als een boom. 1464 01:07:05,122 --> 01:07:06,080 Maar daarover later meer. 1465 01:07:06,080 --> 01:07:08,788 Zo zal dit alles interconnect aan onze meest recente gegevens structuren. 1466 01:07:08,788 --> 01:07:12,460 Twee, zullen we deze domme grap te introduceren. 1467 01:07:12,460 --> 01:07:15,680 Dit is een echte tatoeage die deze man had op zijn nek. 1468 01:07:15,680 --> 01:07:19,660 Het is waarschijnlijk grappig de eerste week of twee, en daarna, misschien niet zo veel. 1469 01:07:19,660 --> 01:07:22,960 >> Maar HTML, en zelfs het web wat ik maakte, super geest 1470 01:07:22,960 --> 01:07:25,670 numbingly disappointing-- gewoon zeggen hallo wereld 1471 01:07:25,670 --> 01:07:27,210 in zwarte tekst op een witte achtergrond. 1472 01:07:27,210 --> 01:07:28,680 Uiteraard kunnen we veel beter doen. 1473 01:07:28,680 --> 01:07:31,552 En we zullen dat doen door de invoering van een andere taal genaamd CSS. 1474 01:07:31,552 --> 01:07:34,760 Ook dit niet een programmering language-- geen lussen, en de voorwaarden, of voor loops, 1475 01:07:34,760 --> 01:07:38,470 maar echt, gewoon syntax waarmee we kunnen zeggen, maken deze tekst groot. 1476 01:07:38,470 --> 01:07:39,415 Maak deze tekst klein. 1477 01:07:39,415 --> 01:07:40,040 Rechts uitlijnen. 1478 01:07:40,040 --> 01:07:40,650 Links uitlijnen. 1479 01:07:40,650 --> 01:07:41,195 Maak het roze. 1480 01:07:41,195 --> 01:07:41,820 Maak het paars. 1481 01:07:41,820 --> 01:07:42,650 Maak het blauw. 1482 01:07:42,650 --> 01:07:44,860 Of doe een aantal andere visuele effecten. 1483 01:07:44,860 --> 01:07:48,590 En dus zullen we zien hoe stilering beginnen webpagina's zodat ze er op een manier 1484 01:07:48,590 --> 01:07:50,480 dichter bij wat we willen. 1485 01:07:50,480 --> 01:07:56,930 >> En tot slot, hebben we inderdaad geruïneerd misschien wel veel van televisie en film voor jou. 1486 01:07:56,930 --> 01:07:58,930 Ik dacht dat we hier zouden eindigen met onze laatste seconden 1487 01:07:58,930 --> 01:08:03,700 op een uiteindelijke clip die je laat zien hoe hacken op het internet werkt. 1488 01:08:03,700 --> 01:08:06,250 Als we konden dimmen steekt een laatste keer. 1489 01:08:06,250 --> 01:08:07,250 >> [VIDEO AFSPELEN] 1490 01:08:07,250 --> 01:08:09,520 >> -Echt niet. 1491 01:08:09,520 --> 01:08:10,650 Ik krijg gehackt. 1492 01:08:10,650 --> 01:08:11,770 >> -Okorsky? 1493 01:08:11,770 --> 01:08:14,230 >> -No-- Nee, dit is belangrijk. 1494 01:08:14,230 --> 01:08:17,074 Ze hebben al doorgebrand het NCIS openbare firewall. 1495 01:08:17,074 --> 01:08:19,990 -goed, Isoleren het knooppunt en dump ze aan de andere kant van de router. 1496 01:08:19,990 --> 01:08:20,990 -Ik probeer. 1497 01:08:20,990 --> 01:08:23,990 Het is te snel. 1498 01:08:23,990 --> 01:08:25,179 >> Oh, dit is niet goed. 1499 01:08:25,179 --> 01:08:27,470 Ze gebruiken onze verbinding [Onverstaanbaar] deze databank. 1500 01:08:27,470 --> 01:08:28,458 Sever het. 1501 01:08:28,458 --> 01:08:28,958 -Ik Kan niet. 1502 01:08:28,958 --> 01:08:29,454 Het is een punt aanval. 1503 01:08:29,454 --> 01:08:31,438 Hij is slechts ga na mijn machine. 1504 01:08:31,438 --> 01:08:32,430 >> -Het is niet mogelijk. 1505 01:08:32,430 --> 01:08:33,847 Er is DOD level mijne encryptie. 1506 01:08:33,847 --> 01:08:35,055 Het zou maanden duren om get-- 1507 01:08:35,055 --> 01:08:35,857 Hé, wat is dat? 1508 01:08:35,857 --> 01:08:36,398 Een video game? 1509 01:08:36,398 --> 01:08:37,886 >> -geen Tony, wij worden gehackt. 1510 01:08:37,886 --> 01:08:40,795 >> -Als Ze Abby's computer te krijgen, het hele NCIS netwerk is de volgende. 1511 01:08:40,795 --> 01:08:42,050 >> Ik kan hem niet tegenhouden. 1512 01:08:42,050 --> 01:08:43,050 Doe iets McGee. 1513 01:08:43,050 --> 01:08:44,550 >> -Ik Heb nooit code gezien. 1514 01:08:44,550 --> 01:08:47,432 1515 01:08:47,432 --> 01:08:48,571 Oh. 1516 01:08:48,571 --> 01:08:49,196 Waar is het? 1517 01:08:49,196 --> 01:08:50,604 Abby? 1518 01:08:50,604 --> 01:08:51,520 -Ik Deed niets. 1519 01:08:51,520 --> 01:08:53,020 Ik dacht dat je deed. 1520 01:08:53,020 --> 01:08:54,520 >> -Nee. 1521 01:08:54,520 --> 01:08:57,232 >> -Ik deed. 1522 01:08:57,232 --> 01:08:58,307 >> [END AFSPELEN] 1523 01:08:58,307 --> 01:09:00,390 DAVID J. MALAN: De beste deel is twee mensen typen 1524 01:09:00,390 --> 01:09:02,170 op het toetsenbord tegelijkertijd. 1525 01:09:02,170 --> 01:09:03,200 >> Dus dat is het voor de CS50. 1526 01:09:03,200 --> 01:09:04,700 We zullen blijven hangen gedurende kantooruren. 1527 01:09:04,700 --> 01:09:06,344 En we zien je volgende keer. 1528 01:09:06,344 --> 01:09:07,760 [Muziek - "SEINFELD THEMA"] 1529 01:09:07,760 --> 01:09:11,139 1530 01:09:11,139 --> 01:09:11,680 Dit is CS50. 1531 01:09:11,680 --> 01:09:17,960 1532 01:09:17,960 --> 01:09:20,854 Ik wil niet om een ​​piraat te zijn. 1533 01:09:20,854 --> 01:09:21,770 Luidspreker 2: Yarr David. 1534 01:09:21,770 --> 01:09:23,700 Het is een prima doublet u dragen. 1535 01:09:23,700 --> 01:09:26,450 Veel voorlijk in die bladerdeeg. 1536 01:09:26,450 --> 01:09:29,327