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.