DOUG LLOYD: Hvis du har vært å se disse videoene
i den rekkefølge som vi anbefaler, vi er i ferd med å gjennomgå
bit av en kultur skift.
Fordi nå, kommer vi til å starte snakker om internett og web
teknologier.
Så frem til nå, har vi virkelig gjort mye av C.
>> Og når vi har vært kjører våre programmer,
vi har kjørt dem fra kommandolinjen.
Det er ganske mye hvor brukerne har blitt samspill med programmene
at vi skriver.
De plukker noe å be, noe skjer i terminalvindu
og så er det gjort.
>> Noen ganger kan du ha vedvarende data som gjenstår etterpå.
Men det er ganske mye det.
Det er på kommandolinjen.
Det er den eneste måten brukeren kan samhandle.
Fra dette tidspunktet, vi kommer til å starte
overgangen, slik at brukerne kan samhandle med våre nettsider.
Så vi kommer til å skrive nettsteder, som ikke er skrevet i C,
men er skrevet i en rekke annen programmeringsspråk, inkludert PHP,
og det er liksom hjelpespråk, HTML, CSS og lignende.
Så vi kommer til å starte snakke om disse tingene.
>> Før vi kommer inn web programmering selv,
Jeg tror det er trolig en god idé å ta et skritt tilbake og snakke
om hvordan datamaskiner og mennesker samhandler over nettet.
Så denne videoen er egentlig en primer, en grunnleggende guide, til internett.
Nå er det forbeholdet her CS50 er ikke et nettverk klasse.
Så det vi skal snakke om her er ganske høyt nivå.
Vi kommer ikke til å komme inn i noen lavt nivå
detaljer om hvordan alt dette fungerer.
Hvis du er interessert i det, vil jeg på det sterkeste
anbefale å ta en klasse på datanettverk.
Og vi kan også fortelle hvit løgn eller to bare
for det formål å gjøre generell forståelse klart.
>> Så med det sagt, la oss snakke om hvordan vi samhandler med internett.
Så her er vi.
Her er oss.
Vi er ganske ser frem til komme inn på Internett, som
som vi alle vet, er stappfullt av katter.
>> Nå trenger vi bare koble til internett som dette?
Vel, sannsynligvis ikke.
Intuitivt, vet du det, si for eksempel,
når du endrer Wi-Fi nettverk på datamaskinen,
du ser ikke en som heter internett med mindre det bare så skjer
å være navnet på din lokale Wi-Fi.
Høyre?
>> Det er som regel noe sånt hjemme.
Eller hvis du er på jobb, det kan være navnet på firmaet.
Det er ikke bare en alternativ som heter internett.
Og så noe eller noen ting eksisterer i mellom når
vi ønsker å koble til internett.
Hva er noen av de tingene?
Vel, vi kommer til å snakke om det.
Vi kommer også til å snakke om noen av de viktigste tingene
vi trenger for å kunne for å koble til internett.
Og den første av disse ting er en IP-adresse.
Så du har sikkert hørt begrepet IP-adresse før.
Hva betyr det?
Vel, er en IP-adresse utgangspunktet en unik identifikator
av din datamaskin på et nettverk.
Akkurat som alle hjem eller Kontoret har en unik adresse
som man kunne sende en mail.
>> På samme måte hver datamaskin hvis det ønsker å motta data eller sende data,
må ha en unik adresse.
Slik at når informasjon blir sendt eller mottatt,
Det blir derfor sendt fra eller mottatt til riktig sted.
Dette adressering ordningen, som jeg sa, kalles IP-adressering.
IP er står for Internet Protocol, som vi skal snakke om igjen om kort tid.
>> Nå, hva betyr IP adressering se ut?
Vel, ordningen i utgangspunktet var, når det først ble implementert,
å gi hver datamaskin en unik 32-bit adressen.
Det er mye av biter.
Det er 4 milliarder adresser.
>> Og generelt, istedenfor å bruke heksadesimal notasjon, som
Vi har tidligere brukt i sammenheng med pekere i C for å snakke om adresser,
vi vanligvis representerer IP adresser i en litt mer
av en human vennlig måte, som representerer dem
som fire grupper av 8 bits representert som desimaltall.
Fordi mennesker ikke ofte snakker heksadesimale, med mindre du programmerer.
Men folk som bruker internett er ikke nødvendigvis programmerere.
>> Og så gjør det enkelt og tilgjengelig for dem
å være i stand til å snakke om hva deres IP-adresse er i tilfelle de kanskje
må ringe opp noen å feilsøke noe,
det er bedre å gjøre det i mer vanlig konvensjonell desimaltall
format.
Og så en IP-adresse ser bare ganske mye som dette, w.x.y.z,
hvor hver og en av disse bokstavene representerer en ikke-negativ verdi
i området fra 0 til 255.
Husker at en 8-bits tall kan holde 256 forskjellige verdier.
>> Og så det er derfor vårt utvalg er fra 0 til 255.
Og vi har fire klynger av 8 biter for en totalsum på 32 bits.
Og så en IP-adresse makt se omtrent slik ut.
Dette er liksom en generisk standard IP-adresse, 123.45.67.89.
Alle av dem er i området fra 0 til 255, så det er en gyldig IP-adresse.
>> Her ved Harvard University, alle våre IP-adresser starte med 140,247.
Det er bare slik at IP adresser i dette geografiske området
har blitt tildelt.
Og slik at dette kan være en IP-adresse som kan eksistere her ved Harvard.
>> Så som jeg sa, hvis hver IP-adresse er 32 bits, har vi ca 4 milliarder
å gi ut, litt mer enn 4 milliarder.
Men vi kan slags se et problem, ikke sant?
Hva er verdens befolkning akkurat nå?
>> Vel, det er et sted nord for 7 milliarder mennesker.
Og i den vestlige verden Minst, folk flest
har mer enn én enhet stand til internett-tilkobling.
Jeg har en rett her.
Og jeg har en annen i lomma.
Og jeg har en tilbake på kontoret mitt.
>> Og så det er tre.
Og som ikke engang telle de som jeg har hjemme, også.
Og så det er slags et problem, ikke sant?
Vi har minst 7 milliarder mennesker og bare 4 milliarder adresser.
>> Og hver enhet er ment å være entydig identifisert.
Vi har utviklet noen midlertidige løsninger å håndtere dette problemet,
noe som kalles en privat IP-adresse, som vi ikke
kommer til å komme inn i denne videoen.
Men i utgangspunktet, kan det fremme web, internett, til slags falsk
ut litt at du har en unik adressen ved å ha private adresser
og deretter lede dem gjennom en enkelt adresse, hvilke
deles av mange forskjellige datamaskiner.
>> Men det er egentlig ikke en langsiktig løsning.
Selv det faste er ikke kommer til å vare evig.
Og så må vi ha en annen måte å håndtere dette.
>> Så som jeg sa, hadde vi ca 4 milliarder kroner.
Men som ikke kommer til å være god nok, ikke sant?
Og så den måten at det har avgjort der vi er
kommer til å håndtere dette på er å gjøre lengre IP-adresser.
I stedet for 32-bits adresser, er vi kommer til å ha 128-bits adresser.
Så i stedet for 4 milliarder adresser, skal vi
å ha det store antall adresser, som er 340 000 000 000 milliarder kroner
milliarder, så mye av IP-adresser.
>> Og denne nye ordningen kalles IPv6 er ofte hvordan det er referert.
Den gamle ordningen er IPv4.
Det er litt av et problem i at dette problemet har vært
kjent om for en veldig lang tid.
>> Og du vil se dette mye i sammenheng med datamaskiner og databehandling.
Vi er flinke til å forutse problemer.
Men vi er dårlige til å håndtere dem selv om vi vet om dem.
Så IPv6 har vært rundt på en stund.
Og bare i de siste par år har vi faktisk
startet innfasing av disse IPv6-adresser å fase ut de IPv4-adresser.
Men noen steder har dem.
Og de ser like ut til en vanlig IP-adresse.
Men de er mye lenger.
>> Så i stedet for nå å ha fire klynger av 8 byte for din adresse,
vi nå har åtte klynger av 16 bytes.
Og 8 ganger 16 er 128.
Og vi representerer disse i mindre konvensjonell heksadesimal form.
Fordi har 16-bit tall betyr at stedet for å være et område fra 0 til 255,
Vi ville ha en rekkevidde fra 0 til 65 535.
>> Og så har en haug av de som henger sammen
ville være svært vanskelig å lese.
Og så vi vanligvis bruker hex bare ut av bekvemmelighet.
Og så en typisk IPv6-adresse kan se noe som dette.
>> Det er sikkert mye lenger enn IPv4-adressen vi har sett før.
Men dette ville være en gyldig IPv6-adresse.
Dette handler også om IPv6-adresse.
>> Dette skjer for å tilhøre Google.
Og legg merke til det er en haug med nuller der.
Noen ganger disse adressene kan bli så lang.
Og siden vi er fortsatt ganske tidlig i IPv6,
noen ganger kan det være store biter av nuller i det at vi ikke trenger.
>> Hvis du leser dette høyt, det er 2001.4860.4860.0.0.0.0.8844.
Det er litt mye, ikke sant?
Så hvis du ser en haug med nuller, kanskje du noen ganger
se en IPv6-adresse som dette, der de utelater nuller
og bruke en dobbel kolon i stedet.
Dette er OK, skjønt.
Fordi vi vet at det er ment å være åtte forskjellige biter.
Og så ved implikasjon, ser vi fire.
Så vi vet at det må være fire sett nuller som dette, som fyller det i.
>> Så noen ganger, kan du se en IPv6-adresse ikke å ha
åtte adskilte biter som vi gjør her.
Du kan se det som ser ut som dette.
Og det betyr bare at alt du ikke ser i
mellom hvor som dobbel kolon er det bare null separert.
>> Så ok.
Vi vet litt mer om IP-adresser nå.
Men hvordan får vi dem?
Vi kan ikke bare plukke den vi ønsker.
Hvis vi gjorde det, kan vi ende opp med å slåss noen for den samme IP-adresse.
Eller noen kan ha valgt det tidligere.
Hvis vi prøver og ta det, kommer vi å kjøre inn litt av et problem.
Og så vi kan ikke bare plukke IP-adresse som vi ønsker.
>> Så den måten at vi får en IP-adressen er et sted
mellom vår datamaskin og internett, den store internett der ute,
det er noe som heter en DHCP-server, en Dynamic Host Configuration Protocol
server.
Det er en stor munnfull tekst.
Men egentlig alt den gjør er det tildeler du en IP-adresse.
>> DHCP-serveren har en liste over adresser som det kan gyldig tildele.
Og det gir deg en.
Det er ganske mye alt som skal til.
Nå før DHCP, denne oppgaven tilordne adresser
falt til en systemadministrator.
Så en faktisk person ville ha å tildele datamaskinen manuelt
og adresse når du koblet til et nettverk.
Så DHCP bare liksom automatiserer denne prosessen med å gi deg en IP-adresse.
Men det er hvordan du får det.
Det er bare et program som kjører et sted mellom deg
og internett som har en bank av IP-adresser som den kan gi ut.
Og når du kobler til nettverk, det gir deg en.
Så la oss se dette diagrammet.
Et sted mellom deg og internett, det er en DHCP-server.
OK.
Så det er bra.
Nå, la oss snakke om DNS.
Så vi har snakket selv disse IP-adressene.
Og vi vet at hvis vi er kommer til å identifisere
en enhet på internett, det må ha en unik adresse.
>> Og vi kunne besøke det adressere hvis vi ville.
Men du har sikkert aldri skrevet i noe som 192.168.1.0
i nettleseren din, ikke sant?
Du trenger ikke skrive inn tall inn i nettleseren din.
Du vanligvis skriver i lesbar navn som google.com eller cs50.harvard.edu,
ikke sant?
>> De er ikke IP-adresser, though.
Så eksisterer denne tjenesten kalles Domain Name
System, DNS, som oversetter IP adresser til menneskelige forståelige ord
eller setninger som er mye mer minneverdig enn å huske et sett med fire tall
eller, snart et sett av åtte heksadesimale tall.
Det ville være veldig utfordrende, ikke sant?
>> Tenk om før dagene av mobiltelefoner.
Du hadde huske venners telefonnumre.
Det kan ha fått tøff etter en liten stund.
Og på samme måte, hvis du vil å besøke en haug med nettsteder,
har du sannsynligvis ikke vil huske en haug med tall.
Du vil heller huske en haug med ord.
>> Så denne kartleggingen, dette sette, av sett med tall til lesbar navn
slags gjør DNS den gule sider av nettet.
Og du kan tenke på det som om det er bare
en enorm liste kjører fra 0.0.0.0 alle helt ned til 255.255.255.255, som
ville være den høyeste possible-- det er hele spekteret fra 0s til 255s av alle fire
milliard-ish IPv4-adresser.
Jeg har gjort opp de på toppen og bunnen.
Men den i midten er det er faktisk en IP-adresse.
Så hvis vi besøkte 74.125.202.138, tilsynelatende som betyr at området
der, io-- hva pokker er det?
Vel, ikke alle navn som kart er faktisk klart hva det er, ikke sant?
>> Så noen ganger noen som eier en IP-adresse
kan nevne deres vert noe at de er faktisk ikke.
For eksempel at IP-adressen hvis du dro dit, er faktisk bare google.com.
Men Google har mye forskjellige servere.
>> Og de kan ikke kalle dem alle google.com.
Så de har sine egne interne system for å oversette
google.com til hva serveren faktisk er koblet til den IP-adressen.
Og så er det en annen system som eksisterer mellom
å oversette det gobbledygook her til google.com.
Men vi vil ikke komme inn som.
>> Og tilsvarende for IPv6s, vi også kommer
å ha en gul sider som vil være mye større.
Og tilsvarende, i midten det-- det var
vanskelig å finne en IPv6 adresse som var legitimt.
Men jeg fant en for Google.
>> Men det er Googles Irish hjemmeside.
Men hvis du gikk til at IPv6-adresse, Hvis nettleseren din var IPv6 stand,
som vil bringe deg til Googles Irish hjemmeside.
Så det du går.
>> Men dette er ikke helt sant, ikke sant?
Dette systemet virker tungvint, ikke sant?
Hvis det er en enorm liste over fire milliard ting å se opp,
det er ganske stor.
Det finnes ingen gule sider av verden, ikke sant?
Hvis du fortsatt får den gule sider levert til you--
Jeg fikk min her om dagen, og jeg bare resirkulert det.
Men hvis du får den gule sider levert til deg,
du får ikke en bok som er hver telefonnummer som finnes på planeten,
ikke sant?
Du får en liste over lokale telefonnumre,
de du er mest sannsynlig å ringe.
>> Og det er faktisk hva DNS er.
Hvis du tenker på det, er DNS virkelig de lokale gule sider.
Og store DNS-servere som google.coms, de
er faktisk bare mer som biblioteker som
har en kopi av alle de lokale gule sider eller alle de lokale DNS-poster.
Så det er egentlig ingen repository av full DNS av internett,
akkurat som det er ingen gule sider av verden.
>> Det er alle disse lokale små skala DNSs som finnes der ute.
Og det finnes tjenester som aggregere dem sammen.
Men de er avhengige av dem mindre DNS-systemer
oppdatere sin informasjon, slik at de har den mest nøyaktige informasjon.
>> Så igjen, denne analogien er stort aggregerende
DNS-systemer er som bibliotekene som har en kopi
av hvert gule sider av verden.
De gjør ikke seg selv oppdatere disse bøkene.
De er avhengige av bøkene som kommer inn, slik at de kan oppdatere informasjonen
hvis de trenger det.
>> Så DNS-systemet ikke er et gigant-blokk.
Det er desentralisert tvers mange, mange servere.
Så nå vet vi at et sted mellom oss og internett
det eksisterer en DNS-server samt en DHCP-server.
>> Nå tilgangspunkter, hva våre tilgangspunkter?
Vel, tilgangspunkter er du antakelig ganske kjent med fra faktisk
tilkobling til internett.
Det er nettverket som du velger, hjemmet eller arbeidet ditt nettverk
eller hva har du.
>> Og jeg generalisere Konseptet med et tilgangspunkt
her for formålene i denne video.
Men det er faktisk mange ting som
kan rulles opp i tilgangspunkter.
Det er begrepene rutere, som er liksom en generell term som vi bruker.
>> Men det er også brytere og ting faktisk kalt
tilgangspunkter som er atskilt fra denne generelle begrepet et tilgangs
punkt.
Men innerst inne hva skjer er med IPv4, jeg
sa vi har dette konseptet av private adresser, ikke sant?
Og i stedet for hver maskin ha en unik IP-adresse, hvilken
vi har kjørt ut av, fordi vi er over 4 milliarder enheter
prøver å koble til internett, hva vi gjør
er i stedet tildele en IP-adressen til en ruter.
At ruteren eller tilgangspunktet bare i hjemmet, for eksempel.
>> Og ruterens jobb å liksom fungere som en trafikk politimann,
slik at alle som er koblet til at ruteren til å bruke samme IP
adresse for å komme seg ut.
Gir det mening?
Så alle i ditt hjem har en privat IP-adresse.
De kan ikke koble til internett, eller internett i stedet
kan ikke snakke til dem, gjennom at privat adresse.
De kan bare snakke til dem gjennom adressen i ruteren.
Og det er ruterens jobb å hente informasjon
at du sender ruteren og direkte til riktig sted
og for å få informasjon som kommer inn i ruteren for ruteren
å sende det til deg.
>> Så ruterne er virkelig enheter her-- spesielt en ruter
i hjemmet ditt, den mest vanlige form til bruk i tilfelle for de fleste people--
som har offentlig IP-adresse.
Det er den enheten som er koblet til internett.
Og du kobler til ruteren å ha informasjonsflyt
gjennom det på dine vegne.
>> Som jeg sa, et moderne hjem nettverk, router og switch og aksesspunkt
er alle slags buntet opp i en enkelt enhet.
Noen ganger kan en modem er buntet i der også.
Det er vanligvis bare kalt en ruter.
Men det er egentlig alle disse tingene sammen.
>> Storskala forretningsnettverk eller såkalte Wide Area Networks, WANs,
faktisk holde disse enhetene skille.
De har en bryter.
De har rutere.
De har flere tilgangspunkter.
>> For eksempel, på en universitetet du vil se ting
som ser ut som såkalte rutere montert er alle rundt campus.
De er alle tilgangspunkter som flyter inn rutere, svitsjer, et cetera,
å passere informasjon sammen.
Fordi disse nettverkene er så stor at ett enkelt tilgangspunkt
kan ikke dekke det store området.
>> Og så disse store nettverk, bedriftsnettverk, et cetera,
delt disse inn separat enheter, slik at nettverket og skalaen
og blir om nødvendig.
Så igjen, et sted mellom oss og internett, har vi et tilgangspunkt.
Og det er det vi kobler til.
Og gjennom det, vi kan komme til internett.
Som jeg sa på begynnelsen av denne videoen
Dette er ikke et kurs på nettverksbygging.
Så dette er ikke hele historien.
Og jeg har litt glattet over det.
Og kanskje jeg har forlatt deg enda litt forvirret
om hva noen av disse tingene er.
Men det er OK.
>> Vi trenger ikke hele historien.
Det er nok for oss å vite flytting frem bare utgangspunktet litt
om hvordan internett fungerer.
Så det vi vet er at vi har disse private nettverk på huset vårt.
>> Og vi kobler til en ruter.
Og at ruteren er koblet til internett for øvrig.
Men hva er internett på frifot?
Jeg fortsetter å si dette, men hva er det?
>> Vel, det er egentlig bare alle disse individuelle nettverk på huset mitt,
og på huset ditt, og på alle andre Huset, som er koblet sammen.
Det er en sammenvevd nettverk, en inter-nett.
Så i stedet for å tenke om internett
som denne gigantiske sky, dette eteriske ting som finnes der ute,
det er egentlig bare en tilkobling Blant alle disse nettverkene.
>> Så her vi går.
Vi har vår lokale nettverket.
Og vi er ikke den eneste personen sannsynligvis på vår lokale nettverk
prøver å bruke Internett.
Det er trolig flere av oss prøver å komme inn.
>> Og vi er ikke det eneste nettverket som eksisterer i verden, ikke sant?
Det finnes andre nettverk også at prøver å koble til internett.
Men internett er ikke, igjen, en separat enhet.
>> Det er bare et sett med regler som tillater disse nettverkene, disse små nettverk,
det blå, lilla, og den røde nettverk
hit, for å kommunisere med hverandre.
Så det er ingen ting de er alle å koble til.
De er alle bare koblet til hverandre, ikke sant?
>> Og så et sted på disse nettverk eksisterer tjenestene
at vi faktisk ønsker.
Så kanskje i det blå nettverk er der Google bor.
Og i den lilla nettverk Her Facebook bor.
Og i den røde nettverket, vel, kanskje det er der alle disse kattene er.
>> Og så hvis vi ønsker å få informasjon om katter,
vi bare krysser denne kjeden av nettverkene å få den informasjonen vi ønsker.
Og her, jeg har representert nettverket som alle
å være i stand til å snakke med hverandre.
Og vi kan bare snakke til nettverket.
Men nettverket kan ikke snakke tilbake til oss.
>> Men det er ikke sant heller, ikke sant?
Dette er alle en toveis gate.
Informasjon kan strømme igjennom nettverk og tilbake.
>> Hvordan det gjøre det?
Vel, internett virkelig et system av protokoller.
Og vi kommer til å begynne å snakke om hva
disse protokollene er i fremtidige videoer.
>> Men igjen, internett er ikke en egen greie.
Det er et sett med regler som definerer hvordan nettverk kommuniserer,
disse små nettverk, disse lokale nettverk som vi er vant til,
folk i huset vårt, folk på skolen vår, folk på jobben vår,
alle deler et nettverk.
Og hvordan disse nettverkene interconnect og snakke med hverandre,
det er faktisk hva Internett handler om.
Så la oss, i en fremtidig video, snakke om noen
av protokollene som utgjør Internett for å forhåpentligvis
gi deg litt mer av en godt avrundet forståelse.
Jeg er Doug Lloyd.
Dette er CS50.