DOUG LLOYD: Se avete visto il nostro video internet fondo, Ho lasciato un po 'di un cliffhanger parlando internet e come è un sistema di protocolli. Bene, parliamo del prima di tali protocolli in realtà comprende Internet. E abbastanza interessante, è chiamato il protocollo Internet, che di solito chiamiamo IP. Così in internet, come ho detto, è un rete interconnessa, un internet, che è in realtà solo più reti tessute insieme e d'accordo in qualche modo a comunicare tra loro. Che cosa è questo in qualche modo sto parlando? Ebbene, questo è il protocollo Internet. Questo impone come informazione è trasmessa dal punto A al punto B. E questa è una sorta di condizione adesione alla rete di internet è accettando di seguire questa protocollo quando esigenze di informazione essere spostato dal punto A al punto B. Così, alla fine di tale Primer internet video, Ho mostrato questa immagine di ciò che Internet è stato. E su piccola scala, questo è in realtà probabilmente molto accurate. Questo potrebbe essere come tre reti effettivamente comunicare tra loro. Ma è un po 'fuorviante. E la ragione è un po ' ingannevole è perchè-- se io solo numerare le reti per motivi di convenienza qui e ci liberiamo di tutto il resto e concentrarsi solo sul networks-- è un po 'fuorviante, perché implica che tutti e tre hanno rete una connessione tra loro. Uno è collegato a due. Due è collegato a tre. E tre è collegato a uno. E quando parlo di una connessione qui, sono parlando di un fisico, connessione via cavo. Noi abbiamo wireless. Ma è davvero poco pratico per dati da trasmettere in modalità wireless su larga scala. E così a un certo punto, abbiamo davvero affidamento su cavi telefonici cablati tecnologici, quali, cavi in ​​fibra ottica, varie tecnologie che sono fisicamente collegamento punto A al punto B. E su piccola scala come questo-- questo potrebbe essere accurata, ma come l'immagine diventa un po 'più grande, andiamo ora Immaginiamo di avere sei reti diverse. Se questo è vero, ora abbiamo qualcosa di simile per ogni rete essere connesso a qualsiasi altra rete. E se si guarda, ogni rete ha cinque frecce ad esso collegati. Quindi tutto è collegato ad ogni altra rete. Abbiamo solo sei reti qui, e già guardare a quanto cablaggio dobbiamo impiegare, giusto? E internet è costituito da molto di più di sei reti. Non possiamo permetterci di collegare ogni rete ad ogni altra rete, soprattutto considerando alcune delle queste reti attraversano gli oceani, giusto? Se stiamo cercando di connettersi a una rete in Asia o in Europa, stiamo andando ad avere per estendersi un intero oceano. Stiamo andando ad avere bisogno di utilizzare cavi a un certo punto, ma vogliamo minimizzare il numero di fili che usiamo. Noi non vogliamo mandare un milioni di cavi attraverso l'oceano, perché costano milioni di dollari a testa per sdraiarsi. E così rapidamente, noi non saremmo in grado per permettersi più internet. Quindi dobbiamo avere un altro modo per ogni rete per parlare con ogni altro rete oppure ci avere i pezzi di internet che sono scollegati da altri pezzi di Internet. E non è quello che vogliamo. Ma noi non vogliamo avere tutti collegati insieme. Ed è qui che i router tornare in gioco. Possiamo utilizzare router nel seguente modo. E se invece che ogni rete essendo fisicamente collegato ad ogni altra rete, abbiamo avuto questi pezzi intermedi, dove le reti erano collegati a questi intermediari, che sono collegati ad alcune reti. Così, invece di avere una collegano a due, tre, quattro, cinque, sei, forse uno si connette a un router, che forse collega ad uno o due di questi reti, ma anche forse si collega ad altri router, che anche si collegherà a queste altre reti. E il lavoro del router è-- contiene informazioni denominata tabella di routing che detta dove fare Vado se vedo un particolare indirizzo IP? Se vedo un indirizzo IP di partenza con quattro, ho intenzione di andare in questo modo. Se ho visto indirizzo IP iniziale con 12, ho intenzione di andare in quel modo. Non abbiamo bisogno di essere collegato fisicamente numero di rete quattro o numero di rete 12 in questo esempio. Sappiamo solo genere dove vogliamo andare. E se ci pensate, questo è una specie di simile al concetto di ricorsione di cui abbiamo parlato quando stavamo parlando di essa in C. Io non ho intenzione di collegarsi esattamente dove si vuole andare. Sto solo andando a spostare un passo più vicino a dove si vuole andare. E io farò qualcun altro affare con risolvere il resto del problema. Mi limiterò a risolvere questo piccolo pezzo di il problema e rinviare il resto a qualcun altro. Così le informazioni di routing è in realtà tipo di simile a ricorsione. Se questo è un concetto che si capisce bene, forse questa analogia avrebbe aiutato. Quindi, diamo uno sguardo a questo esempio di rete nuovo e supponiamo che, di nuovo, stiamo andando a utilizzare quegli stessi sei reti, da uno a sei. Quindi diciamo che ogni Indirizzo IP su una rete inizia con un punto qualcosa. E noi diremo che non c'è qualche altra cosa che si occupa di come tutti i sistemi sono collegati alla rete uno. Abbiamo appena preoccupiamo il collegamento di tutti tali reti insieme in un internet. Così ogni dispositivo che è collegato alla rete uno ha un indirizzo IP che inizia con un punto e poi tre altri numeri. Questa è una generalizzazione il modo in cui le cose realmente funzionano. E 'un po' più preciso di questo. Ma questo dovrebbe darvi una un'idea generale di ciò che Internet Protocollo sta effettivamente facendo. Quindi questo è stato lo schema che avevamo prima. Questo era il sistema che non era sostenibile. Anche sei, questo potrebbe essere OK. Ma se si arriva a 10 o 20 o 50, siamo andando a mentire un sacco di fili. E 50 non è ancora anche anche la punta di un iceberg quanto al numero di reti abbiamo. Quindi questo modello è insostenibile. Non possiamo restare con questo. Quindi cerchiamo di adottare, invece questo modello in cui ci liberiamo di tutti i fili tra la reti e si aggiungono i router. Così queste caselle gialle rappresentano router. E il loro compito è quello di spostare Informazioni generale più vicino a dove si suppone di andare. E forse questi sono i collegamenti che queste reti hanno. E forse queste sono le tabelle che sono integrati nel router. Quindi, se abbiamo appena cominciamo cercando in rete uno, per esempio, fondamentalmente ciò che dice è se Ho mai visto un indirizzo che non inizia con un uno-tra-- è quello che il punto esclamativo uno o il colpaccio uno lì, non ho intenzione tra-- di farlo passare per un router. E da lì, il router può prendere una decisione. Il router dice che se vedo uno, io sono andando a passare a un numero di rete. Questa è la freccia verde in direzione il fuori quella scatola in alto a sinistra a sinistra. Se vedo un two-- che è la freccia tipo di voce in alto a destra in direzione il network-- viola se vedo un indirizzo IP iniziando con due, Ho intenzione di andare verso i due network. Se vedo un tre, quattro, cinque, o six-- che è quella freccia rossa che esce d'alto a sinistra router-- io non sono collegato a tre, quattro, cinque, o sei. Ma so che qualcuno che è o che è un po 'più vicino a lì. Così sto solo andando a dire, Ogni volta che vedo un indirizzo IP iniziando con tre, quattro, cinque, o sei, io sono solo intenzione di inviare a quel router. Quindi mi sposterò un po 'più vicino dove si suppone di andare e lasciare che si occupano router con il problema. E come si può see-- se ha voluto mettere in pausa qui e trace-- si può arrivare a ogni altro punto in la rete da ovunque ci si trovi. Tutte le sei reti è ancora possibile collegarsi a qualsiasi altra rete ma non sono fisicamente collegato più. Sono ora questi passaggi intermedi. Ora, naturalmente c'è un compromesso di velocità, giusto? Se uno era direttamente collegato a sei, non ci sarebbe devono passare attraverso due router lungo la strada. Così potremmo essere in grado di ottenere il collegamento un po 'più veloce. Ma forse trade-off è valsa la pena, giusto? Se sarà così costoso in termini di costo effettivo, dollari e centesimi, filo fisicamente tutte queste reti insieme, forse un po 'di un rallentamento della velocità è OK. Possiamo tollerare che. Così ancora una volta, in questo esempio, siamo stati solo parlando, nessuna delle reti collegare direttamente tra loro tutti. Ci potrebbero avere been-- forse in quell'esempio avremmo fatto in modo che forse rete uno e due erano direttamente connesse. E questo sarebbe OK. Alcune reti sono fisicamente collegata ad altre reti. Ma non sono tutto collegati tra loro. Essi si basano sulla routers-- in questo particolare example-- distribuire comunicazione dal punto A al punto B. Su un ristretto, come quello che stiamo parlando di qui-- questa configurazione in realtà potrebbe essere più inefficiente di una semplice con collegamenti diretti. Ma su larga scala, possiamo scalare il sistema molto meglio. E 'davvero andando a ridurre la nostra costo delle infrastrutture di rete avere i router intermedi il cui compito è di spostare il traffico dal mittente al ricevitore, dal punto A al punto B, al contrario di cablaggio tutti insieme. Quindi, diamo uno sguardo a un esempio di informazioni viaggia utilizzando questo protocollo Internet. Diciamo che io sono fisicamente situato a IP 1.208.12.37 così io esisto da qualche parte, da una rete. E voglio inviare un messaggio a voi. E tu sei in cinque rete a 5.188.109.14. Il tuo indirizzo IP non fa specificamente importa, ma in questo particolare esempio stiamo parlando di questa generalizzazione di ciò che il protocollo Internet è tutto di. Siete sulla rete cinque, e io sono, da una rete. Come potete vedere, non siamo collegati tra loro a tutti. Così mi metto fuori. E voglio inviare un messaggio. E così in qualche modo comunico quel messaggio al router. Il router è quella che in realtà ha l'indirizzo IP. Ed è guardando dove si suppone di andare. Stiamo andando a cinque punti qualcosa. Così ora ho intenzione di iniziare a utilizzando my-- o il router, piuttosto, sta per iniziare a utilizzare la sua tavolo router per passare informazioni lungo. Si vede che cinque non è uno, in modo da dice ho intenzione di passare a questo ragazzo. Allora questo ragazzo deve prendere una decisione. Dove sto andando andare? Beh, non è un uno, quindi non sono andando a spostare a quella rete. E non è un due. Non ho intenzione di muoversi ai due rete. Si inizia con un cinque. Io non sono connesso a cinque, questo router dice. E così io sto solo andando a farlo passare a-- Ho intenzione di andare su questa strada. Questo è dove tre e quattro e cinque e sixes andare. E io lascerò che si occupano ragazzo con esso. Prendo un po 'più vicino al punto in cui si suppone di andare. So che dovrebbe andare in quella direzione. Ma forse quel ragazzo può fare con esso. OK. Così quel ragazzo sembra. Egli dice, OK, questo IP indirizzo inizia con un cinque. Beh, io sono connesso a tre e per sei, quindi non posso ottenere direttamente il messaggio dove deve andare. Ma che altro router laggiù, io sapere se io mando quattro e cinque, è in grado di gestire quelli. Così passa lungo il sentiero. E poi questo router dice, bene, sono collegato a reti quattro e cinque. Quindi, sì, io posso aiutarti. Prenderò il vostro indirizzo IP che inizia con un cinque. Lo darò alla rete cinque. La rete cinque farà qualche lavoro su la sua fine e dare il messaggio a voi. E ora abbiamo con successo trasmesso un messaggio da parte mia a voi utilizzando il protocollo Internet. Anche in questo caso, molto generalizzato per scopi di illustrazione di ciò che sta accadendo. Ma questo è più o meno come il Protocollo Internet funziona. I router sanno generalmente dove inviarlo e invierà un passo lungo il modo, ricevendo sempre più vicino alla destinazione finché un router è collegato fisicamente alla rete o il indirizzo o qualsiasi altra cosa in questione e dà lì. Ora, in generale, salvo per davvero, veramente piccoli, piccoli messaggi, non sta andando per inviarlo come un unico grande blocco di dati. Se io ti mando un email-- una lunga e-mail, say-- non sta andando a prendere quella intera e-mail, impacchettarlo in una palla o un pacchetto o qualunque, e inviare tale intera cosa lungo la rete. Prima di tutto, l'invio di informazioni lungo la rete è costoso. Non tornano. Maggiore il chunk, il più costoso è di spostare ogni passo del cammino. E se c'è qualche modo un rallentamento e poi c'è questa giant-- un po 'come se si sta guidando in autostrada e c'è questo gigante del camion tipo di bloccando la strada e non si può andare in giro su uno corsia perché è una specie di sparsi. Rallenta tutti gli altri verso il basso dietro. Ma le piccole macchine, se erano tutte piccole macchine, potrebbero essere in grado di muoversi, se questa analogia tipo di aiuti un po. Così un grande blocco nel sistema è in grado molto lento tutti gli altri verso il basso. E così quello che IP sta per fare è diviso questi dati in pacchetti. Sta andando a prendere questa grande e-mail o il trasferimento FTP o un trasferimento di file, o forse sto facendo un chiedere a un browser web perché voglio una foto di gatto. E sta andando a prendere quella richiesta o che la posta elettronica o quel file e suddividerlo in molti pezzi e inviare tutti i pezzi separatamente. Quindi, in realtà, sto riempiendo l'autostrada con un sacco di auto piccole, che possono tutti spostare invece di un grosso camion che potrebbe, se qualcosa va storto, strangolare il traffico per tutti gli altri. Un altro effetto collaterale di questo è che se c'è una sorta di catastrofe fallimento e qualcosa va storto e il pacchetto viene scartato. Qualcosa è fallito e la messaggio non può essere comunicata. Il router forse aveva troppa roba in corso in. Non poteva destreggiarsi tutto. E così è solo letteralmente cadere. Questa è una specie di analogia, giusto? Ha un sacco di cose in corso. E 'il passaggio di informazioni dal punto A al punto B. Non siamo gli unici due persone su internet, quindi deve elaborare un sacco di traffico. E se non ha abbastanza mani, non riesco a capire quello che sta facendo, potrebbe semplicemente far cadere qualcosa. Così può fare qualcosa di diverso. E 'ottenuto troppo in corso. Se avessimo il nostro messaggio come uno enorme blocco e che era quello che siamo lasciati, ora dobbiamo inviare nuovamente il messaggio. E siamo ora forse causando di nuovo traffico. E corriamo il rischio di tale blocco enorme che è caduto di nuovo. Ma se i dati di state suddivise in pacchetti e che scartiamo uno di quelli, è molto meno costoso per inviare che pacchetto una volta in contrapposizione per l'intera cosa ancora una volta. Così IP è responsabile per ottenere informazioni dal punto A al punto B e anche rompere la informazioni in piccoli pezzi in modo che la rete non è eccessivamente tassato. IP è noto anche come protocollo senza connessione. Non è necessariamente un percorso definito dal mittente al destinatario o vice versa. Ora, in questo esempio abbiamo parlato su, c'è in realtà un solo modo per arrivare a ogni rete. Quindi, in questa particolare illustrazione, c'è in realtà è un percorso definito da punto A al punto B. Ma possiamo cambiare la situazione, solo facendo una modifica alle due router sulla aggiungendo questo a sinistra condizioni alle tabelle router. Ora notate che dal il router in alto a sinistra, ci sono in realtà due modi di affrontare con quattro o cinque un indirizzo IP. Si può andare verso il basso a sinistra router, o può andare a destra, al router destra. Ha diverse opzioni. E questo è in realtà tipo di una cosa buona perché rende il nostro rete più reattivo. Se per example-- è come una sorta di GPS. Se siete mai stati guida in autostrada e improvvisamente il vostro GPS avverte che il traffico è in testa, si vuole evitare se potete. E così si può ricalcolare il percorso. E un router di rete, in Oltre ad avere informazioni su cui i pacchetti dovrebbero andare o dove i dati devono andare, c'è anche una sorta di questo impulso generale sullo stato della rete locale. Che cosa succederà se io mando è su questa strada contro questo percorso? E così alla luce del traffico pesante situazioni sulla rete, forse Le cose andranno indirizzati più modo inefficiente o, più in generale modo inefficiente, perché se andiamo la strada normale, ci sara 'un sacco di traffico. L'autostrada è completamente bloccato. Quindi forse quello che faremo è invece prendere strade laterali, che normalmente avrebbe preso un molto più tempo, ma nessuno di davvero utilizzando quelle strade laterali. E così possiamo percorso i nostri pacchetti che modo. Quindi non tutti i pacchetti di una grossa fetta di dati potrebbe prendere lo stesso percorso da dall'inizio alla fine. E la nostra rete diventa molto più reattivo se i nostri tavoli router permettono di lì per essere più opzioni per dove andare. Non siamo a seconda che uno camion in movimento fuori strada. Siamo in grado di uscire dall'autostrada al prossima uscita e prendere una strada diversa. E così il tipo Internet Protocol di fa un po 'di quello, anche. Ecco, questo è le basi di il protocollo Internet. Ma c'è un altro problema da affrontare, che è quello che succede se facciamo cadere un pacchetto? Come facciamo a sapere che stiamo andando a inviare di nuovo quel pacchetto? Destra? Beh, Internet Protocol non garantisce la consegna. Stiamo per essere in funzione su un altro protocollo far fronte a tale chiamata Transmission Control Protocol, il protocollo TCP. E stiamo andando a parlare su Control Transmission Protocollo nel prossimo video. Sono Doug Lloyd. Questo è CS50.