[MUSIC Playing] SPEAKER 1: Okay, velkommen tilbage til CS50. Dette er slutningen af ​​ugen otte, og næsten Halloween. I morgen aften kontor timer vil være de mest skræmmende dem endnu, og ikke fordi af Halloween. Men på dette notat, indser du, at Problemet sæt seks, den stavekontrol opgavesæt, er kendt for at være for mange studerende, den mest udfordrende, helt sikkert blandt de C-problemet sæt, og virkelig, i almindelighed. Og jeg nævner dette kun fordi det er ugen, hvor en masse mennesker får fremhævede især med bare at forsøge at få den skide stavekontrollen til at fungere. Og én ting vil jeg opfordre dig til er, som du vil se i dag, og på mandag, begynder vi at ramme dette højdepunkt denne uge, hvor nu, tingene bliver en lidt mere velkendte, lidt mere tilgængelige, da vi overgangen fra et kommandolinje miljø i C en webbaseret miljø i PHP. Og så vil jeg opfordre dig, selvom du er virkelig på din wit udgang i forsøger at få p indstillet til at arbejde, hvis det er faktisk det sted, du er på, eller finde dig selv på, prøv til magten ved det. Fordi jeg tror du vil være helt glad og meget stolt af dig selv, hvis du virkelig ende den del af Selvfølgelig C portion på at høje, hvis stressende, bemærke. Så det er ikke til at skræmme. Det er netop beregnet til at opfordre dig til at holde op at ekstra time for at Få den stavekontrollen arbejde. Og hvis du gør, indse, at dette er valgfri, helt. Men vi har det såkaldte big board der gik lever i morges. Som i morges, var jeg på toppen af ​​store bord, som er et mål for, hvor meget RAM og hvor meget køretid dit program speller kræver. Men jeg har siden blevet fordrevet. Nu er jeg den uheldige nummer 13. Og hvad du vil se her er, David Kaufman, og Lauren og Adam og Jason, og andre er nu oven på store bord. Hvis man ser derovre til højre, alle os har virkelig god implementeringer af størrelse mindst - returnere antallet af ord i ordbogen. Og i hver af disse kolonner, vil du se, hvor meget RAM hver af vores implementeringer bruger, hvor meget køretid det tager at udføre belastning versus kontrol versus størrelse og losse, og så den samlede spilletid. Så bare for at berolige Elmer og Patrick, og Linda, og alle andre, der kommer efter dig, der er absolut ingen skam i at være imod bunden af ​​den store bord. Hvis der er noget, betyder det, at du fik arbejde, og det er korrekt, men det er ikke nødvendigvis så effektivt, rum eller tidsmæssigt, som det kunne være. Så helt valgfri. Men ment som en gulerod slags, så at når du arbejder på din p indstillet, du er så stolt af dig selv, du fik det arbejder, du sender til den store bord, har du fået en rigtig god nummer, du går til middag, du kommer tilbage, og dine bofæller har kantet dig ud på den store bord. Tja, det er tid, på det tidspunkt, for at gå tilbage til tegnebordet så genprovokation det store bord. Hvis man ser på spec, den instruktioner til sammenknytning med big board er nu udstationeret. Så et par hoveder op - en, før forslaget til den endelige projektet forventes i den kommende mandag. Se dette spec på kursets hjemmeside for hvad det betyder. Det er egentlig bare en afslappet, men tænkte provokerende email mellem dig og din TF, egentlig bare for at få tingene i gang, samtalen begyndte, selvom de fleste af jer har aldrig selv skrevet en webside før, ikke engang ved, hvad du måske, hvordan du måske, implementere din endelige projekt. Gå på tro, at du ved hvordan man gør en hel mere ting i et par uger. Så bare begynde denne proces pr spec af at udforske mulige idéer. Også, hvad vi ville invitere dig til at gøre, er - Vi har en tradition i mange år nu, i løbet af hosting det - store.cs50.net. Alt er solgt til kostpris. Og det er egentlig bare en mulighed for at slid CS50, hvis du gerne vil gøre at der på kursets og. For eksempel er der sådanne ting som t-shirts, som du måske har set går rundt campus, sweatshirts. Og så har vi også invitere studerende til at indsende design, der skal udødeliggjort i Den CS50 butikken. For eksempel, en af ​​sidste års favoritter, vil måske nu genlyd med dig er det en her. Meget populært emne. Så hvis du gerne vil deltage i dette, vil vi sætte en formular snart, på cs50.net/design, som du kan uploade et billede, som du har lavet i Illustrator eller Photoshop, eller nogle lignende program. Og hvis du er fortrolig med den slags specifikationer, ønsker vi, at det at være et PNG-billede, mindst 200 punkter pr tommer, og færre end at mange pixels, og under 10 megabyte. For flere detaljer, email bare kursets hoveder på heads@cs50.net hvis du gerne vil deltage i dette. Okay, så i dag, ikke mere C. Så vi begynder at trække sig tilbage lagene af internet, web, og hvordan du kan faktisk begynde at skrive software til denne anderledes miljø. Så i særdeleshed, lad os spørge, for det første spørgsmålet om - Lad mig få os til vores velkendte tegning app herovre. Lad mig stille spørgsmålet om, hvordan gør internettet arbejde. [? STUDENT: Magic. ?] SPEAKER 1: Magic. OK. Godt svar. Så vi vil starte der i dag, og se om kan vi ikke gøre det lidt mindre magisk inden for en time. Lad os prøve at fortælle det i rammerne af en historie. Så du er fans af at gå til facebook.com, eller reddit.com, eller uanset disse dage. Og så hvad der virkelig sker, når du skriver i noget lignende facebook.com, og tryk på Enter i Chrome, eller Firefox eller IE eller Safari, eller hvad browser du faktisk gør? Kan vi fortælle denne historie, måske sætning for sætning? Hvad er en af ​​de første ting, sker, når du trykker på Enter, efter skrive facebook.com? [? STUDENT:? Din] computer gør en HTTP-anmodning. SPEAKER 1: OK. Så computeren gør - vi vil kalde det - en HTTP-anmodning. Nu hvad betyder det? Nå, har vi alle sikkert set eller indtastet i årevis, H-T-T-P ofte efterfulgt af kolon, skråstreg skråstreg. Så hvad er det? Nå, HTTP er HyperText Transfer Protocol. Og det er bare en fancy måde at sige, Det er det sprog, som web-browsere, ligesom Chrome og andre, og web-servere, ligesom facebook.com, tale til hinanden. Og det er en forholdsvis enkel, engelsk orienterede sprog. Det er næsten som pseudo kode. Og det er en måde at en klient, som vi kalder det - en browser - kommunikere med serveren. Og ligesom i en restaurant, når du, klienten, sidde ned ved et bord og derefter bestille noget ud af den menu af serveren, serveren er kommer til at bringe dig tilbage noget, uanset hvad det er du anmodede om. Samme i computerens verden. En browser - en klient - kommer til at fremsætte en anmodning, og så forhåbentlig komme tilbage noget fra serveren. Og at noget er på et højt niveau, websiden. På et lidt lavere niveau, er det en fil skrevet i en anden sprog kaldet HTML - HyperText Markup Language. Men mere om det om et øjeblik. Så HyperText Transfer Protocol - HTTP - det er den protokol, der browser og server brug. Nå, hvad er en protokol, helt præcist? Nå, kan du tænke på det som et sprog. Men hvis jeg nå ud til vores publikum her, en normal ting for os mennesker til behøver er, når vi hilse på nogen, Jeg siger, hej, mit navn er David. [? STUDENT: Hej,] mit navn er Dipty?. SPEAKER 1: "Hej, mit navn er Dipty "svarer hun. Og så har vi haft dette forholdsvis vilkårlige interaktion rystende hænder, som er ofte den menneskelige konvention i de fleste lande. Og det er en protokol, right? Jeg slags indledt det ved at udvide min hånd, snarere akavet, på scenen af Sanders her. Hun indså, åh, jeg har fået en anmode om en hånd tilsyneladende. Og så hun besvarede anmodningen ved faktisk anerkender den. En erkendelse, ACK, er faktisk en sætning meget almindelig i verden af netværk, for en server til anerkende klienten. Så vi slags gennemført, at transaktion, og forlegenhed over. Så det er virkelig, hvad der sker under hætten samt. Lad mig gøre det lidt mere teknisk under motorhjelmen. Jeg har tænkt mig at gå over her til en terminal vindue. Denne terminal vindue sker for at være på min Mac, men du kunne gøre det samme slags ting i CS50 Appliance. Og jeg faktisk kommer til at bruge et program at vi ikke vil rigtig brugt til meget på alle semestret. Men det hedder Telnet. Tilbage i dag, var Telnet programmet som du brugte til at oprette forbindelse til en fjernserver, for at tjekke din mail eller til at gøre sådan noget. For nu, vi kommer til at bruge denne gamle skole-program, Telnet, at foregive at være en browser. Og jeg har tænkt mig at gå videre og gøre følgende - lad mig forøge min skriftstørrelse. Og jeg har tænkt mig at sige, Telnet til server kaldet www.facebook.com, men specifikt Telnet til port 80. Vi vil vende tilbage til dette. Men for nu, ved, at de fleste tjenester på internettet er identificeret entydigt af nogle tal. I dette tilfælde er det 80. Nu er de fleste af jer har sandsynligvis aldrig har skrevet 80 før. Men i virkeligheden, hvis jeg går til en browser og træk op, for eksempel, http://www.facebook.com/-- der er auto-complete, det er ikke min historie - okay, så nu går vi til colon 80 skråstreg. Så jeg hævder, at selvom du har sandsynligvis aldrig skrevet dette før, med tyktarmen 80 efter facebook.com, Forhåbentlig er det stadig gå på arbejde. Og ja, det går til facebook.com. Så det viser sig, at 80 har været implicitte. Ingen af ​​os mennesker har haft at skrive, at der for år. Fordi browsere som standard, bare antage, at det nummer, du ønsker at bruge når du ringer op en server, så tale er, i virkeligheden, 80. Fordi lang historie kort, servere kan gøre langt mere end blot tjene op websider. De kan reagere på chatbeskeder. De kan sende e-mails. Der er masser af tjenester, kan køre på en enkelt server. Så disse tal - i dette tilfælde, 80 - identificerer en af ​​dem tjenester, som er HTTP, de webprotokol end en server kan faktisk understøtter. Men jeg kan simulere denne anmodning nu tekstuelt, ved hjælp af denne gamle skole Telnet-program. Så jeg har tænkt mig at væsentlige nu foregive til at være en browser og taler HTTP ved fremsendelse, med mit tastatur, nøjagtigt de kommandoer, Chrome netop vidste, hvordan til at sende for mig magisk. Så jeg har tænkt mig at gå videre og trykke Enter. Bemærk, at det forsøger 31.13.69.32. 13 Hvad er det? Så det er en IP-adresse. Nu selvom du ikke er alt for velkendte med de snørklede af dem, du sandsynligvis have en generel følelse at disse ting eksisterer. Og en IP-adresse - Internet Protocol adresse - er blot en entydig identifikator for en computer på internettet. Det er lidt af en oversimplificering for øjeblikket. Men hver computer på internettet har en unik IP-adresse, ligesom alle hus i, siger, at USA har en unik postadresse, noget som 123 Main Street i Anytown, USA. Så noget lignende. Og det, også er oversimplificering. Men disse adresser, vi har i post verden og disse adresser at vi har i computerens verden entydig identifikation servere, så når du sende en besked til dem over internettet, eller når du sætter et brev en gammel skole postkasse - post - tjenesten ved, hvordan man får det anmodning, eller at brevet til den tiltænkte modtager. Nu er min computer, en eller anden måde, har netop regnet ud, at Facebook unikke IP er 31.13.69.32. Faktisk kan der sandsynligvis ændre sig. Facebook har sandsynligvis flere IP adresser, fordi de absolut har mere end en server. Men der er sket for os magisk. Faktisk interne hemmelige navn server jeg har tilsyneladende tilsluttet til kaldes star.c10r.facebook.com, uanset hvad det er. Det er bare uanset hvilket system administrator på Facebook har besluttet at kalde denne særlige server, jeg var noget tilfældigt sendt til. Så nu, hvis min forbindelse ikke har timeout, vil jeg foregive at være, at browseren. Jeg har tænkt mig at sige at få plads skråstreg plads. Og jeg har tænkt mig at foregive at tale HTTP version 1.1, som er den ene, at de fleste browsere bruger. Og jeg specifikt vil nævne serveren, ved den måde, jeg ønsker at hjemmeside kendt i verden som facebook.com. Enter Enter. Og nu, mærke til, hvad der er sket. Serveren, tjeneren, har reageret til min ordre, eller min anmodning anden tekstmeddelelse. Nu igen, i en verden af ​​browsere som Chrome og Safari, ville du ikke se, som det menneskelige. Microsoft og Google bare skjule disse oplysninger fra os. Men Facebook har reageret med et svar, også i sprog HTTP. Bemærk der er en kode her, 302, som faktisk har særlig betydning ved konvention. Fundet, så der er mindst lovende. Men tilsyneladende Facebook fortæller mig, mm-mm, behøver du ikke ønsker hvad du bad om. Man i stedet ønsker nutidens særlige, som er facebook.com / unsupportedbrowser. Så på et højt niveau, gør hvad Facebook synes at gøre her? Det omdirigere mig. Så Facebook ikke lide faktum, at jeg foregiver at være denne anden browser. Og så er det at omdirigere mig til nogle hjemmeside. Jeg er faktisk nysgerrig, nu hvad denne ting ser ud. Lad mig gå over til, at der i Chrome, så vi kan se, hvad de vil have mig til at se. Så nu har de rent faktisk har sendt mig tilbage til Facebook fordi de har indset, åh, du har en understøttet browser. Vi er ikke engang kommer til at vise dig, at siden. Så lad os gå videre og se hvis vi ikke kan løse dette. Jeg har tænkt mig at skulle snyde en lille smule. Og mere om dette i de kommende uger. Men jeg har tænkt mig at gøre én ting her. Og jeg vil forklare dette inden længe. Giv mig bare et øjeblik at snyde, og wow dig. Så lad mig få denne. OK. Jeg vil forklare, hvad jeg gør på bare et øjeblik. Jeg har tænkt mig at gå videre og annullere denne forbindelsen, og prøv dette igen. Få slash HTTP 1.1 host www.facebook.com user-agent. OK. Nu har jeg foregivet at være Chrome. Så det viser sig, at når en browser sender en anmodning til en server, det er bare ære system. Hvis jeg siger jeg er Chrome, Facebook vil antage jeg er Chrome. Og de måder, hvorpå jeg identificerede mig selv som Chrome er ved dette atrociously lang streng. Væsentlige alle browseren producenter i verden har besluttet, ja, denne version af dette browser på dette operativsystem vil have en bruger-agent streng, der ser gerne, at skøre rod der. Og Mozilla er der for historiske grunde. Men bemærk, hvor meget information jeg lækker til facebook.com uden selv logge ind Jeg fortæller Mark, at det er en Mac, som jeg bruger. Jeg fortæller ham, at det er en Intel baseret Mac med Mac OS 10.8.5. Som en sidebemærkning, er denne information går til hvert websted, du besøger med din browser. Temmelig uskadeligt indtil videre, men det bliver lidt juicier. Bemærk, at hvis vi læser langt nok, Jeg bruger Chrome udgave 30.0.1599.101. Men nu bemærke, at svaret er ikke så slemt, som det var før. Hvor er Facebook fortæller mig til at gå nu? Det fortæller mig, igen, hjemmesiden - den fortæller mig, det er flyttet permanent. Nå, fik hvor dælen Facebook hen? Yeah, så det er en subtil forskel. Men varsel, her at hjemmesiden har faktisk flyttet til HTTPS. Så lang historie kort, dette er en måde at Facebook håndhæve, at jeg rent faktisk ender på den sikre version af deres hjemmeside, den ene, der bruger kryptering - mere kompleks end kryptering vi talte om for p set to, men kryptering alligevel. Nu på dette tidspunkt bliver det svært for mig at efterligne deres web anmode bruge Telnet. For hvis de fortæller mig at bruge SSL - HTTPS præfiks er hvad det indebærer - hvis de fortæller mig at bruge kryptografi, er der ingen måde, jeg har tænkt mig for manuelt at kryptere mit budskab foran af alle her, så prøv og regne ud, hvordan man gør det. Det er bare at komme meget mere kompleks. Men det er, hvad browseren gør for dig. Lad os se om vi ikke kan gøre dette lidt mere enkelt, så med et websted der er ikke forventer os til at være så sikker. Lad os gå til, siger harvard.edu på port 80.. Enter. Okay, så får slash HTTP 1.1. Og hvad betyder denne første skråstreg betyder? Bare for at være klar, hvorfor Jeg holder skrive det? Nå Normalt, når du skriver en URL - og desværre browsere normalt skjule denne i disse dage - Normalt, når du går til harvard.edu, denne webadresse officielt gør ende på en skråstreg. Fordi en enkelt skråstreg angiver hvilken del af harddisken? Roden af ​​harddisken. Vi i Appliance har ikke rigtig haft at tænke over dette, fordi vi er altid i John Harvard mappe. Men hans mappe er i en anden mappe. Og denne mappe er i roden af Appliance harddisk, så at sige, selvom det er virtuelt. Så en enkelt skråstreg som dette betyder roden af ​​harddisken. Det er ligesom C colon backslash, eller det er roden af ​​din volumen, på Mac OS. Men Chrome og andre browsere disse dage, har fået brugervenlige og de skjule, at skråstreg helt. Men det er alt der betyder i min tekstmeddelelse - giv mig roden af ​​harvard.edu 's hjemmeside, dvs standardside selv. Så lad mig gå videre og trykke Enter. Lad mig minde værten, som jeg ønsker www.harvard.edu, bare i tilfælde af at der er andre hjemmesider lever på samme fysiske server. OK. Harvard fik lidt utålmodig med mig. Så lad os gøre det igen, hurtigere. Få slash HTTP 1.1 host www.harvard.edu user-agent - Jeg kan gætte vores servere ikke pleje så meget om det - Enter Enter. Puha. Åh for helvede, dårlig anmodning. OK. Så hvad sker der her - hej, harvard.edu. Hvorfor er det at gøre det - interessant. Åh, OK. Så hvad Harvard er nu gør - og vi er vil hurtigt dreje ud af denne vej, fordi det går at få kedelige hurtigt - bemærke, at Harvard er faktisk komprimere sit svar til mig, som er ikke ideel. Fordi jeg, tilsyneladende, som et menneske, ikke vide, hvordan man dekomprimere bits, er blevet sendt til mig komprimeret. Og de bliver vist er skrald der, fordi de er nuller og ettaller, men de er ikke ASCII-tegn. De er mønstre af nuller og ettaller, der er blevet komprimeret til at optage mindre plads. Så meget hurtigt, lad mig se hvis jeg kan komme her. Lad os prøve, måske, en anden campus helt. mit.edu get slash HTTP slash 1.1 host www.mit.edu bruger-agent kolon der. Tak, MIT. OK. Så her har vi en webside. Så dette er det sprog kendt som HTML - HyperText Markup Language. Jeg simpelthen rulle tilbage op i tide til at komme til den meget tip toppen af ​​denne side. Og læg mærke til hvordan MIT har reageret på min anmodning. 200 er god. 200 betyder alt er bogstaveligt talt OK. Og det er en status kode, vi mennesker virkelig aldrig se, på en god måde. Fordi det betyder alt er godt. Bemærk, at MIT er at informere mig, hey, den server, vi kører kaldes Apache, hvilket er en meget populær open source gratis web-server. De kører, tilsyneladende, UNIX, som er en operativsystem som Linux. Bemærk, at de tilsyneladende opdateret deres webside på 04:00, Greenwich Mean Time. Bemærk et par andre detaljer. De er tilbage, for mig, text / html. Så vil vi se, hvad det betyder på bare et øjeblik. De har tilsyneladende givet mig 14.717 bytes værd af HTML. Og nogle andre, mere esoteriske information er derinde. Men det er her, det bliver interessant. Dette er, hvordan du laver en webside. Dette er, hvordan du laver en webside, hvis titel i fanen i din browser, er MIT bindestreg Massachusetts Institute of Technology. Og ja, hvis vi går tilbage til Chrome og besøg www.mit.edu, bemærke, ja, i titlen heroppe, er MIT dash Massachusetts Institut dot, dot, dot. Og nu mærke til, også hvis jeg højreklikke eller styre på skrivebordet her og gå til Vis Sidekilde - i hvert fald i Chrome, om hver browser gør dette via nogle midler - her er det samme fil. Det sker for at være farvekodede, eller syntaks fremhævet. Men ligesom med din C-kode, der ikke blev farvelagt af dig, var det farvelagt af gedit, på samme måde er Chrome bare at gøre dette kønnere at læse. Men det er de ting, Vi vil snart være at skrive. Så det er slutspil. Serveren har reageret med det information, ligesom du reagerede med hånden for vores håndtryk. Men hvad der skal gå videre i mellem disse trin? Nå, når jeg skriver i, i dette sidste tilfælde, www.mit.edu og trykke Enter, vi ved, at det taler til havnen 80 automatisk, havne bare at være dette nummer. Men hvor har IP-adressen hen? Hvordan bliver min computer regne ud, hvad IP-adressen på mit.edu er? Tja, det viser sig, i denne verden, der er tingene kaldes DNS-servere. Og lad mig gå videre og drage en hurtig billede herovre. Og det vil bare skitsere, i Groft sagt, hvad der foregår. Så vi vil lade som dette er min laptop her i Sanders. Og det har Wi-Fi, så det er tilsluttet trådløst til noget. Hvad er det egentlig tilsluttet? Tja, et eller andet sted i her, der er noget om væg med nogle antenner. Og det kaldes et adgangspunkt - AP. Trådløst adgangspunkt, trådløs router - kalde det hvad du vil. Men de er alle over campus, med de små antenner. Vores er lavet af Cisco, typisk. Og så en eller anden måde, er min computer taler til det trådløse adgangspunkt, et eller andet sted her i Sanders, eller nedenunder, eller udenfor. I mellemtiden, denne ting har en masse fysiske ledninger går til, formentlig den Science Center, som vi vil tegne som dette. Det faktisk ikke ser sådan ud. Det faktisk ser meget bedre. Så Science Center har en hel flok af computere inde i det, at eller anden måde fysisk forbundet til alle af disse adgangspunkter på campus. Og de fysiske computere, vi vil kalde routere eller gateways. En router, som navnet antyder, er det formål i livet er at route oplysninger. Det tager nogle bits, fra en computer, som input og tal ud til hvor disse bits skal sendes. Så i tilfælde af min anmodning om mit.edu, det er faktisk ret nemt. Min anmodning kommer fra min browser, over Wi-Fi, til adgangspunktet, så via nogle kabel, i en router i Science Center. Og en eller anden måde, routeren i Science center tal ud at MIT er den vej. Og jeg har tænkt mig at bevæge sig fremad dem bits, jeg skal til at dirigere disse bits, ned ad vejen, ned Mass Ave., at MIT. Men hvordan min computer, hvad IP-adressen selv var? Nå det viser sig, at et eller andet sted her er der servere - og jeg har tænkt mig at tegne det temmelig abstrakt - som en DNS-server - Domain Name System. Disse er ikke routere. Disse er forskellige typer af servere hvis formål i livet er at oversætte værtsnavne, ligesom www.mit.edu til IP adresser, ligesom 1.2.3.4 Så DNS-servere gøre netop dette. Du kan tænke på dem som at have en stor database, eller virkelig, som en stor Excel fil med to kolonner. Den ene er værtsnavne, én er IP-adresser. Og de bare konvertere en til anden, i begge retninger. Nu i virkeligheden, det er lidt mere kompleks end det. Men det er, hvordan min computer, min tilfældige Mac eller pc på denne tabel her, kender hvad den entydige identifikator er for www.mit.edu eller Facebook, eller harvard.edu, for den sags skyld. Men selvfølgelig er der den helhed af Mass Ave her. Og så får vi at MIT, hvor denne er faktisk mere overbevisende. Det bliver MIT. Og så de også har nogle servere. Og de en eller anden måde har en kablet eller trådløs, tilslutning til Harvard. Og selvfølgelig kan vi gå meget længere ned ad vejen end MIT, og tale med fleste helst computer i verden. Men lad os se om vi ikke kan se det. Lad mig gå tilbage til min Terminal Vinduet for bare et øjeblik. Og lad os antage, at jeg regnede ud hvad IP-adressen er for mit.edu ligesom Telnet regnede det ud før, og min browser kan tydeligt finde ud af det for mig. Og jeg har tænkt mig at køre et andet program, i denne Terminal vindue, kaldet traceroute, opsporing af rute herfra - bogstaveligt, denne tabel - til www.mit.edu. Lad os se hvad der sker. Lad mig faktisk skrumpe skriftstørrelsen. PK. Nej, jeg ville overraske dig. OK. Så her går vi. Lad mig gå videre og køre dette her. Og hvad jeg var vidne et øjeblik siden, og vi ser nu igen, er det udgang - traceroute www.mit.edu. Bemærk, i første linje, dette program faktisk regnet ud, at MIT IP-adresse er dette nummer her. Og nu, hvad sker der mellem os og dem? Så denne linje her i række et, og det linje her, i række to, og derefter, rækken tre - hvad gør hver af disse linier repræsenterer sandsynligvis? Steder, punkter, helt sikkert. De kaldes humle konceptuelt. Men fysisk, hvad er de? De er routere. Vi har kun, virkelig, ét stykke hardware her for at tale om hidtil. De er routere. Så dette ting her - crazy navn - men dette er sandsynligvis maskinrummet, MR, i Science Center. Det er en gateway, alias router. Dette er blot nogle unikke nummer, nogen kom op med det. Og det er inden for harvard.edu. Og det er IP-adressen på denne router det er, igen, sandsynligvis i Science Center, baseret på dens navn. Denne anden række repræsenterer en anden router, der ikke har et kaldenavn tilsyneladende - et værtsnavn - det blot har en IP-adresse. Så lang historie kort, for at få data fra punkterne A til B, der er mere end bare Harvards router, og MIT router, og Googles router, og Facebooks router. Der er snesevis, hundreder, tusinder af routere mellem ethvert punkt A og enhver punkt B på internettet. Men typisk kan du få data fra et sted til et andet i færre end 30 humle. Med andre ord, du kun nødt til at aflevere data til 30 eller færre sådanne routere. Og det er typisk mange færre end det. Nå, lad os se hvad der sker her. I række tre, ramte vi en kaldet router core Science Center gateway et eller andet. I række 4, har vi border gateway - disse er blot kryptiske forkortelser - også inden harvard.edu. Her er en anden grænse gateway. Og så, pludselig, whoa, Vi synes at være i New York City. Så det viser sig - og jeg er ved at udlede kun fra det værtsnavn. Det kan være vildledende. Det kunne være nede ad vejen. Det er svært at sige - men dette kan anvendes som en åbenbaring at den korteste afstand mellem to punkter på internettet er ikke nødvendigvis en lige linje. Hvis vi tænker på kortest som den hurtigste stien, mindst overbelastede vej, er det meget muligt - selvom vi ikke kan være sikre - at data er på rejse en anstændig Afstanden mellem rækkerne fem og seks. Nu desværre MIT, eller nogen, fik en lille selvstændig defensiv, og de har begyndte at ignorere vores anmodninger. Disse routere er konfigureret til ignorere anmodninger formularen, der er dig, hvem er du, hvem er du. Så lad os se om vi ikke kan gøre dette med nogen mere samarbejdsvillig. Så Stanford har en dejlig tradition for have lidt mere åbenhed. Så lad os se, hvad der sker her. Igen, temmelig kryptisk. Men vi starter igen, i maskinen værelse i Science Center, i række et. Så det er godt. De fleste af serverne gjorde svar, herunder Stanford. Så ser vi gik fra maskinrummet i Science Center, til en vis anonym router et andet sted, til en anden Science Center gateway til en grænse gateway, og så til noget her - nox.org. Dette er den nordlige Crossroads, en meget populært peering punkt, hvor masser af kabler, masser af internetudbydere - Internet-udbydere - forbinde ind. Her er en anden navnløs IP her. Her er en anden sådan server. Men dette er interessant. Hvor er routeren i række otte, sandsynligvis? Så det er sandsynligvis i Washington, DC. Og jeg kan slags bekræfte denne hypotese denne gang. Fordi hvor lang tid tog det os at gå fra Science Center til denne router i række syv? Nå, disse millisekunder målinger på højre side her er skøn over den tid. Der er tre af dem, fordi program, traceroute, forsøger hver router tre gange, bare så du kan få en visuel gennemsnit af tallene. Men det tilsyneladende tager seks millisekunder at få at ro syv router. Men hvor hurtigt kan, tilsyneladende, du rejse, hvis du er en smule mellem Boston og Washington DC? 14 millisekunder er så længe det tager for at instant message, for at email til denne webside anmodning til rejse mellem her og Washington DC. Hvis jeg går videre, til router nummer 10, hvilken by jeg tilsyneladende nu? Så Houston. Og det bekræftes af springet i tide. Det er virkelig langsom til at komme til Houston. Det tager 47 millisekunder at komme fra Boston til Houston i denne sag. Og hvis vi ser yderligere, LAX - ligner vi at komme til Stanford slags denne måde, ved at gå gennem LA. Men jeg udlede, at der fra LAX. De nørder tendens til at bruge lufthavnen koder for routere navne her. Og det er lidt konsekvent med denne antagelse. 82 millisekunder. Så vi tilsyneladende gå til en anden LAX, anden LA router og derefter nogle navnløs én, og derefter endelig et kryptiske navn på Stanfords netværk eller tæt hertil, stanford.edu, er 90 millisekunder væk, eller 6 plus timer med fly. Så dette er, hvor hurtigt data bevæger på internettet. Og det er ting, vi absolut tager for givet i disse dage. Når du har nogle Gchat med nogen, og meddelelserne er bare vises, overveje, hvor hurtigt, at der sker. Og visuelt, er det faktisk sker ved den slags sats. Så mellem punkterne ét og 18, i dette tilfælde er der ting udover routere. Hvad er nogle maskiner på internettet der kan blokere trafik fra at komme igennem? STUDENT: Firewalls. SPEAKER 1: Så firewalls. Og vi har personlige firewalls sådan at din egen Mac eller pc kan holde trafik ind eller ud. Harvard har firewalls. MIT formentlig har firewalls. Og Stanford gør, som gør alle de Internet-udbydere, der ejer disse routere i mellem punkt A og B. Men har du nogensinde holder op med at overveje, eller pleje, hvordan en firewall virker. Nå allerede har vi den grundlæggende bygning blokke med til at konstruere det svar. Hvis du var en firewall - og lad os antage, at du er et sted mellem punkt A og punkt B. Et kabel kommer ind i dig, og gå ud af dig. Så du har den teknologiske mulighed til at se på alle de rammebeløb information, der flyder mellem du og den anden person. Med andre ord, jeg disse få meddelelser var manuelt skrive, kan du tænke på dem som skriver en hurtig note til nogen, sætte IP-adressen på den modtager, og portnummeret på modtageren på denne konvolut, og derefter skrive din egen IP-adresse og din egen portnummer i øverste venstre hjørne som du ville et brev. Derefter skal du sende det ud trådløst. Og det på en måde bevæger gennem routere, gennem ledninger, trådløst ned ad vejen til MIT. Så hvis du er en firewall, hvordan gør du forhindre at det sker? Hvad ville du gøre, hvis din næste p sæt var gennemføre en firewall? Hvordan kan jeg stoppe alle Harvard folk fra nogensinde taler til MIT folk igen? [? STUDENT: Du] vende brev?. SPEAKER 1: Hvad? [? STUDENT:? Reverse] brevet tidligt. SPEAKER 1: Reverse brevet - hvad mener du? [? STUDENT:? Send] det tilbage til afsenderen. SPEAKER 1: Send den tilbage. OK. Så kunne du afvise den virtuelle konvolut, en slags ved at gøre tilbagevenden til afsender eller anden måde. Så sikker, det er hvad vi ønsker at opnå. Men lad os dykke lidt dybere. Hvordan gør jeg det? Hvis indgangen på dette problem - hvis jeg firewall, og jeg er effektivt stående mellem punkt A og B, og Jeg er en mellemvej mand, der får at se indersiden af ​​denne konvolut, og derefter beslutte, om at sende det tilbage til Harvard eller at tillade den at fortsætte, hvad er det Jeg, firewall, går hen ønsker at se på? Jeg tror, ​​jeg hørte det her. [? STUDENT: Hvor det er] fra?. SPEAKER 1: Hvor det kommer fra. Så hvis kilden IP-adresse - det lille nummer op her - er en IP-adresse, der tilhører til Harvard - og jeg kan rent faktisk ved, at med stor sandsynlighed. Størstedelen af ​​Harvard IP-adresser begynder med 140,247 dot noget dot noget, eller 128,103 dot noget dot noget. Harvard ejer disse bidder af IP-adresser. Tja, hvis jeg ser, at IP-adresser, som afsender, kan jeg bare sende det tilbage. I virkeligheden gør internettet ikke gider spilde tid sende de bits tilbage. Det bare bogstaveligt falder pakken ved at slette den. effektivt Så hvad der ellers kunne jeg se på selv? Antag, at jeg ønsker at lade folk på Harvard besøg mit.edu, og træk op hjemmesider, og se videoer på MIT og lignende. Men jeg ønsker ikke mennesker ved Harvard emailing nogen på MIT. Hvordan kunne jeg tillade trafik fra Harvard til MIT, via internettet, men afvise noget som en e-mail? [? STUDENT: The] portnummer. SPEAKER 1: En portnummer - det er den eneste anden ingrediens, vi har. Vi har IP-adresse, som vi netop gearede, eller vi har portnummer, hvor 80, sagde vi, unikt identificerer webtrafik. Nu vil jeg ikke forvente, at du skal vide det - nogle af jer måske allerede kender fra kendskab - hvad er et tal, der er brugt til email,? normalt Det er ofte 25. 25 henviser til SMTP, hvilket er en post transfer protokol, du måtte have måttet sætte op på et tidspunkt, hvis du er bruger Eudora eller Outlook eller noget lignende. Det er bare et andet nummer - 25.. Telnet, som vi bruger før, bruger 23. FTP - filoverførselsprotokol, hvis du nogensinde har hørt om, at man - bruger 21. HTTPS, den sikre version af HTTP, som vi vil komme tilbage til inden længe, ​​bruger 443. Så verden har en hel bunke af numre, der korrelerer pakker - snarere korrelerer tjenester til disse faktiske tal. Så det hele er en firewall gør. Det tager et kig inde i denne virtuelle kuvert og derefter beslutte ja eller nej at sende sammen, bygger på disse ingredienser. Nu, hvad der kunne Harvard klart gøre komme forbi denne firewall så? Hvis du ønsker at være i stand til at sende en besked til MIT, men ikke blive opdaget, godt, du kunne efterligne din IP-adresse, og bare en eller anden måde være smarte nok, kender hvordan man skriver C-kode, og skriv din egen netværksprogram, som ændrer fast adresse. Problemet er, at du kan absolut sende data anonymt, men hvis du ønsker at få nogen form for svar, gerne se MIT hjemmeside, naturligvis, det omhandler nødt til at være korrekt. Ellers kan du sige noget du ønsker, er du ikke kommer til at høre tilbage fra dem. Men disse er blot én af de former af angreb, som vi kan sende. Men det viser sig, når vi sender dem budskaber - og lad os gøre et eksempel på dette. Det viser sig, hvis jeg har et budskab, Jeg ønsker at sende, er det ikke bare sendt en konvolut. For effektivitetens skyld, især når de filer, du anmoder om eller svar, du får, er særlig stor, hvad TCP/IP-- Transmission Control Protocol / Internet Protokol - det er bare en fancy måde at sige, hvad networking software og computere har - er, at de tage imod en besked som denne, og de skære det op i fragmenter - lad os sige fire fragmenter. Og hvis jeg nu skåret op i her, skære det op i her, hvad min computer er derefter vil gøre, er det kommer til at tage et fragment og sætte det i en kuvert. Okay, og lad mig få en - lad os se. Det kommer til at tage en. Det kommer til at tage en anden konvolut, og det kommer til at sætte den anden del af denne meddelelse i her. Ok. Det kommer til at tage den tredje del, sætte det ind her. Måske næste gang vi får bare to dele. Og vi vil tage den fjerde del, og sætte det ind her. Og hvad nu, der skal skrives på disse konvolutter - som vi vil foregive at gøre, for tidens Skyld og faktisk ikke skrive. Hvad skal der skrives på hver af disse fire kuverter, med mit budskab til nogen? [? STUDENT: Den] ordre?. SPEAKER 1: Så ordren. Jeg behøver ikke kun den IP-adresse og portnumre, som vi netop diskuteret, jeg nu brug for en sekvens antal af en slags sige, det er pakke en, dette er to, er det tre, dette er fire. Og det er faktisk nyttigt. Fordi internettet, viser det sig, er faktisk temmelig upålidelige. Routere kan få overbelastet. Kabler kan blive overvældet - en oversimplificering - men, med bits, således at det routere skal gøre er bare drop pakker. Med andre ord, bare hvis internettet er virkelig overbelastet, kan du få tre ud af de fire pakker. Men hvis du har et entydigt id på hver af dem, vil du vide, at du er manglende pakke nummer fire af fire. Så du kan spørge fyr på anden ende at sende den igen. Men under forudsætning af at det ikke sker, lad os se, hvad der kan ske. Så hvis jeg ønsker at sende en besked til - hvem ønsker at modtage mit budskab fra internettet? Hvordan omkring en person tættere op foran. Brian, er det? Ok. Du bo der. Jeg har tænkt mig at sende den til dig. Og de ting om internettet er, at de måske ikke engang følge den samme vej. Så her jeg går. Jeg sender en besked, fragment én af fire. Være en router. Bare lade andre mennesker beskæftige sig med det. Værsgo. Vi vil give det til dig, og vi vil give det til dig. Og vi vil se, hvor hurtigt - hvor mange millisekunder det tager at få dette budskab til Brian. Alle får at deltage i dag. Ok. Brian har en, og to. Hvis nogen ønsker at være - [? STUDENT: Alle fire. ?] SPEAKER 1: Han har alle fire. Så ingen har valgt at droppe en pakke. Det er cool. Det er fint. Så Brian har nu alle fire. Hvis du ønsker at gå videre og samle dem for os. Jeg ved, vi foregiver. Så for tiden skyld - Vi har fire. Så OK, åbn en af ​​dem. OK. Det er en fjerdedel af mit budskab til jer. Nu åbner den anden. Det kan være sjovt, i sidste ende, kun til mig og Brian. Okay, har du fået to. Så i mellemtiden, vi fysisk gjorde dette med saksen, men alt det tager at fragment disse ting i en Computeren er blot at sende nogle af bits i en pakke, i et virtuelt kuvert, nogle af bittene i andre, nogle i en anden, og nogle i en fjerde og derefter lade computeren beslutte, baseret på disse tal, i hvilken rækkefølge, du har at sammenkæde dem. Og Brians, måske den eneste en, der kan se det. Det budskab, jeg sendte til Brain - på grund af Selvfølgelig er internettet fyldt med disse, er - Ja. Så det er budskabet. Og Brian kan hænge på det nu. Så det tog, naturligvis, et stykke tid at gøre dette. Men det er, hvad der virkelig sker, ligesom routing data gennem publikum på denne måde. Men der er, igen, en række punkter, routere, firewalls og andre sådanne ting mellem punkt A og B. og snarere end blot fortælle historien verbalt, jeg troede, jeg ville trække op dette video, som nogle af vores venner fra Erikson, år tilbage, faktisk sat sammen, der forklarer hvordan det hele fungerer. Og det er omkring 10 eller så minutter lang. Så lad os give dig nu, Warriors af nettet. [MUSIC Playing] Fortæller: For første gang i historien, mennesker og maskiner er arbejder sammen, realisere en drøm - en forenende kraft, der ikke kender geografiske grænser, uden hensyn til race, tro eller farve - en ny æra, hvor kommunikation virkelig bringer mennesker sammen. Dette er indgangen til nettet. Vil du vide hvordan det virker? Klik her for at begynde din rejse ind i nettet. Nu præcis, hvad der skete, da du har klikket på dette link? Du startede en strøm af information. Denne information bevæger sig ned i dit egen personlige postrum, da Mr. IP-pakker er det, mærker det, og sender den på sin vej. Hver pakke er begrænset i sin størrelse. Postrummet skal beslutte, hvordan at opdele oplysningerne, og hvordan pakke det. Nu pakken har brug for en etiket indeholdende vigtige oplysninger såsom som afsenderens adresse, modtagerens adresse og den type pakke det er. Fordi denne særlige pakke går ud på internettet, det også får en adresse for proxy-server, som har en særlig funktion, som vi skal se senere. Pakken er nu lanceret på din lokalnetværk eller LAN. Dette netværk anvendes til at forbinde alle de lokale computere, routere, printere, et cetera for information udveksling inden de fysiske mure bygningen. Den LAN er en temmelig ukontrolleret sted, Og desværre ulykker kan ske. Motorvejen af ​​LAN er pakket med alle typer af information. Disse er IP-pakker, Novell pakker, AppleTalk-pakker - de går imod trafik, som sædvanlig. Den lokale router læser til at løse, og hvis det er nødvendigt, løfter en pakke på andet netværk. Ah, routeren - et symbol på kontrol i en tilsyneladende uorganiseret verden. Router: Hov, ked af. Lad os sætte denne ene her, denne ene her. Dette flytter her. Denne ene bevæger her. Jeg kan ikke lide denne ene. Lad os flytte denne ene. Denne ene går her. [Uhørligt] Sætte en anden klirre her. Lad os sætte denne ene her. Nah, jeg vil gå med det. Lad os sætte, at man her. Fortæller: Der er han - systematisk, ufølsom, metodisk, konservativ, og nogle gange, ikke helt op til hastighed. Men i det mindste er han nøjagtig, for det meste. ROUTER: Sæt den derovre. At man går der, at man går der, og denne ene går der. Nå, en anden en går der. Det gælder her. [Uhørligt] Fortæller: Da pakkerne forlader router, de gør deres vej ind i den virksomheds intranet og hoved for routeren switch. Lidt mere effektiv end den router, routeren switch spiller kispus med IP-pakker, routing behændigt dem langs deres vej - en digital pinball wizard, hvis du vil. ROUTER SWITCH: Her går vi. Her kommer en anden. Og det er en anden. Se her, mor. Her det går. Whoop, omkring bagsiden. Hey, derinde. Derinde Over til venstre. Over til højre. Over til venstre. Over til højre. Du fik det. Her kommer. Han skyder, han scorer. Det går. Hey Wayne, se ud, her kommer en anden. Åh, her går vi. Fortæller: Da pakker ankommer til deres destination, er de samlet op af netværksinterface, klar til at blive sendes til det næste niveau - i dette tilfælde. proxy Fuldmagten bliver brugt af mange virksomheder, som en slags midt mand for at mindske belastningen på deres internet forbindelse, og sikkerhedsmæssige grunde også. Som du kan se, pakkerne er alle af forskellige størrelser, afhængigt af deres indhold. Fuldmagten åbner pakken og ser for web-adresse eller webadresse. Afhængigt af om adressen er acceptabel, bliver pakken sendt videre til internettet. Der er dog nogle adresser, som ikke mødes med godkendelse af proxy - dvs, corporate eller retningslinjer for forvaltning. Disse er summarisk behandlet. Vi får intet af dette. For dem, der gør det, er det på vej igen. Næste op, firewall. Virksomhedens firewall tjener to formål. Det forhindrer nogle ret grimme ting fra internettet fra kommer ind i intranet, og det kan også forhindre følsomme firmaoplysninger fra bliver sendt ud på internettet. Når gennem firewallen, router a opfanger pakken og placerer det på en langt smallere vej, eller båndbredde, som vi siger. Det er klart, at vejen ikke er bred nok til at tage dem alle. Nu kan du måske spekulerer på, hvad der sker med alle disse pakker, som ikke gør det undervejs. Tja, når Mr. IP ikke modtage en erkendelse af, at en pakke er blevet modtaget rettidigt, han simpelthen sender en udskiftning pakke. Vi er nu klar til at komme ind i verden af internettet, et edderkoppespind af sammenkoblede net, som spænder hele vores verden. Her routere og switche etablere forbindelser mellem netværk. Nu nettet er en helt anden miljø, end du finder i de beskyttende mure i dit LAN. Herude er det det vilde vesten - masser af plads, masser af muligheder, masser af ting at udforske og steder at gå. Takket være meget lidt kontrol og regulering, nye ideer finder frugtbar jord at skubbe kuvert af deres muligheder. Men på grund af denne frihed, visse farer lurer også. Du vil aldrig vide, hvornår du vil møde den frygtede ping af død, en særlig version af en normal anmodning ping som nogle idiot udtænkt at rod op intetanende værter. Stien vores pakker tage kan være via satellit, telefonlinjer, trådløs, eller endda trans-oceaniske kabel. De behøver ikke altid tage den hurtigste, eller korteste, ruter muligt. Men de vil komme der til sidst. Måske det er derfor, det er nogle gange kaldes den verdensomspændende ventetid. Men når alt fungerer gnidningsløst, du kan omgå kloden fem gange mere end på dråbe af en hat, bogstaveligt - og alle for omkostningerne ved et lokalt opkald, eller mindre. Nær slutningen af ​​vores destination, Vi finder en anden firewall. Afhængig af din perspektiv som en datapakke, kan firewallen en bastion for sikkerhed eller en frygtet modstander. Det hele afhænger af, hvilken side du er , og hvad dine intentioner er. Firewallen er beregnet til Lad i kun de pakker der opfylder dens kriterier. Denne firewall fungerer på port 80 og 25 år. Alle forsøg på at komme gennem andre porte er lukket for erhvervslivet. Port 25 bruges til mail pakker, mens port 80 er indgangen for pakker fra internettet til webserveren. Inde firewall, er pakker screenet mere grundigt. Nogle pakker gør det nemt gennem skikke, mens andre se bare en smule tvivlsomme. Firewall officer er ikke let narre, såsom når denne ping af død pakke forsøger at skjule sig som en normal ping pakke. FIREWALL: Næste. OK. Fortsæt. Det er OK. Intet problem. Hav en god dag. Vær herude. Farvel. Fortæller: For dem pakker lucky nok til at gøre det så langt, at rejse er næsten slut. Det er bare en lineup på grænsefladen til blive taget op i webserveren. I dag en web-server kan køre på mange ting, lige fra en mainframe til et webcam, til computeren på dit skrivebord. Eller hvorfor ikke dit køleskab? Med den rette opsætning, kan du finde ud, hvis du har forudsætninger for kylling cacciatore, eller hvis du nødt til at gå på indkøb. Husk, det er indgangen til nettet. Næsten alt er muligt. En efter en bliver pakkerne modtages, åbnet, og pakkes. De oplysninger, de indeholder - det vil sige, din anmodning for information - sendes videre til nettet server applikation. Selve pakken er genanvendt, klar til bruges igen og fyldt med din ønskede oplysninger, behandlet, og sender ud, på vej tilbage til dig, tilbage forbi firewall, routere, og igennem til internettet, gennem back din virksomheds firewall og på din interface, klar til at levere din webbrowser med oplysningerne du anmodede - der er, denne film. Tilfreds med deres indsats, og tillidsfuld i en bedre verden, vores trofaste datapakker rider ud saligt ind solnedgangen på en anden dag, vel vidende fuldt har de tjent deres mestre godt. Nu er det ikke en lykkelig slutning? SPEAKER 1: Det er, så er hvordan internettet fungerer. Gennem opgavesæt syv vil du bedre at forstå dette og vil du lære lidt af HTML, PHP og meget mere. Mere om det i specifikationen der vil gå ud på fredag. Og vi vil se dig på mandag.