DOUG LLOYD: Hvis du overvåket vår internett primer video,
Jeg forlot litt av en cliffhanger ved å snakke om internett
og hvor det er et system av protokoller.
Vel, la oss snakke om det første av disse protokollene som
faktisk består av internett.
Og interessant nok, er det kalt Internet Protocol,
som vi vanligvis refererer til som IP.
>> Så internett, som jeg sa, er en sammenkoblede nettverk, en internett,
som egentlig bare er flere nettverk vevd sammen og bli enige om en eller annen måte
å kommunisere med hverandre.
Hva er dette noe jeg snakker om?
Vel, dette er Internet Protocol.
Dette bestemmer hvordan informasjonen er overføres fra punkt A til punkt B.
Og dette er liksom en tilstand av bli med i nettverket av internett
er enige om å følge dette protokoll når informasjonsbehov
å bli flyttet fra punkt A til punkt B.
>> Så helt på slutten av det Internett primer video,
Jeg viste dette bildet av hva internett var.
Og i liten skala, er denne faktisk trolig ganske nøyaktig.
Dette kan være hvor tre nettverk faktisk snakke til hverandre.
Men det er litt misvisende.
Og grunnen til at det er litt misvisende er because-- hvis jeg
bare nummerere nettverk for hets skyld her
og vi blir kvitt alt annet og bare fokusere på networks--
Det er litt misvisende fordi det innebærer at alle tre nettverket har
en forbindelse til en annen.
>> One er koblet til to.
To er forbundet med tre.
Og tre er koplet til en.
Og når jeg snakker om en sammenheng her, er jeg
snakker om en fysisk, kablet tilkobling.
Vi har trådløst.
Men det er virkelig upraktisk for data som skal overføres trådløst
over en stor skala.
Og så på et tidspunkt, vi virkelig stole på kablet technology-- telefonledninger,
fiberoptiske kabler, ulike teknologier som er fysisk koble
punkt A til punkt B.
>> Og i liten skala som dette-- dette kan være nøyaktig,
men som bildet får en litt større, la oss nå
forestille vi har seks forskjellige nettverk.
Hvis det er sant, nå har vi noe som dette for alle nettverk
å være koblet til hver andre nettverk.
Og hvis du ser, alle nettverk har fem piler koblet til den.
Så alt er koblet til alle andre nettverk.
>> Vi har bare seks nettverk her, og allerede ser på hvor mye ledningsnett
vi nødt til å ansette, ikke sant?
Og Internett består av mye mer enn seks nettverk.
Vi har ikke råd til å kable hver nettverk til hverandre nettverk,
spesielt med tanke på noen av disse nettverkene span havene, ikke sant?
Hvis vi prøver å koble seg til et nettverk i Asia og i Europa,
vi er nødt til å span et helt hav.
Vi kommer til å trenge å bruke ledninger på et tidspunkt,
men vi ønsker å minimere antall ledninger vi faktisk bruker.
Vi ønsker ikke å sende en million ledninger over havet,
fordi de koster millioner av dollar stykket å legge seg ned.
Og så raskt, ville vi ikke være i stand for å tilveiebringe internett lenger.
Så vi må ha en annen måte for alle nettverk
til å snakke med alle andre nettverk eller annet vi
har stykker av internett som er koblet
fra andre deler av internett.
Og det er ikke det vi ønsker.
Men vi ønsker ikke å ha dem alle kablet sammen.
>> Og det er her rutere komme tilbake i spill.
Vi kan bruke rutere på følgende måte.
Hva om i stedet for hver nettverk være fysisk
koblet til alle andre nettverk, vi hadde disse mellomledd stykker, der
nettverkene ble koblet til disse mellommenn, som
er koblet til et par nett.
Så i stedet for å ha en koble til to, tre, fire, fem, seks, kanskje en
kobler til en ruter, som kanskje forbinder
til ett eller to av disse nettverk, men også
kanskje kobles til andre rutere, som også
vil koble til de andre nettverkene.
>> Og ruterens jobb er-- den inneholder informasjon
kalt en rutingtabell som tilsier hvor gjøre
Jeg går hvis jeg ser en bestemt IP-adresse?
Hvis jeg ser en IP-adresse start med fire, jeg kommer til å gå denne veien.
Hvis jeg sett IP-adresse som starter med 12, kommer jeg til å gå den veien.
Vi trenger ikke å være tilkoblet fysisk til nettverk nummer fire
eller nettverksnummeret 12 i dette eksempel.
Vi vet bare generelt hvor vi ønsker å gå.
Og hvis du tenker på det, er denne typen av tilsvarende begrepet rekursjon
som vi snakket om når vi snakket om det
i C. jeg ikke kommer til å koble deg til nøyaktig hvor du vil gå.
Jeg bare kommer til å flytte deg ett skritt nærmere der du ønsker å gå.
Og jeg vil la noen andre håndtere løse resten av problemet.
Jeg vil bare løse dette lille stykke problemet og utsette resten av det
til noen andre.
Så ruteinformasjon er faktisk slags ligner rekursjon.
Hvis det er et konsept som du forstår vel, kanskje det analogi ville hjelpe.
>> Så la oss ta en titt på denne nettverks eksempel
igjen, og forutsetter at, igjen vi kommer til å bruke de samme seks
nettverk, en til seks.
Så la oss bare si at hver IP-adresse på nettverket man
starter med en prikk noe.
Og vi vil si at det er en annen ting som
omhandler hvordan alle systemer er koblet til nettverket en.
Vi bryr oss om å koble alle disse nettverkene sammen i en internett.
Så hver enhet som er koblet til nettverket man
har en IP-adresse som starter med en prikk og deretter tre andre tall.
>> Dette er en generalisering av hvordan ting faktisk fungerer.
Det er ganske mye mer presis enn dette.
Men dette bør gi deg en generell ide om hva Internett
Protokollen faktisk gjør.
Så dette var diagrammet vi hadde før.
Dette var det systemet som var ikke bærekraftig.
Selv seks, kan dette være OK.
Men hvis vi får 10 eller 20 eller 50, er vi kommer til å ligge en rekke ledninger.
Og 50 er fortsatt heller ikke selv toppen av isfjellet
med hensyn til antall nettverk vi har.
Så denne modellen er ikke bærekraftig.
Vi kan ikke holde med dette.
>> Så la oss i stedet vedta denne modellen hvor vi kvitte
av alle ledninger mellom nettverk og vi legger rutere.
Så disse gule boksene representerer rutere.
Og deres jobb er å flytte informasjon generelt
nærmere der det er ment å gå.
Og kanskje er det disse tilkoblingene at disse nettverkene har.
Og kanskje er det disse tabellene som er bygget inn i rutere.
>> Så hvis vi bare begynne med å se at nettverket en eksempelvis
utgangspunktet hva den sier er hvis Jeg noen gang ser en adresse som
ikke starter med en one-- det er det utropstegn ene eller det bang
der, ikke one-- jeg kommer å gi det bort til en ruter.
Og derfra, ruteren kan ta en beslutning.
Ruteren sier at hvis jeg ser en, jeg er kommer til å flytte til nettverket nummer én.
Det er den grønne pilen på vei til venstre ut av den venstre boksen.
>> Hvis jeg ser en two-- som er pilen slags overskrift
til høyre mot den lilla network--
hvis jeg ser en IP-adresse starter med en to,
Jeg kommer til å gå mot de to nettverk.
Hvis jeg ser et tre, fire, fem, eller en six-- det er som rød pil kommer ut
av øvre venstre router-- Jeg er ikke koblet til tre, fire, fem, seks eller.
Men jeg kjenner noen som er, eller som er litt nærmere der.
Så jeg skal bare si: hver gang jeg ser en IP-adresse
starter med tre, fire, fem, eller seks, jeg er bare
kommer til å sende det til at ruteren.
Så jeg skal flytte den litt nærmere hvor det er ment å gå og la
at ruteren håndtere problemet.
>> Og som du kan see-- hvis du ønsket å ta en pause her og trace--
du kan få til alle andre punkt i nettverket uansett hvor du er.
Alle seks nettverkene kan fortsatt kobles til alle andre nettverket
men de er ikke fysisk tilkoblet lenger.
De er nå disse mellomliggende trinnene.
Nå, selvfølgelig er det en avveining av fart, ikke sant?
Hvis man var direkte koblet til seks, ville vi ikke
må gå gjennom to rutere langs veien.
Så vi kan være i stand til å få tilkobling litt raskere.
Men kanskje det trade-off er verdt det, ikke sant?
Hvis det kommer til å bli så dyrt i form av faktiske kostnader, dollar
og cent, til fysisk ledning alle disse nettverkene sammen,
kanskje en liten bit av en nedgang i hastigheten er OK.
Vi tåler det.
>> Så igjen, i det eksempelet var vi bare snakker om ingen av nettverkene
kobles direkte til hverandre hele.
Det kunne ha been-- kanskje i det eksemplet
vi kunne ha gjort det slik at kanskje bygge nettverk én og to var
koblet direkte.
Og det ville være OK.
Noen nettverk er fysisk koblet til andre nettverk.
Men de er ikke alle forbundet med hverandre.
De stoler på routers-- i denne spesielle example--
å fordele kommunikasjon fra punkt A til punkt B.
På en liten scale-- som hva vi snakker om her--
denne konfigurasjonen kan faktisk være mer ineffektiv enn bare
har direkte forbindelser.
Men i stor skala, kan vi skalere systemet mye bedre.
Det er virkelig kommer til å redusere vår Kostnaden for nettverksinfrastruktur
å ha mellomledd rutere hvis jobb Det er å flytte trafikk fra senderen
til mottakeren, fra punkt A til punkt B, i motsetning til alle ledninger
i lag.
>> Så la oss ta en titt på et eksempel på informasjonen
reiser ved hjelp av denne Internet Protocol.
La oss si at jeg er fysisk ligger på IP 1.208.12.37
I så finnes et sted på ett nettverk.
Og jeg ønsker å sende en melding til deg.
Og du er på de fem nettverk på 5.188.109.14.
Din IP-adresse spesifikt ikke rolle, men i dette spesielle eksempelet
vi snakker om dette generalisering av hva Internett-protokollen er alt
cirka.
Du er på fem-nettverket, og jeg er på ett nettverk.
Som du kan se, er vi ikke forbundet med hverandre i det hele tatt.
>> Så jeg starter ut.
Og jeg vil sende deg en melding.
Og så noe jeg kommunisere som melding til ruteren.
Ruteren er den som faktisk har IP-adressen.
Og det er å se på hvor det er ment å gå.
Vi kommer til fem dot noe.
Så nå kommer jeg til å starte bruker my-- eller ruteren,
heller, kommer til å begynne å bruke sin fresebord å passere informasjon sammen.
Det ser at fem er ikke bare én, så det sier jeg kommer til å gi det til denne fyren.
Så denne fyren har å ta en beslutning.
Hvor skal jeg gå?
Vel, det er ikke en, så jeg er ikke kommer til å bevege seg til ett nettverk.
Og det er ikke en to.
Jeg kommer ikke til å flytte til de to nettverk.
Det starter med en fem.
Jeg er ikke koblet til fem, sier denne ruteren.
Og så jeg bare kommer til å passere det to-- Jeg kommer til å gå ned denne veien.
Det er der treere og firere og femmere og seksere gå.
Og jeg vil la den fyren avtale med det.
Jeg skal få det litt nærmere til der det er ment å gå.
Jeg vet det er ment å gå i den generelle retningen.
Men kanskje at fyren kan takle det.
OK.
Slik at fyren ser ut.
Han sier, OK, denne IP adressen starter med en fem.
Vel, jeg er koblet til tre og til seks, så jeg kan ikke få beskjed direkte
hvor det er behov for å gå.
Men som andre ruter der borte, jeg vet ikke om jeg sender den firere og femmere,
det kan håndtere de.
>> Så det går den langs nedover stien.
Og så denne ruteren sier, vel, jeg er koblet til nettverk fire og fem.
Så, ja, jeg kan hjelpe deg.
Jeg tar din IP-adresse som starter med en fem.
Jeg skal gi det til de fem nettverk.
De fem nettverket vil gjøre noe arbeid på sin ende og gi beskjed til deg.
Og nå har vi lykkes overført en melding fra meg
til deg ved hjelp av Internet Protocol.
>> Igjen, veldig generalisert til formål illustrasjon på hva som skjer.
Men det er ganske mye hvordan Internet Protocol fungerer.
Ruterne vite generelt hvor du skal sende det
og vil sende det ett skritt langs måten å få det tettere og tettere
til sitt bestemmelsessted inntil ett ruteren er fysisk tilkoblet
til nettverket eller adresse eller hva
i spørsmålet og gir det der.
>> Nå, generelt, bortsett fra virkelig, veldig små, små meldinger,
det er ikke til å sende det som en stor del av data.
Hvis jeg sender deg en email-- en veldig lang e-post,
say-- det er ikke til å ta det hele e-posten,
pakke det opp i en ball eller en pakke eller hva,
og sende det hele ting ned i nettverket.
>> Først av alt, å sende informasjonen langs nettverket er dyrt.
Det legger opp.
Og jo større del, jo mer kostbar
det er å flytte hvert steg på veien.
Og hvis det er en eller annen måte en nedgang og deretter
det er denne giant-- liksom som Hvis du kjører på motorveien
og det er denne gigantisk lastebil slag av stenger veien
og du kan ikke komme rundt det på hver kjørefelt fordi det er slags spre seg.
Det bremser alle andre ned bak det.
Men små biler, hvis de var alle små biler,
de kan være i stand til å bevege seg rundt, hvis det analogi slags hjelper
en liten bit.
>> Slik at en stor blokk i systemet kan veldig treg alle andre ned.
Og så hva IP kommer til å gjøre er delt disse data i pakker.
Det kommer til å ta dette store epost eller FTP overføring eller en filoverføring,
eller kanskje jeg gjør en be til en nettleser
fordi jeg vil ha et bilde av katten.
Og det kommer til å ta det forespørsel eller som e-post eller som fil
og bryte den opp i mange biter og sende alle bitene hver for seg.
Så faktisk, jeg fyller motorveien med mange små biler, som kan alt
flytte i stedet for en stor lastebil som kanskje, hvis noe går galt,
strupe trafikken for alle andre.
>> En annen bivirkning på dette er hvis det er
en slags katastrofale svikt og noe går galt
og pakken blir droppet.
Noe sviktet, og Meldingen kan ikke formidles.
Ruteren kanskje hadde for mye ting går i.
Det kunne ikke sjonglere alt.
Og slik er det bare bokstavelig droppet det.
Det er liksom analogien, ikke sant?
>> Det fikk en masse ting skjer.
Det passerer informasjon fra punkt A til punkt
B. Vi er ikke de eneste to folk på internett,
så det har til å behandle mye trafikk.
Og hvis den ikke har nok hender og det kan ikke finne ut hva det gjør,
det kan bare slippe noe.
Så det kan gjøre noe annet.
Det ble for mye som skjer.
>> Hvis vi hadde vårt budskap som en stor blokkere og det var det som fikk droppet,
nå må vi sende meldingen på nytt.
Og vi er nå muligens forårsaker trafikk igjen.
Og vi kjører risikoen for at stor blokk blir droppet igjen.
Men hvis dataene er blitt brutt opp i pakker og vi slippe en av dem,
det er mye billigere å sende det pakke en gang i motsetning
til hele greia en gang til.
Så IP er ansvarlig for å få informasjon fra punkt A til punkt B
og også bryte informasjon i små stykker
slik at nettverket ikke er altfor beskattes.
>> IP er også kjent som en forbindelsesløs protokoll.
Det er ikke nødvendigvis en definert bane fra avsender til mottaker eller vice
versa.
Nå, i dette eksempelet har vi snakket om det faktisk er bare én måte
for å komme til hvert nettverk.
Så i denne spesielle illustrasjon, det faktisk
er en definert sti fra punkt A til punkt B.
Men vi kan endre det ved å bare gjøre én endring til de to rutere
til venstre ved å legge dette tilstanden til de ruter tabeller.
>> Nå merker at fra øverst til venstre router,
det er faktisk to måter å håndtere med fire eller fem IP-adresse.
Det kan gå ned til nedre venstre router, eller kan gå til høyre,
til høyre ruter.
Den har flere alternativer.
Og dette er faktisk slag av en god ting
fordi det gjør vår nettverks mer responsive.
>> Hvis for example-- det er liksom som en GPS.
Hvis du noen gang har vært kjøring på motorvei
og plutselig GPS advarer du at trafikken er i forkant,
du ønsker å unngå det hvis du kan.
Og så du kan rekalkulere ruten din.
Og en router nettverk, i tillegg til å ha informasjonen
om hvor pakkene skal gå eller hvor data skal gå,
det er også liksom denne generelle puls om tilstanden i sitt lokale nettverk.
Hva kommer til å skje hvis jeg sender det ned denne banen kontra denne veien?
>> Og så i lys av tung trafikk situasjoner på nettverket, kanskje
ting vil bli rutet en mer ineffektiv måte, eller en mer generelt
ineffektiv måte, fordi hvis vi går på vanlig måte,
det kommer til å bli mye trafikk.
Motorveien er helt fast.
Så kanskje det vi skal gjøre er stedet ta sideveier, som
vanligvis ville ta en mye mer tid, men ingen er
virkelig bruker disse sideveier.
Og så vi kan rute våre pakker den måten.
>> Så det er ikke hver pakke av en stor del av data
kan ta den samme stien fra begynnelsen til slutten.
Og vårt nettverk blir mye mer responsive
hvis våre ruter tabeller tillater det å være flere alternativer for hvor du skal gå.
Vi er ikke avhengig av at en lastebil flytte ut av veien.
Vi kan gå av motorveien ved neste avkjøring og ta en annen vei.
Og så Internet Protocol sort av gjør en liten bit av det, også.
>> Så det er det grunnleggende Internet Protocol.
Men det er ett mer sak å forholde seg til, som
er hva som skjer hvis vi slippe en pakke?
Hvordan vet vi at vi kommer å sende som pakke igjen?
Høyre?
Vel, Internet Protocol garanterer ikke levering.
Vi kommer til å være avhengig på en annen protokoll
å håndtere det som kalles Transmission Control Protocol, TCP.
Og vi kommer til å snakke om Transmission Control
Protokollen i neste video.
Jeg er Doug Lloyd.
Dette er CS50.