1 00:00:00,000 --> 00:00:03,395 >> [Musik spiller] 2 00:00:03,395 --> 00:00:13,100 3 00:00:13,100 --> 00:00:15,570 >> DAVID J. MALAN: Så jeg lige ønskede at dæmpe til. 4 00:00:15,570 --> 00:00:18,260 Jeg vil gerne gentage, hvad der præcist SCAZ sagde om institutionelle hukommelse. 5 00:00:18,260 --> 00:00:20,350 CS50 har eksisteret i omkring 20 år på Harvard. 6 00:00:20,350 --> 00:00:22,280 Og virkeligheden er, fra seniorer på ned, 7 00:00:22,280 --> 00:00:25,045 Der er årligt tryghed at de freshmen, de sophomores, 8 00:00:25,045 --> 00:00:26,870 og juniorer og også seniorerne tager 9 00:00:26,870 --> 00:00:30,360 CS50, at du ender med at gøre fint. 10 00:00:30,360 --> 00:00:32,680 >> Virkeligheden er, de studerende ikke svigte CS50. 11 00:00:32,680 --> 00:00:35,740 I virkeligheden, i de sjældne tilfælde hvor vi har haft Es eller Fs, 12 00:00:35,740 --> 00:00:37,990 det er virkelig været på grund af formildende omstændigheder, 13 00:00:37,990 --> 00:00:39,840 uanset om det er medicinsk eller personlige. 14 00:00:39,840 --> 00:00:41,830 Ds er utroligt ualmindeligt så godt. 15 00:00:41,830 --> 00:00:45,270 Og jeg kan sige komfortabelt, selvom vi typisk ikke afslører statistik, 16 00:00:45,270 --> 00:00:48,450 men eftersom der ikke er nogen institutionelle hukommelse her overhovedet, 17 00:00:48,450 --> 00:00:51,810 et flertal af de studerende i CS50 gør ender med at få en række kvaliteter. 18 00:00:51,810 --> 00:00:54,720 En væsentlig bid ender ender i B området også. 19 00:00:54,720 --> 00:00:57,490 >> Så selvom du måske være svarende i dit sind treere 20 00:00:57,490 --> 00:01:00,690 med 60%, og derfor Ds eller Cs eller lignende, 21 00:01:00,690 --> 00:01:02,530 det virkelig ikke linje op med virkeligheden. 22 00:01:02,530 --> 00:01:05,238 Faktisk mener vi, hvad vi sige i begyndelsen af ​​udtrykket 23 00:01:05,238 --> 00:01:08,380 at så mange studerende i CS50, både i Cambridge og her i New Haven, 24 00:01:08,380 --> 00:01:10,220 har aldrig taget en CS kursus før. 25 00:01:10,220 --> 00:01:13,090 Og hvad faktisk i sidste ende betyder noget er, hvor du ender i uge 12 26 00:01:13,090 --> 00:01:15,882 i forhold til dig selv i uge nul. 27 00:01:15,882 --> 00:01:17,590 Nu har vi flere spor i løbet 28 00:01:17,590 --> 00:01:20,548 som du know-- mindre behagelig, mere komfortable, et sted i mellem. 29 00:01:20,548 --> 00:01:23,790 Og ja, når du får statistikker om denne uges quiz, 30 00:01:23,790 --> 00:01:27,460 ikke blive afskrækket, hvis, især hvis du føler, at du er omkring gennemsnittet 31 00:01:27,460 --> 00:01:30,780 eller under middelværdien eller medianen, især da vi ikke nødvendigvis 32 00:01:30,780 --> 00:01:33,560 træffe alle disse demografi højde midt-semester 33 00:01:33,560 --> 00:01:35,000 med statistikken klassificering. 34 00:01:35,000 --> 00:01:37,250 >> Med andre ord, vi kender statistisk hvert år 35 00:01:37,250 --> 00:01:39,570 at studerende, der er mindre behagelig, gøre lidt værre på quizzen. 36 00:01:39,570 --> 00:01:42,050 Og studerende, der er mere komfortable gøre lidt bedre på quizzen. 37 00:01:42,050 --> 00:01:45,430 Men pr dette løfte i pensum og også i den første uge af foredrag, 38 00:01:45,430 --> 00:01:46,880 vi tager alt dette i betragtning. 39 00:01:46,880 --> 00:01:48,900 >> Faktisk ved årets udgang, hvad vi ender med at gøre 40 00:01:48,900 --> 00:01:52,154 er at normalisere alle scoringer tværs sektioner, både i Cambridge 41 00:01:52,154 --> 00:01:54,570 og nu her i New Haven, hvilket betyder at tage hensyn 42 00:01:54,570 --> 00:01:57,310 de forskellige stilarter, de uensartede hårdhed, den anden slags 43 00:01:57,310 --> 00:02:00,722 af personligheder, at den enkelte AT'er har her og i Cambridge 44 00:02:00,722 --> 00:02:02,930 så du ikke er på en ulempe selv hvis du bare 45 00:02:02,930 --> 00:02:06,120 tilfældigvis har haft en TF eller en TA der har været lidt hårdere på dig 46 00:02:06,120 --> 00:02:07,170 i dit sind. 47 00:02:07,170 --> 00:02:10,139 >> To, vi tager hensyn til komfort niveau og faktiske baggrund, eller mangel 48 00:02:10,139 --> 00:02:13,310 heraf, når du tager quiz scoringer i betragtning. 49 00:02:13,310 --> 00:02:14,830 Så dem to er indregnet. 50 00:02:14,830 --> 00:02:17,142 Og ved slutningen af ​​dagen, fordi det er altid tilfældet 51 00:02:17,142 --> 00:02:19,100 at en studerende endte på en mindre behagelig sektion 52 00:02:19,100 --> 00:02:24,250 når han eller hun virkelig tilhørte i en i-mellem eller omvendt, 53 00:02:24,250 --> 00:02:26,230 alt er så utrolig individualiseret. 54 00:02:26,230 --> 00:02:29,560 Faktisk vil du få irriteret på os på i slutningen af ​​udtrykket, når vi er sent 55 00:02:29,560 --> 00:02:32,630 indsende dine karakterer, fordi med SCAZ, og Jason, og Andy, og jeg, 56 00:02:32,630 --> 00:02:35,430 og teamet vil have gjort i Cambridge er bogstaveligt talt 57 00:02:35,430 --> 00:02:38,480 har hundredvis af e-mails tilbage og frem med alle hundrede af kurserne 58 00:02:38,480 --> 00:02:41,279 TAS, her og i Cambridge, spørger dem, hvad 59 00:02:41,279 --> 00:02:44,070 de tænker på alle deres elever baseret på et udkast til de kvaliteter. 60 00:02:44,070 --> 00:02:46,230 Og alt der efter er utrolig individualiseret. 61 00:02:46,230 --> 00:02:49,230 Så i det omfang, vi kommer til at kende dig i kontortiden, sektioner og mere, 62 00:02:49,230 --> 00:02:51,350 alt dette er for tages i betragtning. 63 00:02:51,350 --> 00:02:55,210 >> Så selv om vi har en tendens til at bruge denne fem skalaen, please, frigøre dig selv 64 00:02:55,210 --> 00:02:57,492 fra den antagelse, at en tre er faktisk en 60%. 65 00:02:57,492 --> 00:02:58,450 Det menes at være god. 66 00:02:58,450 --> 00:03:01,360 Og de undervisningsassistenter debiteres på sigt starten 67 00:03:01,360 --> 00:03:04,050 at forsøge at holde scoringer i toere og treere, 68 00:03:04,050 --> 00:03:06,590 og firere spænder så vi rent faktisk har plads til at vokse. 69 00:03:06,590 --> 00:03:08,610 Og vi har faktisk en målestok, som 70 00:03:08,610 --> 00:03:11,086 vi kan give dig nyttige tilbagemeldinger på, hvordan du gør 71 00:03:11,086 --> 00:03:12,210 og hvordan du skrider. 72 00:03:12,210 --> 00:03:15,130 Så tøv tage det til hjerte. 73 00:03:15,130 --> 00:03:20,565 >> Er der nogen spørgsmål, jeg kan hjælpe behandle eller bekymringer, jeg kan hjælpe dæmpe? 74 00:03:20,565 --> 00:03:23,800 Eller løfter jeg kan forsøge at holde? 75 00:03:23,800 --> 00:03:24,690 Nej? 76 00:03:24,690 --> 00:03:25,330 OK. 77 00:03:25,330 --> 00:03:26,010 >> Okay. 78 00:03:26,010 --> 00:03:28,970 Så med det sagt, er det CS50. 79 00:03:28,970 --> 00:03:31,670 Dette er starten på ugen seks her i New Haven. 80 00:03:31,670 --> 00:03:33,820 Lad os begynde med en kort dæmpning af lys 81 00:03:33,820 --> 00:03:37,439 at sætte scenen for dagens indhold. 82 00:03:37,439 --> 00:03:38,105 [VIDEO PLAYBACK] 83 00:03:38,105 --> 00:03:44,045 [Musik spiller] 84 00:03:44,045 --> 00:03:46,600 -Han Kom med et budskab. 85 00:03:46,600 --> 00:03:50,300 86 00:03:50,300 --> 00:03:52,900 Med en protokol al sin egen. 87 00:03:52,900 --> 00:04:06,417 88 00:04:06,417 --> 00:04:13,090 Han kom til en verden af ​​cool firewalls, ufølsom routere, og farer langt værre 89 00:04:13,090 --> 00:04:16,079 at døden. 90 00:04:16,079 --> 00:04:21,079 Han er hurtig, han er stærk, han er TCP / IP. 91 00:04:21,079 --> 00:04:23,120 Og han har din adresse. 92 00:04:23,120 --> 00:04:25,820 93 00:04:25,820 --> 00:04:29,268 Warriors af nettet. 94 00:04:29,268 --> 00:04:29,917 >> [END AFSPIL] 95 00:04:29,917 --> 00:04:31,000 DAVID J. MALAN: Okay. 96 00:04:31,000 --> 00:04:32,030 Det er CS50. 97 00:04:32,030 --> 00:04:33,820 Dette er starten på uge seks. 98 00:04:33,820 --> 00:04:37,270 Og dette er starten på vores udseende på internettet og web-programmering. 99 00:04:37,270 --> 00:04:41,220 Og måske mest spændende, i dag markerer overgangen for os 100 00:04:41,220 --> 00:04:43,780 fra vores kommandolinjen verden af ​​C til internettet 101 00:04:43,780 --> 00:04:47,020 baserede verden af ​​PHP og HTML, og CSS, og SQL, og JavaScript, 102 00:04:47,020 --> 00:04:49,800 og så meget mere, som er på horisonten. 103 00:04:49,800 --> 00:04:53,390 >> Men først er det kommet til vores opmærksomhed i walking på tværs campus, at der 104 00:04:53,390 --> 00:04:57,914 er en vis badeværelse her i New Haven kaldet Harvard værelse, som 105 00:04:57,914 --> 00:04:59,080 er lidt nedtonet her. 106 00:04:59,080 --> 00:05:03,830 Men ja, nogen gik til tiden og bekostning af ætsning i Harvard værelse 107 00:05:03,830 --> 00:05:05,700 på denne her rum. 108 00:05:05,700 --> 00:05:07,790 Tak for det. 109 00:05:07,790 --> 00:05:11,020 Jeg kan ikke sige, at vi har en analog i Cambridge endnu, 110 00:05:11,020 --> 00:05:14,060 men jeg tror, ​​vi har et lille projekt for os selv nu, når vi gå tilbage. 111 00:05:14,060 --> 00:05:15,890 Så tak for det. 112 00:05:15,890 --> 00:05:18,340 >> Så et hurtigt se tilbage på hvor vi slap i sidste uge 113 00:05:18,340 --> 00:05:21,010 og hvor du skal hen denne kommende uge med problemer indstille fem. 114 00:05:21,010 --> 00:05:24,350 Så i problemer sæt fem, vil du være udfordret til at gennemføre en stavekontrol. 115 00:05:24,350 --> 00:05:26,630 Og for at gøre det, vil du være udleveret en temmelig stor tekst 116 00:05:26,630 --> 00:05:29,160 fil med lignende 140.000 engelske ord. 117 00:05:29,160 --> 00:05:32,610 Og du vil blive udfordret til at beslutte på en datastruktur, som du 118 00:05:32,610 --> 00:05:35,340 ønsker at indlæse alle disse ord i hukommelsen, og ind i RAM, 119 00:05:35,340 --> 00:05:38,470 og derefter gennemføre et par funktioner, hvoraf den ene vil være at kontrollere. 120 00:05:38,470 --> 00:05:41,555 Hvorved når bestået et argument, et ord, din funktionskontrol 121 00:05:41,555 --> 00:05:43,430 simpelthen vil have at sige sandt eller falsk, 122 00:05:43,430 --> 00:05:44,990 dette er et ord i ordbogen. 123 00:05:44,990 --> 00:05:47,110 >> Men du kommer til at have nogle design diskretion og udfordringer 124 00:05:47,110 --> 00:05:48,568 når det kommer til at gennemføre det. 125 00:05:48,568 --> 00:05:51,250 I den simpleste implementering, du kunne sikkert 126 00:05:51,250 --> 00:05:53,960 gennemføre en stavekontrol i den underliggende ordbogen 127 00:05:53,960 --> 00:05:55,380 med, hvad slags data struktur? 128 00:05:55,380 --> 00:05:57,796 Du skal blot gemme en hel bundt af strenge i hukommelsen? 129 00:05:57,796 --> 00:06:00,074 Hvad er farten for at besvare fra uge to måske? 130 00:06:00,074 --> 00:06:00,740 PUBLIKUM: Array. 131 00:06:00,740 --> 00:06:01,500 DAVID J. MALAN: Du kan bruge et array. 132 00:06:01,500 --> 00:06:02,750 Og det er ikke så slemt. 133 00:06:02,750 --> 00:06:05,631 Men du behøver ikke nødvendigvis kender på forhånd hvor stort et array 134 00:06:05,631 --> 00:06:08,630 du vil få brug for, hvis du ikke gør ved filen nødvendigvis i forvejen. 135 00:06:08,630 --> 00:06:10,110 Så du nødt til at bruge en lille smule af fup 136 00:06:10,110 --> 00:06:11,970 Ligesom malloc, ligesom vi begyndte at bruge. 137 00:06:11,970 --> 00:06:13,977 Eller vi kunne tage fat på denne bekymring ved at bruge 138 00:06:13,977 --> 00:06:16,810 hvilke andre data struktur, der er været en slags marginal forbedring 139 00:06:16,810 --> 00:06:17,894 på et array? 140 00:06:17,894 --> 00:06:18,810 PUBLIKUM: Linked listen. 141 00:06:18,810 --> 00:06:21,270 DAVID J. MALAN: Ligesom en sammenkædet liste, hvor vi får nogle dynamik. 142 00:06:21,270 --> 00:06:22,686 Men der er lidt mere regning. 143 00:06:22,686 --> 00:06:24,150 Vi har pointers at vedligeholde. 144 00:06:24,150 --> 00:06:25,890 Og du har endnu ikke kodet dette op, men der er helt sikkert 145 00:06:25,890 --> 00:06:28,473 at være lidt mere kompleksitet end blot at bruge kantede parenteser 146 00:06:28,473 --> 00:06:30,080 og hoppe rundt et array. 147 00:06:30,080 --> 00:06:33,340 >> Men en arrayets køretid, Hvis du søger efter et ord, 148 00:06:33,340 --> 00:06:34,179 kunne logge af n. 149 00:06:34,179 --> 00:06:35,970 Men igen, kan det være en lille ikke-triviel 150 00:06:35,970 --> 00:06:38,734 at opbygge den opstilling ikke kende størrelsen på forhånd. 151 00:06:38,734 --> 00:06:41,150 En sammenkædet liste selv, hvis du bare gemme en masse strygere 152 00:06:41,150 --> 00:06:43,300 i en sammenkædet liste, hvad er din øvre grænse 153 00:06:43,300 --> 00:06:46,920 om køretid vil være at søge til eller kontrollere et ord i denne liste? 154 00:06:46,920 --> 00:06:47,700 >> PUBLIKUM: n. 155 00:06:47,700 --> 00:06:50,575 >> DAVID J. MALAN: Ja, stort O n eller lineær fordi i værste fald, 156 00:06:50,575 --> 00:06:52,640 Ordet er ligesom en Z ord hele vejen i slutningen. 157 00:06:52,640 --> 00:06:55,350 Og på grund af en linket liste, fordi disse pile som standard, 158 00:06:55,350 --> 00:06:58,280 i en enkelt bundet liste, kun gå fra den ene retning til den anden, 159 00:06:58,280 --> 00:06:59,590 du kan ikke hoppe rundt. 160 00:06:59,590 --> 00:07:01,160 Du er nødt til at følge dem alle. 161 00:07:01,160 --> 00:07:05,505 >> Så vi foreslog i slutningen af ​​sidste uge, uge fem, at der er bedre måder. 162 00:07:05,505 --> 00:07:08,727 Og i virkeligheden, den hellige gral ville virkelig være konstant tid 163 00:07:08,727 --> 00:07:10,560 hvorved, når du vil at se op et ord, du 164 00:07:10,560 --> 00:07:13,370 få svar uanset hvor mange ord er allerede 165 00:07:13,370 --> 00:07:14,350 i din ordbog. 166 00:07:14,350 --> 00:07:17,680 >> Dette er en kunstners gengivelse af hvad man kunne kalde en hash tabel. 167 00:07:17,680 --> 00:07:21,900 Og en hash tabel er lidt af en dejlig amalgam af en array-- trukket lodret 168 00:07:21,900 --> 00:07:26,416 her, bare because-- og derefter en forbundet list-- trække vandret her. 169 00:07:26,416 --> 00:07:28,790 Og hash tabel kan være gennemføres i bundter af måder. 170 00:07:28,790 --> 00:07:34,110 Dette uddrag fra en lærebog sker at bruge disse menneskers fødselsdatoer 171 00:07:34,110 --> 00:07:38,940 som de måder, hvorpå det er at beslutte hvor til at sætte en persons navn. 172 00:07:38,940 --> 00:07:41,230 Så dette er en ordbog hvis du vil med navne. 173 00:07:41,230 --> 00:07:45,240 Og for at fremskynde sætte navne i denne datastruktur, 174 00:07:45,240 --> 00:07:49,280 de ser på, tilsyneladende, disse menneskers fødselsdatoer med hensyn til en måned. 175 00:07:49,280 --> 00:07:50,570 >> Så det er 1 til 31. 176 00:07:50,570 --> 00:07:52,910 Og glem alt om februar og hjørne sager sådan. 177 00:07:52,910 --> 00:07:57,050 Og hvis din fødselsdag er januar 1, eller 1. februar eller 1. december 178 00:07:57,050 --> 00:07:59,890 du kommer til at ende på den allerførste kæden op øverst. 179 00:07:59,890 --> 00:08:02,150 Hvis din fødselsdato er Ligesom den 25. i en måned, 180 00:08:02,150 --> 00:08:04,567 du kommer til at ende op på spanden nummer 25. 181 00:08:04,567 --> 00:08:07,400 Og hvis der er allerede nogen, der i en af ​​disse positioner, hvilket 182 00:08:07,400 --> 00:08:10,470 du begynder at gøre med disse forbundne lister er syning dem sammen 183 00:08:10,470 --> 00:08:14,320 så du kan have en vilkårlig Antallet af mennesker, eller noget, 184 00:08:14,320 --> 00:08:15,580 på dette sted. 185 00:08:15,580 --> 00:08:18,400 >> Så du har sådan en blanding af konstant tid til hashing. 186 00:08:18,400 --> 00:08:21,160 Og at hash noget betyder for tage input som en person, 187 00:08:21,160 --> 00:08:25,360 eller hans eller hendes navn, eller hans eller hendes fødsel dato, og derefter beslutte på nogle output 188 00:08:25,360 --> 00:08:29,780 baseret på, at de ligesom ser på deres fødselsdag og udsende en gennem 31. 189 00:08:29,780 --> 00:08:31,900 >> Så så skal du måske have lidt lineær tid, 190 00:08:31,900 --> 00:08:34,429 men i virkeligheden, og som i tilfælde af problemer sæt fem, 191 00:08:34,429 --> 00:08:36,220 Vi kommer ikke til at være arbejder i P sæt fem 192 00:08:36,220 --> 00:08:40,059 så meget om asymptotisk kører tid, ligesom den teoretiske langsommelighed 193 00:08:40,059 --> 00:08:41,809 som en algoritme kan løbe. 194 00:08:41,809 --> 00:08:44,330 Vi kommer til at bekymre sig om det faktiske antal sekunder 195 00:08:44,330 --> 00:08:47,350 og den faktiske mængde hukommelse, det faktiske antal bytes hukommelse 196 00:08:47,350 --> 00:08:48,140 du bruger. 197 00:08:48,140 --> 00:08:52,710 Så helt ærligt, der har en enorm kæde af som en million mennesker 198 00:08:52,710 --> 00:08:56,710 er pretty damn langsom, hvis du søger efter et navn på en liste over størrelse mio. 199 00:08:56,710 --> 00:08:59,830 >> Men hvad nu hvis du opdele denne liste op i 31 dele? 200 00:08:59,830 --> 00:09:04,400 Søgning 1/31 af denne super lange liste, i virkeligheden, 201 00:09:04,400 --> 00:09:05,741 er helt sikkert kommer til at være hurtigere. 202 00:09:05,741 --> 00:09:07,240 Asymptotisk, det er det samme. 203 00:09:07,240 --> 00:09:08,860 Du bare dividere med en konstant faktor. 204 00:09:08,860 --> 00:09:10,651 Og minde om, at vi smide disse ting væk. 205 00:09:10,651 --> 00:09:13,486 Men i virkeligheden, går det at være 31 gange hurtigere. 206 00:09:13,486 --> 00:09:16,110 Og det er, hvad vi vil begynder at gearing i P sæt fem. 207 00:09:16,110 --> 00:09:18,750 >> Så P sæt fem alt også foreslår, at man tænker 208 00:09:18,750 --> 00:09:21,810 lidt mere sofistikeret datastruktur kaldet en trie. 209 00:09:21,810 --> 00:09:24,420 Og en trie er blot en træ lignende datastruktur. 210 00:09:24,420 --> 00:09:26,672 Men i stedet for at små cirkler eller rektangler 211 00:09:26,672 --> 00:09:28,380 som vi holder tegning til noder, det faktisk 212 00:09:28,380 --> 00:09:30,840 har hele arrays til dets knudepunkter. 213 00:09:30,840 --> 00:09:33,430 Og selv om det er et bit abstrakt her for at se på, 214 00:09:33,430 --> 00:09:35,450 Zamyla i P sæt gåtur gennem vil gå dig 215 00:09:35,450 --> 00:09:37,580 gennem mere detaljeret om dette. 216 00:09:37,580 --> 00:09:39,980 Dette er en datastruktur at i stedet ødelagde 217 00:09:39,980 --> 00:09:44,130 kan have hver knude er et array størrelse 26, A til Z eller nul 218 00:09:44,130 --> 00:09:45,320 til 25. 219 00:09:45,320 --> 00:09:49,260 Og når du vil indsætte en persons navn til denne datastruktur eller find 220 00:09:49,260 --> 00:09:53,990 ham eller hende, hvad du gør, hvis navn er ligesom Maxwell, M-A-X-W-E-L-L, 221 00:09:53,990 --> 00:09:57,900 du først se på M. Og så springe til den tilsvarende placering M 222 00:09:57,900 --> 00:09:59,100 i første række. 223 00:09:59,100 --> 00:10:02,400 Du kan derefter hoppe til A, den første placering i det næste array, 224 00:10:02,400 --> 00:10:03,610 efter pilene. 225 00:10:03,610 --> 00:10:08,300 Derefter X, så W, så er E, så L, derefter L, og så måske nogle særlige ende 226 00:10:08,300 --> 00:10:11,850 karakter, nogle sentinel der siger et ord stopper her. 227 00:10:11,850 --> 00:10:14,780 >> Og hvad er rart om denne-- og huske på, at billedet her, 228 00:10:14,780 --> 00:10:16,797 mærke til, hvordan kanter hver matrix er afskåret. 229 00:10:16,797 --> 00:10:19,630 Det er bare fordi denne ting ville være massiv og rædselsvækkende at se 230 00:10:19,630 --> 00:10:20,338 på på skærmen. 231 00:10:20,338 --> 00:10:21,820 Så det er uddrag. 232 00:10:21,820 --> 00:10:25,920 Hvad er rart om denne fremgangsmåde er at hvis der er en million navne allerede 233 00:10:25,920 --> 00:10:30,890 i denne datastruktur, hvor mange skridt tager det mig at indsætte Maxwell? 234 00:10:30,890 --> 00:10:36,450 M-A-X-W-E-L-L-- som syv-ish skridt til at indsætte eller lede efter Maxwell. 235 00:10:36,450 --> 00:10:39,320 >> Antag der er en billion navne på dette datastruktur. 236 00:10:39,320 --> 00:10:41,900 Hvor mange skridt tager det mig til at lede efter Maxwell? 237 00:10:41,900 --> 00:10:43,450 M-A-X-- stadig syv. 238 00:10:43,450 --> 00:10:45,770 >> Og deri ligger såkaldte konstant tid. 239 00:10:45,770 --> 00:10:47,960 Hvis vi antager, at ord er helt sikkert afgrænset 240 00:10:47,960 --> 00:10:52,150 ved 20 tegn eller 46 tegn, eller en forholdsvis lille heltal, 241 00:10:52,150 --> 00:10:53,790 så er det i realiteten en konstant. 242 00:10:53,790 --> 00:10:57,790 Og så indsættelse og søgning en trie er super hurtig. 243 00:10:57,790 --> 00:10:59,540 Selvfølgelig, vi aldrig få noget gratis. 244 00:10:59,540 --> 00:11:02,740 Og selvom du sikkert har ikke dykket ind i P sæt fem endnu, 245 00:11:02,740 --> 00:11:06,596 hvilken pris vi sandsynligvis betale for at få det større effektivitet tid klogt? 246 00:11:06,596 --> 00:11:07,470 >> PUBLIKUM: Hukommelse. 247 00:11:07,470 --> 00:11:08,390 >> DAVID J. MALAN: Hukommelse, ikke? 248 00:11:08,390 --> 00:11:10,240 Jeg mener, vi har ikke trukket hele billedet her. 249 00:11:10,240 --> 00:11:12,823 Dette uddrag fra lærebogen har ikke draget alle de arrays. 250 00:11:12,823 --> 00:11:16,687 Der er en enorm mængde hukommelse og bare null pointere, der ikke bliver brugt. 251 00:11:16,687 --> 00:11:17,520 Så det er en afvejning. 252 00:11:17,520 --> 00:11:21,050 Og det vil blive overladt til dig i P indstillet fem at træffe beslutning om, hvilken vej du vil gå. 253 00:11:21,050 --> 00:11:24,460 >> Nu er denne idé om hashing, som en side, er faktisk super udbredt. 254 00:11:24,460 --> 00:11:27,980 Så for at hash en værdi betyder, helt simpelthen at tage noget som input 255 00:11:27,980 --> 00:11:29,220 og producere et output. 256 00:11:29,220 --> 00:11:31,270 Så en hash-funktion er blot en algoritme. 257 00:11:31,270 --> 00:11:34,990 >> Og generelt, en hashfunktioner formål i livet er at tage noget som input 258 00:11:34,990 --> 00:11:39,655 og producere en række som output, ligesom nummer et gennem 31 eller A til Z, 259 00:11:39,655 --> 00:11:40,960 nul til 25. 260 00:11:40,960 --> 00:11:44,250 Så det tager en kompleks output og krymper det ned til noget 261 00:11:44,250 --> 00:11:46,310 der er lidt mere nyttigt og overskueligt. 262 00:11:46,310 --> 00:11:49,250 >> Og så viser det sig i en meget populær funktion 263 00:11:49,250 --> 00:11:51,160 at sikkerheden verden og den humane verdens 264 00:11:51,160 --> 00:11:53,060 brugt i årevis hedder SHA1. 265 00:11:53,060 --> 00:11:56,260 Dette er en temmelig fancy matematisk formel, der gør det væsentlige, at. 266 00:11:56,260 --> 00:11:58,870 >> Du tager en rigtig stor luns af nuller og ones-- 267 00:11:58,870 --> 00:12:01,530 der kunne være en megabyte lang, en gigabyte long-- 268 00:12:01,530 --> 00:12:05,930 og det krymper det ned til blot et par bits, et par bits, 269 00:12:05,930 --> 00:12:09,082 så du har et nummer som en gennem 31 eller A til Z. 270 00:12:09,082 --> 00:12:11,540 Men i virkeligheden, det er lidt større end blot A til Z. 271 00:12:11,540 --> 00:12:16,640 >> Desværre, vi er på nippet til, hvad nogen legende kaldet SHAppening 272 00:12:16,640 --> 00:12:19,840 hvorved verden er ved at ender i sandsynligvis et par måneder 273 00:12:19,840 --> 00:12:22,617 tid, fordi forskerne, netop denne sidste uge, 274 00:12:22,617 --> 00:12:25,700 udgivet en rapport, der i modsætning til hvad sikkerhedseksperter har tænkt 275 00:12:25,700 --> 00:12:29,810 i nogen tid, ved blot bruger omkring, hvad var det, 276 00:12:29,810 --> 00:12:33,420 Jeg tror det var $ 175,000-- mange penge, 277 00:12:33,420 --> 00:12:36,540 men ikke uden for rækkevidde af særligt slemme skurke, 278 00:12:36,540 --> 00:12:41,560 eller særligt dårligt countries-- $ 175,000 kunne købe dig en masse lejet server 279 00:12:41,560 --> 00:12:42,690 plads i skyen. 280 00:12:42,690 --> 00:12:44,619 Og vi vil komme tilbage til skyen inden længe. 281 00:12:44,619 --> 00:12:47,410 Men det betyder bare, at leje server banen er ligesom Microsofts servere, 282 00:12:47,410 --> 00:12:50,285 eller Googles eller Amazons, eller ligesom hvor du kan betale ved minut 283 00:12:50,285 --> 00:12:51,670 at bruge andres computere. 284 00:12:51,670 --> 00:12:54,250 >> Og det viser sig, om du kan betale en anden til at låne deres computere 285 00:12:54,250 --> 00:12:56,730 og køre kode, som du har skrevet på det og bruge temmelig fancy 286 00:12:56,730 --> 00:13:01,580 matematik, kan du hovedsageligt tal ud af, hvordan en persons hash funktion er 287 00:13:01,580 --> 00:13:05,320 fungerer, og givet sin produktion, reverse engineering hvad dens input er. 288 00:13:05,320 --> 00:13:08,590 Og for nutidens formål, er det tilstrækkeligt at sige, det er dårligt. 289 00:13:08,590 --> 00:13:12,540 Fordi SHA1 og hashfunktioner ligesom det er super almindeligt 290 00:13:12,540 --> 00:13:17,050 anvendes i sikkerhedsapplikationer, krypterede forbindelser på nettet, 291 00:13:17,050 --> 00:13:21,890 banktransaktioner, cellulære kryptering til din mobiltelefoner og lignende. 292 00:13:21,890 --> 00:13:24,880 Og så helst nogen finder en måde at vende 293 00:13:24,880 --> 00:13:28,510 ingeniør en af ​​disse teknologier eller bryde det, kan dårlige ting ske. 294 00:13:28,510 --> 00:13:30,300 >> Nu allerede verdens vidste dette. 295 00:13:30,300 --> 00:13:31,310 Det var forudsigelig. 296 00:13:31,310 --> 00:13:34,670 Og verden har siden flyttet fra SHA1 til SHA256, 297 00:13:34,670 --> 00:13:37,320 som er blot en fancy måde siger de bruger større bits. 298 00:13:37,320 --> 00:13:40,570 Og i virkeligheden, selv CS50 egen hjemmeside opgraderet sidste år at-- 299 00:13:40,570 --> 00:13:43,290 ikke, at vi står over alt dette mange trusler forsøger at komme på PDF-filer 300 00:13:43,290 --> 00:13:46,520 og whatnot-- men CS50 hjemmeside anvender større hash-funktionen, 301 00:13:46,520 --> 00:13:47,980 hvilket betyder, at vi vil være sikker. 302 00:13:47,980 --> 00:13:50,020 Så alle dine PDF-filer vil være sikker, men ikke 303 00:13:50,020 --> 00:13:52,880 nødvendigvis dine penge eller noget særligt privat eller personlig 304 00:13:52,880 --> 00:13:53,380 at bruge. 305 00:13:53,380 --> 00:13:56,550 Sp tjek denne webadresse, hvis du ville ligesom nogle yderligere detaljer. 306 00:13:56,550 --> 00:13:59,840 >> Så problemet sæt fem er faktisk i horisonten. 307 00:13:59,840 --> 00:14:01,560 Quiz ene er den kommende onsdag. 308 00:14:01,560 --> 00:14:04,479 Men tager fordel af kontor timer, både i aften og i morgen. 309 00:14:04,479 --> 00:14:07,770 Og også drage fordel af kontortid, hvis du er til rådighed, lige efter dette. 310 00:14:07,770 --> 00:14:11,550 Personalet og jeg vil holde sig og gøre mere afslappet Q & A i tillæg til aften. 311 00:14:11,550 --> 00:14:16,610 Og lad mig kraftigt bemærke her, for de af os her i New Haven-- 312 00:14:16,610 --> 00:14:19,360 så det er absolut pr SCAZ s bemærkninger følte, jeg er sikker, 313 00:14:19,360 --> 00:14:21,140 som lidt af en op ad bakke kamp. 314 00:14:21,140 --> 00:14:24,627 Og ved omdømme, hvis du har ikke lært allerede eller hørt 315 00:14:24,627 --> 00:14:27,710 fra nogle venner på Harvard, kender her er nogle nye institutionelle hukommelse. 316 00:14:27,710 --> 00:14:30,790 P sæt fem slags slags har tendens til at være den sværeste i CS50, 317 00:14:30,790 --> 00:14:32,590 eller den mest udfordrende for de fleste elever. 318 00:14:32,590 --> 00:14:37,180 >> Men hvad det betyder, er, at vi er næsten på toppen af ​​denne bakke. 319 00:14:37,180 --> 00:14:38,270 Og jeg virkelig mener det. 320 00:14:38,270 --> 00:14:40,728 Det er den mest udfordrende, men det er også den mest givende 321 00:14:40,728 --> 00:14:43,560 ved, at modsætning til de fleste hver anden indledende datalogi 322 00:14:43,560 --> 00:14:47,980 kursus i USA, som vi kender til, de fleste studerende ikke færdig en intro 323 00:14:47,980 --> 00:14:51,400 Selvfølgelig har allerede gennemført ting som træer og forsøg, 324 00:14:51,400 --> 00:14:52,880 og hash tabeller og lignende. 325 00:14:52,880 --> 00:14:54,770 >> Og så jeg håber, og Vi håber, at du er 326 00:14:54,770 --> 00:14:57,280 have en enorm sans af tilfredshed selv 327 00:14:57,280 --> 00:15:00,760 hvis uge eller to, via hvilken du kommer til at tilfredshed 328 00:15:00,760 --> 00:15:02,490 føles lidt som dette. 329 00:15:02,490 --> 00:15:05,250 Men lad mig forsikre, vi kun har fire P sæt tilbage. 330 00:15:05,250 --> 00:15:07,380 Så slags, at toppen er i sigte. 331 00:15:07,380 --> 00:15:12,370 >> På den anden side af det, har tillid til os, det er bare rullende bakker og skyer. 332 00:15:12,370 --> 00:15:16,000 Og skal vi sige, hvalpe er på den anden side. 333 00:15:16,000 --> 00:15:18,340 Så du bare nødt til at hænge derinde lidt længere. 334 00:15:18,340 --> 00:15:22,050 Jeg mener, ja så vi begynder at overgangen ind i verden af ​​web-programmering, 335 00:15:22,050 --> 00:15:26,060 du opdage, at tingene become-- dette er bedårende faktisk. 336 00:15:26,060 --> 00:15:29,680 337 00:15:29,680 --> 00:15:33,490 OK, vi vil sende denne URL senere. 338 00:15:33,490 --> 00:15:36,140 Du vil finde alt for, at vi er nåede en slags plateau 339 00:15:36,140 --> 00:15:38,150 hvor alt er faktisk stadig sofistikeret 340 00:15:38,150 --> 00:15:40,170 og udfordrende af design, men du er ikke 341 00:15:40,170 --> 00:15:42,590 kommer til at føle, at vi er konstant går op denne bakke. 342 00:15:42,590 --> 00:15:44,390 Så tage nogle komfort i det. 343 00:15:44,390 --> 00:15:47,409 >> Så uden videre, lad os starte at gøre dette marked overgang 344 00:15:47,409 --> 00:15:49,950 i semesteret til en verden af internettet, og virkelig verden 345 00:15:49,950 --> 00:15:51,420 med, som vi alle er mere fortrolige. 346 00:15:51,420 --> 00:15:53,753 Vi har internet-enheder i vores lommer, på vores skriveborde, 347 00:15:53,753 --> 00:15:55,127 i vores rygsække og lignende. 348 00:15:55,127 --> 00:15:56,210 Hvordan gør alt dette arbejde? 349 00:15:56,210 --> 00:15:59,077 Og hvordan kan vi begynde at skrive kode, er ikke super mystiske 350 00:15:59,077 --> 00:16:01,910 og i nogle blinkende tekst prompt at ingen af ​​dine venner eller familie 351 00:16:01,910 --> 00:16:04,659 er nogensinde vil ønsker at interagere med, men noget du kan sætte 352 00:16:04,659 --> 00:16:06,660 på deres telefoner, eller på deres web-browsere, 353 00:16:06,660 --> 00:16:09,010 eller på nogen enheder med som de interagerer. 354 00:16:09,010 --> 00:16:10,430 >> Så her er en persons hjem. 355 00:16:10,430 --> 00:16:14,040 Og inde i dette hjem er et par bærbare computere, et par gamle skole skrivebordet 356 00:16:14,040 --> 00:16:17,470 computere, kaldet noget router eller hub i midten, 357 00:16:17,470 --> 00:16:20,310 og derefter en slags kabelmodem eller DSL-modem. 358 00:16:20,310 --> 00:16:24,560 Og så er der internettet, generelt tegnet som en sky deroppe i himlen. 359 00:16:24,560 --> 00:16:29,230 >> Så dette billede, selvom en lille slags dateret, 360 00:16:29,230 --> 00:16:32,604 sikkert indfanger hvad de fleste af du sandsynligvis have i jeres hjem, 361 00:16:32,604 --> 00:16:35,520 eller hvad reelt alle du har i dine sovesale, eller lejligheder, 362 00:16:35,520 --> 00:16:36,480 eller lignende. 363 00:16:36,480 --> 00:16:40,010 >> Så hvad der rent faktisk foregår, når du forsøger at bruge internettet i dag? 364 00:16:40,010 --> 00:16:42,010 Så hver computer på internet, viser det sig, 365 00:16:42,010 --> 00:16:46,860 skal have en unik adresse, meget gerne vi i den virkelige verden behov 366 00:16:46,860 --> 00:16:52,050 en postadresse, ligesom 51 Prospect Street, New Haven, Connecticut, eller 33 367 00:16:52,050 --> 00:16:54,170 Oxford Street, Cambridge, Massachusetts. 368 00:16:54,170 --> 00:16:58,520 Så gør computere på internettet har brug for en måde entydigt adressering selv. 369 00:16:58,520 --> 00:17:01,180 >> Det er, så når en computer ønsker at tale til en anden, 370 00:17:01,180 --> 00:17:04,525 Det kan sende en besked og informere modtageren til hvem 371 00:17:04,525 --> 00:17:05,900 den skal sende svar tilbage. 372 00:17:05,900 --> 00:17:07,900 Så det gør blot slags intuitiv fornemmelse måske 373 00:17:07,900 --> 00:17:09,980 at alt har en adresse af en slags. 374 00:17:09,980 --> 00:17:11,240 >> Men hvordan får du en adresse? 375 00:17:11,240 --> 00:17:13,589 Tja, hvis du får her på campus, eller du går hjem 376 00:17:13,589 --> 00:17:15,760 og du tænder for bærbar eller stationær computer, 377 00:17:15,760 --> 00:17:17,770 og enten sæt den i eller oprette forbindelse til Wi-Fi, 378 00:17:17,770 --> 00:17:19,569 Det viser sig, at der er en særlig server 379 00:17:19,569 --> 00:17:22,089 på de fleste netværk kaldes en DHCP-server. 380 00:17:22,089 --> 00:17:23,880 Er virkelig ligegyldigt hvad det står for, 381 00:17:23,880 --> 00:17:26,660 men det er Dynamic Host Configuration protokol, som er lige 382 00:17:26,660 --> 00:17:29,760 en fancy måde at sige, det er en computer, enten Yale har 383 00:17:29,760 --> 00:17:32,600 eller Harvard har, eller Comcast har, eller Verizon har, 384 00:17:32,600 --> 00:17:35,100 eller din virksomhed har, hvis formål i livet, 385 00:17:35,100 --> 00:17:38,810 når den hører en nyligt tilføjede til netværket, det vil sige her, 386 00:17:38,810 --> 00:17:40,010 bruge denne adresse. 387 00:17:40,010 --> 00:17:42,790 >> Så vi mennesker ikke behøver at hård kode i vores computere 388 00:17:42,790 --> 00:17:44,040 hvad vores unikke adresse er. 389 00:17:44,040 --> 00:17:47,070 Vi vender det bare på, skal du åbne låg, og på en måde denne server 390 00:17:47,070 --> 00:17:52,210 på det lokale netværk bare fortæller mig, at min adresse er 51 Prospect Street, eller 33 391 00:17:52,210 --> 00:17:53,940 Oxford Street, eller lignende. 392 00:17:53,940 --> 00:17:56,000 >> Nu er det ikke kommer til være så detaljeret som. 393 00:17:56,000 --> 00:18:00,210 Snarere, hvad jeg har tænkt mig at få, er en numerisk adresse kaldes en IP-adresse. 394 00:18:00,210 --> 00:18:01,960 IP betyder Internet Protocol. 395 00:18:01,960 --> 00:18:06,025 Og odds er på dette tidspunkt i dit liv, du sikkert hørt eller set ordet IP, 396 00:18:06,025 --> 00:18:08,140 eller generelt kastet den rundt måske. 397 00:18:08,140 --> 00:18:10,720 Men i virkeligheden, er det temmelig ligetil en ting. 398 00:18:10,720 --> 00:18:13,610 >> En IP-adresse er blot en decimaltal, 399 00:18:13,610 --> 00:18:17,150 hvilket betyder, at det er noget, prik noget dot noget dot noget. 400 00:18:17,150 --> 00:18:21,980 Og hver af disse somethings sker at være et tal mellem 0 og 255. 401 00:18:21,980 --> 00:18:26,710 >> Så baseret på fem plus ugers CS50, hvis disse tal hvert interval fra 0 til 255, 402 00:18:26,710 --> 00:18:28,713 hvor mange bits er hver af disse nummerplader? 403 00:18:28,713 --> 00:18:29,420 >> PUBLIKUM: Otte. 404 00:18:29,420 --> 00:18:30,100 >> DAVID J. MALAN: Det må være otte. 405 00:18:30,100 --> 00:18:31,933 Så i alt, hvor mange bit er en IP-adresse? 406 00:18:31,933 --> 00:18:32,710 PUBLIKUM: 32. 407 00:18:32,710 --> 00:18:33,820 >> DAVID J. MALAN: Så 32. 408 00:18:33,820 --> 00:18:35,830 8 plus 8 plus 8 plus 8 er 32. 409 00:18:35,830 --> 00:18:38,767 Hvor mange samlede IP-adresser kan der være i verden? 410 00:18:38,767 --> 00:18:39,600 PUBLIKUM: 4 mia. 411 00:18:39,600 --> 00:18:42,410 DAVID J. MALAN: Så groft fire milliarder fordi det er 2 32 magt. 412 00:18:42,410 --> 00:18:44,410 Og hvis du ikke kan slags grok at i dit sind, 413 00:18:44,410 --> 00:18:47,470 bare vide, at 32-bit-værdier kan være så stor som 4 milliarder 414 00:18:47,470 --> 00:18:49,140 hvis det er alle positive værdier. 415 00:18:49,140 --> 00:18:52,500 Så det betyder, at der er 4 milliarder mulige IP-adresser i verden. 416 00:18:52,500 --> 00:18:55,090 >> Og sjov historie, vi er slags for at løbe ud af dem. 417 00:18:55,090 --> 00:18:59,720 Og i virkeligheden er det et kæmpe problem, idet verden så også dette problem kommer, 418 00:18:59,720 --> 00:19:03,639 men har ikke nødvendigvis reageret på det på den mest hurtigt som muligt. 419 00:19:03,639 --> 00:19:05,680 Og ja, når du har færdig CS50 og begyndte 420 00:19:05,680 --> 00:19:06,950 opmærksom på tech verden, vil du 421 00:19:06,950 --> 00:19:08,520 se det er meget almindeligt tematisk. 422 00:19:08,520 --> 00:19:12,260 >> For eksempel, hvis vi går virkelig gamle skole i dag, Y2K. 423 00:19:12,260 --> 00:19:13,570 Det var egentlig ikke en overraskelse. 424 00:19:13,570 --> 00:19:15,700 Ligesom alle vidste for 1.000 år at denne 425 00:19:15,700 --> 00:19:20,250 was-- mere end tusind years-- der der blev til sidst kommer til at ske. 426 00:19:20,250 --> 00:19:23,295 Og alligevel, vi reagerede på det meget i sidste øjeblik. 427 00:19:23,295 --> 00:19:24,420 Og det sker igen. 428 00:19:24,420 --> 00:19:26,740 Så i dag vil vi tale om IP version 4. 429 00:19:26,740 --> 00:19:29,250 Men ved, at verden er endelig at komme 430 00:19:29,250 --> 00:19:31,590 rundt for at opgradere til noget, der hedder IPv6, 431 00:19:31,590 --> 00:19:34,540 som i stedet for 32-bit adresser, uses-- nogen 432 00:19:34,540 --> 00:19:36,443 ønsker at tage et gæt, hvor mange bits? 433 00:19:36,443 --> 00:19:37,310 >> PUBLIKUM: 64? 434 00:19:37,310 --> 00:19:38,380 >> DAVID J. MALAN: God gæt, men nej. 435 00:19:38,380 --> 00:19:39,975 Vi endelig forsøger at komme foran kurven. 436 00:19:39,975 --> 00:19:40,558 >> PUBLIKUM: 128. 437 00:19:40,558 --> 00:19:43,490 DAVID J. MALAN: 128, hvilket er en freaking stort antal 438 00:19:43,490 --> 00:19:46,250 af IP-adresser, fordi det er ligesom gange 2, gange 2, 439 00:19:46,250 --> 00:19:49,620 gange 2, en masse gange toere op fra 4 mia. 440 00:19:49,620 --> 00:19:50,530 >> Så hvis nysgerrig. 441 00:19:50,530 --> 00:19:54,110 Det viser out-- og jeg bare googlede dette at finde denne out-- Yale computere 442 00:19:54,110 --> 00:19:58,910 her på Yale, har tendens til at starte med disse numbers-- 130,132 dot noget, 443 00:19:58,910 --> 00:20:00,669 og 128,36 dot noget. 444 00:20:00,669 --> 00:20:02,710 Men der er helt sikkert undtagelser over hele linjen 445 00:20:02,710 --> 00:20:05,334 afhængigt af hvilken afdeling og bygning og campus du er på. 446 00:20:05,334 --> 00:20:09,310 Harvard tendens til at have 140,247 eller 128,103. 447 00:20:09,310 --> 00:20:11,530 Og generelt er det ubrugelige oplysninger, 448 00:20:11,530 --> 00:20:13,260 men det er noget, du kan mærke nu. 449 00:20:13,260 --> 00:20:15,593 Når du begynder at rode rundt indstillingerne på dine computere, 450 00:20:15,593 --> 00:20:18,540 du kan begynde at lægge mærke til disse former for mønstre inden længe. 451 00:20:18,540 --> 00:20:23,470 >> Men når du er hjemme og har en Apple AirPort eller en Linksys-enhed, 452 00:20:23,470 --> 00:20:26,560 eller en D-Link, eller hvad det er dine forældre eller søskende installeret 453 00:20:26,560 --> 00:20:28,890 i dit hus, godt hvad har du sandsynligvis 454 00:20:28,890 --> 00:20:30,800 er det, der hedder en privat IP-adresse. 455 00:20:30,800 --> 00:20:34,850 Og disse var faktisk en rart, midlertidig løsning 456 00:20:34,850 --> 00:20:38,050 på problemet med at køre kort på IP-adresser. 457 00:20:38,050 --> 00:20:40,382 >> Og hvad du kan gøre med hjemmenetværk, typically-- 458 00:20:40,382 --> 00:20:42,340 og helt ærligt, selv Yale og Harvard er begyndt 459 00:20:42,340 --> 00:20:46,840 at gøre dette i forskellige areas-- er dig kan give en hel masse computere 460 00:20:46,840 --> 00:20:50,360 en IP-adresse, så længe du lægger en særlig anordning foran dem, 461 00:20:50,360 --> 00:20:52,410 noget, der hedder en router, eller det kan kaldes 462 00:20:52,410 --> 00:20:54,060 en proxy eller en række andre ting. 463 00:20:54,060 --> 00:20:56,710 Men en enhed, har den en IP-adresse. 464 00:20:56,710 --> 00:20:59,450 Og så bagefter enhed, i en bygning, 465 00:20:59,450 --> 00:21:03,030 inden et hus eller en lejlighed, kan være et vilkårligt antal computere, som alle 466 00:21:03,030 --> 00:21:06,460 har en IP-adresse, der starter med en af ​​disse cifre her. 467 00:21:06,460 --> 00:21:08,590 Og så længe den pågældende computer ved, hvordan man konvertere 468 00:21:08,590 --> 00:21:10,900 den offentlige adresse til den private adresse, 469 00:21:10,900 --> 00:21:13,340 alt kan sortere arbejde som forventet. 470 00:21:13,340 --> 00:21:17,290 >> Men det modsatte af dette er, at hvis du er hjemme, og du har en søskende, 471 00:21:17,290 --> 00:21:19,650 og begge af jer er besøger nogle hjemmeside, 472 00:21:19,650 --> 00:21:23,520 at hjemmesiden ikke, om det er dig eller din bror og søster besøger hjemmesiden, 473 00:21:23,520 --> 00:21:26,780 fordi man synes at være den samme person, fordi alle dine data 474 00:21:26,780 --> 00:21:30,050 går gennem denne router eller at centrale punkt. 475 00:21:30,050 --> 00:21:32,220 >> Men nok om disse lavere detaljer niveau. 476 00:21:32,220 --> 00:21:37,770 Lad os tage et kig på, hvordan IP-adresser nogle gange kommer op måske i medierne 477 00:21:37,770 --> 00:21:41,370 og hvordan vi nu kan begynde at ødelægge, Helt ærligt, endnu flere shows for dig. 478 00:21:41,370 --> 00:21:45,010 Hvis vi kunne dæmpe lys til et par sekunder. 479 00:21:45,010 --> 00:21:46,550 >> [VIDEO PLAYBACK] 480 00:21:46,550 --> 00:21:49,310 >> -Det Er en 32-bit på IPP 4 adresse. 481 00:21:49,310 --> 00:21:50,650 >> -IP ES internet-- 482 00:21:50,650 --> 00:21:52,800 >> -Privat Netværk, Tamia private netværk. 483 00:21:52,800 --> 00:22:05,670 484 00:22:05,670 --> 00:22:08,145 Hun er så fantastisk. 485 00:22:08,145 --> 00:22:09,630 -Kom På Charlie. 486 00:22:09,630 --> 00:22:11,750 DAVID J. MALAN: Det er et spejl IP-adresse. 487 00:22:11,750 --> 00:22:15,093 Hun lade os se hvilke hun gør i realtid. 488 00:22:15,093 --> 00:22:16,285 >> [END AFSPIL] 489 00:22:16,285 --> 00:22:17,130 >> DAVID J. MALAN: OK. 490 00:22:17,130 --> 00:22:18,480 Så nogle få problemer med dette. 491 00:22:18,480 --> 00:22:22,740 Så man, hvad vi leder efter på her på skærmen 492 00:22:22,740 --> 00:22:25,290 er en kode skrevet i et sprog kaldet Objective-C, 493 00:22:25,290 --> 00:22:28,020 som er form for en efterfølger til C-sprog, som vi laver. 494 00:22:28,020 --> 00:22:30,150 Dette har absolut intet at gøre med programmering. 495 00:22:30,150 --> 00:22:32,399 Faktisk så godt jeg kan fortælle, dette er et tegneprogram 496 00:22:32,399 --> 00:22:38,360 at nogen downloades fra internet eller anden måde involverer farveblyanter. 497 00:22:38,360 --> 00:22:43,660 >> Måske mindre grove, er, at denne IP-adresse, gyldig eller ugyldig? 498 00:22:43,660 --> 00:22:44,520 >> PUBLIKUM: Ugyldig. 499 00:22:44,520 --> 00:22:48,479 >> DAVID J. MALAN: ugyldig, fordi 275 er naturligvis ikke mellem 0 og 255. 500 00:22:48,479 --> 00:22:51,770 Også det er nok OK selv, fordi du ikke ønsker at flok skøre folk 501 00:22:51,770 --> 00:22:54,790 der er ligesom pause TV på deres Tivos og derefter besøger UP for at se 502 00:22:54,790 --> 00:22:56,290 hvis der er faktisk noget der. 503 00:22:56,290 --> 00:22:58,200 Så man er lidt mindre ekstreme. 504 00:22:58,200 --> 00:23:00,990 Men indse, at alt er slags rundt omkring os. 505 00:23:00,990 --> 00:23:04,980 >> Så selvfølgelig, ingen af ​​os nogensinde virkelig skrive numeriske adresser 506 00:23:04,980 --> 00:23:06,410 i vores browsere. 507 00:23:06,410 --> 00:23:09,580 Det ville være lidt af en dårlig ting hvis Google, for at besøge Google, 508 00:23:09,580 --> 00:23:15,060 du måttet gå til 123.46.57.89. 509 00:23:15,060 --> 00:23:17,007 Og hele verden havde bare huske på, at. 510 00:23:17,007 --> 00:23:19,090 Og helt ærligt, vi har slags af set dette problem før. 511 00:23:19,090 --> 00:23:24,130 Tilbage i dag, når folk ikke har mobiltelefoner og kontaktlister, 512 00:23:24,130 --> 00:23:27,640 og virksomheder rent faktisk still-- faktisk, Jeg gætter virksomheder har stadig 800 513 00:23:27,640 --> 00:23:30,600 tal og den like-- men du generelt ser tal annonceret 514 00:23:30,600 --> 00:23:36,480 som 1-800-COLLECT, C-O-L-L-E-C-T. Fordi ingen rigtig kan huske, 515 00:23:36,480 --> 00:23:39,754 når at se en annonce på en bus eller tavlen, hvad nogen nummer er, 516 00:23:39,754 --> 00:23:42,420 men de kan sandsynligvis, med højere sandsynlighed, husker et ord. 517 00:23:42,420 --> 00:23:44,530 >> Så vi vedtaget det samme form for system i verden 518 00:23:44,530 --> 00:23:48,290 af internettet, hvor der er en domænenavn system, så vi mennesker kan 519 00:23:48,290 --> 00:23:52,340 skriv google.com, facebook.com, yale.edu, harvard.edu, 520 00:23:52,340 --> 00:23:56,140 og lad computere tallet ud af, hvad tilsvarende IP 521 00:23:56,140 --> 00:23:58,480 adresse er for et bestemt navn. 522 00:23:58,480 --> 00:24:01,620 >> Og den måde du gør dette i virkelige verden er, at for $ 10 om året, 523 00:24:01,620 --> 00:24:05,900 måske $ 50 år, kan du købe et domæne navn, eller virkelig leje et domænenavn. 524 00:24:05,900 --> 00:24:09,860 Og så hvem du betaler at leje dette domænenavn, 525 00:24:09,860 --> 00:24:14,069 du fortæller dem hvem i verden ved, hvad din IP-adresse er. 526 00:24:14,069 --> 00:24:16,360 Og vi vil ikke gå ind i disse oplysninger, men mange af jer 527 00:24:16,360 --> 00:24:18,750 måske ønsker, til endelig projekter, faktisk for at tilmelde dig 528 00:24:18,750 --> 00:24:22,120 for din egen web-hosting selskab, enten gratis 529 00:24:22,120 --> 00:24:23,500 eller for et par dollars om måneden. 530 00:24:23,500 --> 00:24:26,100 Nogle af jer måske ønsker at købe, for en par dollars, dit eget domænenavn, 531 00:24:26,100 --> 00:24:28,900 bare for sjov eller for at starte en virksomhed eller en personlig hjemmeside eller lignende. 532 00:24:28,900 --> 00:24:30,880 >> Og indse, at alle af, der vil i sidste ende 533 00:24:30,880 --> 00:24:35,260 koges ned til dig at fortælle verden hvad din server IP-adresse er. 534 00:24:35,260 --> 00:24:37,740 Og så disse DNS servere faktisk passe 535 00:24:37,740 --> 00:24:39,910 underretning af resten af ​​verden. 536 00:24:39,910 --> 00:24:41,830 Så alle en DNS-server har, kort sagt, inde 537 00:24:41,830 --> 00:24:44,780 af dets hukommelse er ligesom svarer til en Google-regneark 538 00:24:44,780 --> 00:24:49,420 eller et Excel-regneark med mindst to søjler, hvoraf den ene har navne, 539 00:24:49,420 --> 00:24:52,100 ligesom harvard.edu, og yale.edu og google.com. 540 00:24:52,100 --> 00:24:55,870 Og den anden kolonne har den tilsvarende IP-adresse eller IP 541 00:24:55,870 --> 00:24:56,382 adresser. 542 00:24:56,382 --> 00:24:57,590 Og vi kan faktisk se dette. 543 00:24:57,590 --> 00:24:59,881 Så på min Mac-- og du kan gøre dette på Windows-computere 544 00:24:59,881 --> 00:25:04,330 som well-- hvis jeg åbner en terminal vindue her, ganske som den i CD50 IDE, 545 00:25:04,330 --> 00:25:08,190 de fleste computere har en kommando kaldet nslookup, navneserver ser op. 546 00:25:08,190 --> 00:25:12,380 Og hvis jeg skriver noget i lignende yale.edu og tryk Enter, hvad 547 00:25:12,380 --> 00:25:19,250 Jeg skal se, om mit netværk samarbejder som det gjorde for flere tests før klassen 548 00:25:19,250 --> 00:25:24,584 began-- lad os prøve google.com. 549 00:25:24,584 --> 00:25:26,390 Selvfølgelig nu intet virker. 550 00:25:26,390 --> 00:25:27,190 Det er godt. 551 00:25:27,190 --> 00:25:30,660 Okay, stå ved et øjeblik. 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 >> Nå, lad os se, om faktiske internet-- nr. 555 00:25:38,660 --> 00:25:39,700 Det er, hvad der skete. 556 00:25:39,700 --> 00:25:43,090 Oh my god, okay. 557 00:25:43,090 --> 00:25:45,490 Wi-Fi brød. 558 00:25:45,490 --> 00:25:47,410 >> Hey, vil gerne vide, hvad min IP-adresse er? 559 00:25:47,410 --> 00:25:49,722 Okay. 560 00:25:49,722 --> 00:25:50,820 YaleSecure. 561 00:25:50,820 --> 00:25:53,330 Dette er, hvordan du foretager fejlfinding ting som datamatiker. 562 00:25:53,330 --> 00:25:54,617 Vi vender Wi-Fi fra. 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 >> Og faktisk, SCAZ, gør du noget imod logge os i den sikre en? 566 00:26:02,610 --> 00:26:06,246 Ellers flere prøver are-- OK, tak du Yale-- eller er ved at bryde. 567 00:26:06,246 --> 00:26:07,370 Jeg ønsker at gå på YaleSecure. 568 00:26:07,370 --> 00:26:09,880 569 00:26:09,880 --> 00:26:11,870 Åh, og måske vi vil være OK. 570 00:26:11,870 --> 00:26:12,686 Måske er vi tilbage. 571 00:26:12,686 --> 00:26:16,810 572 00:26:16,810 --> 00:26:19,733 Og det er sådan, som en computer videnskabsmand fastsætte en computer. 573 00:26:19,733 --> 00:26:22,000 [Applaus] 574 00:26:22,000 --> 00:26:23,220 Okay. 575 00:26:23,220 --> 00:26:27,160 Så hvor jeg var inden for denne såkaldt terminalvindue, 576 00:26:27,160 --> 00:26:32,270 og hvis jeg nslookup yale.edu, der vi gå. 577 00:26:32,270 --> 00:26:38,350 Så jeg kommer tilbage først IP-adressen på DNS-serveren, som min laptop bruger. 578 00:26:38,350 --> 00:26:41,610 Så i tillæg til en DHCP-server, vi talte om for et øjeblik siden fortæller 579 00:26:41,610 --> 00:26:44,720 min laptop hvad min IP adresse er, at DHCP-server 580 00:26:44,720 --> 00:26:46,860 også fortæller mig, hvad DNS-server til at bruge. 581 00:26:46,860 --> 00:26:48,860 Ellers ville jeg have til manuelt at skrive denne i. 582 00:26:48,860 --> 00:26:50,359 >> Men det er ikke alt, interessant. 583 00:26:50,359 --> 00:26:54,310 Hvad jeg bekymrer sig om, er, at dette er den IP-adressen på Yale hjemmeside tilsyneladende. 584 00:26:54,310 --> 00:26:55,470 Så i virkeligheden, lad os prøve dette. 585 00:26:55,470 --> 00:27:02,710 Lad mig gå op i en browser og gå til http: //, og så, at IP-adresse, 586 00:27:02,710 --> 00:27:04,220 og tryk Enter. 587 00:27:04,220 --> 00:27:06,700 Og lad os se. 588 00:27:06,700 --> 00:27:09,587 Det er sådan du ellers kan besøge Yale hjemmesider. 589 00:27:09,587 --> 00:27:10,920 Nu er det ikke alle, der mindeværdig. 590 00:27:10,920 --> 00:27:12,220 Ligesom, før Frosh sandsynligvis ikke vil 591 00:27:12,220 --> 00:27:15,310 at huske denne særlige adresse hvis fortalt at besøge der efter et besøg. 592 00:27:15,310 --> 00:27:16,580 Men det synes at arbejde. 593 00:27:16,580 --> 00:27:21,179 Og så DNS ​​egentlig bare tillader os at har langt flere menneskelige venlige adresser. 594 00:27:21,179 --> 00:27:23,220 Men de har ikke nødvendigvis bare give ét svar. 595 00:27:23,220 --> 00:27:25,640 >> I virkeligheden, når du er en virkelig store tech virksomhed, 596 00:27:25,640 --> 00:27:27,620 du sandsynligvis ønsker at har masser af servere. 597 00:27:27,620 --> 00:27:29,027 Og selv dette er vildledende. 598 00:27:29,027 --> 00:27:31,110 Så Yale sandsynligvis ikke har bare en webserver. 599 00:27:31,110 --> 00:27:34,150 Google sandsynligvis ikke har kun 10 eller deromkring webservere. 600 00:27:34,150 --> 00:27:36,960 Google især sandsynligvis har tusindvis af web-servere 601 00:27:36,960 --> 00:27:40,030 rundt om i verden, der kan reagere på anmodninger fra folk som os. 602 00:27:40,030 --> 00:27:43,870 >> Men de bruger også en teknologi kaldet load balancing, som lang historie kort, 603 00:27:43,870 --> 00:27:48,810 har kun få enheder i verden at sprede belastningen over flere servere. 604 00:27:48,810 --> 00:27:52,320 Så det er lidt ligesom et edderkoppespind, hvis vil du afsender anmodningerne. 605 00:27:52,320 --> 00:27:54,380 Men for nu, alle, der er interessant for dag 606 00:27:54,380 --> 00:27:56,870 er, at et domænenavn ligesom google.com selv kan 607 00:27:56,870 --> 00:28:00,100 har flere IP-adresser som. 608 00:28:00,100 --> 00:28:04,610 >> Men hvordan gør alle vores data faktisk komme frem og tilbage så i sidste ende? 609 00:28:04,610 --> 00:28:08,320 Tja, det viser sig, at der er disse ting kaldet routere på internettet. 610 00:28:08,320 --> 00:28:10,980 Og hvad er en router til omfang, at du kender allerede? 611 00:28:10,980 --> 00:28:13,730 Og jeg har brugt ordet et par gange i forbindelse med et hjem, 612 00:28:13,730 --> 00:28:17,155 men i enkle vendinger, hvad betyder en router gøre? 613 00:28:17,155 --> 00:28:18,780 Giv mig bare et gæt baseret på dens navn? 614 00:28:18,780 --> 00:28:20,082 >> PUBLIKUM: Så en vej eller en sti? 615 00:28:20,082 --> 00:28:21,790 DAVID J. MALAN: Så det er en vej eller en sti. 616 00:28:21,790 --> 00:28:23,980 Så en rute er en vej eller sti, absolut. 617 00:28:23,980 --> 00:28:27,000 Og en router, så en enhed, faktisk ruter oplysninger 618 00:28:27,000 --> 00:28:29,690 ville flytte data mellem punkt A og B. 619 00:28:29,690 --> 00:28:31,920 >> Og så i fact-- og det er måske, når 620 00:28:31,920 --> 00:28:34,510 du google skildringer af routere på verdensmarkedet, får alt, hvad du 621 00:28:34,510 --> 00:28:35,900 er teatralsk marketing diagrammer. 622 00:28:35,900 --> 00:28:38,550 Og så dette er slags af de mest repræsentativ én jeg kunne finde 623 00:28:38,550 --> 00:28:39,841 der så mildt interessant. 624 00:28:39,841 --> 00:28:44,170 Hver af disse punkter eller glimt af håb rundt om i verden udgør en router. 625 00:28:44,170 --> 00:28:47,210 Og hver af dem har en linje mellem en anden router. 626 00:28:47,210 --> 00:28:49,090 >> Fordi ja, der er tusinder, sandsynligvis 627 00:28:49,090 --> 00:28:52,560 millioner af routere omkring verden, hvoraf nogle er i vore hjem 628 00:28:52,560 --> 00:28:56,070 og på vores campusser, men en masse af som er ejet af store selskaber 629 00:28:56,070 --> 00:29:00,250 og er forbundet med hinanden, således at hvis jeg ønsker at sende nogle data herfra på Yale 630 00:29:00,250 --> 00:29:04,430 hjem til Cambridge, Yale sandsynligvis ikke har et enkelt kabel, sikkert, 631 00:29:04,430 --> 00:29:05,650 gå direkte til Harvard. 632 00:29:05,650 --> 00:29:07,399 Og Yale har ikke et enkelt kabel går 633 00:29:07,399 --> 00:29:10,010 til MIT eller til Stanford, eller til Berkeley, eller til Google, 634 00:29:10,010 --> 00:29:11,820 eller en række destinationer. 635 00:29:11,820 --> 00:29:14,760 >> Snarere, Yale og Harvard, og alle andre på internettet 636 00:29:14,760 --> 00:29:17,610 har en eller flere routere forbundet til det, måske 637 00:29:17,610 --> 00:29:18,810 i periferien af ​​campus. 638 00:29:18,810 --> 00:29:21,690 Så når mine data vil at forlade Yales campus, 639 00:29:21,690 --> 00:29:24,770 det går til, at nærmeste router, som vist ved et af disse punkter. 640 00:29:24,770 --> 00:29:27,940 Og så er router tal ud af, om at sende det på denne måde, eller den måde, 641 00:29:27,940 --> 00:29:33,440 eller denne måde, eller baseret på denne måde i en anden tabel i hukommelsen, 642 00:29:33,440 --> 00:29:36,870 en anden Excel-fil eller Google regneark, som i en kolonne 643 00:29:36,870 --> 00:29:41,315 siger, hvis din IP-adresse starter med nummer et, gå på denne måde. 644 00:29:41,315 --> 00:29:43,690 Hvis din IP-adresse starter med en nummer to, går den vej. 645 00:29:43,690 --> 00:29:47,040 Og så du kan bryde det ned numerisk at have routeren sende 646 00:29:47,040 --> 00:29:49,040 data alle hvilket måde. 647 00:29:49,040 --> 00:29:51,419 >> Og vi kan slags se det så godt. 648 00:29:51,419 --> 00:29:54,210 Lad os gå videre ind i denne terminal vinduet igen, og lad mig gå videre 649 00:29:54,210 --> 00:30:00,700 og spore ruten til, lad os sige, www.mit.edu, 650 00:30:00,700 --> 00:30:02,970 hvilket er et par hundrede miles væk. 651 00:30:02,970 --> 00:30:04,500 Det var virkelig sgu hurtig. 652 00:30:04,500 --> 00:30:06,290 >> Så hvad skete der? 653 00:30:06,290 --> 00:30:10,360 Så på bare syv trin, og på bare fire millisekunder, 654 00:30:10,360 --> 00:30:14,660 Jeg sendte data over internettet herfra på Yale til MIT. 655 00:30:14,660 --> 00:30:18,240 Hver af disse rækker, kan du måske gætte repræsenterer nu hvad? 656 00:30:18,240 --> 00:30:19,060 >> PUBLIKUM: En router. 657 00:30:19,060 --> 00:30:20,101 >> DAVID J. MALAN: En router. 658 00:30:20,101 --> 00:30:24,090 Så ja, det ser ud som om der er omkring syv eller deromkring routere, 659 00:30:24,090 --> 00:30:29,350 eller seks routere i mellem mig fysisk i Yale lov skole her 660 00:30:29,350 --> 00:30:31,612 og MIT hjemmeside derovre. 661 00:30:31,612 --> 00:30:34,570 Og hvad vi kan lære af dette er som follows-- og lad mig rense det op. 662 00:30:34,570 --> 00:30:38,180 Jeg har tænkt mig at køres igen den med en kommando line argument -q 1 til bare sige, 663 00:30:38,180 --> 00:30:39,300 bare give mig en forespørgsel. 664 00:30:39,300 --> 00:30:40,800 Som standard spor rute gør tre. 665 00:30:40,800 --> 00:30:42,350 Og det er derfor, vi så bundter af numre. 666 00:30:42,350 --> 00:30:44,850 Jeg ønsker at se færre tal bare for at holde produktionen renere. 667 00:30:44,850 --> 00:30:46,280 Og lad os se hvad der sker. 668 00:30:46,280 --> 00:30:49,220 >> Så uanset årsagen, nogen på Yale tanke 669 00:30:49,220 --> 00:30:54,130 det ville være sjovt at kalde det dit standard router arubacentral, som 670 00:30:54,130 --> 00:30:57,920 er på VLAN eller virtuelt LAN, virtuelle lokalområde 671 00:30:57,920 --> 00:30:59,810 netværk 30-- så du sandsynligvis have mindst 672 00:30:59,810 --> 00:31:03,050 29 others-- router.net.yale.internal. 673 00:31:03,050 --> 00:31:06,660 Og .internal her er lidt af en falsk topdomæne beregnet til at blive brugt lige 674 00:31:06,660 --> 00:31:07,210 på campus. 675 00:31:07,210 --> 00:31:10,335 Og mærke den tilsvarende IP-adresse af denne router, hvor det er her 676 00:31:10,335 --> 00:31:13,920 på campus, er 172.28.204.129. 677 00:31:13,920 --> 00:31:17,470 Og det tog 36 millisekunder at gå fra her til der. 678 00:31:17,470 --> 00:31:18,050 >> Sjov historie. 679 00:31:18,050 --> 00:31:19,716 Vi vil komme tilbage til om et øjeblik. 680 00:31:19,716 --> 00:31:22,920 Men nu er den anden router-- til som arubacentral tilsyneladende 681 00:31:22,920 --> 00:31:25,790 har en slags fysisk tilslutning mest likely-- 682 00:31:25,790 --> 00:31:27,249 menneskene ikke gider at navngive den. 683 00:31:27,249 --> 00:31:30,373 Yale mennesker ikke gider at navngive det, fordi det er inde i dit netværk 684 00:31:30,373 --> 00:31:30,940 det forekommer. 685 00:31:30,940 --> 00:31:32,520 Og så er det bare har en IP-adresse. 686 00:31:32,520 --> 00:31:34,660 >> Men så en tredje router her på Yale netværk 687 00:31:34,660 --> 00:31:36,700 det er nok lidt længere væk stadig 688 00:31:36,700 --> 00:31:41,330 kaldes cen10g uanset der er asr.net.yale.internal. 689 00:31:41,330 --> 00:31:43,040 Og det også har en IP-adresse. 690 00:31:43,040 --> 00:31:44,990 >> Nu hvorfor er disse tal slags svingende? 691 00:31:44,990 --> 00:31:47,890 2.9, 1.4, 36? 692 00:31:47,890 --> 00:31:48,840 Routere få optaget. 693 00:31:48,840 --> 00:31:50,420 Og de får overbelastet og bakkes op. 694 00:31:50,420 --> 00:31:53,200 Der er tusindvis af mennesker på denne campus ved hjælp af internettet lige nu. 695 00:31:53,200 --> 00:31:56,050 Der er hundrede mennesker i denne værelse ved hjælp af internettet lige nu. 696 00:31:56,050 --> 00:31:59,030 >> Og så hvad der sker, er, at routerne kan få overbelastet. 697 00:31:59,030 --> 00:32:01,350 Og så disse tider måske svinge en lille smule. 698 00:32:01,350 --> 00:32:04,620 Så det er derfor, de ikke nødvendigvis stige ligefrem. 699 00:32:04,620 --> 00:32:07,510 >> Men tingene bliver slags interessant i trin fire. 700 00:32:07,510 --> 00:32:13,040 Tilsyneladende mellem Yale og trin fire er en anden hop. 701 00:32:13,040 --> 00:32:16,480 Og hvor er routeren i trin fire sandsynligvis? 702 00:32:16,480 --> 00:32:17,410 >> PUBLIKUM: [uhørligt] 703 00:32:17,410 --> 00:32:19,410 >> DAVID J. MALAN: JFK måske, måske i lufthavnen. 704 00:32:19,410 --> 00:32:21,950 Men uanset årsagen, systemadministratorer, så 705 00:32:21,950 --> 00:32:24,140 nørder, der kører servere til år har navngivet routere 706 00:32:24,140 --> 00:32:25,600 efter den nærmeste lufthavn kode. 707 00:32:25,600 --> 00:32:27,420 Så JFK formentlig betyder det er bare et eller andet sted 708 00:32:27,420 --> 00:32:29,970 i New York, måske i Manhattan eller en af ​​de bydele. 709 00:32:29,970 --> 00:32:34,460 nyc2 betegner formentlig anden router, der er et eller andet sted i New York. 710 00:32:34,460 --> 00:32:37,140 >> Jeg ved ikke helt, hvor rækken seks er her, router nummer seks. 711 00:32:37,140 --> 00:32:40,110 quest.net en stor internetudbyder, internetudbyder, 712 00:32:40,110 --> 00:32:43,240 der giver internet-forbindelse til store steder som Yale og andre. 713 00:32:43,240 --> 00:32:47,110 Og så er denne sidste, det ser gerne, at MIT ikke engang 714 00:32:47,110 --> 00:32:50,180 har deres egen hjemmeside i Cambridge nødvendigvis, 715 00:32:50,180 --> 00:32:52,090 men de har outsourcet deres hjemmeside, 716 00:32:52,090 --> 00:32:55,150 eller i det mindste de fysiske servere, til et selskab kaldet Akamai. 717 00:32:55,150 --> 00:32:57,940 Og Akamai faktisk helt ned vejen fra MIT i Cambridge 718 00:32:57,940 --> 00:32:58,790 det viser sig. 719 00:32:58,790 --> 00:33:02,360 >> Men indse også, at selv troede du kommer til at www.mit.edu, 720 00:33:02,360 --> 00:33:05,200 Vi kunne virkelig blive sendt overalt i verden. 721 00:33:05,200 --> 00:33:06,960 >> Og lad os se et eller andet sted andre steder i verden. 722 00:33:06,960 --> 00:33:09,240 Lad mig gå videre og rydde denne skærm og i stedet 723 00:33:09,240 --> 00:33:15,240 spore ruten, bare én gang, så forespørge en, for at www.cnn.co.jp, 724 00:33:15,240 --> 00:33:18,390 den japanske hjemmeside til CNN, at nyhedsside. 725 00:33:18,390 --> 00:33:20,660 Og hvis jeg ramte Indtast nu, lad os se hvad der sker. 726 00:33:20,660 --> 00:33:23,610 Vi er igen starter ved arubacentral. 727 00:33:23,610 --> 00:33:26,510 Vi derefter gå til navnløse router, et par mere. 728 00:33:26,510 --> 00:33:29,527 Så det tog 12 humle komme til Japan dette tidspunkt. 729 00:33:29,527 --> 00:33:30,860 Og lad os se, hvad vi kan indsamle. 730 00:33:30,860 --> 00:33:32,450 >> Så samme hop, hop samme. 731 00:33:32,450 --> 00:33:35,170 Lidt anderledes nu. 732 00:33:35,170 --> 00:33:36,380 Denne ens interessant. 733 00:33:36,380 --> 00:33:40,870 Så jeg gætte her, stamford1 er en få byer væk i Connecticut også. 734 00:33:40,870 --> 00:33:43,810 Disse routere i række seks og syv har ikke navne. 735 00:33:43,810 --> 00:33:46,370 Men det er lidt fantastisk. 736 00:33:46,370 --> 00:33:53,310 >> Så hvad synes at være mellem det routere i trin syv og otte? 737 00:33:53,310 --> 00:33:54,760 Og hvorfor siger du så meget? 738 00:33:54,760 --> 00:33:55,260 Ja? 739 00:33:55,260 --> 00:33:56,060 >> PUBLIKUM: Ocean. 740 00:33:56,060 --> 00:33:57,640 >> DAVID J. MALAN: Sandsynligvis et ocean. 741 00:33:57,640 --> 00:34:01,366 Vi ved, det er sandt lignende, intuitivt, ikke? 742 00:34:01,366 --> 00:34:04,790 Men vi kan bekræfte så meget form af slags empirisk hvorfor? 743 00:34:04,790 --> 00:34:06,860 Hvad har ændret sig mellem rækker syv og otte? 744 00:34:06,860 --> 00:34:09,429 745 00:34:09,429 --> 00:34:14,739 >> Det tog en masse mere tid til at gå til uanset denne navnløse router syv er, 746 00:34:14,739 --> 00:34:18,670 formentlig sted i kontinentale USA, til trin otte, 747 00:34:18,670 --> 00:34:22,639 som er sandsynligvis et eller andet sted i Japan baseret på domænenavnet .jp der. 748 00:34:22,639 --> 00:34:25,719 Og så dem yderligere hundred noget millisekunder 749 00:34:25,719 --> 00:34:28,960 eller 90 eller deromkring millisekunder resultatet af vores data går 750 00:34:28,960 --> 00:34:31,100 over en temmelig stor mængde vand. 751 00:34:31,100 --> 00:34:34,570 >> Nu nysgerrigt, ser det ud til, at det måske at kabel går over hele USA. 752 00:34:34,570 --> 00:34:37,070 Hvis vi rent faktisk kommer i løbet af vestkysten for at komme til Japan, 753 00:34:37,070 --> 00:34:39,111 det er form for den lange vej hvis vi går den anden vej. 754 00:34:39,111 --> 00:34:41,400 Så det er ikke helt klart hvad der foregår fysisk. 755 00:34:41,400 --> 00:34:43,830 Men det faktum, at hver ekstra hop faktisk 756 00:34:43,830 --> 00:34:46,020 tog markant længere end hver anden, det er 757 00:34:46,020 --> 00:34:50,440 temmelig god bekræftelse på, at CNN Japansk webserver er sandsynligvis faktisk 758 00:34:50,440 --> 00:34:51,310 i Japan. 759 00:34:51,310 --> 00:34:54,089 Og det er helt sikkert længere væk end MIT har været. 760 00:34:54,089 --> 00:34:56,380 Og det er værd at bemærke også, dine data er ikke nødvendigvis 761 00:34:56,380 --> 00:34:58,794 kommer til at rejse kortest mulige afstand. 762 00:34:58,794 --> 00:35:00,960 Faktisk, hvis du spiller rundt med spor rute derhjemme 763 00:35:00,960 --> 00:35:04,170 bare plukke tilfældige websites, du måske opleve, at bare at sende en e-mail 764 00:35:04,170 --> 00:35:06,490 eller at besøge et websted det er her i New Haven, 765 00:35:06,490 --> 00:35:09,200 undertiden dine data måske først tage en omvej, gå ned til DC, 766 00:35:09,200 --> 00:35:10,450 og så komme op igen. 767 00:35:10,450 --> 00:35:12,860 Og det er netop på grund af de dynamiske routing beslutninger 768 00:35:12,860 --> 00:35:14,650 at disse computere gør. 769 00:35:14,650 --> 00:35:18,930 >> Nu bare for sjov, produktionen team trimmet en af ​​disse videoer for os 770 00:35:18,930 --> 00:35:20,807 at bare være lidt mere kortfattet. 771 00:35:20,807 --> 00:35:23,640 Men for at give os en hurtig fornemmelse her-- og vi kan forlade lysene on-- 772 00:35:23,640 --> 00:35:32,363 som til hvor meget kabelføring er faktisk transporterer alle vores data. 773 00:35:32,363 --> 00:35:33,029 [VIDEO PLAYBACK] 774 00:35:33,029 --> 00:35:36,023 [Musik spiller] 775 00:35:36,023 --> 00:36:31,911 776 00:36:31,911 --> 00:36:32,777 [END AFSPIL] 777 00:36:32,777 --> 00:36:35,860 DAVID J. MALAN: Alle netværk videoer have køligt klingende musik tilsyneladende. 778 00:36:35,860 --> 00:36:38,084 Så det er for at få bare en følelse af, hvor meget har 779 00:36:38,084 --> 00:36:39,500 stået på under hætten. 780 00:36:39,500 --> 00:36:41,355 >> Men lad os se på et lidt lavere niveau nu 781 00:36:41,355 --> 00:36:44,150 på, hvad data er faktisk gennemkører disse linjer, 782 00:36:44,150 --> 00:36:46,720 og endda gå trådløst i et rum som dette. 783 00:36:46,720 --> 00:36:49,580 >> Så det viser sig, når du anmoder om en webside, eller send en e-mail, 784 00:36:49,580 --> 00:36:53,670 eller modtage en webside, eller en e-mail eller en Gchat besked eller en Facebook-besked, 785 00:36:53,670 --> 00:36:57,800 eller lignende, som er ikke bare én stor luns af bits flyder trådløst 786 00:36:57,800 --> 00:37:00,600 gennem luft eller elektronisk på en wire. 787 00:37:00,600 --> 00:37:03,680 Snarere, denne anmodning eller reaktion er generelt 788 00:37:03,680 --> 00:37:05,810 chunked op i separate stykker. 789 00:37:05,810 --> 00:37:08,880 >> Så med andre ord, når du har en anmode om at få en anden computer, 790 00:37:08,880 --> 00:37:10,980 eller du får tilbage et svar fra en anden computer-- 791 00:37:10,980 --> 00:37:15,800 Ligesom Antag, for eksempel, hvis unfamiliar-- som alt for mange mennesker 792 00:37:15,800 --> 00:37:18,400 synes at være disse days-- hvis uvant med denne-- 793 00:37:18,400 --> 00:37:20,200 ikke dette fellow-- denne fyr. 794 00:37:20,200 --> 00:37:23,950 Så formoder, det er et budskab, Jeg ønsker at sende til en person i ryggen. 795 00:37:23,950 --> 00:37:28,930 Hvem i den meget tilbage gerne vil modtager et billede af Rick Astley i dag? 796 00:37:28,930 --> 00:37:29,805 OK, hvad er dit navn? 797 00:37:29,805 --> 00:37:30,590 >> PUBLIKUM: Cole. 798 00:37:30,590 --> 00:37:31,306 >> DAVID J. MALAN: Hvad er det? 799 00:37:31,306 --> 00:37:31,672 >> PUBLIKUM: 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 PUBLIKUM: 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 Undskyld. 805 00:37:35,520 --> 00:37:36,430 C-O-L-E. 806 00:37:36,430 --> 00:37:36,930 Okay. 807 00:37:36,930 --> 00:37:40,990 Så hvis jeg ønsker at sende Cole denne billede her, du kender denne 808 00:37:40,990 --> 00:37:42,410 er lidt af et stort billede, ikke? 809 00:37:42,410 --> 00:37:44,472 Dette kunne være et par kilobyte, et par megabyte, 810 00:37:44,472 --> 00:37:45,930 især hvis det er høj opløsning. 811 00:37:45,930 --> 00:37:48,660 Og jeg har ikke rigtig lyst til at stoppe alle andre fra at bruge internettet 812 00:37:48,660 --> 00:37:50,680 lige mens jeg sender dette virkelig store, høj kvalitet billede 813 00:37:50,680 --> 00:37:52,138 Rick Astley i hele lokalet. 814 00:37:52,138 --> 00:37:55,310 Jeg vil gerne dine data til fortsat krydse netværket og Wi-Fi 815 00:37:55,310 --> 00:37:56,100 samt. 816 00:37:56,100 --> 00:38:00,100 >> Og så det gør sense-- og dette er genindvindingsværdien elektronisk, 817 00:38:00,100 --> 00:38:01,780 ikke så meget i den virkelige verden. 818 00:38:01,780 --> 00:38:04,904 Faktisk er det kommer til at have flere betydninger, hvis du tager min lyd ud. 819 00:38:04,904 --> 00:38:08,360 Så hvis jeg rive det i halvdelen som denne her, 820 00:38:08,360 --> 00:38:11,912 det nu kan rejse internet mere effektivt, 821 00:38:11,912 --> 00:38:13,120 fordi det er et mindre stykke. 822 00:38:13,120 --> 00:38:16,780 Så med lavere sandsynlighed er det at gå til at kollidere med en andens trafik 823 00:38:16,780 --> 00:38:17,650 på internettet. 824 00:38:17,650 --> 00:38:21,240 >> Og så hvad din computer faktisk gør når du ønsker at sende en besked til Cole 825 00:38:21,240 --> 00:38:24,917 er det klumper en besked som dette i mindre stykker, fragmenter så at sige. 826 00:38:24,917 --> 00:38:28,000 Og så sætter dem inde i, hvad vi vil kalde en slags virtuelle kuverter. 827 00:38:28,000 --> 00:38:29,620 >> Så jeg har fire papirkonvolutter her. 828 00:38:29,620 --> 00:38:32,690 Og jeg har pre-nummereret dem, en, to, tre og fire. 829 00:38:32,690 --> 00:38:35,800 Og hvad jeg har tænkt mig at gøre på forsiden af dette, ligesom en normal mailing, 830 00:38:35,800 --> 00:38:38,000 er jeg har tænkt mig at sætte Cole navn der. 831 00:38:38,000 --> 00:38:41,270 Og derefter ved toppen, jeg kommer til at sætte mit navn der, 832 00:38:41,270 --> 00:38:44,995 David, således at den første pakke Jeg sender derude på internettet 833 00:38:44,995 --> 00:38:47,620 ser lidt noget lignende dette, de fremtrædende karakteristika 834 00:38:47,620 --> 00:38:50,830 af dem er, at det har en at tage fat, en fra adresse, 835 00:38:50,830 --> 00:38:52,670 og også en række, så at der forhåbentlig 836 00:38:52,670 --> 00:38:55,680 er tilstrækkelige oplysninger til Cole at rekonstruere denne meddelelse. 837 00:38:55,680 --> 00:38:58,820 >> Så lad mig gøre det samme her, den samme her, og det samme her, 838 00:38:58,820 --> 00:39:01,310 skrive sit navn i Feltet på dem alle. 839 00:39:01,310 --> 00:39:04,240 Og så lad os gå videre og sætte disse billeder inde. 840 00:39:04,240 --> 00:39:06,540 >> Så her er en pakke der er klar til at gå. 841 00:39:06,540 --> 00:39:09,780 Her er en anden pakke der er klar til at gå. 842 00:39:09,780 --> 00:39:14,100 Her er et tredje pakke der er klar til at gå. 843 00:39:14,100 --> 00:39:16,870 Og her er en fjerde pakke, der er klar til at gå. 844 00:39:16,870 --> 00:39:19,849 >> Og nu, hvad der er interessant ved hvordan internettet i virkeligheden værker 845 00:39:19,849 --> 00:39:22,140 er, at selvom jeg har fået fire pakker, som alle 846 00:39:22,140 --> 00:39:24,730 er bestemt til samme placering, de er ikke nødvendigvis 847 00:39:24,730 --> 00:39:26,870 kommer til at krydse den samme rute. 848 00:39:26,870 --> 00:39:32,070 Og så selvom jeg måske aflevere disse pakker ud til den nærmeste router 849 00:39:32,070 --> 00:39:36,660 lad os sige, hvis du gerne vil sende dem alle hvilket måde, lad os se 850 00:39:36,660 --> 00:39:40,706 hvad der rent faktisk sker, målet med som er at få dem i sidste ende til Cole. 851 00:39:40,706 --> 00:39:44,850 852 00:39:44,850 --> 00:39:48,770 Og ja, de er allerede ikke nødvendigvis tage samme retning. 853 00:39:48,770 --> 00:39:50,510 Og det er fint. 854 00:39:50,510 --> 00:39:52,480 Dette er lidt akavet og Oprah stil i dag. 855 00:39:52,480 --> 00:39:56,540 >> Og lad mig nu bevidst tage en tilbage. 856 00:39:56,540 --> 00:40:00,196 Og nu Cole, hvis du gerne vil samle det så godt du kan. 857 00:40:00,196 --> 00:40:06,610 858 00:40:06,610 --> 00:40:10,180 Selvfølgelig kan vi alle gætte, hvad konklusionen her kommer til at være. 859 00:40:10,180 --> 00:40:12,600 Du kommer til at have 3/4 af Rick Astley på blot et øjeblik. 860 00:40:12,600 --> 00:40:15,920 861 00:40:15,920 --> 00:40:19,291 Og hvad er dog det implikation af dette? 862 00:40:19,291 --> 00:40:20,540 Du ønsker at prøve at holde det op? 863 00:40:20,540 --> 00:40:23,540 Vi har et kamera pegede på dig, hvis du gerne vil 864 00:40:23,540 --> 00:40:26,226 at posere med Rick Astley herovre. 865 00:40:26,226 --> 00:40:28,610 866 00:40:28,610 --> 00:40:29,510 Der vi går. 867 00:40:29,510 --> 00:40:30,410 Dejligt. 868 00:40:30,410 --> 00:40:33,230 >> Men du synes at mangle et fragment af Rick Astley. 869 00:40:33,230 --> 00:40:37,015 Så det viser sig, at internettet er ofte drevet af ikke kun IP, 870 00:40:37,015 --> 00:40:39,890 men i virkeligheden vi hørte på den meget begyndelsen af ​​foredrag i denne video-- 871 00:40:39,890 --> 00:40:42,473 og du har sikkert set dette akronym mere often-- hvad der virkelig 872 00:40:42,473 --> 00:40:44,360 er den protokol, du har tendens til at høre om? 873 00:40:44,360 --> 00:40:45,120 >> PUBLIKUM: TCP / IP. 874 00:40:45,120 --> 00:40:48,090 >> DAVID J. MALAN: TCP / IP, som er blot en kombination 875 00:40:48,090 --> 00:40:49,940 af to protokoller, en kaldet IP. 876 00:40:49,940 --> 00:40:52,640 Hvilket igen, er bare det sæt konventioner via hvilke vi 877 00:40:52,640 --> 00:40:54,740 løse hver computer på internettet. 878 00:40:54,740 --> 00:40:56,930 Og derefter TCP, som tjener et andet formål. 879 00:40:56,930 --> 00:41:00,110 >> TCP er en protokol, som du anvender typisk i forbindelse 880 00:41:00,110 --> 00:41:04,410 med IP, at der blandt andet ting, garanterer levering. 881 00:41:04,410 --> 00:41:08,860 Faktisk TCP er den protokol, ville bemærke, at en af ​​pakkerne 882 00:41:08,860 --> 00:41:10,930 tilsyneladende ikke komme til Cole, fordi han synes 883 00:41:10,930 --> 00:41:12,830 at mangle nummer fire ud af fire. 884 00:41:12,830 --> 00:41:16,530 Og så hvad TCP, en protokol gør, er det fortæller Cole, 885 00:41:16,530 --> 00:41:19,850 hey Cole, hvis du modtager kun tre ud af fire pakker, 886 00:41:19,850 --> 00:41:22,600 fortælle mig, hvilken en du mangler det væsentlige, 887 00:41:22,600 --> 00:41:25,570 og derefter mit formål i livet bør være at videresende det. 888 00:41:25,570 --> 00:41:28,580 >> Og så hvis jeg også, det afsender, bruger TCP, 889 00:41:28,580 --> 00:41:31,810 Jeg skulle derefter oprette en ny packet-- det ikke rynkede én her-- 890 00:41:31,810 --> 00:41:35,980 gensende netop dette stykke det, så der i sidste ende Cole 891 00:41:35,980 --> 00:41:38,280 en komplet souvenir, hvis intet andet. 892 00:41:38,280 --> 00:41:43,000 Men så i sidste ende de data, faktisk får til dets korrekte destination. 893 00:41:43,000 --> 00:41:48,020 >> Men desværre, skriver Cole navn på forsiden ikke er tilstrækkelig i sig selv. 894 00:41:48,020 --> 00:41:50,270 Og virkelig, ville jeg ikke skrive Cole navn, men sandsynligvis 895 00:41:50,270 --> 00:41:51,655 sin IP-adresse på konvolutten. 896 00:41:51,655 --> 00:41:52,780 Og jeg vil ikke skrive David. 897 00:41:52,780 --> 00:41:56,550 Jeg ville skrive min IP-adresse på konvolutten således at computerne kan faktisk 898 00:41:56,550 --> 00:41:57,999 kommunikerer frem og tilbage. 899 00:41:57,999 --> 00:42:00,540 Men det viser sig, at computere kan gøre måde mere end tjene op 900 00:42:00,540 --> 00:42:01,900 billeder af Rick Astley. 901 00:42:01,900 --> 00:42:05,340 De kan også sende og modtage e-mails, chat-beskeder. 902 00:42:05,340 --> 00:42:09,780 De kan gøre ting som filoverførsler, og et antal andre værktøjer 903 00:42:09,780 --> 00:42:12,330 du bruger på internettet, servere kan gøre disse dage. 904 00:42:12,330 --> 00:42:15,300 >> Og bare fordi en virksomhed, eller en skole, eller en person, 905 00:42:15,300 --> 00:42:19,420 ønsker at have en web-server, samt en e-mail-server, og en chat-server, 906 00:42:19,420 --> 00:42:21,420 betyder ikke, du har brug for tre computere. 907 00:42:21,420 --> 00:42:26,200 Du kan have bare en computer, der kører flere tjenester, så at sige. 908 00:42:26,200 --> 00:42:29,190 >> Og så når Cole modtager et budskab som det, hvordan 909 00:42:29,190 --> 00:42:32,940 gør sin computer, om at viser, at billedet i sin browser, 910 00:42:32,940 --> 00:42:37,730 eller i Gchat, eller i Facebook Messenger, eller i et vilkårligt antal andre værktøjer? 911 00:42:37,730 --> 00:42:40,430 >> Så det viser sig også på at som konvolut er ekstra stykke 912 00:42:40,430 --> 00:42:43,070 information kendt som et portnummer. 913 00:42:43,070 --> 00:42:45,240 Og et portnummer er bare et nummer ja, 914 00:42:45,240 --> 00:42:48,342 men det entydigt identificerer ikke computeren, men tjenesten. 915 00:42:48,342 --> 00:42:49,550 Og der er klaser af disse. 916 00:42:49,550 --> 00:42:51,258 Så det viser sig, at i verden, mennesker 917 00:42:51,258 --> 00:42:57,095 har besluttet på et par sådan konventioner, hvoraf nogle er disse. 918 00:42:57,095 --> 00:42:59,220 Så der er noget, der hedder File Transfer Protocol. 919 00:42:59,220 --> 00:42:59,870 Det er temmelig dateret. 920 00:42:59,870 --> 00:43:00,970 Det er helt usikker. 921 00:43:00,970 --> 00:43:02,320 En masse mennesker stadig bruge det. 922 00:43:02,320 --> 00:43:04,240 Og det bruger portnummer 21. 923 00:43:04,240 --> 00:43:07,250 Med andre ord, hvis afsendelse af en fil via FTP, 924 00:43:07,250 --> 00:43:10,570 konvolutten ville have ikke blot afsender og modtager IP-adresse, 925 00:43:10,570 --> 00:43:14,020 Det ville også have nummer 21, så at den modtagende computer kender åh, dette 926 00:43:14,020 --> 00:43:17,280 er en fil, ikke en e-mail eller en chatbesked. 927 00:43:17,280 --> 00:43:19,016 >> 25 er SMTP. 928 00:43:19,016 --> 00:43:20,516 Hvor mange af jer nogensinde har brugt SMTP? 929 00:43:20,516 --> 00:43:22,850 930 00:43:22,850 --> 00:43:23,380 Forkert. 931 00:43:23,380 --> 00:43:24,490 Næsten alle af jer har. 932 00:43:24,490 --> 00:43:28,730 Hvis du nogensinde har brugt e-mail, du har brugt SMTP, Simple Mail Transfer Protocol, 933 00:43:28,730 --> 00:43:32,300 som er blot en fancy måde at sige, det er den form for computer eller tjeneste 934 00:43:32,300 --> 00:43:34,600 der sender dine e-mail-udgående. 935 00:43:34,600 --> 00:43:38,780 >> Og hvis du nogensinde har set akronymer som POP eller IMAP, og der er et par andre, 936 00:43:38,780 --> 00:43:40,670 de er til at modtage e-mail, typisk. 937 00:43:40,670 --> 00:43:42,650 Det betyder blot, det er en anden tjeneste. 938 00:43:42,650 --> 00:43:45,850 Det er software, at nogen skrev, at sender til eller lytter 939 00:43:45,850 --> 00:43:48,880 på et bestemt portnummer så at det ikke forveksle emails 940 00:43:48,880 --> 00:43:50,360 med en anden type af data. 941 00:43:50,360 --> 00:43:55,500 >> Nu internettet er HTTP, som er nummer 80, og også port 443. 942 00:43:55,500 --> 00:43:57,590 Og i virkeligheden, selv om Vi mennesker heldigvis 943 00:43:57,590 --> 00:43:59,610 behøver ikke at gøre dette, helst du besøger 944 00:43:59,610 --> 00:44:05,810 en hjemmeside som http://www.yale.edu, browseren 945 00:44:05,810 --> 00:44:07,790 er bare at være slags nyttige i, at det er 946 00:44:07,790 --> 00:44:10,970 antage, at du ønsker numerisk port 80. 947 00:44:10,970 --> 00:44:15,710 Vi ved allerede, at DNS kan regne ud hvad IP-adressen er www.yale.edu. 948 00:44:15,710 --> 00:44:17,970 Men computeren er lige kommer til at udlede, at man 949 00:44:17,970 --> 00:44:21,560 ønsker port 80, fordi du bruger Chrome eller IE, eller en anden browser. 950 00:44:21,560 --> 00:44:24,930 Men jeg kunne teknisk set gøre kolon 80. 951 00:44:24,930 --> 00:44:28,520 Og så kan jeg udtrykkeligt fortælle min browser, sende en pakke eller mere 952 00:44:28,520 --> 00:44:32,080 af oplysninger til www.yale.edu anmoder om dagens hjemmeside. 953 00:44:32,080 --> 00:44:36,070 Men specifikt, adresse det til Yale IP på port 80 954 00:44:36,070 --> 00:44:39,190 så jeg faktisk får sikkerhedskopiere Yale webserver. 955 00:44:39,190 --> 00:44:42,229 >> Nu er det straks forsvinder fordi browsere bare 956 00:44:42,229 --> 00:44:44,020 beslutte, at vi ikke nødt til at forvirre mennesker 957 00:44:44,020 --> 00:44:46,810 ved at have endnu mere mystiske oplysninger som kolon 80. 958 00:44:46,810 --> 00:44:50,640 Og helt ærligt, browsere Ligesom Chrome ikke engang 959 00:44:50,640 --> 00:44:55,464 vise dig HTTP længere eller tyktarmen eller skråstreg skråstreg, eller skråstreg, 960 00:44:55,464 --> 00:44:58,380 i en vis forstand, fordi de forsøger at gøre tingene enklere for brugerne. 961 00:44:58,380 --> 00:45:01,080 I en anden forstand, er det bare lidt af en brugeroplevelse thing-- 962 00:45:01,080 --> 00:45:02,720 lad os slippe af med nogle af rod. 963 00:45:02,720 --> 00:45:05,405 Men det skjuler nogle af disse underliggende detaljer. 964 00:45:05,405 --> 00:45:09,360 >> Og faktisk ingen af ​​os formentlig nogensinde skrive http længere. 965 00:45:09,360 --> 00:45:12,060 Du skal bare skrive noget ligesom www.harvard.edu. 966 00:45:12,060 --> 00:45:15,310 Og igen, Chrome udleder som du ønsker HTTP. 967 00:45:15,310 --> 00:45:18,970 Men der er andre protokoller at vi helt sikkert kunne bruge. 968 00:45:18,970 --> 00:45:24,480 >> Så givet alt dette, hvis du nu sortere af sætte på den såkaldte engineering hat, 969 00:45:24,480 --> 00:45:27,417 hvordan tingene kaldet firewalls arbejde? 970 00:45:27,417 --> 00:45:29,750 Så er du sandsynligvis generelt bekendt med firewall, 971 00:45:29,750 --> 00:45:30,990 ikke så meget i fysisk forstand. 972 00:45:30,990 --> 00:45:32,470 Så tilbage i dag, og stadig den dag i dag, 973 00:45:32,470 --> 00:45:35,430 hvis du har fået ligesom striben indkøbscentre til eksempel, der har en masse butikker, 974 00:45:35,430 --> 00:45:38,500 generelt vægge i mellem enkelte butikker eller butikker 975 00:45:38,500 --> 00:45:43,180 er firewalls i den forstand, at de har særlig isolering 976 00:45:43,180 --> 00:45:45,310 således at hvis en brand bryder ud i en butik, 977 00:45:45,310 --> 00:45:48,210 det gør ikke nødvendigvis spredes til butikken ved siden af. 978 00:45:48,210 --> 00:45:51,710 >> Computeren verden har også firewalls at gøre noget anderledes. 979 00:45:51,710 --> 00:45:52,798 Hvad gør en ildkugle gøre? 980 00:45:52,798 --> 00:45:53,298 Ja? 981 00:45:53,298 --> 00:45:55,290 >> PUBLIKUM: Dybest set de afskåret forbindelsen 982 00:45:55,290 --> 00:45:59,493 hvis de støder på noget som for eksempel, 983 00:45:59,493 --> 00:46:01,361 de har antal id udsagn. 984 00:46:01,361 --> 00:46:04,340 Og hvis der sker noget, de skære forbindelsen. 985 00:46:04,340 --> 00:46:07,570 Ligesom hvis denne ondsindede angreb [Uhørligt] din computer, eller-- 986 00:46:07,570 --> 00:46:08,630 >> DAVID J. MALAN: OK godt. 987 00:46:08,630 --> 00:46:11,220 Ja, og i virkeligheden er du endda gå lidt længere 988 00:46:11,220 --> 00:46:14,590 i at beskrive noget, der kunne være kaldet en intrusion detection system, 989 00:46:14,590 --> 00:46:18,305 eller IDS for korte, hvor du faktisk har regler defineret. 990 00:46:18,305 --> 00:46:22,140 Og hvis du begynder at se mistænkelig adfærd, du forsøger at sætte en stopper for det. 991 00:46:22,140 --> 00:46:24,250 >> Og en firewall, helt ærligt, på et netværk niveau, 992 00:46:24,250 --> 00:46:26,821 er endnu dummere og enklere end det, generelt. 993 00:46:26,821 --> 00:46:29,070 Og der er forskellige typer af firewalls i verden. 994 00:46:29,070 --> 00:46:31,569 Men dem, der opererer på det niveau, vi taler today-- 995 00:46:31,569 --> 00:46:35,330 IP og TCP-- arbejde endnu mere ligefrem. 996 00:46:35,330 --> 00:46:39,180 >> For eksempel, hvis du var Yale-system administratorer eller Harvard systemet 997 00:46:39,180 --> 00:46:42,020 administratorer, eller nogle store Bror på nogle selskab, 998 00:46:42,020 --> 00:46:45,040 og du ønskede at forhindre alle dine studerende eller alle dine medarbejdere 999 00:46:45,040 --> 00:46:47,619 fra at gå til facebook.com, alt hvad du skal gøre 1000 00:46:47,619 --> 00:46:50,160 er at sikre, at alle deres netværkstrafik, først og fremmest, 1001 00:46:50,160 --> 00:46:51,850 går gennem en særlig anordning. 1002 00:46:51,850 --> 00:46:53,030 Lad os kalde det en firewall. 1003 00:46:53,030 --> 00:46:54,910 >> Og det er fint, fordi du kan gøre din router 1004 00:46:54,910 --> 00:46:57,618 det samme som en firewall, hvis du lægger den samme form for software 1005 00:46:57,618 --> 00:46:58,940 på samme maskine. 1006 00:46:58,940 --> 00:47:01,780 Så hvis alle dine elever eller medarbejdere trafik 1007 00:47:01,780 --> 00:47:04,450 går gennem dette centrale firewall, hvor 1008 00:47:04,450 --> 00:47:08,540 ville vi blokere folk fra at gå til facebook.com, for eksempel? 1009 00:47:08,540 --> 00:47:10,780 Hvad ville systemet administrator skal gøre? 1010 00:47:10,780 --> 00:47:11,370 Nogen andre? 1011 00:47:11,370 --> 00:47:12,911 Lad os prøve at gå rundt. 1012 00:47:12,911 --> 00:47:15,074 >> PUBLIKUM: [uhørligt] 1013 00:47:15,074 --> 00:47:16,365 DAVID J. MALAN: Sig det igen? 1014 00:47:16,365 --> 00:47:19,215 PUBLIKUM: Den skal bare få fanget inde i systemet. 1015 00:47:19,215 --> 00:47:22,487 Så bare sætte Facebook i 127.0.0-- 1016 00:47:22,487 --> 00:47:23,820 DAVID J. MALAN: Åh, interessant. 1017 00:47:23,820 --> 00:47:27,290 Så du kan faktisk derefter hacke din DNS-systemet. 1018 00:47:27,290 --> 00:47:31,180 Dette er faktisk en måde, du kunne gøre dette hvorved enhver tid en Yale-studerende trækker 1019 00:47:31,180 --> 00:47:34,670 op www.facebook.com alle af os her i dag på campus 1020 00:47:34,670 --> 00:47:38,590 bruger Yale DNS-server, fordi Yale DHCP server gav os 1021 00:47:38,590 --> 00:47:39,580 denne adresse. 1022 00:47:39,580 --> 00:47:42,490 Så ja, kunne du slags bryde ting eller pause konvention 1023 00:47:42,490 --> 00:47:49,190 ved blot at sige, ja, facebook.com adresse er falsk, 1024 00:47:49,190 --> 00:47:52,530 er 1.2.3.4, som er faktisk ikke legitimt. 1025 00:47:52,530 --> 00:47:53,930 Eller måske er det 278. 1026 00:47:53,930 --> 00:47:57,460 hvad der var i tv-showet en øjeblik siden, så ingen af ​​os 1027 00:47:57,460 --> 00:47:59,176 kan faktisk besøge facebook.com. 1028 00:47:59,176 --> 00:48:00,590 >> Så formoder Yale gjorde det. 1029 00:48:00,590 --> 00:48:03,336 Antag Yale ønskede at holde dig ud af facebook.com. 1030 00:48:03,336 --> 00:48:05,700 Og derfor, de ændrede DNS-indstillinger 1031 00:48:05,700 --> 00:48:08,812 at give dig en falsk IP tage fat på facebook.com. 1032 00:48:08,812 --> 00:48:10,616 Hvordan du reagerer? 1033 00:48:10,616 --> 00:48:12,990 Teknisk set not-- åh, nu alle ønsker at deltage. 1034 00:48:12,990 --> 00:48:13,490 OK, ja. 1035 00:48:13,490 --> 00:48:16,190 PUBLIKUM: Du skal bare skrive i den faktiske IP-adresse Facebook. 1036 00:48:16,190 --> 00:48:16,710 >> DAVID J. MALAN: OK, godt. 1037 00:48:16,710 --> 00:48:19,350 Så vi kunne bare skrive i den faktiske IP-adresse Facebook, 1038 00:48:19,350 --> 00:48:21,090 meget som jeg gjorde med Yale hjemmeside. 1039 00:48:21,090 --> 00:48:24,636 Og hvis Facebook-serveren er konfigureret at støtte, at hvis det rent faktisk fungerer. 1040 00:48:24,636 --> 00:48:26,510 Det er en mindre smerte i halsen, fordi vi nu 1041 00:48:26,510 --> 00:48:30,220 skal huske nogle tilfældige 32-bit værdi, men det kunne arbejde. 1042 00:48:30,220 --> 00:48:31,622 Hvad kunne du gøre? 1043 00:48:31,622 --> 00:48:32,121 Ja. 1044 00:48:32,121 --> 00:48:35,117 >> PUBLIKUM: Du kan ændre disse indstillinger [uhørligt]. 1045 00:48:35,117 --> 00:48:37,700 DAVID J. MALAN: Ja, kunne du selv ændre dine DNS-indstillinger. 1046 00:48:37,700 --> 00:48:40,480 Så i virkeligheden er det faktisk temmelig nyttigt, helt ærligt, 1047 00:48:40,480 --> 00:48:45,590 hvis du er i en lufthavn, eller hvis du er i en cafe, eller noget, der 1048 00:48:45,590 --> 00:48:48,834 har skællet internet hvorved undertiden DNS-serveren bare standser arbejdet. 1049 00:48:48,834 --> 00:48:51,000 Så selv jeg lejlighedsvis gøre dette, ikke for skadelig, jeg 1050 00:48:51,000 --> 00:48:52,750 ønsker at bruge Facebook formål, men virkelig 1051 00:48:52,750 --> 00:48:56,344 fordi jeg synes at have et netværk forbindelse, men intet virker. 1052 00:48:56,344 --> 00:48:58,260 Og så en af ​​de første ting, jeg try-- og du 1053 00:48:58,260 --> 00:49:01,710 kan gøre dette på Windows too-- men på min Mac, hvis jeg går til Netværk. 1054 00:49:01,710 --> 00:49:03,330 Og jeg vælger min Wi-Fi-forbindelse. 1055 00:49:03,330 --> 00:49:04,750 Og jeg går til Avanceret. 1056 00:49:04,750 --> 00:49:06,080 Og jeg går til DNS. 1057 00:49:06,080 --> 00:49:08,260 Det er de tre IP-adresser, Yale 1058 00:49:08,260 --> 00:49:10,290 er at give mig for tre DNS-servere. 1059 00:49:10,290 --> 00:49:14,110 Formålet er så for mig at prøve en en af ​​disse til at finde adresser. 1060 00:49:14,110 --> 00:49:15,946 >> Men jeg kan tilsidesætte disse ved at gøre et plus. 1061 00:49:15,946 --> 00:49:18,333 Og nogen ønsker at foreslå en DNS-server? 1062 00:49:18,333 --> 00:49:19,120 >> PUBLIKUM: 8.8.8.8? 1063 00:49:19,120 --> 00:49:20,578 >> DAVID J. MALAN: Åh, du er fantastisk. 1064 00:49:20,578 --> 00:49:21,650 Ja, 8.8.8.8. 1065 00:49:21,650 --> 00:49:26,170 Så Google, velsigne deres hjerter, købte IP-adressen 8.8.8.8, 1066 00:49:26,170 --> 00:49:29,560 fordi det slags ligner Gs sandsynligvis, og det er nemt at huske. 1067 00:49:29,560 --> 00:49:34,820 Men ja, nu har jeg konfigureret min computer til at bruge Googles DNS-server. 1068 00:49:34,820 --> 00:49:38,050 >> Så nu hvis jeg går til yale.edu, det stadig gå på arbejde. 1069 00:49:38,050 --> 00:49:40,100 Men jeg bruger ikke Yales DNS-servere længere. 1070 00:49:40,100 --> 00:49:44,430 Og hvis jeg går til facebook.com, alle dem ser ups 1071 00:49:44,430 --> 00:49:45,960 kommer til at gå gennem Google. 1072 00:49:45,960 --> 00:49:49,120 >> Så på den ene side, jeg har behændigt omgået det lokale system 1073 00:49:49,120 --> 00:49:51,810 administratorer blot ved forstå, hvordan netværk fungerer. 1074 00:49:51,810 --> 00:49:53,360 Men jeg betaler en pris. 1075 00:49:53,360 --> 00:49:54,740 Intet er gratis. 1076 00:49:54,740 --> 00:49:56,096 Hvad har jeg netop givet op? 1077 00:49:56,096 --> 00:50:00,180 1078 00:50:00,180 --> 00:50:02,250 Hvad har jeg netop givet op? 1079 00:50:02,250 --> 00:50:06,090 Alle af jer kloge mennesker, der har brugt 8.8.8.8, fordi det er cool 1080 00:50:06,090 --> 00:50:10,440 eller løser problemer, hvad har du lavet i al den tid? 1081 00:50:10,440 --> 00:50:11,910 >> PUBLIKUM: Traveling længere? 1082 00:50:11,910 --> 00:50:15,201 >> DAVID J. MALAN: Måske rejser længere, fordi Google er nok ikke helt så 1083 00:50:15,201 --> 00:50:16,770 tæt som serveren ned ad gaden. 1084 00:50:16,770 --> 00:50:18,420 Men mere worrisomely. 1085 00:50:18,420 --> 00:50:18,920 Ja? 1086 00:50:18,920 --> 00:50:20,940 >> PUBLIKUM: Så nu Google ved, hvor du skal hen. 1087 00:50:20,940 --> 00:50:23,856 >> DAVID J. MALAN: Google ved bogstaveligt talt hvert websted, du besøger, 1088 00:50:23,856 --> 00:50:26,080 fordi du er bogstaveligt talt spørge dem, hey Google, 1089 00:50:26,080 --> 00:50:28,360 kan du oversætte yale.edu for mig? 1090 00:50:28,360 --> 00:50:32,430 Eller hey Google, kan du oversætte denne hjemmeside adresse andet for mig 1091 00:50:32,430 --> 00:50:33,334 til en IP-adresse. 1092 00:50:33,334 --> 00:50:35,750 Og så they're-- jeg har ingen idé om, hvad du taler om. 1093 00:50:35,750 --> 00:50:38,080 Og så de ved alt om dig. 1094 00:50:38,080 --> 00:50:42,180 Så indse, at dette er en gratis service med et formål fra deres perspektiv 1095 00:50:42,180 --> 00:50:42,680 samt. 1096 00:50:42,680 --> 00:50:44,420 Men det kan helt sikkert få dig ud af et dilemma. 1097 00:50:44,420 --> 00:50:46,380 >> Nu bare for at løse ét andet problem, der ofte kommer op 1098 00:50:46,380 --> 00:50:48,640 blandt studerende, især når du rejser internationalt 1099 00:50:48,640 --> 00:50:50,765 i visse lande som Kina, hvor der faktisk 1100 00:50:50,765 --> 00:50:54,559 er en Great Firewall of China hvorved regeringen der blokerer ganske 1101 00:50:54,559 --> 00:50:56,100 lidt trafik på forskellige niveauer. 1102 00:50:56,100 --> 00:50:58,141 Du behøver ikke at bare afspærring af trafikken på det niveau, 1103 00:50:58,141 --> 00:51:01,240 vi taler her, DNS eller på anden måde, du kan blokere det på andre niveauer. 1104 00:51:01,240 --> 00:51:04,030 >> Og i virkeligheden, for blot at være klar, en firewall 1105 00:51:04,030 --> 00:51:08,400 kan fungere endnu mere enkelt end blot har de systemadministratorer ændrer 1106 00:51:08,400 --> 00:51:09,500 DNS-indstillinger. 1107 00:51:09,500 --> 00:51:12,920 En firewall, en anordning i mellem os og resten af ​​verden, 1108 00:51:12,920 --> 00:51:16,850 kunne bare blokere alle udgående anmodninger til IP-adressen 1109 00:51:16,850 --> 00:51:21,240 for Facebook på port 80, eller IP-adressen til harvard.edu, 1110 00:51:21,240 --> 00:51:22,580 eller IP-adressen på noget. 1111 00:51:22,580 --> 00:51:26,280 Så en firewall kan se på din kuverter 'IP-adresser og endda havn 1112 00:51:26,280 --> 00:51:29,384 numre, og hvis Yale ville, det kunne bare stoppe os alle 1113 00:51:29,384 --> 00:51:32,550 fra selv længere ved hjælp af FTP, hvilket ville sandsynligvis være en god ting, fordi det 1114 00:51:32,550 --> 00:51:34,320 er faktisk en usikker protokol. 1115 00:51:34,320 --> 00:51:37,620 Yale kunne endda stoppe os fra besøger helhed af banen 1116 00:51:37,620 --> 00:51:42,632 bare ved at blokere alle havn trafik på antallet 80 samt. 1117 00:51:42,632 --> 00:51:43,840 Så der kan være en anden måde. 1118 00:51:43,840 --> 00:51:45,740 Og der er endda mere avanceret måder. 1119 00:51:45,740 --> 00:51:47,770 >> Men når du er på farten udlandet for eksempel, 1120 00:51:47,770 --> 00:51:50,740 eller hvis du er i en internet-cafe, eller hvis du er overalt, hvor der er 1121 00:51:50,740 --> 00:51:53,179 blokeringer eller trusler, hvad kan du gøre? 1122 00:51:53,179 --> 00:51:56,220 Tja, hvis du går ned ad gaden til Starbucks eller du rejser i en lufthavn, 1123 00:51:56,220 --> 00:51:58,780 generelt kan du bare hoppe på Wi-Fi ved at vælge 1124 00:51:58,780 --> 00:52:04,631 lignende, JFK Wi-Fi i LaGuardia Wi-Fi, eller Logan Airport Wi-Fi, eller hvad ikke. 1125 00:52:04,631 --> 00:52:05,880 Og det er ikke krypteret, ikke? 1126 00:52:05,880 --> 00:52:06,949 Der er ingen hængelås ikon. 1127 00:52:06,949 --> 00:52:09,490 Og du sandsynligvis ikke bedt for et brugernavn og en adgangskode. 1128 00:52:09,490 --> 00:52:11,240 Du er bare bedt med nogle dum formular 1129 00:52:11,240 --> 00:52:15,260 at sige lignende, jeg er enige om at bruge dette kun i 30 minutter, eller noget lignende. 1130 00:52:15,260 --> 00:52:18,761 >> Men der er ingen kryptering mellem du og Starbucks Wi-Fi 1131 00:52:18,761 --> 00:52:20,760 punkt, de ting med antennerne på væggen. 1132 00:52:20,760 --> 00:52:24,840 Der er ingen kryptering mellem dig og lufthavnens Wi-Fi-signaler. 1133 00:52:24,840 --> 00:52:29,060 >> Og så teknisk, at uhyggelig person, sidder et par pladser ned fra dig 1134 00:52:29,060 --> 00:52:31,970 i Starbucks eller i lufthavnen kunne være, med den rigtige software, 1135 00:52:31,970 --> 00:52:35,164 se alle dine trådløse trafik på hans eller hendes bærbare computer. 1136 00:52:35,164 --> 00:52:37,080 Det er ikke så svært at sætte en bærbar computer i, hvad der er 1137 00:52:37,080 --> 00:52:39,880 kaldes promiskuøs tilstand, der som navnet antyder, 1138 00:52:39,880 --> 00:52:41,760 betyder, at du er slags løs med reglerne. 1139 00:52:41,760 --> 00:52:44,740 Og det bare lytter ikke kun for trafik beregnet til det, 1140 00:52:44,740 --> 00:52:47,700 men også for alle andre er trafik inden for rækkevidde. 1141 00:52:47,700 --> 00:52:50,550 >> Og ved denne logik, kan det se alle de pakker af oplysninger 1142 00:52:50,550 --> 00:52:51,360 du modtager. 1143 00:52:51,360 --> 00:52:53,510 Og hvis disse pakker er ikke krypteret, du 1144 00:52:53,510 --> 00:52:56,680 er at sætte dig selv i fare for dine e-mails, eller dine beskeder, 1145 00:52:56,680 --> 00:52:58,620 eller noget andet at blive udsat for. 1146 00:52:58,620 --> 00:53:01,220 >> Så selvom du ikke er i udlandet men du er bare i Starbucks, 1147 00:53:01,220 --> 00:53:03,800 eller du er på nogle tilfældige persons Wi-Fi, der ikke er krypteret, 1148 00:53:03,800 --> 00:53:05,410 en VPN er en god ting. 1149 00:53:05,410 --> 00:53:07,410 Et VPN er et virtuelt privat netværk. 1150 00:53:07,410 --> 00:53:09,480 Og det er en teknologi der tillader dig at have 1151 00:53:09,480 --> 00:53:14,560 en krypteret, en kodet connection-- avanceret end Cæsar eller Vigenere-- 1152 00:53:14,560 --> 00:53:17,420 mellem din bærbare computer, eller din telefon, eller dit skrivebord, 1153 00:53:17,420 --> 00:53:22,460 og en server andetsteds, som en server på Yale campus. 1154 00:53:22,460 --> 00:53:25,840 >> Og hvis du rejser abroad-- og i virkeligheden, du finde dette i hoteller 1155 00:53:25,840 --> 00:53:26,560 hele tiden. 1156 00:53:26,560 --> 00:53:28,580 Og især da håbefulde dataloger 1157 00:53:28,580 --> 00:53:32,090 hvor du fyre kan, som nørder, ønsker at bruge andre end 80 havne, 1158 00:53:32,090 --> 00:53:35,770 og bortset 443-- porte og faktisk til problemet sæt seks, 1159 00:53:35,770 --> 00:53:39,280 vi kommer til at spille med flere TCP-porte bare ved choice-- en masse 1160 00:53:39,280 --> 00:53:42,940 af hoteller og butikker, og netværk bare blokere den slags ting 1161 00:53:42,940 --> 00:53:45,970 fordi de noget naivt, eller uvidenhed, bare tænk 1162 00:53:45,970 --> 00:53:48,010 at ingen har brug for disse andre havne. 1163 00:53:48,010 --> 00:53:51,150 >> Og så ved hjælp af en VPN kan du omgå den slags restriktioner, 1164 00:53:51,150 --> 00:53:54,050 fordi det, en VPN gør, er det giver dig mulighed på Starbucks, 1165 00:53:54,050 --> 00:53:58,630 eller i lufthavnen, eller hvor som helst i verden at forbinde encryptedly til yale.edu, 1166 00:53:58,630 --> 00:54:02,950 til nogle server her på campus, og derefter tunnel, så at sige, 1167 00:54:02,950 --> 00:54:06,570 alle dine trafik, uanset hvor du er gennem Yale, på hvilket tidspunkt 1168 00:54:06,570 --> 00:54:08,720 det så går til det endelige bestemmelsessted. 1169 00:54:08,720 --> 00:54:11,150 >> Men ved at kryptere det, du undgå enhver af disse former 1170 00:54:11,150 --> 00:54:15,380 af filtre eller indførelse, der nogle lokale netværk har pålagt. 1171 00:54:15,380 --> 00:54:17,980 Og plus, du har en langt mere robust forsvar 1172 00:54:17,980 --> 00:54:19,730 mod utryg mennesker omkring dig, som måske 1173 00:54:19,730 --> 00:54:21,300 være at forsøge at lytte med på din trafik. 1174 00:54:21,300 --> 00:54:24,591 Der kan stadig være utryg folk her hjem på Yale se din trafik 1175 00:54:24,591 --> 00:54:28,440 som det kommer ud af VPN, men mindst du har skubbet truslen længere væk. 1176 00:54:28,440 --> 00:54:30,490 Og det er også her, en afvejning. 1177 00:54:30,490 --> 00:54:33,645 >> Nu selvfølgelig, hvis du er i Kina eller endda i caféen, 1178 00:54:33,645 --> 00:54:35,770 og du er tunnel alle din trafik gennem Yale, 1179 00:54:35,770 --> 00:54:37,590 hvilken pris betaler vi måske? 1180 00:54:37,590 --> 00:54:38,272 >> PUBLIKUM: Hastighed. 1181 00:54:38,272 --> 00:54:39,480 DAVID J. MALAN: Hastighed, ikke? 1182 00:54:39,480 --> 00:54:41,430 Der er nødt til at være nogle matematik eller nogle fanciness involveret 1183 00:54:41,430 --> 00:54:42,574 i selve kryptering. 1184 00:54:42,574 --> 00:54:44,990 Der kan være tusinder af miles afstand eller tusinder 1185 00:54:44,990 --> 00:54:47,250 af miles af kabler mellem dig og Yale. 1186 00:54:47,250 --> 00:54:49,800 Og det er virkelig dårlig, hvis du er i Kina for eksempel, 1187 00:54:49,800 --> 00:54:51,650 og du ønsker at besøge en hjemmeside i Kina. 1188 00:54:51,650 --> 00:54:54,230 Og så dine data vil USA, og derefter tilbage til Kina 1189 00:54:54,230 --> 00:54:56,620 bare fordi du kryptere det gennem denne tunnel. 1190 00:54:56,620 --> 00:54:59,960 >> Men det løser tekniske og arbejde problemer ens. 1191 00:54:59,960 --> 00:55:02,050 Men det hele kan koges ned til disse meget enkle idéer. 1192 00:55:02,050 --> 00:55:06,530 Og Harvard, for dem nysgerrige, har en her så godt, ved vpn.harvard.edu, 1193 00:55:06,530 --> 00:55:09,150 der driver ligesom Yales. 1194 00:55:09,150 --> 00:55:12,580 >> Så med alt det sagt, hvorfor er hele dette netværk nyttigt? 1195 00:55:12,580 --> 00:55:14,080 Og hvad kan vi begynde at gøre med det? 1196 00:55:14,080 --> 00:55:15,630 Nå, lad os gøre det nu mere reel. 1197 00:55:15,630 --> 00:55:17,610 Dette er en forkortelse med som de fleste af os 1198 00:55:17,610 --> 00:55:22,140 er formentlig super familiar-- HTTP-- som står for Hyper Text overførsel 1199 00:55:22,140 --> 00:55:22,950 protokol. 1200 00:55:22,950 --> 00:55:26,460 Og det betyder bare, det er sproget, protokollen 1201 00:55:26,460 --> 00:55:29,140 at webbrowsere og webserver tale. 1202 00:55:29,140 --> 00:55:31,437 >> P i HTTP er faktisk en protokol. 1203 00:55:31,437 --> 00:55:33,270 Og en protokol er bare et sæt af konventioner. 1204 00:55:33,270 --> 00:55:36,690 Vi har set IP-- internet protocol-- TCP-- transmission kontrol 1205 00:55:36,690 --> 00:55:38,290 protocol-- og HTTP. 1206 00:55:38,290 --> 00:55:40,570 Men hvad er denne dumme ting af en protokol? 1207 00:55:40,570 --> 00:55:41,930 Det er bare et sæt af konventioner. 1208 00:55:41,930 --> 00:55:43,760 >> Så hvis jeg slags komme ned her, og jeg ønsker at hilse på dig. 1209 00:55:43,760 --> 00:55:44,930 Jeg ville sige hej, mit navn er David. 1210 00:55:44,930 --> 00:55:45,600 >> PUBLIKUM: Luis. 1211 00:55:45,600 --> 00:55:46,475 >> DAVID J. MALAN: Luis. 1212 00:55:46,475 --> 00:55:49,360 Vi har denne dumme menneske konvention af rystende hænder her. 1213 00:55:49,360 --> 00:55:50,570 Men det er en protokol, ikke? 1214 00:55:50,570 --> 00:55:51,470 Jeg udvidet min hånd. 1215 00:55:51,470 --> 00:55:52,530 Luis udvidet sin hånd. 1216 00:55:52,530 --> 00:55:53,070 Vi gjorde dette. 1217 00:55:53,070 --> 00:55:54,790 Og så færdig, færdig. 1218 00:55:54,790 --> 00:55:58,100 >> Og det er præcis det samme ånd af en computer-protokol 1219 00:55:58,100 --> 00:56:02,770 hvor der som i HTTP, hvad der sker, er dette. 1220 00:56:02,770 --> 00:56:05,520 Hvis du er computeren på venstre her, og der er nogle web 1221 00:56:05,520 --> 00:56:07,230 server der til højre. 1222 00:56:07,230 --> 00:56:11,130 Og computeren til venstre ønsker at anmode om oplysninger fra den pågældende server. 1223 00:56:11,130 --> 00:56:13,140 Det er lidt af et tovejs drift. 1224 00:56:13,140 --> 00:56:15,800 Browseren på venstre beder om nogle web-side. 1225 00:56:15,800 --> 00:56:18,404 Serveren på højre reagerer med nogle webside. 1226 00:56:18,404 --> 00:56:20,570 Og vi vil se hvilken form dem tager på bare et øjeblik. 1227 00:56:20,570 --> 00:56:24,311 >> Og det viser sig, at disse computers-- at browser og server, eller klient 1228 00:56:24,311 --> 00:56:25,310 og server, så at sige. 1229 00:56:25,310 --> 00:56:28,120 Meget gerne en restaurant, hvor de klient beder om noget, 1230 00:56:28,120 --> 00:56:31,670 og serveren bringer ham eller hende something-- få 1231 00:56:31,670 --> 00:56:33,170 er lidt af det operative ord. 1232 00:56:33,170 --> 00:56:38,560 Bogstaveligt talt indersiden af ​​konvolut, min browser sender herfra til en web 1233 00:56:38,560 --> 00:56:40,880 server er ordet get. 1234 00:56:40,880 --> 00:56:42,700 Ligesom jeg ønsker at få dagens nyheder. 1235 00:56:42,700 --> 00:56:45,370 Jeg ønsker at få min Facebook news feed, eller jeg 1236 00:56:45,370 --> 00:56:47,330 ønsker at få nogle side fra serveren. 1237 00:56:47,330 --> 00:56:50,760 >> Konkret er dette, hvad der er foregår inde i konvolutten. 1238 00:56:50,760 --> 00:56:53,810 Så jeg, med Cole, hovedsagelig sendt Cole et svar. 1239 00:56:53,810 --> 00:56:56,750 Hvis du forestiller dig, at Cole faktisk ønskede et billede af Rick Astley, 1240 00:56:56,750 --> 00:57:00,700 han kunne have sendt mig en anmodning samme ånd til dette. 1241 00:57:00,700 --> 00:57:04,670 Inde i hans kuvert til mig, hvor Jeg er nu spiller rollen som Google, 1242 00:57:04,670 --> 00:57:08,270 ville være en anmodning om, at bogstaveligt talt siger, får, og derefter en fremadrettet slash-- 1243 00:57:08,270 --> 00:57:10,636 og du har sikkert set skråstreger i URL'er før. 1244 00:57:10,636 --> 00:57:13,260 Det betyder bare give mig standard side, standard Rick Astley 1245 00:57:13,260 --> 00:57:14,560 billede i dette tilfælde. 1246 00:57:14,560 --> 00:57:20,100 >> Og ved den måde, Cole taler sproget HTTP version 1.1 eller protokollen 1.1. 1247 00:57:20,100 --> 00:57:22,090 Og det viser sig at der er en ældre version 1.0. 1248 00:57:22,090 --> 00:57:23,910 Men computere tendens til at bruge 1.1. 1249 00:57:23,910 --> 00:57:27,840 >> Den anden linje er en nyttig ting, vil vende tilbage til måske inden længe. 1250 00:57:27,840 --> 00:57:31,900 Men det er bare en specifikation for mig, modtageren, at de ting jeg vil have 1251 00:57:31,900 --> 00:57:33,586 er www.google.com. 1252 00:57:33,586 --> 00:57:36,340 Fordi det er meget muligt, disse dage for snesevis, 1253 00:57:36,340 --> 00:57:39,510 hundredvis af websites med forskellige domænenavne til alle 1254 00:57:39,510 --> 00:57:40,735 bor på samme server. 1255 00:57:40,735 --> 00:57:42,860 Det kommer ikke til at være sandt så meget i Googles tilfælde. 1256 00:57:42,860 --> 00:57:45,261 Men i en mindre virksomheds tilfælde kunne absolut være. 1257 00:57:45,261 --> 00:57:47,260 Så Cole er lige slags sætte i kuverten, 1258 00:57:47,260 --> 00:57:50,840 ved den måde, når det når op din IP-adresse på port 80, 1259 00:57:50,840 --> 00:57:54,450 bare være sikker på, at du ved Jeg vil www.google.com, ikke 1260 00:57:54,450 --> 00:57:56,740 et andet vilkårligt website på samme server. 1261 00:57:56,740 --> 00:58:00,360 >> Hvad jeg derefter reagere på Cole med, ved slutningen af ​​dagen, er et billede. 1262 00:58:00,360 --> 00:58:02,920 Men oven på det billede indersiden af ​​konvolutten 1263 00:58:02,920 --> 00:58:05,600 er faktisk noget tekst, hvor jeg siger, OK. 1264 00:58:05,600 --> 00:58:07,970 Jeg taler HTTP version 1.1 også. 1265 00:58:07,970 --> 00:58:09,200 200. 1266 00:58:09,200 --> 00:58:11,730 Hvilket er en statuskode, der de fleste af os har sikkert 1267 00:58:11,730 --> 00:58:14,185 aldrig set, fordi det betyder OK. 1268 00:58:14,185 --> 00:58:16,810 Og det er godt, fordi det betyder Jeg reagerer med succes 1269 00:58:16,810 --> 00:58:18,040 til Cole anmodning. 1270 00:58:18,040 --> 00:58:21,930 >> Hvilke tal har du sandsynligvis set på nettet, som ikke er OK? 1271 00:58:21,930 --> 00:58:22,780 >> PUBLIKUM: 404. 1272 00:58:22,780 --> 00:58:24,830 >> DAVID J. MALAN: 404-- fil ikke fundet. 1273 00:58:24,830 --> 00:58:27,520 Så ja, hver gang du har set en af ​​dem irriterende filen ikke 1274 00:58:27,520 --> 00:58:31,010 fundne fejl, fordi websiden er død, 1275 00:58:31,010 --> 00:58:34,190 eller fordi du skrevet forkert en URL, der bare betyder 1276 00:58:34,190 --> 00:58:37,600 at den lille kuvert, at din computer modtages fra serveren 1277 00:58:37,600 --> 00:58:42,670 indeholdt en meddelelse HTTP 1.1, 404-- ikke fundet. 1278 00:58:42,670 --> 00:58:44,930 At fil eller anmodningen du har lavet er ikke fundet. 1279 00:58:44,930 --> 00:58:48,660 >> Desuden indersiden af ​​konvolutten typisk er denne linje, indholdstype. 1280 00:58:48,660 --> 00:58:51,080 Nogle gange er det HTML, noget vi vil snart se. 1281 00:58:51,080 --> 00:58:52,225 Nogle gange er det en JPEG. 1282 00:58:52,225 --> 00:58:53,100 Nogle gange er det en GIF. 1283 00:58:53,100 --> 00:58:56,060 Nogle gange er det en film fil, en lydfil, en række ting. 1284 00:58:56,060 --> 00:59:00,059 Så indersiden af ​​kuverten er blot en lille hint om, hvad jeg modtager. 1285 00:59:00,059 --> 00:59:03,100 Der er andre statuskoder også, nogle som vi vil udforske i P sæt seks, 1286 00:59:03,100 --> 00:59:05,890 og du vil snubler på tværs i P sæt syv og / eller otte. 1287 00:59:05,890 --> 00:59:08,580 Men nogle her, ligesom 404 vi har set. 1288 00:59:08,580 --> 00:59:11,700 Forbidden, 403, betyder ligesom tilladelserne er forkerte, 1289 00:59:11,700 --> 00:59:14,740 som om du ikke har slags konfigureret den korrekt. 1290 00:59:14,740 --> 00:59:17,830 301 og 302, vi sjældent ser visuelt. 1291 00:59:17,830 --> 00:59:19,150 Men de betyder omdirigere. 1292 00:59:19,150 --> 00:59:21,650 Hver gang du har gået til én URL og du har været magisk 1293 00:59:21,650 --> 00:59:24,410 sendt et andet sted, det er fordi browseren har sendt tilbage 1294 00:59:24,410 --> 00:59:27,210 en kuvert indeholdende antallet 301 eller 302, 1295 00:59:27,210 --> 00:59:30,790 og den webadresse, det ønsker browseren til at gå til stedet. 1296 00:59:30,790 --> 00:59:32,010 >> 500 er forfærdelig. 1297 00:59:32,010 --> 00:59:34,842 Du vil se det inden længe, ​​formentlig i P sæt seks eller P sæt syv. 1298 00:59:34,842 --> 00:59:37,050 Og det generelt betyder der er nogle fejl i din kode, 1299 00:59:37,050 --> 00:59:40,000 fordi ja vi vil skrive kode, der reagerer på web anmodninger. 1300 00:59:40,000 --> 00:59:42,110 Og du har lige fået nogle fejl i logik eller syntaks, 1301 00:59:42,110 --> 00:59:43,820 og serveren ikke kan håndtere det. 1302 00:59:43,820 --> 00:59:47,460 >> Så lad os se, hvordan vi nu kan udnytte og forstå disse anmodninger som følger. 1303 00:59:47,460 --> 00:59:50,716 Hvis jeg går til, lad os sige, google.com. 1304 00:59:50,716 --> 00:59:55,240 Lad mig gå til www.google.com. 1305 00:59:55,240 --> 01:00:01,220 Og til demonstration skyld, lad os se, jeg har brug for at gå til Indstillinger her. 1306 01:00:01,220 --> 01:00:03,180 Jeg har tænkt mig at gå til Søg Indstillinger. 1307 01:00:03,180 --> 01:00:08,236 Og Google har i stigende grad irriterende funktioner, men nyttige funktioner. 1308 01:00:08,236 --> 01:00:11,110 Så Google har denne ting ligesom instant resultater, hvor du begynder at skrive, 1309 01:00:11,110 --> 01:00:12,889 og automatisk tingene begynder vises. 1310 01:00:12,889 --> 01:00:14,680 Og det er alt fint og teknisk anvendelige, 1311 01:00:14,680 --> 01:00:16,420 og vi vil forstå inden længe hvordan det virker. 1312 01:00:16,420 --> 01:00:18,429 Men for nu, jeg vender off øjeblikkelige resultater, 1313 01:00:18,429 --> 01:00:20,720 fordi jeg vil have min browser til slags arbejde gamle skole, så 1314 01:00:20,720 --> 01:00:22,940 at jeg kan se, hvad der foregår. 1315 01:00:22,940 --> 01:00:23,840 >> Så nu er jeg tilbage her. 1316 01:00:23,840 --> 01:00:25,090 Og jeg ønsker at søge efter katte. 1317 01:00:25,090 --> 01:00:30,351 Og læg mærke til jeg ser nogle forslag, nogle meget godartede forslag 1318 01:00:30,351 --> 01:00:30,850 heldigvis. 1319 01:00:30,850 --> 01:00:34,730 Og nu, hvis jeg ramte Enter, lad os se hvad der sker. 1320 01:00:34,730 --> 01:00:35,850 >> Så der er nogle katte. 1321 01:00:35,850 --> 01:00:37,540 Og den øverste hit er på Wikipedia. 1322 01:00:37,540 --> 01:00:39,820 Men i dag bekymrer vi om teknologien heroppe. 1323 01:00:39,820 --> 01:00:42,479 Så den webadresse, som jeg har blevet sendt, er det her. 1324 01:00:42,479 --> 01:00:44,520 Og der er nogle ting, jeg ikke rigtig forstår. 1325 01:00:44,520 --> 01:00:47,430 >> Så jeg har tænkt mig at gå videre, fordi Jeg slags vide, hvordan Google fungerer, 1326 01:00:47,430 --> 01:00:50,700 og jeg har tænkt mig at destillere denne URL i sin enkleste form. 1327 01:00:50,700 --> 01:00:52,510 Og nu vil jeg til at ramme Enter igen. 1328 01:00:52,510 --> 01:00:53,360 Og det virker stadig. 1329 01:00:53,360 --> 01:00:55,800 Jeg har en side med resultater alt om katte. 1330 01:00:55,800 --> 01:00:58,460 >> Men bemærke enkelheden i min webadresse. 1331 01:00:58,460 --> 01:01:00,820 Det viser sig, det er sådan meget af web værker. 1332 01:01:00,820 --> 01:01:03,500 Internettet er bare en hel bundt af computere 1333 01:01:03,500 --> 01:01:05,320 kører software, der tager input. 1334 01:01:05,320 --> 01:01:07,480 Det er ikke få strengen stil input. 1335 01:01:07,480 --> 01:01:09,670 Det er ikke kommandolinjen argumenter som vi er vant til. 1336 01:01:09,670 --> 01:01:13,449 De tager input, disse web-servere, i form af URL'er ret ofte. 1337 01:01:13,449 --> 01:01:15,240 Og enhver gang du har søgt efter noget, 1338 01:01:15,240 --> 01:01:17,448 helst du har logget ind Facebook, hver gang du har 1339 01:01:17,448 --> 01:01:20,090 gjort noget interaktivt med en webside, hvad du laver 1340 01:01:20,090 --> 01:01:24,340 effektivt at indsende en formular, så at speak-- tekstbokse, afkrydsningsfelter, 1341 01:01:24,340 --> 01:01:27,880 små cirkler, og whatnot, der sender oplysninger fra dig til serveren. 1342 01:01:27,880 --> 01:01:31,960 >> Og det viser sig, at nettet serveren ved at se på den pågældende webadresse 1343 01:01:31,960 --> 01:01:36,040 og parse det, ligesom se på det karakter for tegn på udkig efter noget 1344 01:01:36,040 --> 01:01:38,000 interessant efter et spørgsmålstegn. 1345 01:01:38,000 --> 01:01:40,910 Fordi efter et spørgsmålstegn, det viser sig, vil komme 1346 01:01:40,910 --> 01:01:42,730 en flok af de vigtigste værdi par. 1347 01:01:42,730 --> 01:01:44,570 Jeg mener key = værdi. 1348 01:01:44,570 --> 01:01:48,130 Og så hvis der er multiple-- måske et og-tegn, en anden nøgle = værdi, 1349 01:01:48,130 --> 01:01:50,200 tegnet, key = værdi. 1350 01:01:50,200 --> 01:01:54,560 >> Så vi har slags set denne idé før hvor noget har en værdi. 1351 01:01:54,560 --> 01:01:55,880 Det er bare et nyt format her. 1352 01:01:55,880 --> 01:01:59,040 Og jeg ved bare, efter sædvane, Google bruger q for forespørgsel. 1353 01:01:59,040 --> 01:02:02,670 Og derefter, hvis jeg ønsker at søge efter hunde, jeg kan manuelt søge efter hunde som. 1354 01:02:02,670 --> 01:02:06,360 Og så er jeg åbenbart få nogle søgeresultater involverer hunde. 1355 01:02:06,360 --> 01:02:07,727 >> Så der synes at være interessant. 1356 01:02:07,727 --> 01:02:10,060 Og ja, hvad der foregår under emhætten er dette. 1357 01:02:10,060 --> 01:02:11,460 Lad mig gøre det. 1358 01:02:11,460 --> 01:02:13,620 Dette er en-- lad os se. 1359 01:02:13,620 --> 01:02:16,320 Lad mig gå tilbage over her for blot et øjeblik. 1360 01:02:16,320 --> 01:02:19,810 >> Vi vil se, at der er andre måder at indsende oplysninger. 1361 01:02:19,810 --> 01:02:25,340 Så hvis jeg logger ind på Facebook, eller Gmail eller andre populære websted, 1362 01:02:25,340 --> 01:02:30,720 det synes slags dårligt, hvis hvad jeg har skrevet i søgefeltet ender i min webadresse, 1363 01:02:30,720 --> 01:02:32,850 i min browsers adresselinje. 1364 01:02:32,850 --> 01:02:33,690 Hvorfor? 1365 01:02:33,690 --> 01:02:35,395 Hvorfor er det mildt bekymrende? 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 PUBLIKUM: Indtast en adgangskode. 1369 01:02:41,380 --> 01:02:41,720 DAVID J. MALAN: Ja. 1370 01:02:41,720 --> 01:02:44,000 Så hvad nu hvis, hvad jeg har indtastet er min adgangskode? 1371 01:02:44,000 --> 01:02:47,881 Jeg slags vil ikke have det så åbenlyst synlig i min browsers adresselinje. 1372 01:02:47,881 --> 01:02:50,630 Én, fordi min irriterende roommate tendens til at se mig over skulderen, 1373 01:02:50,630 --> 01:02:53,980 og han eller hun kan nu se, selvom Det var kugler, når jeg skriver det i, 1374 01:02:53,980 --> 01:02:54,810 små cirkler. 1375 01:02:54,810 --> 01:02:56,010 Nu er det i min adresselinjen. 1376 01:02:56,010 --> 01:02:59,270 >> Desuden, hvad er sandt om ting du har tendens til at skrive i adresselinjen. 1377 01:02:59,270 --> 01:03:00,230 >> PUBLIKUM: [uhørligt] 1378 01:03:00,230 --> 01:03:01,505 >> DAVID J. MALAN: Hvad er det? 1379 01:03:01,505 --> 01:03:02,630 PUBLIKUM: Det bliver sendt ud. 1380 01:03:02,630 --> 01:03:03,510 DAVID J. MALAN: Det bliver sendt ud. 1381 01:03:03,510 --> 01:03:05,102 Og også, det bliver husket. 1382 01:03:05,102 --> 01:03:07,060 Fordi næste gang du skriver ting deroppe, 1383 01:03:07,060 --> 01:03:10,440 ofte autocompletes og det husker, hvad du har skrevet før. 1384 01:03:10,440 --> 01:03:13,850 Og så er der denne veritable historie at din søskende, eller din værelseskammerat, 1385 01:03:13,850 --> 01:03:16,830 eller hvem kan gå igennem til temmelig meget se hver hjemmeside 1386 01:03:16,830 --> 01:03:19,760 du har besøgt, fordi det er logget på, at adresselinjen. 1387 01:03:19,760 --> 01:03:22,790 >> Desuden formoder at du vil uploade et billede på Facebook. 1388 01:03:22,790 --> 01:03:26,520 Hvordan i alverden er du kommer til at sætte et foto i en URL? 1389 01:03:26,520 --> 01:03:30,217 >> Jamen det viser sig, kan du gøre det i nogle måde, men det er bestemt ikke indlysende. 1390 01:03:30,217 --> 01:03:33,050 Og så er der denne anden måde sende oplysninger i en konvolut, 1391 01:03:33,050 --> 01:03:35,680 ikke via en GET, men via noget, der hedder POST. 1392 01:03:35,680 --> 01:03:38,060 Og i teorien, det ser stort set den samme. 1393 01:03:38,060 --> 01:03:41,270 I stedet for ordet GET, siger vi POST, og derefter den samme slags format. 1394 01:03:41,270 --> 01:03:43,310 >> For eksempel, er dette et skærmbillede af, hvad 1395 01:03:43,310 --> 01:03:46,920 det kunne se ud, hvis jeg prøver logning ind i Facebook, som sender mig til en fil 1396 01:03:46,920 --> 01:03:51,230 kaldet login.php, som faktisk er stadig i dag navngivet som sådan. 1397 01:03:51,230 --> 01:03:53,910 Det er det samme filnavn Mark gav det mange år siden. 1398 01:03:53,910 --> 01:03:58,520 Det er det program, han skrev i PHP via som brugerne kan logge ind på hjemmesiden. 1399 01:03:58,520 --> 01:04:00,370 >> Men du skal sende nogle yderligere input. 1400 01:04:00,370 --> 01:04:05,170 Og i stedet for det at gå efter fil navn, som det gjorde før med cats-- 1401 01:04:05,170 --> 01:04:09,720 q = cats-- det kan gå lavere i anmodningen, dybere inde i konvolutten hvis du 1402 01:04:09,720 --> 01:04:12,440 vil, hvor ingen kan se det, og hvor det ikke ender 1403 01:04:12,440 --> 01:04:15,670 i brugerens browser bar, og derfor ikke huske for folk at snuse 1404 01:04:15,670 --> 01:04:16,290 omkring. 1405 01:04:16,290 --> 01:04:21,260 >> Og så her min e-mail-adresse og min falske kodeord faktisk gå. 1406 01:04:21,260 --> 01:04:27,400 Og hvis Facebook bruger ikke HTTP, men HTTPS, 1407 01:04:27,400 --> 01:04:30,710 Alt dette vil blive krypteret, scrambled, ala Cæsar eller Vigenere, 1408 01:04:30,710 --> 01:04:34,960 men mere fancily så ingen kan faktisk se denne anmodning. 1409 01:04:34,960 --> 01:04:38,120 >> Og så ja, hver gang du har en URL, der starter med HTTPS, 1410 01:04:38,120 --> 01:04:39,560 det betyder bare, det er krypteret. 1411 01:04:39,560 --> 01:04:42,710 Men i slutningen af ​​dagen, hvad der er faktisk inde af disse kuverter? 1412 01:04:42,710 --> 01:04:44,070 Dette var super lavt niveau. 1413 01:04:44,070 --> 01:04:46,240 Og heldigvis, vi er ikke vil nødvendigvis 1414 01:04:46,240 --> 01:04:49,310 at gå så lavt niveau hver gang for at begynde at skrive interessant software. 1415 01:04:49,310 --> 01:04:51,060 Vi kan begynde at tage ideerne om ugen én 1416 01:04:51,060 --> 01:04:54,020 gennem fem, antage, at der nu denne infrastruktur, 1417 01:04:54,020 --> 01:04:57,160 lader os skrive software der driver på nettet, 1418 01:04:57,160 --> 01:05:00,120 og det vil give os mulighed for denne kommende uge til at starte 1419 01:05:00,120 --> 01:05:01,840 ser på noget, der hedder HTML. 1420 01:05:01,840 --> 01:05:04,750 Det er de ting, der er endnu dybere inde i konvolutten, 1421 01:05:04,750 --> 01:05:06,150 men det er de ting, vi er kommer til at begynde at skrive. 1422 01:05:06,150 --> 01:05:08,020 Og det er de ting mere interessant, er vi 1423 01:05:08,020 --> 01:05:11,420 vil skrive programmer, begynder at generere automatisk 1424 01:05:11,420 --> 01:05:15,410 så vores hjemmesider er ikke svært kodet, men tage input og producere output. 1425 01:05:15,410 --> 01:05:18,810 >> Dette er måske den enkleste web side, du kan gøre i verden. 1426 01:05:18,810 --> 01:05:23,000 Jeg kan faktisk åbne op noget dumt ligesom TextEdit 1427 01:05:23,000 --> 01:05:26,160 på min Mac, som netop giver mig en simpel tekst vindue som dette. 1428 01:05:26,160 --> 01:05:29,510 PC-brugere har Notepad.ext, som er meget ens i ånd. 1429 01:05:29,510 --> 01:05:33,212 >> Og jeg kan bogstaveligt skrive ud denne-- DOCTYPE HTML, 1430 01:05:33,212 --> 01:05:34,420 der ser lidt kryptisk. 1431 01:05:34,420 --> 01:05:35,850 Men vi vil vende tilbage til. 1432 01:05:35,850 --> 01:05:38,730 HTML, med disse underlig vinklede beslag og skråstreger, 1433 01:05:38,730 --> 01:05:42,240 inderside som nu jeg har tænkt mig at sige her kommer lederen af ​​min webside. 1434 01:05:42,240 --> 01:05:45,220 Inde i det, jeg lige kender, og du vil snart vide, 1435 01:05:45,220 --> 01:05:47,850 at jeg kan sætte titlen på min webside. 1436 01:05:47,850 --> 01:05:49,720 Og derefter under leder af websiden er 1437 01:05:49,720 --> 01:05:51,972 vil gå til den såkaldte krop af websiden. 1438 01:05:51,972 --> 01:05:54,180 Og jeg er bare indrykning bare ligesom i C til slags holde 1439 01:05:54,180 --> 01:05:57,620 tingene pænt læsbar stilistisk. 1440 01:05:57,620 --> 01:06:04,745 Og nu jeg har tænkt mig at gemme denne som en fil på mit skrivebord, kaldet hello.html. 1441 01:06:04,745 --> 01:06:06,770 >> Og jeg har tænkt mig at fortælle det ja, bruger HTML. 1442 01:06:06,770 --> 01:06:09,690 Du må ikke ændre det til .txt, selv selvom alt dette er en tekstfil, 1443 01:06:09,690 --> 01:06:12,130 ligesom et C-program skrevet med en teksteditor. 1444 01:06:12,130 --> 01:06:15,080 Selvom det ikke er i CS50 IDE på øjeblik, bare her på min Mac. 1445 01:06:15,080 --> 01:06:18,490 >> Og hvis jeg nu gå til mit skrivebord, vil du se hello.html. 1446 01:06:18,490 --> 01:06:20,720 Hvis jeg dobbeltklikke på det, det vil åbne Chrome. 1447 01:06:20,720 --> 01:06:23,260 Og selvom denne fil sker for at leve på mit skrivebord, 1448 01:06:23,260 --> 01:06:26,550 det er måske den enkleste webside jeg kunne gøre. 1449 01:06:26,550 --> 01:06:30,080 >> Bemærk, at titlen på det Fanen vejen op toppen er hej verden. 1450 01:06:30,080 --> 01:06:32,470 Liget af den webside er faktisk Hello world. 1451 01:06:32,470 --> 01:06:35,830 Og alt jeg har gjort for at få til dette punkt, er at gennemføre, 1452 01:06:35,830 --> 01:06:38,342 eller er skrive et nyt sprog, kaldet HTML. 1453 01:06:38,342 --> 01:06:40,300 Det er ikke et programmeringssprog sprog som C. Der er 1454 01:06:40,300 --> 01:06:42,508 ikke vil være betingelser, og loops, og funktioner. 1455 01:06:42,508 --> 01:06:46,560 Det er et kodesprog, hvor Hvis du bare fortælle den modtagende 1456 01:06:46,560 --> 01:06:48,410 program, hvad du vil gøre. 1457 01:06:48,410 --> 01:06:51,195 Det betyder Hey browser, her kommer en HTML-side. 1458 01:06:51,195 --> 01:06:53,040 Hey browser, her kommer lederen af ​​min side. 1459 01:06:53,040 --> 01:06:55,130 Hey browser, her kommer kroppen af ​​min side. 1460 01:06:55,130 --> 01:06:57,100 Hey browser, det er det for kroppen. 1461 01:06:57,100 --> 01:06:59,350 Det er det for HTML-siden. 1462 01:06:59,350 --> 01:07:03,560 >> Og med disse enkle definitioner alene, vil vi snart se, at man, 1463 01:07:03,560 --> 01:07:05,122 vi kan repræsentere dette som et træ. 1464 01:07:05,122 --> 01:07:06,080 Men mere om det senere. 1465 01:07:06,080 --> 01:07:08,788 Så dette vil alle interconnect til vores seneste datastrukturer. 1466 01:07:08,788 --> 01:07:12,460 To, vil vi indføre denne dumme vittighed. 1467 01:07:12,460 --> 01:07:15,680 Dette er et virkeligt tatovering, denne fyr havde på hans hals. 1468 01:07:15,680 --> 01:07:19,660 Det er nok sjovt den første uge eller to, og derefter, måske ikke så meget. 1469 01:07:19,660 --> 01:07:22,960 >> Men HTML, og selv internettet side Jeg har lige lavet, super sind 1470 01:07:22,960 --> 01:07:25,670 numbingly disappointing-- bare at sige hej verden 1471 01:07:25,670 --> 01:07:27,210 i sort tekst på hvid baggrund. 1472 01:07:27,210 --> 01:07:28,680 Sikkert kan vi gøre meget bedre. 1473 01:07:28,680 --> 01:07:31,552 Og vi vil gøre det ved at indføre andet sprog kaldet CSS. 1474 01:07:31,552 --> 01:07:34,760 Også dette ikke en programmering language-- ingen løkker og betingelser, eller efter sløjfer, 1475 01:07:34,760 --> 01:07:38,470 men virkelig, bare syntaks hvorved vi kan sige, gør denne tekst stort. 1476 01:07:38,470 --> 01:07:39,415 Gøre denne tekst lille. 1477 01:07:39,415 --> 01:07:40,040 Lige justere det. 1478 01:07:40,040 --> 01:07:40,650 Venstre justere det. 1479 01:07:40,650 --> 01:07:41,195 Gør det pink. 1480 01:07:41,195 --> 01:07:41,820 Gør det lilla. 1481 01:07:41,820 --> 01:07:42,650 Gør det blå. 1482 01:07:42,650 --> 01:07:44,860 Eller har et vilkårligt antal andre visuelle effekter. 1483 01:07:44,860 --> 01:07:48,590 Og så vil vi se, hvordan man starter stilisering websider, så de ser på en måde, 1484 01:07:48,590 --> 01:07:50,480 tættere på, hvad vi ønsker. 1485 01:07:50,480 --> 01:07:56,930 >> Og endelig har vi faktisk ødelagt måske meget af tv og film for dig. 1486 01:07:56,930 --> 01:07:58,930 Jeg troede, vi ville ende her med vores sidste sekunder 1487 01:07:58,930 --> 01:08:03,700 på en endelig klip, der viser dig hvordan hacking på internettet fungerer. 1488 01:08:03,700 --> 01:08:06,250 Hvis vi kunne dæmpe lyser en sidste gang. 1489 01:08:06,250 --> 01:08:07,250 >> [VIDEO PLAYBACK] 1490 01:08:07,250 --> 01:08:09,520 >> -Ingen Måde. 1491 01:08:09,520 --> 01:08:10,650 Jeg bliver hacket. 1492 01:08:10,650 --> 01:08:11,770 >> -Okorsky? 1493 01:08:11,770 --> 01:08:14,230 >> -No-- Nej, det er store. 1494 01:08:14,230 --> 01:08:17,074 De har allerede brændt igennem NCIS offentlige firewall. 1495 01:08:17,074 --> 01:08:19,990 Tja, isolere node og dump dem på den anden side af routeren. 1496 01:08:19,990 --> 01:08:20,990 -Jeg Forsøger. 1497 01:08:20,990 --> 01:08:23,990 Det bevæger sig for hurtigt. 1498 01:08:23,990 --> 01:08:25,179 >> -OH, Det er ikke godt. 1499 01:08:25,179 --> 01:08:27,470 De bruger vores forbindelse [Uhørligt] denne database. 1500 01:08:27,470 --> 01:08:28,458 Sever det. 1501 01:08:28,458 --> 01:08:28,958 -Jeg Kan ikke. 1502 01:08:28,958 --> 01:08:29,454 Det er et punkt angreb. 1503 01:08:29,454 --> 01:08:31,438 Han eller hun er kun går efter min maskine. 1504 01:08:31,438 --> 01:08:32,430 >> -Det Er ikke mulig. 1505 01:08:32,430 --> 01:08:33,847 Der er DOD niveau minen kryptering. 1506 01:08:33,847 --> 01:08:35,055 Det ville tage måneder at get-- 1507 01:08:35,055 --> 01:08:35,857 -Hey, Hvad er det? 1508 01:08:35,857 --> 01:08:36,398 En video game? 1509 01:08:36,398 --> 01:08:37,886 >> -Nej Tony, vi får hacket. 1510 01:08:37,886 --> 01:08:40,795 >> -Hvis De får i Abby computer, hele NCIS netværket er næste. 1511 01:08:40,795 --> 01:08:42,050 >> -Jeg Kan ikke stoppe ham. 1512 01:08:42,050 --> 01:08:43,050 Gør noget McGee. 1513 01:08:43,050 --> 01:08:44,550 >> -Jeg Har aldrig set kode som denne. 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 Hvor er det? 1517 01:08:49,196 --> 01:08:50,604 Abby? 1518 01:08:50,604 --> 01:08:51,520 -Jeg Gjorde ikke noget. 1519 01:08:51,520 --> 01:08:53,020 Jeg troede, du gjorde. 1520 01:08:53,020 --> 01:08:54,520 >> -Nej. 1521 01:08:54,520 --> 01:08:57,232 >> -Jeg gjorde. 1522 01:08:57,232 --> 01:08:58,307 >> [END AFSPIL] 1523 01:08:58,307 --> 01:09:00,390 DAVID J. MALAN: Den bedste del er to mennesker skrive 1524 01:09:00,390 --> 01:09:02,170 på tastaturet på samme tid. 1525 01:09:02,170 --> 01:09:03,200 >> Så det er det for CS50. 1526 01:09:03,200 --> 01:09:04,700 Vi vil holde sig til kontortid. 1527 01:09:04,700 --> 01:09:06,344 Og vi vil se dig næste gang. 1528 01:09:06,344 --> 01:09:07,760 [Musik spiller - "Seinfeld TEMA"] 1529 01:09:07,760 --> 01:09:11,139 1530 01:09:11,139 --> 01:09:11,680 Det er CS50. 1531 01:09:11,680 --> 01:09:17,960 1532 01:09:17,960 --> 01:09:20,854 Jeg ønsker ikke at være en pirat. 1533 01:09:20,854 --> 01:09:21,770 SPEAKER 2: Yarr David. 1534 01:09:21,770 --> 01:09:23,700 Det er et fint dublet du være iført. 1535 01:09:23,700 --> 01:09:26,450 Masser af forliget i dette pust. 1536 01:09:26,450 --> 01:09:29,327