[Musik Spela] Högtalare 1: Okej, välkommen tillbaka till CS50. Detta är slutet på vecka åtta, och nästan Halloween. Morgon kväll kontorstid blir de läskigaste dem ännu, och inte på grund av Halloween. Men på denna anmärkning, inser att problem som sex, det stavningskontroll Problemet set, är känd för att vara, för många elever, den mest utmanande, säkert bland de C problemsamlingar, och egentligen, i allmänhet. Och jag nämner detta bara för att det är veckan där en massa människor får betonas särskilt med bara försöker att få den jävla stavningskontrollen att arbeta. Och en sak som jag vill uppmuntra er är det, som du ser i dag, och på måndag börjar vi att slå denna topp denna vecka där, nu, saker blir en lite mer bekant, lite mer tillgängliga, som vi övergången från en kommandoraden miljö i C en webbaserad miljö i PHP. Och så skulle jag uppmuntra dig, även om du är verkligen på din vett slut i försöka få p inställd till arbete, om det är verkligen den plats du är på, eller befinner dig på, försök att driva igenom det. Eftersom jag tror att du kommer vara ganska glad och ganska stolt över dig själv, Om du slutar egentligen den del av Naturligtvis kan C delen, på så hög, om stressande, notera. Så det är inte att skrämma. Det är bara tänkt att uppmuntra dig att stanna upp som extra timme för att få rättstavningstillägget arbete. Och om du gör, inse att detta är frivilligt, helt. Men vi har den så kallade stora styrelsen som gick lever i morse. Som i morse, var jag på toppen av stora ombord, vilket är ett mått på hur mycket RAM och hur mycket speltid ditt program speller kräver. Men jag har sedan dess ersatts. Jag är nu otursnummer 13. Och vad du ser här är, David Kaufman, och Lauren, och Adam, och Jason, och andra är nu atop stora ombord. Om du ser där borta till höger, alla av oss har riktigt bra implementeringar av storlek minst - returnera antalet ord i ordboken. Och i vart och ett av dessa kolumner, kommer du se hur mycket RAM varje vår implementeringar använder, hur mycket rinnande tid det tar att exekvera belastning, kontra kontroll, kontra storlek och lossa, och därefter, den total speltid. Så bara för att lugna Elmer, och Patrick, och Linda, och alla andra som kommer efter dig, det finns absolut Ingen skam i att vara mot botten av den stora ombord. Om något, betyder att du fick arbeta, och det är rätt, men det är inte nödvändigtvis så effektivt, utrymmet eller tidsmässigt, eftersom det kan vara. Så, helt valfri. Men tänkt att vara en morot av slag så att när du arbetar på din p inställd, du är så stolt över dig själv, du fick det fungerar, skicka dig till den stora ombord, har du ett riktigt bra nummer, du går till middag, kommer du tillbaka, och dina rumskamrater har kantat dig ut på den stora tavlan. Tja, är det dags, på den punkten, att gå tillbaka till ritbordet, så att åter utmana stora styrelsen. Om man tittar på spec, den anvisningar för samverkan med stor styrelse finns nu uppsatta. Så ett par huvuden ups - en, pre-förslag till slutlig Projektet beror detta på måndag. Se denna spec på kursens webbplats för vad det betyder. Det är egentligen bara en avslappnad men trodde provocera e mellan dig och din TF, egentligen bara för att komma igång, konversationen igång, även om de flesta av er har aldrig ens skrivit en webbsida innan, vet inte ens vad du kanske, hur du kanske, genomföra din slutliga projektet. Gå på tro att du vet hur man gör en hel del mer saker i ett par veckor. Så bara börja denna process per den spec att utforska möjliga idéer. Dessutom, vad vi skulle bjuda in dig att göra är - vi har en tradition, under många år Nu, under loppet av hosting detta - store.cs50.net. Allting säljs till självkostnadspris. Och det är egentligen bara en möjlighet att bära CS50, om du vill göra att vid kursens och. Till exempel finns det sådana saker som de t-shirts som du kanske har sett går runt campus, sweatshirts. Och sedan, inbjuder vi också eleverna att lämna mönster att förevigas i den CS50 butiken. Till exempel, en av förra årets favoriter som kommer, kanske, nu respons hos dig är detta en här. Mycket populärt objekt. Så om du vill delta i detta, ska vi sätta upp en form snart, vid cs50.net/design, som du kan ladda en bild som du har gjort i Illustrator eller Photoshop, eller något liknande program. Och om du är bekant med dessa typer specifikationer, vill vi att vara en PNG-bild, minst 200 punkter per tum, och färre än att många bildpunkter, och under 10 megabyte. För mer information, bara maila kursens huvuden vid heads@cs50.net om du vill delta i detta. Okej, så idag, inget mer C. Så vi börja dra tillbaka skikten i Internet, webben, och hur du kan faktiskt börja skriva programvara för denna annorlunda miljö. Så i synnerhet, låt oss fråga, första, frågan om - låt mig få oss till vårt bekanta ritning appen här borta. Låt mig ställa frågan om, hur fungerar internet arbete. [? STUDENT: Magic. ?] SPEAKER 1: Magic. OK. Bra svar. Så vi börjar där idag, och se om Vi kan inte göra det lite mindre magisk inom en timme. Låt oss försöka att berätta det i ramen för en berättelse. Så du är fans av att gå till facebook.com, eller reddit.com, eller oavsett dessa dagar. Och så vad som verkligen händer när du skriver in något liknande facebook.com, och tryck Enter, i krom, eller Firefox, eller IE eller Safari, eller vad webbläsare du faktiskt gör? Kan vi berätta denna historia, kanske mening för mening? Vad är en av de första saker som händer när du trycker Enter, efter skriva facebook.com? [? STUDENT:? Din] dator gör en HTTP-förfrågan. SPEAKER 1: OK. Så din dator gör - vi kommer kalla det - en HTTP-förfrågan. Nu vad betyder det? Tja, har vi alla förmodligen sett eller skrivit, i flera år nu, H-T-T-P ofta följt av kolon, snedstreck, slash. Så vad är det? Tja, är HTTP HyperText Transfer Protocol. Och det är bara ett finare sätt att säga, det är det språk som webbläsare, som Chrome och andra, och webbservrar, som facebook.com, tala till varandra. Och det är en ganska enkel, engelska orienterat språk. Det är nästan som pseudo-kod. Och det är ett sätt för en kund, som vi kallar det - en webbläsare - kommunikationen med servern. Och precis som i en restaurang, när du, kunden, sitta ner vid ett bord och sedan beställa något från den Menyn på servern, det är servern kommer att ta dig tillbaka något, vad det är du begärt. Samma i datavärlden. En webbläsare - en klient - kommer att göra en förfrågan, och då, förhoppningsvis få tillbaka något från servern. Och att något är, vid en hög nivå, på webbsidan. Vid en något lägre nivå, är det en fil som är skriven i en annan språk som kallas HTML - HyperText Markup Language. Men mer om det på bara ett ögonblick. Så HyperText Transfer Protocol - HTTP - det är det protokoll som webbläsare och servern användning. Tja, vad är ett protokoll, exakt? Tja, kan du tänka på det som ett språk. Men om jag nå ut till vår publik här, en normal sak för oss människor att gör är, när vi hälsar på någon, Jag säger, hej, jag heter David. [? STUDENT: Hej,] Mitt namn är Dipty?. Högtalare 1: "Hej, mitt namn är Dipty, "svarar hon. Och så har vi haft det ganska godtyckliga samverkan skaka hand, som är ofta mänsklig konvention i de flesta länder. Och det är ett protokoll, eller hur? Jag slags inledde den genom att utvidga min handen, snarare olyckligt, på scenen av Sanders här. Hon förstod, åh, jag har fått en begära en räcka tydligen. Och så hon svarade på denna begäran genom att faktiskt erkänna det. En erkänner, ACK, är faktiskt ett frasen mycket vanligt i världen av nätverk, en server till bekräfta klienten. Då vi sorts färdig att transaktion, och obekvämlighet över. Så det är verkligen vad som händer under huven också. Låt mig göra detta lite mer tekniskt under huven. Jag kommer att gå hit till ett terminalfönster. Denna terminalfönster råkar vara på min Mac, men du kan göra samma typ av sak i CS50 Appliance. Och jag faktiskt kommer att använda ett program att vi inte kommer verkligen används för mycket alls terminen. Men det kallas Telnet. Tillbaka i dag, var Telnet programmet som du använde för att ansluta till ett fjärrserver, för att kontrollera din e-post eller att göra något liknande. För nu ska vi använda denna gamla skolprogrammet, Telnet, att låtsas vara en webbläsare. Och jag ska gå vidare och gör följande - låt mig öka min teckenstorlek. Och jag ska säga, Telnet till Servern kallas www.facebook.com, men specifikt, Telnet för port 80. Vi ska återkomma till detta. Men för nu, vet att de flesta tjänster på internet är identifierade unikt av vissa nummer. I detta fall är det 80. Nu har de flesta av er har förmodligen aldrig skrivit 80 innan. Men i verkligheten, om jag går till en webbläsare och dra upp, till exempel, http://www.facebook.com/-- som Komplettera automatiskt, det är inte min historia - okej, så nu går vi till colon 80 snedstreck. Så jag hävdar att även om du har förmodligen aldrig skrivit det förut, med kolon 80 efter facebook.com, förhoppningsvis, det kommer fortfarande att fungera. Och faktiskt, det går till facebook.com. Så visar det sig att 80 har varit underförstått. Ingen av oss människor har haft att skriva det för år. Eftersom webbläsare, som standard, precis anta att det nummer du vill använda när du ringer upp en server så att tala är i själva verket 80. Eftersom lång historia kort, servrar kan göra mycket mer än att bara tjäna upp webbsidor. De kan svara på snabbmeddelanden. De kan skicka e-post. Det finns massor av tjänster som kan köras på en enda server. Så dessa siffror - i det här fallet, 80 - unikt identifierar en av dem tjänster, vilket är HTTP, de webbprotokoUbehandlingsdelen än en server kan faktiskt stödja. Men jag kan simulera denna begäran nu, textuellt, med denna gamla skolan Telnet programmet. Så jag kommer att i huvudsak nu låtsas att vara en webbläsare och tala HTTP genom att skicka med mitt tangentbord, precis de kommandon som Chrome bara visste hur att skicka för mig magiskt. Så jag kommer att gå vidare och tryck på Retur. Lägg märke till att det försöker 31.13.69.32. 13 Vad är det? Så det är en IP-adress. Nu även om du inte är alltför bekant med krångligheter dem, du antagligen ha en allmän känsla att dessa saker existerar. Och en IP-adress - Internet Protocol-adress - är bara en unik identifierare för en dator på internet. Detta är lite av en förenkling för ögonblicket. Men varje dator på Internet har en unik IP-adress, ungefär som varje hus, säger, att USA har en unik postadress, ungefär 123 Main Street, i Anytown, USA. Så nåt sånt. Och det är också förenkling. Men dessa adresser som vi har i Postal världen och dessa adresser som vi har i datorvärlden identifiera servrar så att när du skickar ett meddelande till dem över internet, eller när du sätter ett brev en gammal skola brevlåda - post - tjänsten vet hur man får det begäran, eller denna skrivelse till avsedda mottagaren. Nu är min dator, på något sätt, har bara räknat ut att Facebooks unika IP är 31.13.69.32. I själva verket kan det sannolikt att förändras. Facebook har förmodligen flera IP adresser, eftersom de absolut ha mer än en server. Men det har hänt för oss magiskt. Faktum är att den inre hemliga namnet på server har jag tydligen ansluten att kallas star.c10r.facebook.com, vad det nu är. Det är precis vad systemet administratör på Facebook beslutat att kallar denna server som jag var något slumpmässigt skickas till. Så nu om min anslutning har inte gått ut, kommer jag att låtsas vara den webbläsaren. Jag kommer att säga få utrymme snedstreck utrymme. Och jag ska låtsas att tala HTTP version 1.1, vilket är den som de flesta webbläsare använder. Och jag särskilt kommer att tala till servern, förresten, jag vill ha den webbplats känd för världen som facebook.com. Enter, Enter. Och nu märker vad som har hänt. Servern, servitören, har svarat till min beställning, eller min begäran, med annat textmeddelande. Nu igen, i en värld av webbläsare som Chrome och Safari, skulle du inte se detta, eftersom det mänskliga. Microsoft och Google gömmer bara dessa uppgifter från oss. Men Facebook har svarat med en svar, även i språket HTTP. Märker att det finns en kod här, 302, vilket faktiskt har särskild betydelse från konvention. Hittade, så det är åtminstone lovande. Men tydligen Facebook säger mig, mm-mm, vill du inte vad du bad om. Du vill istället dagens särskilda, som är facebook.com / unsupportedbrowser. Så vid en hög nivå, vad innebär Facebook verkar göra här? Det omdirigera mig. Så Facebook inte gillar faktum att jag låtsas vara denna andra webbläsare. Och så det omdirigera mig till någon hemsida. Jag är faktiskt nyfiken, nu, vad denna sak ser ut. Låt mig gå över till att i Chrome så vi kan se vad de vill att jag ska se. Så nu har de faktiskt skickade mig tillbaka till Facebook eftersom de har insett, Åh, har du en webbläsare som stöds. Vi ska inte ens gå till visa den sidan. Så låt oss gå vidare och se Om vi ​​inte kan fixa detta. Jag kommer att behöva fuska lite. Och mer om detta under de kommande veckorna. Men jag ska göra en sak här. Och jag ska förklara detta snart. Ge mig bara en stund till fuska, och wow du. Så låt mig få detta. OK. Jag ska förklara vad jag gör på bara ett ögonblick. Jag ska gå vidare och avbryta anslutning, och prova detta igen. Få slash HTTP 1.1 host www.facebook.com user-agent. OK. Nu har jag låtsades vara Chrome. Så visar det sig att när en webbläsare skickar en begäran till en server, det är bara systemets ära. Om jag säger att jag är Chrome, Facebook antar jag Chrome. Och de medel som jag identifierade mig själv som Chrome är genom detta vedervärdigt lång sträng. I huvudsak alla webbläsaren tillverkarna i världen har beslutat, väl, denna version av detta webbläsare på detta operativsystem ha en user-agent sträng som ser sådär galet röran där. Och Mozilla är där för historiska skäl. Men märker hur mycket information jag läcker till facebook.com utan att ens logga in Jag säger Mark att det är en Mac som jag använder. Jag berättar för honom att det är en Intel baserade Mac kör Mac OS 10.8.5. Som en parentes, är denna information kommer till varje webbplats som du besöker med din webbläsare. Ganska innocuous hittills, men det blir lite saftigare. Lägg märke till att om vi läser tillräckligt långt, Jag använder Chrome version 30.0.1599.101. Men nu, märker att svaret är inte så illa som det var innan. Var är Facebook berättar mig att gå nu? Det säger mig, återigen, på webbplatsen - det säger mig att det är permanent. Tja, vem i hela friden Facebook åka? Ja, så det är en subtil skillnad. Men varsel, här, att webbplatsen har faktiskt flyttat till HTTPS. Så lång historia kort, är detta ett sätt att Facebook är genomdriva att jag faktiskt hamna på den säkra versionen av deras hemsida, den som är med kryptering - mer komplex än den kryptering vi talade om för p set två, men kryptering ändå. Nu vid denna tidpunkt det blir svårt för mig att förfalska sin webb begära hjälp av Telnet. För om de berättar mig att använda SSL - HTTPS prefix är vad det innebär - Om de säger till mig att använda kryptografi, det finns inget sätt jag ska att manuellt kryptera mitt budskap framför av alla här, och försök att lista ut hur man gör det. Det kommer bara att få mycket mer komplex. Men det är vad webbläsaren gör för dig. Låt oss se om vi inte kan göra det lite mer helt enkelt, då, med en webbplats det är inte väntar oss att vara lika säker. Låt oss gå till, säg, harvard.edu på port 80. Enter. Okej, så får snedstreck HTTP 1.1. Och vad innebär det första slash? Bara för att vara tydlig, varför Jag förvarar skriva det? Jo normalt, när du skriver en webbadress - och tyvärr, webbläsare brukar dölja detta i dessa dagar - normalt, när du går till harvard.edu, denna URL officiellt slutar i ett snedstreck. Eftersom en enda snedstreck betecknar vilken del av hårddisken? Roten till hårddisken. Vi i Appliance har inte riktigt haft att tänka på detta, eftersom vi är alltid i John Harvards mapp. Men hans mapp finns i en annan mapp. Och den mappen finns i roten på Appliance hårddisk, så att säga, även om det är virtuella. Så ett enkelt snedstreck som detta innebär roten på hårddisken. Det är som C kolon backslash, eller det är roten av din volym, på Mac OS. Men Chrome och andra webbläsare dessa dagar, har blivit användarvänlig, och de dölja att hugga helt. Men det är allt som betyder i mitt textmeddelande - ge mig roten harvard.edu s hemsida, det vill säga den default själva sidan. Så låt mig gå vidare och slå Enter. Låt mig påminna värd som jag vill www.harvard.edu, ifall det finns andra webbplatser som lever på samma fysiska server. OK. Harvard fick lite otålig med mig. Så låt oss göra det här igen, snabbare. Få slash HTTP 1.1 host www.harvard.edu user-agent - Jag gissar våra servrar inte omsorg så mycket om detta - Enter, Enter. Puh. Åh fan, dålig begäran. OK. Så vad händer här - hej, harvard.edu. Varför gör den det - intressant. Åh, OK. Så vad Harvards nu gör - och vi är snabbt kommer att svänga av på denna väg, eftersom det kommer att få tråkiga snabbt - märker att Harvard är faktiskt komprimera sitt svar till mig, vilket är inte idealisk. Eftersom jag, tydligen, som en människa, inte vet hur man ska packa bitar som har skickats till mig komprimeras. Och de som visas är skräp det, eftersom de är nollor och ettor, men de är inte ASCII-tecken. De är mönster av ettor och nollor som har komprimerats för att ta upp mindre utrymme. Så mycket snabbt, låt mig se om jag kan återhämta här. Låt oss försöka, kanske, en annan campus helt. mit.edu get snedstreck HTTP snedstreck 1,1 värd www.mit.edu user-agent kolon där. Tack, MIT. OK. Så här har vi en webbsida. Så detta är det språk kallas HTML - HyperText Markup Language. Jag är helt enkelt rulla tillbaka upp i tid för att få till mycket tip top på den här sidan. Och lägg märke till hur MIT har svarat på min begäran. 200 är bra. 200 betyder allt är bokstavligen OK. Och det är en statuskod som vi människor egentligen aldrig se, på ett bra sätt. Eftersom det innebär att allt är bra. Lägg märke till att MIT är att informera mig, hej, servern kör vi heter Apache, som är en mycket populär öppen källkod fri webbserver. De kör, tydligen, UNIX, vilket är en operativsystem som Linux. Lägg märke till att de uppenbarligen uppdaterats deras webbsida på 04:00, Greenwich Mean Time. Kallelse ett par andra detaljer. De är tillbaka, för mig, text / html. Så vi får se vad det betyder på bara ett ögonblick. De har tydligen gett mig 14.717 bytes värde av HTML. Och några andra, mer esoteriska informationen finns där. Men det är där det blir intressant. Detta är hur man gör en webbsida. Detta är hur man gör en webbsida vars titel på fliken i din webbläsare, är MIT bindestreck Massachusetts Institute of Technology. Och faktiskt, om vi går tillbaka till Chrome och besök www.mit.edu, märker att, faktiskt, i titeln här uppe, är MIT dash Massachusetts Institutet prick, punkt, punkt. Och nu märker också, om jag högerklicka eller styra klicka på skrivbordet här, och gå till Visa Sidkälla - åtminstone i Chrome, men alla webbläsare gör detta via något sätt - här är att samma fil. Det råkar vara färgkodade, eller syntax. Men precis som med din C-kod som inte var färglagd av dig, var det färglagd av gedit, på liknande sätt är Chrome gör bara detta sötare att läsa. Men detta är saker som Vi kommer snart att skriva. Så det är slutspel. Servern har svarat med att uppgifter, precis som du svarade med handen för vår handskakning. Men vad annat måste gå på i mellan dessa steg? Jo, när jag skriver in, i det senare fallet, www.mit.edu och tryck Enter, vi vet att det talar till hamn 80 automatiskt, port bara vara det numret. Men vart tog den IP-adress går? Hur är min dator räkna ut vad IP-adressen för mit.edu är? Tja, det visar sig, i denna värld, där är saker som kallas DNS-servrar. Och låt mig gå vidare och dra en snabb bild över här. Och detta ska bara skissera, i grova termer, vad som händer. Så vi ska låtsas som om detta är min laptop här, i Sanders. Och det har Wi-Fi, så den är ansluten trådlöst till något. Vad är den ansluten faktiskt? Tja, någonstans här, det finns något på väggen med några antenner. Och det kallas en åtkomstpunkt - AP. Trådlös åtkomstpunkt, trådlös router - kalla det vad du vill. Men de är alla över campus, med dessa små antenner. Vårt görs av Cisco, typiskt. Och så på något sätt, är min dator talar till att trådlös åtkomstpunkt, någonstans här i Sanders, eller nere, eller utanför. Samtidigt har denna sak en hel del fysiska ledningar går till, förmodligen, den Science Center, som vi kommer dra ut så här. Det faktiskt inte se ut så. Det ser faktiskt mycket bättre. Så Science Center har en hel drös av datorer inifrån av det som är något fysiskt ansluten till alla av dessa accesspunkter på campus. Och de fysiska datorer, vi ringa routrar eller gateways. En router, som namnet antyder, är det syfte i livet är att dirigera information. Det tar några bitar, från en dator, som indata, och räknar ut att där dessa bitar ska skickas. Så i fallet med min begäran om mit.edu, det är faktiskt ganska lätt. Min begäran kommer in från min webbläsare, via Wi-Fi, till åtkomstpunkten, då, via någon kabel, till en router i Science Center. Och på något sätt, routern i Science Center räknar ut att MIT är på det sättet. Och jag kommer att gå vidare som bitar, jag kommer att dirigera dessa bitar, på vägen, ner Mass Ave., till MIT. Men hur visste min dator vet vad IP-adressen var ännu? Jo det visar sig att någonstans här finns servrar - och jag kommer att göra det ganska abstrakt - som en DNS-server - Domain Name System. Dessa är inte routrar. Dessa är olika typer av servrar vars syfte i livet är att översätta värdnamn, som www.mit.edu, till IP adresser, liksom 1.2.3.4 Så DNS-servrar göra just detta. Du kan tänka på dem som har en stor databas, eller egentligen, som en stor Excel fil med två kolumner. En är värdnamn, en är IP-adresser. Och de konverterar bara en till andra, i endera riktningen. Nu i verkligheten, det är en liten mer komplex än så. Men det är hur min dator, min slumpmässiga Mac eller PC på denna tabell här, vet vad den unika identifierare är för www.mit.edu, eller Facebook, eller harvard.edu, för den delen. Men naturligtvis finns det en helhet av Mass Ave här. Och då får vi till MIT, som detta är faktiskt mer övertygande. Det blir MIT. Och så de också har vissa servrar. Och de på något sätt har en fast, eller trådlös, anslutning till Harvard. Och naturligtvis kan vi gå mycket längre väg än MIT, och prata med de flesta någon dator i världen. Men låt oss se om vi inte kan se det. Låt mig gå tillbaka till min terminal fönster för bara ett ögonblick. Och låt oss anta att jag räknat ut vad IP-adressen är för mit.edu som Telnet räknat ut det innan, och min webbläsare kan tydligt räkna ut det för mig. Och jag kommer att köra ett annat program, i denna terminal fönster, som kallas traceroute, spåra vägen härifrån - bokstavligt, denna tabell - till www.mit.edu. Låt oss se vad som händer. Låt mig faktiskt krympa teckenstorlek. Oop. Nej, jag ville överraska dig. OK. Så här går vi. Låt mig gå vidare och köra detta här. Och vad jag såg för en stund sedan, och vi ser igen nu, är detta utgång - traceroute www.mit.edu. Lägg märke till, i första raden, det här programmet faktiskt räknat ut att MIT: s IP-adressen är numret här. Och nu, vad händer mellan oss och dem? Så här linjen här, i rad ett, och detta linje här, på rad två, och sedan, rad tre - vad gör alla dessa linjerna representerar förmodligen? Platser, poäng, visst. De kallas humle, konceptuellt. Men fysiskt, vad är det? De är routrar. Vi har bara, egentligen, en bit hårdvara här för att tala om hittills. De är routrar. Så denna sak här - galet namn - men detta är förmodligen maskinrum, MR, i Science Center. Det är en gateway, aka router. Detta är bara några unikt nummer som någon kom upp med för det. Och det är inom harvard.edu. Och det är IP-adressen för denna router Det är, återigen, förmodligen i Science Center, baserat på dess namn. Denna andra raden representerar en annan router som inte har ett smeknamn tydligen - ett värdnamn - den bara har en IP-adress. Så lång historia kort, för att få information från punkterna A till B, det finns mer än bara Harvards router, och MIT: s router, och Googles router, och Facebooks router. Det finns dussintals, hundratals, tusentals routrar mellan valfri punkt A och eventuella punkt B på internet. Men oftast kan du få information från en punkt till en annan i färre än 30 hopp. Med andra ord, har du bara att lämna datan till 30 eller färre sådana routrar. Och det är oftast många färre än så. Nåväl, låt oss se vad som händer här. I rad tre, slog vi en router som heter core Science Center gateway något eller annat. I rad 4, har vi border gateway - dessa är bara kryptiska akronymer - också inom harvard.edu. Här är en annan Border Gateway. Och då, plötsligt, whoa, vi verkar vara i New York. Så visar det sig - och jag är i frånhändas endast från värdnamnet. Detta kan vara missvisande. Det kan vara på vägen. Det är svårt att säga - men detta kan användas som en uppenbarelse att det kortaste avståndet mellan två punkter på internet är inte nödvändigtvis en rak linje. Om vi ​​tänker på kortast som den snabbaste bana, det minst överbelastade bana, är det fullt möjligt - även om vi inte kan vara säkra på - att data reser en anständig Avståndet mellan raderna fem och sex. Nu tyvärr MIT, eller någon, fick lite själv-defensiv, och de har började ignorera våra önskemål. Dessa routrar har konfigurerats för att ignorera begäran av formen som är du, vem är du, vem är du. Så låt oss se om vi inte kan göra detta med någon mer samarbetsvillig. Så Stanford har en fin tradition av med lite mer öppenhet. Så låt oss se vad som händer här. Igen, ganska kryptiskt. Men vi börjar, återigen, i maskinen rum i Science Center, på rad ett. Så det är bra. De flesta av servrarna svarade, inklusive Stanford. Så märker vi gick från maskinrummet i Science Center, att vissa Anonym router någon annanstans, till en annan Science Center gateway, till en gräns gateway, och sedan, till något här - nox.org. Detta är den norra Crossroads, en mycket populär peering punkt där massor av kablar, massor av Internetleverantörer - Internetleverantörer - koppla in sig. Här är en annan namnlösa IP här. Här är en annan sådan server. Men detta är intressant. Var är routern i rad åtta, troligen? Så det är förmodligen i Washington, DC. Och jag kan typ av styrka att hypotesen denna gång. För hur lång tid tog det för oss att gå från Science Center till denna router i rad sju? Nåväl, dessa millisekunder mätningar på högra sidan här är uppskattningar av den tiden. Det finns tre av dem på grund av att program, traceroute, försöker varje router tre gånger, bara så du kan få en visuell medelvärdet av det antal. Men det tar tydligen sex millisekunder att få att ro sju router. Men hur snabbt kan, tydligen, du resa, om du är lite, mellan Boston och Washington DC? 14 millisekunder är så länge som det tar för att snabbmeddelande, för att e-post, för att webbsidan begäran resa mellan här och Washington DC. Om jag går vidare, till router nummer 10, vilken stad är jag tydligen i nu? Så, Houston. Och detta bekräftas av hopp i tiden. Det är långsamma verkligen att komma till Houston. Det tar 47 millisekunder att få från Boston till Houston i det här fallet. Och om vi tittar vidare, LAX - ser ut som vi får till Stanford slags detta sätt, genom att gå via LA. Men jag dra slutsatsen att från LAX. De nördar tenderar att använda flygplatskoder för routrar namn här. Och detta är typ av konsekvent med detta antagande. 82 millisekunder. Sedan går vi tydligen till en annan LAX, annan LA router och sedan, några namnlös ett, och sedan slutligen, en kryptiska namn på Stanfords nätverk, eller närheten därav, stanford.edu, är 90 millisekunder bort, eller 6 plus timmar med flyg. Så detta är hur snabb data färdas på internet. Och det är saker som vi absolut tar för givet dessa dagar. När du har några Gchat med någon, och meddelandena är bara förekommer, överväga hur Snabb som händer. Och visuellt, det händer faktiskt vid denna typ av hastighet. Så mellan punkterna ett och 18, i detta fall finns det saker förutom routrar. Vad är några maskiner på internet som kan blockera trafiken från att komma igenom? STUDENT: Brandväggar. Högtalare 1: Så, brandväggar. Och vi har personliga brandväggar som att din egen Mac eller PC kan hålla trafik in eller ut. Harvard har brandväggar. MIT har förmodligen brandväggar. Och Stanford gör, så gör allt för Internetleverantörer som äger dessa routrar i mellan punkterna A och B. Men visste du någonsin sluta att tänka på, eller vård, hur en brandvägg fungerar. Väl redan, har vi den grundläggande byggnaden block som man kan konstruera det svaret. Om du var en brandvägg - och låt oss anta att du är någonstans mellan punkt A och punkt B. En kabel kommer in i dig, och gå ut ur dig. Så du har den tekniska förmågan att titta på alla av höljen information som flödar mellan du och den andra personen. Med andra ord, de få meddelanden som jag var manuellt skriva, kan du tänka på dem som skriver en snabb anteckning till någon, sätta IP-adressen för mottagaren, och portnumret i mottagaren, om detta anslag, då, skriva din egen IP-adress och din egen portnummer i det övre vänstra hörn som du skulle en bokstav. Sedan skickar du ut trådlöst. Och den färdas på något sätt, genom routrar, genom tråd, trådlöst, väg till MIT. Så om du är en brandvägg, hur gör du stoppa det från att hända? Vad skulle du göra om din nästa p fastställa var implementera en brandvägg? Hur stoppar jag alla Harvard människor från någonsin talar till MIT människor igen? [? STUDENT: Du] vända brevet?. Högtalare 1: Du vad? [? STUDENTEN? Reverse] brevet tidigt. Högtalare 1: Omvänd brevet - vad menar du? [? STUDENTEN? Skicka] det tillbaka till avsändaren. Högtalare 1: Skicka tillbaka. OK. Så du skulle kunna avvisa den virtuella kuvert, sorterar av genom att göra återgång till avsändare på något sätt. Så visst, det är vad vi vill uppnå. Men låt oss dyka lite djupare. Hur gör jag det? Om insignalen till detta problem - om jag är brandväggen, och jag är ett effektivt stående mellan punkterna A och B, och Jag är en medelålders man som får se Insidan av kuvertet, och sedan bestämma om att skicka tillbaka den till Harvard eller att tillåta den att fortsätta, vad är det jag, brandväggen, tänker att vilja titta på? Jag tror att jag hörde det här. [? STUDENT: Där det är] kommer från?. Högtalare 1: Om det kommer från. Så om källan IP-adress - det lilla antalet upp här - är en IP-adress som tillhör till Harvard - och jag kan faktiskt känna att med hög sannolikhet. De flesta av Harvards IP-adresser börjar med 140,247 dot något dot något, eller 128,103 dot något dot någonting. Harvard äger dessa bitar av IP-adresser. Tja, om jag ser att IP-adresser som avsändare, kan jag bara skicka tillbaka den. I verkligheten gör internet inte bry slösa tid skickar bitarna tillbaka. Det bara bokstavligen tappar paketet genom att ta bort det, faktiskt. Så vad mer kan jag titta på då? Antag att jag vill låta människor på Harvard besök mit.edu, och dra upp webbplatser, och titta på video på MIT, och liknande. Men jag vill inte ha människor vid Harvard mejla någon på MIT. Hur kunde jag tillåta trafik från Harvard till MIT, via webben, men inte tillåta något liknande ett mejl? [? STUDENT:? Det] portnummer. Högtalare 1: Ett portnummer - det är Endast annan ingrediens som vi har. Vi har IP-adress, som vi bara hävstång, eller vi har portnummer, där 80, sade vi, unikt identifierar webbtrafik. Nu skulle jag inte förvänta dig att veta detta - några av er kanske redan vet från förtrogenhet - vad är ett nummer som används för e-post, oftast? Det är ofta 25. 25 hänvisar till SMTP, är som en post överföring protokoll som du kan ha var tvungen att ställa upp någon gång, om du är använder Eudora eller Outlook, eller något liknande. Det är bara ett annat nummer - 25. Telnet, som vi använde innan, använder 23. FTP - file transfer protocol, om du någonsin hört talas om att man - använder 21. HTTPS, den säkra versionen av HTTP, vilket vi ska återkomma till Snart använder 443. Så världen har en hel massa siffror som korrelerar paket - snarare, korrelerar tjänster till de faktiska siffrorna. Så det är allt en brandvägg gör. Det tar en titt inuti denna virtuella kuvert, och sedan beslutar ja eller nej att vidarebefordra tillsammans, bygger på dessa ingredienser. Nu vad kunde Harvard göra klart att komma förbi den här brandväggen då? Om du vill kunna skicka ett meddelande till MIT men inte detekteras, väl, kan du förfalska din IP-adress, och bara på något sätt vara fint nog, vet hur man skriver C-kod, och skriva en egen nätverksprogram som förändrar fast adress. Problemet är att du absolut kan skicka uppgifter anonymt, men om du vill få någon form av svar, vilja se MIT: s hemsida, naturligtvis, tar upp denna måste vara korrekt. Annars kan du säga något du vill, du kommer inte att hör tillbaka från dem. Men dessa är bara en av de slag av attacker som vi kan skicka. Men det visar sig när vi skickar dessa meddelanden - och låt oss göra ett exempel på detta. Det visar sig, om jag har ett budskap som Jag vill skicka, är det inte bara skickas i ett kuvert. För effektivitet skull, speciellt när de filer som du begär eller svar du får är särskilt stor, vad TCP/IP-- Transmission Control Protocol / Internet Protokoll - det är bara en fantasi sätt att säga vad nätverk programvara och datorer gör - är de ta ett budskap som detta, och de skär den i mindre bitar - låt oss säga fyra fragment. Och om jag skär nu upp detta i här, skära upp detta i här, vad min Datorn är sedan att gå att göra är att det är kommer att ta ett fragment och lägg den i ett kuvert. Okej, och låt mig få en - låt oss se. Det kommer att ta en. Det kommer att ta ett annat kuvert, och det kommer att sätta den andra delen av detta meddelande i här. Okej. Det kommer att ta den tredje del, lägga den i här. Kanske nästa gång vi ska bara göra två delar. Och vi tar den fjärde delen, och lägga den i här. Och vad, nu måste skrivas på dessa höljen - som vi kan låtsas att göra, för tiden är skull, och faktiskt inte skriva ut. Vad behöver skrivas på varje dessa fyra kuvert, med mitt budskap till någon? [? STUDENT: Det] order?. Högtalare 1: Så, ordningen. Jag behöver inte bara IP-adressen och portnummer, som vi just diskuterat, jag behöver nu ett sekvensnummer av något slag att säga, detta är paket ett, här är två, är detta tre, detta är fyra. Och detta är faktiskt bra. Eftersom internet, visar det sig, är faktiskt ganska opålitliga. Routrar kan bli överbelastad. Kablar kan bli överväldigad - en förenkling - men, med bitar så att det routrar behöver göra är att bara släppa paket. Med andra ord, om internet är bara verkligen överbelastad, kan du få tre av dessa fyra paket. Men om du har en unik identifierare på var och en av dem, vet du att du är saknade paket nummer fyra av fyra. Så du kan be killen på andra änden att skicka det. Men antar att detta inte händer, låt oss se vad som kan hända. Så om jag vill skicka ett meddelande till - vem vill få mitt budskap från internet? Vad sägs om någon närmare up front. Brian, är det? Okej. Du stannar där. Jag kommer att skicka den till dig. Och med internet är att de kanske inte ens följa samma väg. Så här går jag. Jag skickar ett meddelande, fragment en av fyra. Vara en router. Bara låta andra människor ta itu med det. Där du går. Vi ska ge detta till dig, och vi ska ge detta till dig. Och vi får se hur snabbt - hur många millisekunder det tar att få detta budskap till Brian. Alla får delta i dag. Okej. Brian har en, och två. Om någon vill vara - [? STUDENT: Alla fyra. ?] Högtalare 1: Han har alla fyra. Så ingen valde att släppa ett paket. Det är coolt. Det är bra. Så Brian har nu alla fyra. Om du vill gå vidare och ihop dem till oss. Jag vet, vi låtsas. Så för tiden skull - vi har fyra. Så, OK, öppna en av dem. OK. Det är en fjärdedel av Mitt budskap till dig. Nu öppnar den andra. Detta kan vara roligt, i slutet, bara till mig och Brian. Okej, du har två. Så under tiden gjorde vi fysiskt detta med sax, men allt det tar att fragmentera dessa saker i en Datorn är bara att skicka några av de bitar i ett paket, i en virtuell kuvert, några av bitarna i andra, en del i en annan, och en del i en fjärde, och sedan, låt datorn besluta, på grundval av dessa siffror, i vilken ordning du har för att sammanfoga dem. Och Brians, kanske, det enda en som kan se detta. Det meddelande som jag skickade till hjärnan - på grund av Naturligtvis är Internet fylld med dessa är - Ja. Så det är budskapet. Och Brian kan hänga på det nu. Så det tog, naturligtvis, en stund för att göra detta. Men det är vad som verkligen händer, som att dirigera data genom publik på detta sätt. Men det finns, återigen, ett antal punkter, routrar, brandväggar och andra sådana saker mellan punkterna A och B. och snarare än att bara berätta historien verbalt, trodde jag att jag skulle dra upp detta video som några vänner till oss, från Erikson, år tillbaka, faktiskt sätta ihop som förklarar hur allt fungerar. Och det är ungefär 10 eller så minuter lång. Så låt oss ge dig, nu, Krigare av nätet. [Musik Spela] Berättare: För första gången i historien, människor och maskiner är arbetar tillsammans, förverkliga en dröm - en sammanhållande kraft som ingen vet geografiska gränser, utan hänsyn till ras, trosbekännelse eller färg - en ny era där kommunikation verkligen samman människor. Detta är början på nätet. Vill du veta hur det fungerar? Klicka här för att börja din resa in i nätet. Nu exakt vad som hände när du klickade på länken? Du startade ett flöde av information. Denna information färdas ner i din egen personliga postrummet, när Mr IP-paket det, märker det, och skickar den på väg. Varje paket är begränsad i sin storlek. Postrummet måste bestämma hur man kan dela informationen, och hur paketera det. Nu paketet behöver en etikett med viktig information såsom som avsändarens adress, mottagarens adress, och vilken typ av paket det är. Eftersom denna speciella paket kommer ut på internet, även det får en adress för proxyservern, som har en särskild funktion, som vi ska se senare. Paketet lanseras nu på din lokalt nätverk eller LAN. Detta nät används för att ansluta alla de lokala datorer, routrar, skrivare, et cetera för kännedom utbyte inom de fysiska väggar byggnaden. Den LAN är ett ganska okontrollerat plats, Och tyvärr olyckor kan hända. Motorvägen i LAN är packad med alla typer av information. Dessa är IP-paket, Novell paket, AppleTalk-paket - de går mot trafik, som vanligt. Den lokala routern läser att behandla och, om nödvändigt, lyfter paketet till ett annat nätverk. Ah, routern - en symbol för kontroll i en till synes oorganiserad värld. Router: Whoops, förlåt om det. Låt oss sätta detta en här, detta här. Det rör sig här. Denna man rör sig här. Jag gillar inte det här. Låt oss flytta här. Detta går här. [OHÖRBAR] Annorlunda jangle här. Låt oss sätta detta här. Nä, jag ska gå med det. Låt oss sätta det en här. Skärmläsaren: Där är han - systematisk, känslokall, metodisk, konservativ, och ibland, inte riktigt upp till hastighet. Men åtminstone han är exakt, för det mesta. Router: Sätt att en borta. Att man går där, att man går där, och detta går dit. Tja, går en annan där. Det går här. [OHÖRBAR] BERÄTTARE: När paketen lämnar router, de gör sin väg in i företagets intranät och huvud för routern switch. En lite mer effektiv än routern, routern switch spelar snabbt och löst med IP-paket, skickligt routing dem längs deras väg - en digital Pinballtrollkarl, om ni så vill. ROUTER SWITCH: Här går vi. Här kommer en till. Och det är en annan. Titta här, mamma. Här går. Whoop, runt baksidan. Hej, där, där. Över till vänster. Över till höger. Över till vänster. Över till höger. Du fick det. Här kommer det. Han skjuter, han poäng. Det kommer. Hey Wayne, se upp, här kommer en till. Åh, nu kör vi. Berättare: Eftersom paketen når sin destination, de plockas upp av nätverksgränssnitt, redo att skickas till nästa nivå - i detta fall, proxy. Fullmakten används av många företag som slags mellanhand för att minska belastningen på deras internet sammanhang och för säkerhetsskäl liksom. Som ni kan se, paketen är alla av olika storlekar, beroende på deras innehåll. Proxyn öppnar paketet och ser för webbadress eller URL. Beroende på om den adress som är acceptabelt, är förpackningen skickas vidare till internet. Det finns dock vissa adresser som inte uppfyller med godkännande av proxy - det vill säga, företag eller behandlingsriktlinjer. Dessa är summariskt behandlat. Vi har inget av detta. För dem som gör det, det är på väg igen. Nästa upp, brandväggen. Företagets brandvägg tjänar två syften. Det förhindrar några ganska elaka saker från Internet från att komma in i intranät, och det kan också förhindra känslig företagsinformation från skickas ut på internet. En gång genom brandväggen, en router plockar upp paketet och placerar den på en mycket smalare väg, eller bandbredd, som vi säger. Självklart, är vägen inte bred nog att ta dem alla. Nu kanske du undrar vad som händer med alla de paket som inte gör det längs vägen. Nå, när Mr IP inte får en bekräftelse på att ett paket har mottagen i tid, bara han sänder en ersättning paket. Vi är nu redo att gå in i världen av internet, ett spindelnät av sammankopplade nät som spänner hela vårt klot. Här, routrar och switchar upprätta förbindelser mellan näten. Nu nätet är en helt annan miljö än vad du hittar i de skyddande väggarna i ditt LAN. Här ute är det Vilda Västern - gott om utrymme, massor av möjligheter, massor av saker att utforska, och platser att gå. Tack vare en mycket liten kontroll och reglering, nya idéer finner fruktbar jord att tänja på gränserna av sina möjligheter. Men på grund av denna frihet, vissa faror lurar också. Du vet aldrig när du kommer att möta fruktade ping för döden, en särskild version av en normal begäran ping som någon idiot trodde upp att röra upp intet ont anande värdar. Stigen våra paket tar kan vara via satellit, telefonlinjer, trådlöst, eller ens transoceana kabel. De tar inte alltid den snabbaste, eller kortaste, vägar möjliga. Men de kommer att få det så småningom. Kanske det är därför det ibland kallas world wide vänta. Men när allt fungerar smidigt, Du kan kringgå världen fem gånger vid släpp av en hatt, bokstavligen - och allt för kostnaden för ett lokalt samtal, eller mindre. Nära slutet av vår destination, vi hittar en annan brandvägg. Beroende på perspektiv som en datapaket, kan brandväggen vara en bastion av säkerhet, eller en fruktad motståndare. Det beror helt på vilken sida du är på och vad dina avsikter är. Brandväggen är utformad för att låt i endast de paket som uppfyller dess kriterier. Denna brandvägg fungerar på portarna 80 och 25. Alla försök att komma in genom andra portar är stängda för företag. Port 25 används för post-paket, medan port 80 är ingången för paket från internet till webbservern. Innanför brandväggen, paketen är undersökt mer grundligt. Vissa paket gör det lätt genom tull, medan andra ser bara lite tveksam. Brandväggen officer är inte lätt lurad, som när detta Ping of död paket försöker dölja sig som en normal ping-paket. Brandvägg: Next. OK. Gå på. Det är OK. Inga problem. Ha en trevlig dag. Vara här ute. Bye. Berättare: För de paket lucky tillräckligt för att göra det här långt, det Resan är snart över. Det är bara en lineup på gränssnittet till tas upp i webbservern. Numera en webbserver kan köras på många saker, från en stordator, en webbkamera, till datorn på skrivbordet. Eller varför inte ditt kylskåp? Med rätt inställning kan du hitta om du har ärendes för kyckling cacciatore, eller om du måste gå och handla. Kom ihåg att detta är början på nätet. Nästan allt är möjligt. En efter en har de paket som mottagits, öppnas, och packas upp. Den information som de innehåller - det är, din förfrågan för kännedom - skickas vidare till webben server applikation. Paketet själv är återvunnen, redo att att användas igen, och fylld med din begärda informationen, åtgärdas och skicka ut, på väg tillbaka till dig, tillbaka förbi brandvägg, routrar, och på via till Internet, tillbaka genom företagets brandvägg, och på din gränssnitt, redo att leverera din webbläsare med informationen du begärt - det är, denna film. Nöjda med sina insatser och litar i en bättre värld, vår nu datapaket rida iväg saligt in solnedgången på en annan dag, att veta helt, har de tjänat sina herrar väl. Nu är inte det ett lyckligt slut? SPEAKER 1: Det är alltså hur internet fungerar. Genom problemet set syv kommer du bättre förstå detta och kommer du lära sig lite om HTML, PHP, och mer. Mer om det i beskrivningen som kommer att gå ut på fredag. Och vi kommer att se dig på måndag.