>> [Muziek]
>> DAVID J. MALAN: Dus ik gewoon wilde stillen aan.
Ik zou precies wat Scaz echo gezegd over institutioneel geheugen.
CS50 is rond voor zo'n 20 jaar op Harvard.
De realiteit is, uit de senioren naar beneden,
Er is jaarlijks geruststelling dat de eerstejaars, de tweedejaarsstudenten,
en de kinderen en Ook de senioren nemen
CS50, dat je uiteindelijk doet het prima.
>> De realiteit is, studenten niet nalaten CS50.
In feite, in zeldzame gevallen waar we Es of Fs hebt gehad,
het is echt geweest vanwege verzachtende omstandigheden,
of het nu medische of persoonlijke.
Ds zijn ongelooflijk zeldzaam ook.
En ik kan gemakkelijk zeggen dat, hoewel we meestal niet statistieken bekend te maken,
maar aangezien er geen institutioneel geheugen hier dan ook,
een meerderheid van de studenten in CS50 heb uiteindelijk krijgt een reeks cijfers.
Een aanzienlijk deel belanden eindigend in de B-serie ook.
>> Dus hoewel je misschien wel gelijkstellen in je geest drieën
met 60% en dus Ds of Cs en dergelijke,
het is echt niet lijn met de werkelijkheid.
In feite, bedoelen we precies wat we zeggen het begin van de term
dat zoveel studenten in CS50, zowel in Cambridge en hier in New Haven,
hebben een CS natuurlijk nooit eerder genomen.
En wat inderdaad uiteindelijk telt is waar je terecht komt in week 12
ten opzichte van uzelf in week nul.
Nu hebben we meerdere tracks in de loop
zoals u weten-- minder comfortabel, meer comfortabele, ergens tussenin.
En inderdaad, als je statistieken van deze week de quiz,
niet ontmoedigd als, vooral als je voelt dat je rond het gemiddelde
of onder het gemiddelde of de mediaan, vooral omdat we niet per se
neem al die demografische houdend met mid-semester
met het sorteren statistieken.
>> Met andere woorden, we weten statistisch per jaar
dat studenten die minder comfortabel, doe een beetje slechter op de quiz.
En studenten die meer comfortabele doe een beetje beter op de quiz.
Maar per die belofte in de syllabus en ook in de eerste week van lezingen,
we nemen dat allemaal in aanmerking.
>> Inderdaad, bij jareneind, wat we uiteindelijk doen
is het normaliseren van alle scores over secties, zowel in Cambridge
en nu hier in New Haven, Dit betekent inachtneming
de ongelijksoortige stijlen, de ongelijksoortige hardheid, de ander soort
van persoonlijkheden die het individu TA hebben hier en in Cambridge
zodat je niet op een nadeel zelfs als je gewoon
gebeuren hebben een TF of TA moest die een beetje moeilijker is geweest op jou
in je gedachten.
>> Twee, houden we rekening met het comfort niveau en de feitelijke achtergrond, of het ontbreken
daarvan, bij het nemen quiz scores in aanmerking.
Dus die twee zijn ingecalculeerd.
Aan het eind van de dag, want het is altijd het geval
dat een student belandde in een minder comfortabele sectie
wanneer hij of zij echt behoorde in een in-tussen of vice versa,
alles is zo ongelooflijk geïndividualiseerd.
Inderdaad, u geërgerd aan ons op te krijgen het einde van de looptijd als we te laat
het indienen van uw kwaliteiten want met Scaz, en Jason, en Andy en ik,
en het team zal hebben gedaan in Cambridge is letterlijk
hebben honderden e-mails heen en weer met alle honderd van de cursussen
Tas, hier en in Cambridge, ze vragen wat
ze denken van al hun studenten op basis van een ontwerp van de rangen.
En alles wat er na is ongelooflijk geïndividualiseerd.
Dus voor zover wij dat je te leren kennen in kantooruren, secties, en nog veel meer,
dat alles ook rekening wordt gehouden.
>> Dus hoewel we de neiging om te gebruiken deze vijf puntsschaal, alsjeblieft, maak jezelf
vanuit de veronderstelling dat drie is inderdaad 60%.
Het is bedoeld goed.
En de assistenten betalen op termijn start
om te proberen om scores te houden in tweeën en drieën,
en fours variëren, zodat we eigenlijk ruimte om te groeien.
En we eigenlijk hebben een maatstaf die
wij kunnen u nuttige geven feedback over hoe je doet
en hoe je vordert.
Dus neem neem dat ter harte.
>> Zijn er vragen die ik kan helpen pakken of zorgen die ik kan helpen verzachten?
Of toezeggingen kan ik proberen te houden?
Nee?
OK.
>> Prima.
Dus met dat gezegd, dit is CS50.
Dit is het begin van week zes hier in New Haven.
Laten we beginnen met een korte dimmen van de verlichting
op het podium voor de inhoud van vandaag te stellen.
[VIDEO AFSPELEN]
[Muziek]
-Hij Kwam met een boodschap.
Met een protocol al zijn eigen.
Hij kwam tot een wereld van koele firewalls, onverschillig routers, en de gevaren veel erger
de dood.
Hij is snel, hij is sterk, hij is TCP / IP.
En hij heeft uw adres.
Strijders van het net.
>> [END AFSPELEN]
DAVID J. MALAN: Oké.
Dit is CS50.
Dit is het begin van week zes.
En dit is het begin van onze blik op het internet en web programmeren.
En, misschien wel het meest spannende, vandaag markeert de overgang voor ons
van onze opdrachtregel wereld van C naar het web
gebaseerde wereld van PHP en HTML, en CSS en SQL en JavaScript,
en zo veel meer, dat is aan de horizon.
>> Maar eerst is het onder onze aandacht gekomen in het lopen over de campus, dat er
een aantal sanitaire hier New Haven genaamd de Harvard kamer, die
is een beetje grijs hier buiten.
Maar inderdaad, iemand ging naar de tijd en de kosten van het etsen in Harvard kamer
Op deze kamer hier.
Bedankt daarvoor.
Ik kan niet zeggen dat we een analoog in Cambridge nog,
maar ik denk dat we een klein project voor onszelf nu wanneer we teruggaan.
Dus dank u voor dat.
>> Dus een snelle terugblik op waar we vorige week gebleven
en waar je naartoe gaat dit komende week met problemen stellen vijf.
Dus in het probleem van de vijf, dan heb je de uitgedaagd om een ​​spellingscontrole uit te voeren.
En om dat te doen, zult u overhandigde een vrij grote tekst
bestand met als 140.000 woorden Engels.
En u zult worden uitgedaagd om te beslissen een gegevensstructuur waarmee je
willen al die woorden te laden in het geheugen en in het RAM,
en vervolgens implementeren van een aantal functies, waarvan er één gaat worden controleren.
Waardoor, wanneer voorbij een argument, een woord, uw functie cheque
gewoon zal hebben te zeggen waar of onwaar,
Dit is een woord in het woordenboek.
>> Maar je gaat sommige hebben ontwerp discretie en uitdagingen
als het gaat om de uitvoering van die.
In de eenvoudigste uitvoering, je kon zeker
implementeren van een spellingscontrole in de onderliggende woordenboek
met wat voor soort data structuur?
Je hoeft alleen maar een hele winkel stelletje strings in het geheugen?
Wat is de weg om te antwoorden vanaf week twee misschien?
Publiek: Array.
DAVID J. MALAN: U kunt een array gebruiken.
En dat is nog niet zo slecht.
Maar je hoeft niet per se weten tevoren hoe groot van een array
je gaat nodig hebben, als je niet weet het bestand noodzakelijk op voorhand.
Dus je gaat te hebben om Gebruik een klein beetje van bedrog
zoals malloc, zoals we begonnen met het gebruik.
Of we kunnen pakken die betrekking hebben door het gebruik van
welke andere gegevensstructuur die is een soort van een marginale verbetering
op een array?
Publiek: Linked lijst.
DAVID J. MALAN: Als een gekoppelde lijst, waarin we wat dynamiek.
Maar er is een beetje meer kosten.
We hebben wijzers te handhaven.
En je hebt nog niet deze gecodeerde up, maar er is zeker
om een ​​beetje meer complexiteit dan alleen met behulp van vierkante haakjes
en springen rond een array.
>> Maar een scala van looptijd, als u op zoek bent naar een woord,
misschien log n.
Maar nogmaals, het misschien een beetje niet-triviale
op te bouwen die array niet kennen het formaat vooraf.
Een gekoppelde lijst echter, als je gewoon slaan een stelletje snaren
in een gekoppelde lijst, wat is uw bovengrens
op lopende tijd zal zijn om te zoeken voor of kijk een woord in die lijst?
>> Publiek: n.
>> DAVID J. MALAN: Ja, grote O van n of lineaire omdat in het ergste geval,
het woord is als een Z-woord helemaal aan het eind.
En als gevolg van een gekoppelde lijst, omdat die pijlen standaard
in een enkelvoudig gelinkte lijst, alleen gaan van de ene richting naar de andere,
je kunt niet springen rond.
Je moet ze allemaal te volgen.
>> Zodat we aan het eind van vorige week voorgesteld, week vijf, dat er betere manieren.
En in feite is de heilige graal zou echt constant tijd
waardoor wanneer je wilt opzoeken van een woord, je
ontvang direct antwoord ongeacht hoeveel woorden reeds
in uw woordenboek.
>> Dit is vertolking van een kunstenaar wat je een hash tafel zou kunnen noemen.
En een hash-tabel is een soort van een mooi amalgaam van een array-- verticaal opgestelde
hier, maar because-- en vervolgens een gekoppelde list-- horizontaal hier te tekenen.
En de hash tabel kan worden uitgevoerd in trossen manieren.
Dit fragment uit een leerboek gebeurt om deze mensen geboortedata gebruiken
de wijze waarop het wordt beslissing waar iemands naam te zetten.
Dit is dus een woordenboek als u van namen.
En om te versnellen zetten benamingen in deze gegevensstructuur,
ze kijken naar, blijkbaar, deze mensen's geboorte dateert ten opzichte van een maand.
>> Dus het is 1-31.
En vergeet februari en hoek gevallen als dat.
En als je verjaardag is op januari 1 of 1 februari of december 1,
je gaat eindigen op de eerste keten boven.
Als uw geboortedatum is zoals de 25ste van de maand,
je gaat eindigen bij emmer nummer 25.
En als er al iemand daar in een van deze locaties, wat
je begint te doen met deze gekoppelde lijsten samen te stikken
zodat u een willekeurige kan hebben aantal mensen, of wat dan ook,
op die locatie.
>> Dus je hebt een soort van een mix van constante tijd voor hashing.
En hash iets betekent nemen als input als een persoon,
of zijn of haar naam, of zijn of haar geboorte datum, en dan beslissen op sommige uitgang
gebaseerd op dat, net als kijken naar hun verjaardag en het afgeven van een tot en met 31.
>> Dus dan u zou kunnen hebben een beetje van de lineaire tijd,
maar in werkelijkheid, en zoals in het geval van het probleem van de vijf,
we zijn niet van plan om werken in P ingesteld vijf
zo veel over asymptotische running tijd, zoals de theoretische traagheid
waarmee een algoritme zou kunnen lopen.
We gaan naar de zorg over het werkelijke aantal seconden
en het werkelijke bedrag van het geheugen, het werkelijke aantal bytes geheugen
u gebruikt.
Dus eerlijk gezegd, met een enorme keten van als een miljoen mensen
is pretty damn langzaam als u op zoek bent voor een naam in een lijst van grootte miljoen.
>> Maar wat als je verdelen dat de lijst in 31 delen?
Zoeken 1/31 van die super lange lijst, in de werkelijkheid,
is zeker gaat om sneller te zijn.
Asymptotisch, het is hetzelfde.
Je bent gewoon te delen met een constante factor.
En herinner me dat we Gooi die dingen weg.
Maar in werkelijkheid, het gaat om 31 keer sneller.
En dat is wat we gaan beginnen te leverage in P ingesteld vijf.
>> Dus P set vijf te ook stelt voor dat u overwegen
wat verfijndere gegevensstructuur genoemd trie.
En een trie is slechts een boom als datastructuur.
Maar in plaats van kleine cirkels of rechthoeken
als we blijven tekenen voor nodes, het eigenlijk
heeft volledige arrays bij de knooppunten.
En ook al is dit een beetje abstract hier om naar te kijken,
Zamyla in de P reeks lopen door middel loopt u
tot in detail op dit punt.
Dit is een datastructuur dat nogal slim
zou elke node wordt een array van de grootte 26, A tot Z of nul
tot 25.
En als je wilt invoegen een persoon noem in dit datastructuur of vinden
hem of haar, wat je doet, als de naam zoals Maxwell, M-A-X-W-E-L-L,
je eerst kijken naar M. En dan heb je direct naar de overeenkomstige M locatie
in de eerste array.
Je springt dan naar A, de eerste locatie in de volgende matrix,
na de pijlen.
Dan X, dan W, dan E, dan L, dan L, en dan misschien een aantal speciale einde
karakter, sommige sentinel dat zegt een woord houdt hier op.
>> En wat is er leuk aan dit-- en in gedachten houden dat het beeld hier,
merken hoe randen van elke serie zijn afgesneden.
Dat is alleen maar omdat dit ding zou zijn enorme en gruwelijke te kijken
aan op het scherm.
Dus het is een uittreksel.
Wat er leuk is aan deze aanpak is dat als er een miljoen namen al
in deze gegevensstructuur, hoeveel stappen doet het me naar Maxwell te voegen?
M-A-X-W-E-L-L-- als zeven-ish stappen te voegen of te zoeken naar Maxwell.
>> Stel dat er een biljoen namen in deze datastructuur.
Hoeveel stappen duurt het me om te zoeken naar Maxwell?
M-A-x-- nog zeven.
>> En daarin ligt de zogenaamde constante tijd.
Als we aannemen dat woorden zijn zeker begrensd
20 tekens, of 46 tekens, of een redelijk kleine integer,
dan is het effectief constant.
En zo inbrengen en zoeken een trie is super snel.
Natuurlijk hebben we nooit krijgt alles gratis.
En hoewel je waarschijnlijk niet dook P set nog vijf,
welke prijs zijn we waarschijnlijk te betalen krijgen die grotere efficiëntie qua tijd?
>> Publiek: Memory.
>> DAVID J. MALAN: Memory, toch?
Ik bedoel, we hebben niet getekend het hele plaatje hier.
Dit uittreksel uit het handboek heeft niet alle arrays opgesteld.
Er is een enorme hoeveelheid geheugen en gewoon null pointers die niet worden gebruikt.
Dus het is een afweging.
En het zal worden overgelaten aan u in P ingesteld vijf om te beslissen op welke manier u wilt gaan.
>> Nu dit idee van hashing als terzijde, is eigenlijk super voorkomt.
Dus om hash een waarde betekent, vrij gewoon, om iets als input nemen
en output produceren.
Dus een hash-functie is slechts een algoritme.
>> En in het algemeen, een hash functies doel in het leven is om iets als input nemen
en produceren een aantal als output, zoals de nummer één met 31 of A tot Z,
nul tot 25.
Dus het duurt een complex uitgang en krimpt het naar beneden om iets
dat is een beetje meer nuttig en beheersbaar.
>> En zo blijkt in een zeer populaire functie
dat de beveiliging wereld de menselijke wereld
gebruikt voor de komende jaren wordt genoemd SHA1.
Dit is een vrij chique wiskundige formule die in wezen doet dat.
>> Je neemt een echt grote brok van nullen en ones--
een megabyte kon lang, een gigabyte long--
en het krimpt het neer aan slechts een paar stukjes, een paar stukjes,
zodat u een nummer als één tot en met 31, of A tot Z.
Maar in werkelijkheid, het is een beetje groter dan alleen A tot Z.
>> Helaas, we zijn aan de vooravond van wat iemand speels genaamd de SHAppening
waarbij de wereld is het punt eindigen in waarschijnlijk enkele maanden
tijd, omdat de onderzoekers, alleen deze afgelopen week,
een rapport dat in tegenstelling tot gepubliceerde wat security onderzoekers hebben gedacht
enige tijd door alleen uitgaven ongeveer, wat was het,
Ik denk dat het was $ 175,000-- veel geld,
maar niet buiten het bereik van bijzonder slecht slechteriken,
of bijzonder slecht countries-- $ 175.000 kon kopen u veel gehuurde server
de ruimte in de cloud.
En we zullen terug te komen de cloud het duurde niet lang.
Maar het betekent gewoon huren server ruimte op als de servers van Microsoft,
of Google of Amazon of de zoals waar je kunt betalen met de minuut
computers van iemand anders te gebruiken.
>> En het blijkt dat als je kunt betalen iemand anders om hun computers te lenen
en run code die je hebt geschreven op en gebruiken vrij chique
wiskunde, kan je in wezen cijfer hoe iemands hash-functie is
werken, en gezien de output, reverse engineering wat haar inbreng is.
En voor doeleinden van vandaag, volstaat te zeggen, dit is slecht.
Omdat SHA1 en hash functies alsof het zijn super vaak
gebruikt in beveiligingstoepassingen, versleutelde verbindingen op het web,
banktransacties, mobiele encryptie voor uw mobiele telefoons en dergelijke.
En dus elke keer dat iemand vindt een manier om te keren
ingenieur een van deze technologieën of breken, kan slechte dingen gebeuren.
>> Nu al de wereld dit wist.
Dit was te verwachten.
En de wereld is sindsdien verhuisde van SHA1 naar SHA256,
dat is gewoon een mooie manier om zeggen dat ze gebruik maken van grotere bits.
En in feite, zelfs CS50 eigen website upgrade vorig jaar to--
niet dat we voor staan ​​al deze vele bedreigingen proberen bij de PDF's te krijgen
en whatnot-- maar website CS50's gebruikt de grotere hashfunctie,
wat betekent dat we veilig zijn.
Zodat al uw PDF-bestanden veilig zijn, maar niet
se uw geld of iets vooral private of persoonlijke
gebruiken.
Check sp dat URL als u wilt zoals sommige extra details.
>> Dus probleem set vijf is inderdaad aan de horizon.
Quiz één is deze komende woensdag.
Maar maak je gebruik maken van het kantoor uur, zowel vanavond en morgen.
En ook gebruik maken van de kantooruren, Als je beschikbaar, direct na deze bent.
Het personeel en ik zal blijven hangen en doen meer casual Q & A in aanvulling op vanavond.
En laat me sterk mee hier, voor die van ons hier in New Haven--
dus het is absoluut per Scaz's opmerkingen voelde, ik ben er zeker van,
als een beetje een moeizame strijd.
En door de reputatie, als je nog niet hebt geleerd of gehoord
van enkele vrienden aan Harvard, weet hier zijn enkele nieuwe institutioneel geheugen.
P set vijf soort soort neigt de moeilijkste in CS50 zijn,
of de meest uitdagende Voor de meeste studenten.
>> Maar wat dat betekent is dat we bijna aan de top van deze heuvel.
En ik bedoel dit.
Het is de meest uitdagende, maar het is ook de meest lonende
dat anders vrijwel elke andere inleidende informatica
Natuurlijk in de VS die we kennen, de meeste studenten niet een intro eindigen
Natuurlijk hebben reeds uitgevoerde dingen zoals bomen, en probeert,
en hash tabellen en dergelijke.
>> En ik hoop, en wij hopen dat u bent
hebben een enorm gevoel tevredenheid zelfs
Als de twee weken via welke je naar dat de tevredenheid
voelt een beetje als dit.
Maar laat me gerust, we slechts vier sets P gelaten.
Dus een soort van die top is in zicht.
>> Aan de andere kant van het, geloof ons, het is gewoon glooiende heuvels en wolken.
En laten we zeggen, puppies aan de andere kant.
Dus je hoeft alleen te hangen daar een beetje langer.
Ik bedoel, zelfs als we beginnen om de overgang in de wereld van web programmeren,
je zult zien dat de dingen become-- dit is eigenlijk schattig.
OK, we zullen deze URL later posten.
Je zult ook dat we vinden het bereiken van een soort plateau
waar alles inderdaad nog steeds verfijnd
en uitdagende door ontwerp, maar je bent niet
gaat om het gevoel dat we zijn voortdurend omhoog gaat deze heuvel.
Dus neem wat comfort in dat.
>> Dus zonder verder oponthoud, laten we beginnen deze markt overgang te maken
in het semester aan de wereld van het web, en echt de wereld
met die van ons allemaal meer vertrouwd.
We hebben internet apparaten gekregen in onze zakken, op onze bureaus,
in onze rugzakken en dergelijke.
Hoe doet al dit werk?
En hoe kunnen we beginnen met het schrijven code dat is niet super geheimzinnige
en in sommige knipperende tekst prompt dat geen van je vrienden of familie
zijn ooit zal willen communiceren met, maar iets wat je kunt zetten
op hun telefoons of op hun webbrowsers,
of op welke apparaten met die zij met elkaar omgaan.
>> Dus hier is iemand thuis.
En de binnenkant van dit huis is een paar laptops, een paar oude school desktop
computers, zoiets als een router of hub in het midden,
en dan een soort van kabel of DSL-modem.
En dan is er het internet, in het algemeen getekend als een wolk daarboven in de hemel.
>> Dus deze foto, hoewel een beetje soort gedateerd,
zeker vangt wat de meesten van heeft u waarschijnlijk in uw huizen,
of effectief wat jullie allemaal hebben in uw slaapzalen, of appartementen,
of iets dergelijks.
>> Dus wat er werkelijk gaande is wanneer je probeert te gebruiken het internet vandaag?
Dus elke computer op internet, zo blijkt,
moet een uniek adres hebben, net als we in de echte wereld behoefte
een postadres, zoals 51 Prospect Street, New Haven, Connecticut, of 33
Oxford Street, Cambridge, Massachusetts.
Dus doe computers op het internet hebben een zodat deze zich op unieke adressering.
>> Dat is zo dat wanneer een computer wil elkaar praten,
het kan een bericht te sturen en de hoogte van de ontvanger aan wie
moet het antwoord terug te sturen.
Dus het is gewoon een soort van intuïtief gevoel misschien
dat alles hebben een adres van een soort.
>> Maar hoe krijg je een adres krijgen?
Nou, als je op krijgt hier campus, of u naar huis gaat
en u op uw laptop of desktop computer,
en of de stekker in of verbinding te maken met Wi-Fi,
het blijkt dat er is een speciale server
Op de meeste netwerken een zogenaamde DHCP-server.
Maakt echt niet uit wat dit betekent,
maar het is Dynamic Host Configuration protocol, dat is gewoon
een mooie manier om te zeggen, dit is een computer die ofwel Yale heeft,
of Harvard heeft of Comcast heeft, of Verizon heeft,
of uw bedrijf, waarvan het doel in het leven,
als het hoort iemand nieuw toegevoegde het netwerk is hier te zeggen,
Gebruik dit adres.
>> Zodat wij mensen niet hoeven te harde code in onze computers
wat onze unieke adres.
We draaien het gewoon op, opent de deksel, en een of andere manier deze server
op het lokale netwerk alleen vertelt me ​​dat mijn adres is 51 Prospect Street, of 33
Oxford Street, of iets dergelijks.
>> Nu is het niet van plan om zo breedsprakig als dat.
Nogal wat ik ga krijgen is een numeriek adres genoemd een IP-adres.
IP betekent Internet Protocol.
En de kans is op dit moment in je leven, u waarschijnlijk gehoord of gezien het woord IP,
of in het algemeen gegooid rond misschien.
Maar in feite, het is vrij ongecompliceerd een ding.
>> Een IP-adres is slechts een decimaalgetal,
wat betekent dat het iets dot iets dot dot iets iets.
En elk van deze nog wat gebeurt een getal tussen 0 en 255 is.
>> Dus op basis van vijf plus weken van de CS50, indien deze getallen elk van 0 tot 255,
hoeveel bits per van die hekjes?
>> Publiek: Acht.
>> DAVID J. MALAN: Het moet acht.
Dus in totaal, hoeveel bit is een IP-adres?
Publiek: 32.
>> DAVID J. MALAN: Zo 32.
8 plus 8 plus 8 plus 8 is 32.
Hoeveel de totale IP-adressen kan er in de wereld?
Publiek: 4 miljard.
DAVID J. MALAN: Zo ongeveer vier miljard want dat is 2 van de 32 macht.
En als je niet kunt soort grok dat in je geest,
weet alleen dat 32-bits waarden kan zo groot als 4 miljard
als het allemaal positieve waarden.
Dus dat betekent dat er 4 miljard mogelijk IP-adressen in de wereld.
>> En grappig verhaal, we zijn soort van het opraken van hen.
En in feite is het een groot probleem in dat de wereld zag ook dit probleem te komen,
maar niet noodzakelijkerwijs gereageerd in de snelste manier mogelijk.
En inderdaad, als je eenmaal hebt afgewerkt CS50 en begon
aandacht in de tech wereld, zult u
zien is dit zeer vaak thematische.
>> Bijvoorbeeld, als we gaan echt oude school tegenwoordig, Y2K.
Dat was niet echt een verrassing.
Net als iedereen wist 1000 jaar dat
was-- meer dan duizend years-- dat dat werd uiteindelijk gaat gebeuren.
Toch we gereageerd te erg veel op het laatste moment.
En dat is weer gebeurt.
Dus vandaag zullen we praten over IP versie 4.
Maar weet dat de wereld is eindelijk
rond te upgraden naar iets genaamd IPv6,
die in plaats van 32-bits adressen, uses-- iedereen
wil een gok, hoeveel bits te nemen?
>> Publiek: 64?
>> DAVID J. MALAN: Goede gok, maar nee.
We eindelijk proberen vooruit te komen van de curve.
>> Publiek: 128.
DAVID J. MALAN: 128, die is een freaking groot aantal
IP-adressen, omdat dat is net als 2 keer, 2 keer,
2 keer, een heleboel keer Tweeën up van 4 miljard euro.
>> Dus als nieuwsgierig.
Het blijkt out-- en ik dit enkel googled om dit te vinden out-- Yale computers,
hier bij Yale, vaak beginnen deze numbers-- 130,132 dot iets,
en 128,36 dot iets.
Maar er is zeker uitzonderingen over de hele linie
afhankelijk van de afdeling en gebouw en campus je bent op.
Harvard neiging hebben 140,247 of 128,103.
En dit is in het algemeen nutteloze informatie,
maar het is iets wat je zou nu opmerken.
Wanneer je begint rondneuzen instellingen op uw computers,
je zou kunnen beginnen om deze merken soorten patronen duurde niet lang.
>> Maar als je thuis bent en hebben een Apple AirPort of een Linksys-apparaat,
of een D-Link, of wat het ook is je ouders of broers en zussen geïnstalleerd
in uw huis, goed wat u waarschijnlijk
is wat een eigen IP-adres genoemd.
En deze waren eigenlijk een mooi, tijdelijke oplossing
het probleem van running Kort op IP-adressen.
>> En wat u kunt doen met thuisnetwerken, typically--
en eerlijk gezegd, zelfs Yale en Harvard beginnen
om dit te doen in verschillende areas-- is dat je kan een heleboel computers geven
één IP-adres, zolang je een speciaal apparaat voor hen,
iets wat een router genoemd, of het kan worden opgeroepen
een proxy of een aantal andere zaken.
Maar een bepaald apparaat dat heeft dat een IP-adres.
En dan achter dat inrichting, in een gebouw,
binnen een huis of een appartement, kunnen worden elk aantal computers, die allemaal
een IP-adres dat begint met één van deze cijfers hier.
En zolang die computer weet hoe om te zetten
de omroepinstallatie aan het privé-adres,
alles kan soort werk zoals verwacht.
>> Maar het omgekeerde hiervan is dat als je thuis bent en je hebt een broer of zus,
en beide van jullie zijn bezoek aan enkele website,
dat de website niet weten of het je of je broer of zus een bezoek aan de website,
omdat u lijken hetzelfde persoon omdat al uw gegevens
gaat door die router of dat centraal punt.
>> Maar genoeg over deze lagere niveau details.
Laten we eens een kijkje nemen op hoe de IP-adressen Soms komen misschien in de media
en hoe we nu kunnen beginnen te ruïneren, eerlijk gezegd, nog meer shows voor u.
Als we konden dimmen verlichting gedurende enkele seconden.
>> [VIDEO AFSPELEN]
>> -Het Is een 32-bits op IPP 4 adres.
>> -IP ES internet--
>> -Eigen Netwerk, Tamia privé-netwerk.
Ze is zo geweldig.
-Kom Op Charlie.
DAVID J. MALAN: Het is een spiegel IP-adres.
Ze lieten ons te kijken welke ze doet in real time.
>> [END AFSPELEN]
>> DAVID J. MALAN: OK.
Dus een paar problemen met deze.
Dus een, wat we zoeken bij hier op het scherm
wordt een code geschreven in een taal genaamd Objective-C,
dat is een soort van een opvolger de C taal die we doen.
Dit heeft absoluut niets te maken met de programmering.
In feite, zo goed als ik kan vertellen, Dit is een tekenprogramma
dat iemand gedownload van de internet of andere manier met kleurpotloden.
>> Misschien minder flagrante is dat dit IP-adres, geldig of ongeldig?
>> Publiek: ongeldig.
>> DAVID J. MALAN: ongeldig, omdat 275 is uiteraard niet tussen 0 en 255.
Ook dat is waarschijnlijk OK maar, want u niet wilt stelletje gekken
die zijn als het pauzeren van tv op hun TiVo en dan een bezoek aan de IP te zien
als er daadwerkelijk iets daar.
Zodat men een beetje minder ongehoorde.
Maar beseffen ook dat is soort van overal om ons heen.
>> Dus natuurlijk, niemand van ons ooit echt typen numerieke adressen
in onze browsers.
Het zou een soort van een slechte zaak als Google, Google bezoeken,
je moest naar 123.46.57.89.
En de hele wereld had gewoon onthouden.
En eerlijk gezegd, hebben we soort van eerder gezien deze kwestie.
Terug in de dag wanneer mensen niet doen hebben mobiele telefoons en lijsten met contactpersonen,
en bedrijven daadwerkelijk still-- eigenlijk, Ik denk dat bedrijven nog steeds 800
getallen en de like--, maar je over het algemeen zie nummers geadverteerd
zoals 1-800-COLLECT, C-O-L-L-E-C-T. Omdat niemand kan echt herinneren,
bij het zien van een advertentie op een bus of billboard, wat iemand het nummer is,
maar ze kunnen waarschijnlijk hogere waarschijnlijkheid, herinner me een woord.
>> Dus we hebben dezelfde soort systeem ter wereld
van het internet, waardoor er een domeinnaam-systeem, zodat we mensen kunnen
typt google.com, facebook.com, yale.edu, harvard.edu,
en laat de computers figuur wat het bijbehorende IP-
adres is voor een bepaalde naam.
>> En de manier waarop je dit doet in de echte wereld is dat voor $ 10 per jaar
misschien $ 50 per jaar, kunt u een domein te kopen noemen, of een domeinnaam echt huren.
En dan wie u betaalt om die domeinnaam te huren,
je ze vertellen wie in de wereld weet wat uw IP-adres is.
En we zullen niet naar deze gaan bijzonderheden, maar velen van u
zou willen, voor de uiteindelijke projecten, om daadwerkelijk aanmelden
voor uw eigen web hosting bedrijf, hetzij voor gratis
of voor een paar dollar per maand.
Sommigen van u zou willen kopen, voor een paar dollar, uw eigen domeinnaam,
gewoon voor de lol of om een ​​bedrijf te starten of een persoonlijke site of dergelijke.
>> En beseffen dat alle van die zal uiteindelijk
neer om u te vertellen van de wereld Wat IP-adres van de server is.
En dan zijn deze DNS servers eigenlijk zorg
informeren de rest van de wereld.
Dus al een DNS-server heeft, kortom, binnen
van het geheugen is als de equivalent van een Google spreadsheet
of een Excel spreadsheet met ten minste twee kolommen, waarvan er namen
zoals harvard.edu en yale.edu en google.com.
En de andere kolom de corresponderende IP-adres of IP
adressen.
En we kunnen eigenlijk zien.
Dus op mijn Mac-- en u kunt Dit doen op Windows-computers
als goed-- als ik het openen van een terminal venster hier heel graag de ene in CD50 IDE,
de meeste computers hebben een commando genaamd nslookup, naam server opzoeken.
En als ik iets in te typen als yale.edu en druk op Enter, wat
Ik moet zien als mijn netwerk werkt als het voor meerdere tests voor de les deed
began-- laten we proberen google.com.
Natuurlijk nu niets werkt.
Dat is geweldig.
Oké, staan ​​voor een moment.
nslookup google.com.
>> Nou, laten we zien of de werkelijke internet-- geen.
Dat is wat er gebeurd is.
Oh mijn god, oke.
De Wi-Fi brak.
>> Hey, wil weten wat mijn IP adres?
Prima.
YaleSecure.
Dit is hoe je problemen op te lossen dingen als een computer wetenschapper.
We draaien de Wi-Fi uit te schakelen.
OK.
>> En eigenlijk, Scaz, doe je het erg inloggen ons in de veilige één?
Anders meer tests zijn-- OK, dank u Yale-- of op het punt te breken.
Ik wil gaan op YaleSecure.
Oh, en misschien zullen we OK.
Misschien zijn we terug.
En dat is hoe, als een computer wetenschapper repareren van een computer.
[Applaus]
Prima.
Dus waar ik was binnen deze zogenaamde terminal venster,
en als ik nslookup yale.edu, daar gaan we.
Dus ik terug voor het eerst het IP-adres van de de DNS-server die mijn laptop wordt gebruikt.
Dus naast een DHCP server die hebben we gesproken over een moment geleden vertellen
mijn laptop wat mijn IP adres is, dat de DHCP-server
vertelt me ​​ook wat DNS-server te gebruiken.
Anders zou ik heb dit handmatig invoeren.
>> Maar dat is niet zo interessant.
Wat ik zorg over is dat dit de IP-adres van de website van Yale blijkbaar.
Dus in feite, laten we proberen dit.
Laat me gaan in een browser en ga http: // en dan is dat het IP-adres,
en druk op Enter.
En laat ons zien.
Dat is hoe anders je kunt bezoek Yale websites.
Nu is het niet zo memorabel.
Zoals, de pre-Frosh waarschijnlijk niet gaan
om dit bijzondere adres onthouden indien verteld om daar te bezoeken na een bezoek.
Maar het lijkt te werken.
En dus DNS eigenlijk gewoon laat ons toe veel meer mensvriendelijke adressen.
Maar ze doen niet noodzakelijkerwijs gewoon op een antwoord.
>> In feite, als je een echt grote tech bedrijf,
wilt u waarschijnlijk hebben veel servers.
En zelfs dit is misleidend.
Dus Yale doet waarschijnlijk niet hebben slechts een webserver.
Google heeft waarschijnlijk niet slechts 10 of zo webservers.
Google vooral waarschijnlijk heeft duizenden webservers
over de hele wereld die kunnen reageren op verzoeken van mensen zoals wij.
>> Maar ze ook een technologie genaamd gebruiken load balancing, die lang verhaal kort,
heeft slechts een paar apparaten in de wereld verspreiden over meer servers de belasting.
Dus het is net zoiets als een spinnenweb als zult u de verzending van de aanvragen.
Maar voor nu, alles wat interessant voor vandaag
is dat een domeinnaam zoals google.com zelfs kunnen
hebben meerdere IP-adressen als dat.
>> Maar hoe doet al onze data daadwerkelijk terug te krijgen en weer toen in het einde?
Nou, het blijkt dat er deze dingen riep routers op het internet.
En wat is een router aan de mate dat je al weet?
En ik heb het woord een paar gebruikt tijden in de context van een huis,
maar in eenvoudige bewoordingen, wat doet een router doen?
Geef me gewoon een gok op basis van zijn naam?
>> Publiek: Dus een weg of een pad?
DAVID J. MALAN: So Het is een weg of een weg.
Dus een route is een straat of pad, absoluut.
En een router, zodat een apparaat dat eigenlijk routes informatie
zou gegevens tussen de punten A en B. bewegen
>> En zo in fact-- en dit is misschien als
je Google afbeeldingen van routers over de hele wereld, alles wat je
zijn cheesy marketing diagrammen.
En dus dit is een soort van de meest vertegenwoordiger die ik kon vinden
dat zag er lichtjes interessant.
Elk van deze punten of lichtpuntjes wereldwijd vertegenwoordigt een router.
En elk van hen heeft een lijn tussen een andere router.
>> Want inderdaad, er zijn duizenden, waarschijnlijk
miljoenen routers rond de wereld, waarvan sommige in onze huizen
en op onze campussen, maar veel die eigendom zijn van grote bedrijven
en zijn verbonden zodat als ik willen sommige gegevens van sturen aan de Yale
terug naar huis om Cambridge, Yale waarschijnlijk heeft geen enkele kabel, zeker,
direct naar Harvard.
En Yale heeft niet één kabel gaan
MIT, of Stanford, of naar Berkeley, of Google,
of een aantal bestemmingen.
>> Integendeel, Yale en Harvard, en iedereen op internet
heeft één of meer routers aangesloten, misschien
aan de rand van de campus.
Zodat wanneer mijn gegevens wil campus Yale verlaten,
gaat dat dichtstbijzijnde router zoals die door één van deze punten.
En dan die router cijfers te komen of te sturen op deze manier, of op deze manier,
of op deze manier, of op deze manier op basis op een andere tafel in het geheugen,
een Excel-bestand of Google spreadsheet die in één kolom
zegt, als uw IP-adres begint met de nummer een, gaan op deze manier.
Als je IP-adres begint met een nummer twee, gaan op die manier.
En zo kun je het breken numeriek naar de router verzenden
gegevens elke welke manier.
>> En we kunnen soort zien dit als goed.
Laten we doorgaan in deze terminal venster weer, en laat me doorgaan
en traceren van de route naar, laten we zeggen, www.mit.edu,
dat is een paar honderd mijl afstand.
Dat was echt verdomd snel.
>> Dus wat is er gebeurd?
Dus in slechts zeven stappen, en in slechts vier milliseconden,
Ik stuurde de gegevens via internet van hier aan de Yale aan het MIT.
Elk van deze rijen, kunt u misschien denk vertegenwoordigt wat nu?
>> Publiek: Een router.
>> DAVID J. MALAN: Een router.
Dus inderdaad, het lijkt erop dat er ongeveer zeven of zo routers,
of zes routers in tussen mij fysiek hier Yale Law School
en de website van MIT's daar.
En wat we kunnen verzamelen van deze is als follows-- en laat me opruimen.
Ik ga het opnieuw uit te voeren met een commando line argument van q 1 tot en gewoon zeggen,
geef me een query.
Standaard trace route doet drie.
En dat is waarom we zagen trossen getallen.
Ik wil minder nummers te zien alleen maar om de output schoner te houden.
En laten we zien wat er gebeurt.
>> Dus voor welke reden dan ook, iemand aan de Yale gedachte
het grappig om te spreken zou je standaardrouter arubacentral, die
is vlan of virtual LAN, virtuele omgeving
netwerk 30-- zodat u waarschijnlijk ten minste
29 others-- router.net.yale.internal.
En .internal hier is een soort van een nep- top level domein bedoeld om alleen worden gebruikt
op de campus.
En let op de corresponderende IP-adres van die router, waar het is hier
op de campus, is 172.28.204.129.
Het duurde 36 milliseconden om van hier naar daar.
>> Grappig verhaal.
We zullen weer terug naar dat in slechts een moment.
Maar nu de tweede router-- aan die blijkbaar arubacentral
heeft een soort van fysieke verbinding meeste likely--
de mensen niet de moeite te benoemen.
De Yale mensen niet de moeite naamgeving want het is de binnenkant van je netwerk
het schijnt.
En dus het heeft alleen een IP-adres.
>> Maar dan een derde router hier op Yale netwerk
Dat is waarschijnlijk een beetje verder weg nog steeds
cen10g wordt genoemd, ongeacht dat asr.net.yale.internal.
En het heeft ook een IP-adres.
>> Waarom zijn deze nummers soort fluctuerende?
2,9, 1,4, 36?
Routers krijgen druk.
En ze krijgen overbelaste en back-up.
Er zijn duizenden mensen op deze campus met behulp van het internet op dit moment.
Er is een honderd mensen in dit kamer met behulp van internet op dit moment.
>> En dus wat er gebeurt is dat de routers zou kunnen krijgen overbelast.
En dus die tijd zou fluctueren een beetje.
Dus dat is waarom ze niet per se verhogen onomwonden.
>> Maar dingen soort interessant in stap vier.
Blijkbaar tussen Yale en Stap vier is een andere hop.
En waar is de router in stap vier waarschijnlijk?
>> PUBLIEK: [onverstaanbaar]
>> DAVID J. MALAN: JFK misschien, misschien op de luchthaven.
Maar om wat voor reden dan ook, systeembeheerders, dus
geeks die servers draaien jaar hebben genoemd routers
Na de dichtstbijzijnde luchthaven code.
Dus JFK betekent waarschijnlijk het is gewoon ergens
in New York, misschien in Manhattan of een van de stadsdelen.
nyc2 geeft, vermoedelijk, een ander router die is ergens in New York.
>> Ik weet niet goed waar de rij zes is hier, router nummer zes.
quest.net een grote ISP, internet service provider,
dat biedt internet connectiviteit tot grote plaatsen als Yale en anderen.
En dan deze laatste, dat lijkt erop dat MIT niet eens
hebben hun eigen website in Cambridge noodzakelijkerwijs
maar ze hebben uitbesteed hun website,
althans de fysieke servers een bedrijf genaamd Akamai.
En Akamai eigenlijk recht naar beneden de weg van het MIT in Cambridge
het blijkt.
>> Maar beseffen ook dat zelfs gedacht je gaat www.mit.edu,
We kon echt worden gestuurd overal ter wereld.
>> En laten we zien ergens anders in de wereld.
Laat me gaan en te wissen dit scherm en in plaats daarvan
traceren van de route, maar een keer, dus te vragen een, naar www.cnn.co.jp,
de Japanse home page voor CNN, de nieuwssite.
En als ik druk op Enter nu, Laten we afwachten wat er gebeurt.
We gaan weer beginnen bij arubacentral.
We gaan vervolgens naar de naamloos router, een paar meer.
Dus het 12 hop naar Japan dit keer.
En laten we zien wat we kunnen sprokkelen.
>> Dus hetzelfde hop, zelfde hop.
Iets anders nu.
Deze is interessant.
Dus ik ben hier gissen, stamford1 is een weinige steden verderop in Connecticut ook.
Deze routers in rij zes en zeven hebben geen namen.
Maar dit is een soort van geweldig.
>> Wat lijkt te zijn tussen de routers in stap zeven en acht?
En waarom heb je zoveel zeggen?
Ja?
>> Publiek: Oceaan.
>> DAVID J. MALAN: Waarschijnlijk een oceaan.
We weten dat het waar is als, intuïtief, toch?
Maar we kunnen zo veel soort bevestigen van de soort van empirisch waarom?
Wat is er veranderd tussen rijen zeven en acht?
>> Het kostte veel meer tijd om te gaan wat deze naamloze router zeven is,
waarschijnlijk ergens in de vasteland van de VS, aan stap acht,
die waarschijnlijk ergens in Japan gebaseerd op de domeinnaam van .jp daar.
En dus die extra honderd iets milliseconden
of 90 of zo milliseconde het resultaat van onze data gaan
over een vrij grote hoeveelheid water.
>> Nu nieuwsgierig, lijkt het erop dat misschien dat de kabel gaat in de hele Verenigde Staten.
Als we echt gaan boven de West Coast naar Japan te krijgen,
het is een soort van de lange weg als we de andere kant op.
Dus het is niet helemaal duidelijk wat er fysiek.
Maar het feit dat iedere extra hop inderdaad
duurde aanzienlijk langer dan elk ander, is het
vrij goede bevestiging dat CNN's Japanse webserver is waarschijnlijk inderdaad
in Japan.
En het is zeker verder weg dan MIT is.
En het is vermeldenswaard ook, uw gegevens is niet noodzakelijk
naar de reizen kortste afstand.
In feite, als je speelt rond met trace route thuis
net plukken willekeurige websites, u Misschien vindt u dat alleen maar om een ​​email te sturen
of om een ​​website te bezoeken dat is hier in New Haven,
soms uw gegevens zou eerst neem een ​​omweg, naar beneden gaan naar DC,
en kom dan terug.
En dat is alleen maar omdat van de dynamische routing beslissingen
dat deze computers maken.
>> Nu gewoon voor de lol, het productieteam getrimd een van deze video's voor ons
om gewoon een beetje meer beknopt.
Maar om ons een korte zin te geven hier-- en we kunnen de lichten verlaten on--
over hoeveel bekabeling eigenlijk dragen al onze gegevens.
[VIDEO AFSPELEN]
[Muziek]
[END AFSPELEN]
DAVID J. MALAN: Alle netwerken video hebben koele klinkende muziek blijkbaar.
Dus dat is gewoon een te krijgen gevoel van hoeveel hebben
er aan de hand onder de motorkap.
>> Maar laten we eens kijken naar een iets lager niveau nu
wat data daadwerkelijk doorkruisen van die lijnen,
en zelfs draadloos te gaan in een kamer als dit.
>> Dus het blijkt dat wanneer u een verzoek een webpagina, of stuur een e-mail,
of ontvangen van een webpagina of een e-mail, of Gchat een bericht of een Facebook-bericht,
of dergelijke, dat niet alleen een grote brok bits draadloos stromende
door de lucht of elektronisch op een draad.
Integendeel, het verzoek of respons meestal
chunked in afzonderlijke stukken.
>> Dus met andere woorden, wanneer u een verzoeken om een ​​andere computer,
of je terug van een reactie een andere computer--
veronderstellen zoals, bijvoorbeeld, indien unfamiliar-- als te veel mensen
lijken deze dagen-- zijn als onbekend met dit--
dit fellow-- deze kerel.
Dus veronderstel dat dit is een boodschap die Ik wil sturen naar iemand in de rug.
Wie in het terug zou willen ontvangt een foto van Rick Astley vandaag?
Oké, wat is uw naam?
>> Publiek: Cole.
>> DAVID J. MALAN: Wat is het?
>> Publiek: Cole.
>> DAVID J. MALAN: Holt?
H-O?
PUBLIEK: C-O-L-E.
DAVID J. MALAN: C-O-L-E, Cole.
Sorry.
C-O-L-E.
Prima.
Dus als ik wil Cole deze sturen foto hier, dit weet je
is een soort van een grote foto, rechts?
Dit kan een paar zijn kilobytes, een paar megabytes,
vooral als het een hoge resolutie.
En ik heb niet echt willen stoppen iedereen van het gebruik van internet
net terwijl ik dit echt stuur grote, hoge kwaliteit beeld
van Rick Astley de hele kamer.
Ik wil graag van uw gegevens te blijven doorkruisen het netwerk en de Wi-Fi
ook.
>> En zo sense-- en dit maakt herstelbaar elektronisch,
niet zozeer in de echte wereld.
Eigenlijk, dit gaat meerdere te hebben betekenissen Als je mijn audio nemen.
Dus als ik scheur deze in de helft als dit hier,
dit nu kunnen reizen de internet efficiënter
want het is een stuk kleiner.
Dus met een lagere waarschijnlijkheid gaat het te botsen met het verkeer van iemand anders
op het internet.
>> En dus wat uw computer inderdaad doet wanneer u een bericht wilt sturen naar Cole
is er brokken van een bericht als dit in kleinere stukken, fragmenten zo te zeggen.
En dan zet ze binnen van wat zullen we een soort van virtuele enveloppen noemen.
>> Dus ik heb vier papieren enveloppen hier.
En ik heb pre-telde hen, één, twee, drie en vier.
En wat ik ga doen aan de voorzijde van deze, net als een normale mailing,
wordt ga ik de naam Cole's daar te zetten.
En vervolgens bij de top, ik ga mijn naam daar te zetten,
David, zodat het eerste pakket Ik stuur die er op het internet
ziet er een beetje iets als wordt de opvallende kenmerken
waarvan dat het een aan te pakken, een van adres,
en een aantal, zo dat hopelijk
volstaat informatie Cole om dit bericht te reconstrueren.
>> Dus laat ik hetzelfde te doen hier, de same here, en dezelfde hier
het schrijven van zijn naam in de Naar veld op alle van hen.
En dan laten we doorgaan en zet deze foto's binnen.
>> Dus hier is een pakket dat is klaar om te gaan.
Hier is een ander pakket dat is klaar om te gaan.
Hier is een derde pakket dat is klaar om te gaan.
En hier is een vierde pakket dat klaar is om te gaan.
>> En nu, wat interessant is over hoe het internet in de praktijk werkt
is dat hoewel ik heb vier pakketten, die allemaal
bestemd zijn voor eenzelfde locatie, zijn ze niet per se
naar dezelfde route gevolgd.
En dus hoewel ik kunnen deze inleveren pakketten af ​​naar de dichtstbijzijnde router
laten we zeggen, als je wilt stuur ze alle kanten op, laten we eens kijken
wat er werkelijk gebeurt, is het doel van de die hen uiteindelijk naar Cole.
En inderdaad, ze al niet noodzakelijkerwijze dezelfde richting.
En dat is prima.
Dit is een beetje lastig en Oprah stijl vandaag.
>> En nu, laat me met opzet neem dat een terug.
En nu Cole, als je wilt monteer het als beste wat je kunt.
Natuurlijk kunnen we raden wat de conclusie hier gaat worden.
Je gaat te hebben 3/4 Rick Astley in slechts een moment.
En wat is echter de implicatie dat?
Je wilt proberen om het te houden?
We hebben wel een camera wees op je af als je wilt
om te poseren met Rick Astley hier.
Daar gaan we.
Heerlijk.
>> Maar je lijkt te ontbreken een fragment van Rick Astley.
Dus het blijkt dat het internet wordt over het algemeen gedreven door niet alleen IP,
maar in feite hebben we aan het horen begin van de lezing in die video--
en je hebt waarschijnlijk dit gezien acroniem meer often-- wat werkelijk
is het protocol dat u de neiging om te horen?
>> PUBLIEK: TCP / IP.
>> DAVID J. MALAN: TCP / IP, dat is gewoon een combinatie
van twee protocollen, een zogenaamde IP.
Die weer, is gewoon de set conventies via welke we
pakken elke computer op het internet.
En dan TCP, die dient een ander doel.
>> TCP is een protocol dat u meestal in combinatie
IP, dat onder andere dingen, garandeert de levering.
In feite, is het TCP protocol zou dat een van de pakketten merken
blijkbaar niet te krijgen Cole, want hij lijkt
te ontbreken nummer vier van de vier.
En dus wat TCP, een protocol doet, is het vertelt Cole,
hey Cole, als je alleen ontvangen drie van de vier pakketten,
me welke je vertellen ontbreken, wezen,
en dan is mijn doel in het leven moet zijn om opnieuw te verzenden die.
>> En dus als ik ook de verzender, TCP,
Ik moet dan een nieuwe packet-- dit niet gerimpeld één hier--
doorgifte alleen dit stuk het, zodat uiteindelijk Cole heeft
een complete herinnering, als er niets anders.
Maar zo, dat uiteindelijk de gegevens daadwerkelijk krijgt om de juiste bestemming.
>> Maar helaas, het schrijven van de naam Cole aan de voorzijde niet voldoende, per se.
En echt, ik zou niet schrijven Naam Cole's, maar waarschijnlijk
Zijn IP-adres op de envelop.
En ik zou niet schrijven David.
Ik zou mijn IP adres op de envelop te schrijven zodat de computers kan eigenlijk
communiceren heen en weer.
Maar het blijkt dat computers kan veel meer dan serveren doen
foto's van Rick Astley.
Ze kunnen ook opnieuw en e-mails, chatberichten.
Ze kunnen dingen doen, zoals de overdracht van bestanden, en een willekeurig aantal andere instrumenten
u gebruikt op het internet, servers kunnen doen deze dagen.
>> En alleen maar omdat een bedrijf, of een school, of een persoon
wil een webserver en een e-mailserver en een praatje server,
betekent niet dat je drie computers nodig.
Je kunt gewoon een computer hebben draaien meerdere diensten, om zo te zeggen.
>> En dus wanneer Cole ontvangt een bericht als dat, hoe
doet zijn computer weten of tonen aan dat beeld in zijn browser,
of Gchat, of Facebook Messenger, of in een aantal andere instrumenten?
>> Zo blijkt ook dat als envelop is extra stuk
van de informatie die bekend staat als een poortnummer.
En een poortnummer enkel een aantal inderdaad,
maar het unieke identificatie niet de computer, maar de service.
En er is trossen van deze.
Dus het blijkt dat in de wereld, mensen
een paar dergelijke treden conventies, waarvan sommige hiervan.
Dus er is iets genaamd File Transfer Protocol.
Het is vrij gedateerd.
Het is volledig onzeker.
Veel mensen gebruiken het nog steeds.
En het maakt gebruik van poort nummer 21.
Met andere woorden, indien het versturen van een bestand via FTP,
de enveloppe niet alleen over verzender en het IP-adres van de ontvanger,
het zou ook de nummer 21, zodat de ontvangende computer weet oh, dit
is een bestand, geen e- of een chatbericht.
>> 25 is SMTP.
Hoeveel van jullie ooit heb gebruikt SMTP?
Fout.
Bijna al die je hebt.
Als je ooit hebt gebruikt e-mail, je hebt gebruikt SMTP, Simple Mail Transfer Protocol,
dat is gewoon een mooie manier om te zeggen, Dit is het type computer of dienst
dat stuurt uw e-mail uitgaande.
>> En als je ooit hebt gezien, zoals acroniemen POP of IMAP, en er is een paar anderen,
Dat zijn voor het opnemen e, typisch.
Dat betekent dat het een andere dienst.
Het is software dat iemand schreef dat stuurt naar of luistert
op een specifiek poortnummer zo dat het geen e-mails heeft verwarren
met andere type data.
>> Nu het web is HTTP, wat nummer 80, en ook de poort 443.
En inderdaad, alhoewel Wij mensen gelukkig
hoeft dit niet te doen, elke keer dat u bezoekt
een website als http://www.yale.edu, de browser
is gewoon soort handig omdat het
ervan uitgaande dat u wilt numerieke poort 80.
We weten al dat DNS kunnen achterhalen wat het IP-adres van www.yale.edu.
Maar de computer is gewoon zal afleiden dat u
wil poort 80, want je gebruikt Chrome of IE, of een andere browser.
Maar ik kon technisch doen colon 80.
En dan kan ik expliciet vertellen mijn browser, stuur dan een pakje of meer
van informatie aan www.yale.edu vraagt ​​de huidige homepage.
Maar specifiek, adres het aan Yale IP op poort 80
zodat ik eigenlijk back Yale webserver.
>> Nu onmiddellijk verdwijnt omdat browsers net
besluiten dat we niet moeten mensen verwarren
door het hebben van nog meer mysterieuze informatie zoals colon 80.
En eerlijk gezegd, browsers zoals Chrome niet eens
laten u meer HTTP, of de dikke darm, of de slash slash, of de schuine streep,
in zekere zin, omdat ze proberen om dingen eenvoudiger voor gebruikers.
In een andere zin, het is gewoon een soort van een user experience thing--
laten we ontdoen van een aantal van de rommel.
Maar het verbergt een aantal van deze onderliggende details.
>> En in feite, niemand van ons waarschijnlijk ooit http meer typen.
U typt gewoon in iets zoals www.harvard.edu.
En nogmaals, Chrome waakt dat u wilt HTTP.
Maar er zijn ook andere protocollen dat we zeker zouden kunnen worden gebruikt.
>> Dus gezien dit alles, als je nu een soort van die op de zogenaamde techniek hat,
hoe dingen genaamd firewalls werken?
Dus bent u waarschijnlijk over het algemeen vertrouwd zijn met de firewall,
niet zozeer in de fysieke zin.
Dus terug in de dag, en nog steeds aan deze dag,
als je hebt, zoals strip winkelcentra voor bijvoorbeeld dat veel winkels hebben,
algemeen de muren ertussen individuele winkels of winkels
firewalls zijn in de zin dat ze hebben speciale isolatie
zodat als brand breekt uit in een winkel,
het doet niet per se verspreid naar de winkel naast de deur.
>> De computer wereld heeft ook firewalls dat er iets anders te doen.
Wat doet een vuurbal doen?
Ja?
>> PUBLIEK: In principe ze afgesneden verbinding
als ze iets tegenkomen zoals, bijvoorbeeld,
ze hebben het aantal id verklaringen.
En als er iets gebeurt, ze snijden de verbinding.
Net als dit kwaadaardige aanvallen [Onverstaanbaar] van uw computer, of--
>> DAVID J. MALAN: OK goed.
Ja, en in feite je bent zelfs gaan een beetje verder
in iets beschrijven dat zou kunnen zijn riep een intrusion detection-systeem,
of IDS voor de korte, waarbij je eigenlijk hebben regels gedefinieerd.
En als je begint te zien verdachte gedrag, moet je proberen om een ​​einde te maken aan het.
>> En een firewall, eerlijk gezegd, op een netwerk-niveau,
is nog dommer en eenvoudiger dan algemeen.
En er zijn verschillende types van firewalls in de wereld.
Maar degene die werken op het niveau we praten today--
IP en TCP-- zelfs werken meer onomwonden.
>> Bijvoorbeeld, als je Yale systeem beheerders, of Harvard-systeem
beheerders, of een Big Broer op een bepaald bedrijf,
en je wilde al voorkomen dat uw studenten of al uw medewerkers
van het gaan naar facebook.com, alles wat je hoeft te doen
is ervoor te zorgen dat al hun netwerkverkeer, allereerst,
gaat door middel van een speciaal apparaat.
Laten we noemen het een firewall.
>> En dat is prima, want u kunt uw router maken
hetzelfde als een firewall als je dezelfde soort software
op dezelfde machine.
Dus als alle leerlingen of werknemers verkeer
gaat door dit centrale firewall, hoe
zouden wij mensen te blokkeren uit te gaan naar facebook.com, bijvoorbeeld?
Wat zou het systeem administrator moeten doen?
Iemand anders?
Laten we proberen om rond te gaan.
>> PUBLIEK: [onverstaanbaar]
DAVID J. MALAN: Zeg dat nog eens?
Publiek: Het moet gewoon ingehaald in het systeem.
Dus zet Facebook in 127.0.0--
DAVID J. MALAN: Oh, interessant.
Dus je kunt eigenlijk dan hack uw DNS-systeem.
Dit is inderdaad een manier kon je dit doen waarbij elke keer een Yale student trekt
up www.facebook.com, alle van ons hier vandaag op de campus
gebruikt Yale DNS-server, Yale omdat de DHCP-server gaf ons
dat adres.
Dus ja, je kon soort dingen of breken conventie breken
door gewoon te zeggen, ja, adres facebook.com is nep,
1.2.3.4 is, wat eigenlijk niet legitiem.
Of misschien is het 278.
wat was in de tv-show een daarnet zo dat niemand van ons
kan eigenlijk een bezoek facebook.com.
>> Dus stel Yale deed.
Veronderstel Yale wilde houden je uit facebook.com.
En daarom zijn ze veranderde de DNS-instellingen
om u een nep IP geven Adres voor facebook.com.
Hoe reageer je?
Technisch, niet-- oh, nu iedereen wil om deel te nemen.
OK, ja.
PUBLIEK: U typt gewoon in de eigenlijke IP-adres van Facebook.
>> DAVID J. MALAN: OK, goed.
Dus we konden enkel type in de eigenlijke IP-adres van Facebook,
net zoals ik deed met de website van Yale.
En als de Facebook-server is geconfigureerd ondersteunen dat zij inderdaad werkt.
Het is een lichte pijn in de nek, want nu we
moet niet vergeten een aantal willekeurige 32-bits waarde, maar dat zou kunnen werken.
Wat zou je doen?
Ja.
>> Publiek: Je zou kunnen veranderen deze instellingen [onverstaanbaar].
DAVID J. MALAN: Ja, je kon zelfs uw DNS-instellingen te wijzigen.
Dus in feite is dit eigenlijk vrij nuttig, eerlijk gezegd,
als je in een luchthaven, of als je bent in een cafe, of iets dat
heeft schilferige internet waarbij soms de DNS-server gewoon stopt met werken.
Dus ook ik af en toe doen dit, niet voor kwaadaardige, I
wil Facebook gebruiken doeleinden, maar echt
omdat ik lijken een netwerk verbinding, maar niets werkt.
Zo een van de eerste dingen die ik try-- en je
Dit kan op Windows, maar too-- op mijn Mac, als ik naar Network.
En ik kies mijn Wi-Fi-verbinding.
En ik ga naar Advanced.
En ik ga naar DNS.
Dit zijn de drie IP-adressen die Yale
is het geven van me om drie DNS-servers.
Het doel is dan voor mij om elke proberen een van deze adressen op te lossen.
>> Maar ik kan overschrijven deze door het doen van een plus.
En iedereen wil een DNS-server voor te stellen?
>> PUBLIEK: 8.8.8.8?
>> DAVID J. MALAN: Oh, je bent geweldig.
Ja, 8.8.8.8.
Zodat Google, zegen hun harten, kocht het IP-adres 8.8.8.8,
omdat het soort ziet eruit als Gs waarschijnlijk, en het is makkelijk te onthouden.
Maar inderdaad, nu heb ik mijn geconfigureerd computer aan Google's DNS-server te gebruiken.
>> Dus nu als ik naar yale.edu, het is nog steeds aan het werk.
Maar ik ben niet met behulp van Yale DNS-servers meer.
En als ik naar facebook.com, al die kijken ups
gaan om te gaan door Google.
>> Dus aan de ene kant, ik heb slim omzeild het lokale systeem
beheerders gewoon door begrijpen hoe een netwerk werkt.
Maar ik ben het betalen van een prijs.
Niets is gratis.
Wat heb ik gewoon opgegeven?
Jullie allemaal slimme mensen die gebruikt 8.8.8.8, want het is cool
of lost problemen op, wat heb je gedaan al die tijd?
>> PUBLIEK: Traveling verder?
>> DAVID J. MALAN: Misschien verder reizen, omdat Google is waarschijnlijk niet zo
dicht als de server in de straat.
Maar meer worrisomely.
Ja?
>> Publiek: Dus nu Google weet waar je naartoe gaat.
>> DAVID J. MALAN: Google weet letterlijk elke website die u bezoekt,
want je bent letterlijk hen te vragen, he Google,
kunt u yale.edu vertalen voor mij?
Of hey Google, kun je vertalen Deze andere website-adres voor mij
in een IP-adres.
En dus they're-- ik heb geen idee waar je het over hebt.
En dus ze weten alles over jou.
Dus beseffen dat dit is een gratis service met een doel vanuit hun perspectief
ook.
Maar het kan zeker je uit een binden.
>> Nu alleen maar om een ​​ander aan te pakken kwestie die vaak opkomt
onder studenten, vooral wanneer u internationale reizen
in bepaalde landen, zoals China, waar er inderdaad
is een Great Firewall of China, waarbij de overheid er blokken vrij
een beetje van het verkeer op verschillende niveaus.
Je hoeft niet om gewoon blokkeren het verkeer op het niveau
we hier praten, DNS of anderszins, je kunt het blokkeren op andere niveaus.
>> En in feite, alleen maar om duidelijk zijn, een firewall
kan nog eenvoudiger dan alleen opereren het hebben van de systeembeheerders veranderen
DNS-instellingen.
Een firewall, een apparaat tussen ons en de rest van de wereld,
kon gewoon elke uitgaande blokkeren verzoeken om het IP-adres
voor Facebook op poort 80 of het IP-adres voor harvard.edu,
of het IP adres van om het even wat.
Dus een firewall kunt kijken naar je enveloppen 'IP-adressen en zelfs de haven
getallen en als Yale wilde, het kan net ons allemaal stoppen
van zelfs via FTP meer, dat zou een goede zaak, omdat het waarschijnlijk
inderdaad een onveilig protocol.
Yale zou zelfs kunnen stoppen met ons van bezoek aan het geheel van de baan
gewoon door alle poort te blokkeren verkeer op nummer 80 ook.
Dus dat zou een andere manier zijn.
En er is zelfs liefhebber manieren.
>> Maar als je op reis bent in het buitenland bijvoorbeeld,
of als je in een internetcafé, of als je ergens bent waar er
verstoppingen of bedreigingen, wat kunt u doen?
Nou, als je naar beneden de straat op Starbucks of u reist in een luchthaven,
over het algemeen kun je gewoon hop op de Wi-Fi door te kiezen
als, JFK Wi-Fi van LaGuardia Wi-Fi, of Logan Airport Wi-Fi, of wat niet.
En het is niet versleuteld, toch?
Er is geen hangslot.
En je bent waarschijnlijk niet gevraagd voor een gebruikersnaam en wachtwoord.
Je bent gewoon gevraagd met een aantal domme vorm
te zeggen als, ben ik het eens dat alleen te gebruiken 30 minuten, of iets dergelijks.
>> Maar er is geen encryptie tussen u en Starbucks WiFi
punt, de dingen die met de antennes op de muur.
Er is geen encryptie tussen u en Wi-Fi-signalen van de luchthaven.
>> En zo technisch, dat griezelig persoon zitten een paar zetels af van je
in Starbucks of op de luchthaven zou kunnen zijn, met de juiste software,
kijken naar al uw draadloze het verkeer op zijn of haar laptop.
Het is niet zo moeilijk om zet een laptop in wat er is
riep promiscue modus, die zoals de naam al doet vermoeden,
betekent dat je soort los van de regels.
En het luistert gewoon niet alleen voor het verkeer bedoeld voor het,
maar ook voor iedereen anders is verkeer binnen bereik.
>> En door die logica, het kan zien alle informatiepakketten
u ontvangt.
En als die pakketten zijn niet versleuteld, u
worden om jezelf in gevaar uw e-mails, of uw berichten,
of iets anders krijgen blootgesteld.
>> Dus zelfs als je in het buitenland bent niet maar je bent gewoon in Starbucks,
of je bent op een willekeurig persoon Wi-Fi die niet is gecodeerd,
een VPN is een goede zaak.
Een VPN is een virtual private network.
En het is een technologie die u toelaat om te hebben
een gecodeerde, een roerei connection-- liefhebber dan Caesar of Vigenere--
tussen uw laptop, of je telefoon, of uw bureaublad,
en een server elders, zoals een server op de campus van Yale.
>> En als je reist abroad-- en in feite is dit in hotels vind je
altijd.
En vooral als aspirant- informatici
waarin jullie misschien, als geeks, willen andere dan 80 poorten,
en andere dan 443-- havens en in feite voor het probleem te stellen zes,
we gaan om te spelen met meerdere TCP-poorten alleen door keuze-- veel
van hotels en winkels, en netwerken alleen dat soort dingen te blokkeren
omdat ze een beetje naïef, of onwetendheid, denk gewoon
dat niemand nodig die andere havens.
>> En zo met behulp van een VPN kunt u omzeilen dit soort beperkingen,
want wat een VPN doet is het laat je bij Starbucks,
of de luchthaven, of waar dan ook in de wereld encryptedly om verbinding te maken met yale.edu,
enkele server hier op de campus, en tunnel, zogezegd,
al uw verkeer van de plaats waar je bent door middel van Yale, op welk punt
Het gaat dan naar de eindbestemming.
>> Maar door het versleutelen van het, je geven dergelijke voorkomen
van filters of het opleggen die sommige lokale netwerk heeft opgelegd.
En plus, heb je een veel robuuster verdediging
tegen griezelige mensen om je heen die misschien
te proberen te luisteren op uw verkeer.
Er kan nog griezelige mensen hier terug naar huis aan de Yale kijken uw verkeer
zoals het komt uit de VPN, maar in ieder geval je de dreiging hebt geduwd verder weg.
En het is ook hier een afweging.
>> Nu natuurlijk, als je in China of zelfs in het café,
en je bent tunneling alle uw verkeer door middel van Yale,
welke prijs betalen we misschien?
>> Publiek: Snelheid.
DAVID J. MALAN: Snelheid, toch?
Er moet wat wiskunde te zijn of een fanciness betrokken
in de feitelijke codering.
Er kunnen duizenden mijlen van afstand of duizenden
mijlen van de kabels tussen u en Yale.
En het is echt slecht als je bent in China, bijvoorbeeld,
en u wilt bezoeken een website in China.
En zo uw gegevens gaat de VS, en dan terug naar China
gewoon omdat je het versleutelen het door deze tunnel.
>> Maar het lost technische en problemen gelijk werk.
Maar het komt allemaal neer op Deze eenvoudige ideeën.
En Harvard, voor wie nieuwsgierig, heeft men hier ook bij vpn.harvard.edu,
die werkt net als Yale.
>> Dus met al dat gezegd, waarom is dit hele netwerk nuttig?
En wat kunnen we gaan doen met het?
Nou, laten we dit nu echt.
Dit is de afkorting waarmee de meesten van ons
zijn waarschijnlijk super familiar-- HTTP kunnen wat staat voor Hyper Text Transfer
protocol.
En dit betekent gewoon dat dit is de taal, het protocol
dat webbrowsers en webserver spreken.
>> De P in HTTP is inderdaad een protocol.
En een protocol is gewoon een set van conventies.
We hebben gezien IP-- internet protocol-- TCP-- transmissie controle
protocol-- en HTTP.
Maar wat is dit stomme ding van een protocol?
Het is gewoon een set van conventies.
>> Dus als ik een soort van naar beneden komen hier, en ik wil je te begroeten.
Ik zou zeggen hallo, mijn naam is David.
>> Publiek: Luis.
>> DAVID J. MALAN: Luis.
We hebben dit domme mens conventie van handen schudden hier.
Maar dat is een protocol, toch?
Ik verlengde mijn hand.
Luis stak zijn hand uit.
Wij deden dit.
En dan compleet, gedaan.
>> En dat is precies het zelfde geest van een computer protocol
waar zoals in HTTP, wat er gebeurt is dit.
Als u de computer op het hier links, en er is een aantal web
server is er aan de rechterkant.
En de computer links wil informatie aanvragen van die server.
Het is een soort van een bi-directionele werking.
De browser links vraagt ​​voor sommige webpagina.
De server op de rechter reageert met een aantal webpagina.
En we zullen zien wat vorm die in slechts een moment.
>> En het blijkt dat die computers-- dat de browser en de server of client
en de server, om zo te zeggen.
Net als een restaurant waar de client is vragen om iets,
en de server brengt hem of haar something-- krijgen
is een soort van het sleutelwoord.
Letterlijk binnenzijde van de envelop mijn browser stuurt van hier naar een web-
server is het woord te krijgen.
Zoals ik wil het nieuws van vandaag te krijgen.
Ik wil mijn krijgen Facebook nieuwsfeed, of I
willen sommige pagina te krijgen van de server.
>> In het bijzonder, dit is wat is gaat aan de binnenkant van de enveloppe.
Dus ik, met Cole, in wezen Cole stuurde een antwoord.
Als je je voorstellen dat Cole eigenlijk wilde een foto van Rick Astley,
hij zou me een verzoek hebben gestuurd Soortgelijke geest daarvan.
Binnenkant van zijn envelop naar me, waar de Ik ben nu aan het spelen van de rol van Google,
zou een verzoek dat letterlijk zegt, en dan een voorwaartse slash--
en je hebt waarschijnlijk gezien slashes in de URL's voor.
Het betekent geef me de standaard pagina, de standaard Rick Astley
foto in dit geval.
>> En door de manier, Cole spreekt de taal HTTP versie 1.1, of het protocol 1.1.
En het blijkt dat er's een oudere versie 1.0.
Maar computers gebruiken meestal 1,1.
>> De tweede lijn is een nuttig ding dat zal terug komen om misschien het duurde niet lang.
Maar het is gewoon een specificatie voor mij, de ontvanger, dat het ding wil ik
is www.google.com.
Want het is heel goed mogelijk deze dagen voor tientallen,
honderden websites met verschillende domeinnamen voor alle
wonen op dezelfde server.
Het gaat niet om waar te zijn zo veel in het geval van Google.
Maar in een kleiner bedrijf geval zou absoluut.
Dus Cole is gewoon een soort van de invoering van de envelop,
door de manier, wanneer dit bereikt uw IP adres op poort 80,
gewoon zeker dat je weet Ik wil www.google.com, niet
sommige andere willekeurige website op dezelfde server.
>> Wat ik dan reageren op Cole met, aan het eind van de dag, een beeld.
Maar bovenop dat beeld binnenzijde van de omhulling
is eigenlijk wat tekst, waar ik zeggen, OK.
Ik spreek HTTP versie 1.1 ook.
200.
Dat is een status-code die de meesten van ons hebben waarschijnlijk
nooit gezien, want het betekent OK.
En dat is goed, want het betekent dat ik met succes te reageren
op het verzoek van Cole's.
>> Welke nummers je waarschijnlijk gezien op het web die niet in orde zijn?
>> Publiek: 404.
>> DAVID J. MALAN: 404-- bestand niet gevonden.
Dus inderdaad, elke keer dat je hebt gezien een van die vervelende bestand niet
gevonden fouten, omdat de webpagina is dood,
of omdat u verkeerd gespelde een URL, dat betekent
dat de kleine envelop die uw computer ontvangen van de server
bevatte een bericht HTTP 1.1, 404-- niet gevonden.
Dat bestand of dat verzoek je maakte is niet gevonden.
>> Bovendien binnenzijde van de omhulling meestal is deze lijn, het type content.
Soms is het HTML, iets wat we zullen snel zien.
Soms is het een JPEG.
Soms is het een GIF.
Soms is het een filmbestand, een audio-bestand, een aantal dingen.
Zodat de binnenkant van de envelop is slechts een kleine hint over wat ik ontvang.
Er is andere status codes ook, sommige waarvan we verkennen in P ingesteld zes,
en je zult struikelen over P stelde zeven en / of acht.
Maar sommige hier, net als 404 die we hebben gezien.
Verboden, 403, betekent als de permissies verkeerd zijn,
als je niet soort correct geconfigureerd.
301 en 302, zien we zelden visueel.
Maar ze betekenen omleiden.
Elke keer dat u één bent gegaan URL en je hebt magische geweest
ergens anders gestuurd, dat is omdat de browser heeft teruggestuurd
een envelop met daarin het nummer 301 of 302,
en de URL die het wil je browser naar plaats.
>> 500 is verschrikkelijk.
Je zult het zien duurde niet lang, waarschijnlijk in P set zes of P stelde zeven.
En het betekent meestal er is een aantal bug in de code,
want inderdaad we zullen schrijven code die reageert op web verzoeken.
En je hebt net een aantal fout in de logica of syntax,
en de server het niet aankan.
>> Dus laten we zien hoe we nu kunnen profiteren en begrijpen deze verzoeken als volgt.
Als ik naar, laten we zeggen, google.com.
Laat me gaan naar www.google.com.
En omwille demonstratie's, laten we zie, ik moet hier Instellingen te gaan.
Ik ga naar zoekinstellingen.
En Google heeft steeds vervelend features, maar handige functies.
Dus Google heeft dit ding zoals instant resultaten waar je begint te typen,
automatisch dingen start verschijnen.
En dat is allemaal prima en technisch bruikbare,
en we zullen begrijpen het duurde niet lang hoe dit werkt.
Maar voor nu, ik ben het draaien off direct resultaat,
want ik wil mijn browser soort werk oude school zo
dat ik kan zien wat er gaande is.
>> Dus nu ben ik hier terug.
En ik wil zoeken voor katten.
En merk ik zie een aantal suggesties, een aantal zeer goedaardige suggesties
gelukkig.
En nu als ik druk op Enter, Laten we afwachten wat er gebeurt.
>> Er zijn dus enkele katten.
En de top hit is op Wikipedia.
Maar vandaag geven we over de technologie die hier boven.
Dus de URL die ik heb is deze verzonden is hier.
En er is een aantal dingen die ik niet echt begrijpen.
>> Dus ik ga om verder te gaan, omdat Ik weet dat soort van hoe Google werkt,
en ik ga dit destilleren URL in zijn eenvoudigste vorm.
En nu ga ik druk op enter opnieuw.
En het werkt nog steeds.
Ik heb een pagina met resultaten over katten.
>> Maar let op de eenvoud van mijn URL.
Het blijkt dat dit is hoe veel van het web werkt.
Het web is gewoon een hele stelletje computers
draaien van software die ingang te nemen.
Het is niet touwtje stijl ingang.
Het is niet de opdrachtregel argumenten, zoals we gewend zijn.
Ze nemen input, deze web servers, via de URL's vaak.
En elke keer dat je hebt zocht naar iets,
elke keer dat je bent aangemeld bij Facebook, elke keer dat je hebt
iets gedaan interactief met een webpagina, wat je doet
effectief indienen van een formulier, zodat om tekstvakken, selectievakjes speak--,
kleine cirkels, en wat al niet dat sturen informatie van u naar de server.
>> En het blijkt dat het web server weet om te kijken naar die URL
en ontleden het, net als blik bij het karakter voor teken op zoek naar iets
interessante na een vraagteken.
Want na een vraagteken, het blijkt, gaat komen
een bos van belangrijke waarde paren.
Ik bedoel sleutel = waarde.
En dan als er multiple-- misschien een ampersand, een aantal andere belangrijke = value,
ampersand, key = waarde.
>> Dus we hebben soort gezien dit idee voordat waar iets heeft een waarde.
Het is gewoon een nieuw formaat hier.
En ik weet gewoon, volgens afspraak, Google gebruikt q voor query.
En dan als ik wil zoeken voor honden, I handmatig zoeken naar honden als dat.
En dan ben ik blijkbaar krijgen sommige zoekresultaten met honden.
>> Zodat lijkt interessant.
En inderdaad, wat is er aan de hand onder de motorkap is dit.
Laat me dit te doen.
Dit is a-- laten zien.
Laat me terug over te gaan hier voor een ogenblik.
>> We zullen zien dat er andere manieren om informatie te verstrekken.
Dus als ik in te loggen op Facebook, of Gmail, of enige andere populaire website,
Het lijkt soort van slecht als wat ik typte in het zoekvak eindigt in mijn URL,
in de adresbalk van mijn browser.
Waarom?
Waarom is dat licht zorgelijk?
Ja?
PUBLIEK: Typ een wachtwoord.
DAVID J. MALAN: Ja.
Dus wat als wat ik heb getypt in is mijn wachtwoord?
Ik soort wil het niet zo duidelijk zichtbaar in de adresbalk van mijn browser.
Eén, omdat mijn vervelende kamergenoot heeft de neiging om te kijken over mijn schouder,
en hij of zij kan nu zien, ook al het was kogels toen ik typ het in,
kleine cirkels.
Nu is het in mijn adresbalk.
>> Bovendien, wat is waar over dingen je de neiging om te typen in de adresbalk.
>> PUBLIEK: [onverstaanbaar]
>> DAVID J. MALAN: Wat is dat?
Publiek: Het wordt uitgezonden.
DAVID J. MALAN: Het wordt uitgezonden.
En ook, het wordt herinnerd.
Want de volgende keer je dingen typt daar,
vaak autocompletes en onthoudt wat je eerder hebt getypt.
En dus is er deze echte geschiedenis dat uw broer of zus, of je kamergenoot,
of wie dan ook kan wandelen door naar vrij veel zien elke website
u hebt bezocht, want het is ingelogd dat adresbalk.
>> Bovendien, stel dat je wilt een foto uploaden naar Facebook.
Hoe in de wereld bent u gaan naar een foto in een URL te zetten?
>> Nou, het blijkt dat je kunt doen in sommige weg, maar het is zeker niet voor de hand liggend.
En dus is er deze andere manier verzenden van informatie in een envelop
niet via een GET, maar via iets genaamd POST.
En in theorie, lijkt vrijwel hetzelfde.
In plaats van het woord, zeggen we POST, en dezelfde soort format.
>> Bijvoorbeeld is dit een screenshot van wat
het zou kunnen uitzien als ik probeer in te loggen in Facebook, die mij stuurt naar een bestand
genaamd login.php, dat is eigenlijk nog steeds aan deze dag zo genoemd.
Het is dezelfde bestandsnaam Mark gaf het vele jaren geleden.
Het is het programma dat hij schreef in PHP via waarmee gebruikers kunnen inloggen op de website.
>> Maar je moet sturen sommige extra input.
En dan gaat het na de bestandsnaam net als voorheen met cats--
q = cats-- kan lager gaan in het verzoek, dieper in de enveloppe je
zal waar niemand het kan zien, en waar het niet eindigen
in de browser bar van de gebruiker, en dus niet onthouden voor mensen om snoop
rond.
>> En dus even mijn e-mailadres en mijn nep wachtwoord daadwerkelijk te gaan.
Als Facebook wordt gebruikt niet HTTP maar HTTPS,
Deze zullen allemaal worden gecodeerd, roerei, ala Caesar of Vigenere,
maar meer fancily zodat niemand kan eigenlijk zien dit verzoek.
>> En zo ja, elke keer dat je hebt een URL die begint met https,
het betekent alleen dat het versleuteld.
Maar aan het eind van de dag, wat eigenlijk binnenkant van deze enveloppen?
Dit was super laag niveau.
En gelukkig, we zijn niet zal noodzakelijkerwijs
zo laag niveau gaan elke keer naar beginnen met het schrijven interessante software.
We kunnen beginnen te nemen de ideeën van één week
door vijf, aannemen dat er nu is deze infrastructuur die
laat ons software te schrijven die actief is op het web,
en het gaat om ons komende week te beginnen
op zoek naar iets genaamd HTML.
Dit is het spul dat is zelfs dieper binnenkant van de omhulling,
maar het is het spul dat we gaat het schrijven te beginnen.
En het is het spul meer interessant, we zijn
gaat om programma's te schrijven dat start automatisch genereren
zodat onze websites zijn niet hard gecodeerd, maar neem input en produceren output.
>> Dit is misschien wel de eenvoudigste web pagina die u kunt maken in de wereld.
Ik kan inderdaad openstellen iets stoms zoals TextEdit
op mijn Mac, die net geeft mij een eenvoudige tekst venster zoals dit.
PC-gebruikers hebben Notepad.ext, dat is zeer vergelijkbaar in de geest.
>> En ik kan letterlijk typen out dit-- DOCTYPE HTML,
die ziet er een beetje cryptisch.
Maar we zullen hierop terugkomen.
HTML, met die rare haakjes en schuine strepen,
de binnenkant van die ik nu ga zeggen hier komt het hoofd van mijn webpagina.
Binnenkant van dat, ik heb net weet, en je zult snel weten,
dat ik de titel van mijn website kan zetten.
En dan onder de hoofd van de webpagina is
ga naar de zogenaamde lichaam van de webpagina.
En ik ben gewoon inspringen net zoals in C van de soort te houden
dingen goed leesbaar stilistisch.
En nu ga ik om dit op te slaan als een bestand op mijn bureaublad, genaamd hello.html.
>> En ik ga het zeggen ja, HTML gebruiken.
Niet veranderen in .txt, zelfs maar dit alles is een tekstbestand,
net als een C-programma geschreven met een tekstverwerker.
Hoewel niet in CS50 IDE op ogenblik, net hier op mijn Mac.
>> En als ik nu naar mijn desktop, je zult zien hello.html.
Als ik dubbelklik deze, het zal openen Chrome.
En hoewel dit bestand gebeurt om te leven op mijn bureaublad,
dat is misschien wel de eenvoudigste webpagina Ik kon maken.
>> Merk op dat de titel van het tab weg omhoog top is hello wereld.
Het lichaam van de webpagina is inderdaad hello wereld.
En alles wat ik heb gedaan te krijgen op dit punt voeren,
of schrijf een nieuwe taal, genaamd HTML.
Het is niet een programmering taal zoals C. Er is
niet naar omstandigheden, en loops, en functies.
Het is een opmaaktaal, waarin geval je gewoon vertellen de ontvangende
programma wat je wilt doen.
Dit betekent hey browser, hier komt een HTML-pagina.
Hey browser, hier komt het hoofd van mijn pagina.
Hey browser, hier komt het lichaam van mijn pagina.
Hey browser, dat is het voor het lichaam.
Dat is het voor de HTML-pagina.
>> En met die eenvoudige definities alleen, zullen we snel zien dat men,
we kunnen deze vertegenwoordigen als een boom.
Maar daarover later meer.
Zo zal dit alles interconnect aan onze meest recente gegevens structuren.
Twee, zullen we deze domme grap te introduceren.
Dit is een echte tatoeage die deze man had op zijn nek.
Het is waarschijnlijk grappig de eerste week of twee, en daarna, misschien niet zo veel.
>> Maar HTML, en zelfs het web wat ik maakte, super geest
numbingly disappointing-- gewoon zeggen hallo wereld
in zwarte tekst op een witte achtergrond.
Uiteraard kunnen we veel beter doen.
En we zullen dat doen door de invoering van een andere taal genaamd CSS.
Ook dit niet een programmering language-- geen lussen, en de voorwaarden, of voor loops,
maar echt, gewoon syntax waarmee we kunnen zeggen, maken deze tekst groot.
Maak deze tekst klein.
Rechts uitlijnen.
Links uitlijnen.
Maak het roze.
Maak het paars.
Maak het blauw.
Of doe een aantal andere visuele effecten.
En dus zullen we zien hoe stilering beginnen webpagina's zodat ze er op een manier
dichter bij wat we willen.
>> En tot slot, hebben we inderdaad geruïneerd misschien wel veel van televisie en film voor jou.
Ik dacht dat we hier zouden eindigen met onze laatste seconden
op een uiteindelijke clip die je laat zien hoe hacken op het internet werkt.
Als we konden dimmen steekt een laatste keer.
>> [VIDEO AFSPELEN]
>> -Echt niet.
Ik krijg gehackt.
>> -Okorsky?
>> -No-- Nee, dit is belangrijk.
Ze hebben al doorgebrand het NCIS openbare firewall.
-goed, Isoleren het knooppunt en dump ze aan de andere kant van de router.
-Ik probeer.
Het is te snel.
>> Oh, dit is niet goed.
Ze gebruiken onze verbinding [Onverstaanbaar] deze databank.
Sever het.
-Ik Kan niet.
Het is een punt aanval.
Hij is slechts ga na mijn machine.
>> -Het is niet mogelijk.
Er is DOD level mijne encryptie.
Het zou maanden duren om get--
Hé, wat is dat?
Een video game?
>> -geen Tony, wij worden gehackt.
>> -Als Ze Abby's computer te krijgen, het hele NCIS netwerk is de volgende.
>> Ik kan hem niet tegenhouden.
Doe iets McGee.
>> -Ik Heb nooit code gezien.
Oh.
Waar is het?
Abby?
-Ik Deed niets.
Ik dacht dat je deed.
>> -Nee.
>> -Ik deed.
>> [END AFSPELEN]
DAVID J. MALAN: De beste deel is twee mensen typen
op het toetsenbord tegelijkertijd.
>> Dus dat is het voor de CS50.
We zullen blijven hangen gedurende kantooruren.
En we zien je volgende keer.
[Muziek - "SEINFELD THEMA"]
Dit is CS50.
Ik wil niet om een ​​piraat te zijn.
Luidspreker 2: Yarr David.
Het is een prima doublet u dragen.
Veel voorlijk in die bladerdeeg.