1 00:00:00,000 --> 00:00:03,395 >> [RIPRODUZIONE DI BRANI MUSICALI] 2 00:00:03,395 --> 00:00:13,100 3 00:00:13,100 --> 00:00:15,570 >> DAVID J. MALAN: Così ho solo voluto placare a. 4 00:00:15,570 --> 00:00:18,260 Mi associo esattamente quello SCAZ detto di memoria istituzionale. 5 00:00:18,260 --> 00:00:20,350 CS50 è stato intorno per circa 20 anni ad Harvard. 6 00:00:20,350 --> 00:00:22,280 E la realtà è, da gli anziani in giù, 7 00:00:22,280 --> 00:00:25,045 vi è ogni anno rassicurazione che le matricole, gli studenti del secondo anno, 8 00:00:25,045 --> 00:00:26,870 e juniores e anche gli anziani di prendere 9 00:00:26,870 --> 00:00:30,360 CS50, che si finisce per fare bene. 10 00:00:30,360 --> 00:00:32,680 >> La realtà è, studenti non mancano CS50. 11 00:00:32,680 --> 00:00:35,740 Infatti, nei rari casi dove abbiamo avuto Es o Fs, 12 00:00:35,740 --> 00:00:37,990 è stato veramente a causa di circostanze estenuanti, 13 00:00:37,990 --> 00:00:39,840 che si tratti di medici o personale. 14 00:00:39,840 --> 00:00:41,830 Ds sono incredibilmente raro pure. 15 00:00:41,830 --> 00:00:45,270 E posso dire comodamente, anche se abbiamo in genere non divulgare statistiche, 16 00:00:45,270 --> 00:00:48,450 ma dato che non c'è memoria istituzionale qui di sorta, 17 00:00:48,450 --> 00:00:51,810 la maggioranza degli studenti in CS50 non finire per ottenere A gradi gamma. 18 00:00:51,810 --> 00:00:54,720 Un pezzo significativo finire finire in serie B anche. 19 00:00:54,720 --> 00:00:57,490 >> Quindi, anche se si potrebbe essere pari nei vostri gruppi di tre mente 20 00:00:57,490 --> 00:01:00,690 con 60% e quindi Ds, o Cs, o simili, 21 00:01:00,690 --> 00:01:02,530 in realtà non è allineata con la realtà. 22 00:01:02,530 --> 00:01:05,238 Infatti, intendiamo esattamente quello che abbiamo dire all'inizio del termine 23 00:01:05,238 --> 00:01:08,380 che tanti studenti in CS50, sia a Cambridge e qui a New Haven, 24 00:01:08,380 --> 00:01:10,220 non hanno mai seguito un corso CS prima. 25 00:01:10,220 --> 00:01:13,090 E che in effetti conta alla fine è dove si finisce in settimana 12 26 00:01:13,090 --> 00:01:15,882 rispetto a se stessi in settimana pari a zero. 27 00:01:15,882 --> 00:01:17,590 Ora abbiamo più tracce nel corso 28 00:01:17,590 --> 00:01:20,548 come si know-- meno comodo, più confortevole, una via di mezzo. 29 00:01:20,548 --> 00:01:23,790 E infatti, quando si arriva statistiche sui quiz di questa settimana, 30 00:01:23,790 --> 00:01:27,460 non scoraggiatevi se, soprattutto se si sente che sei intorno alla media 31 00:01:27,460 --> 00:01:30,780 o sotto la media o la mediana, soprattutto dal momento che non necessariamente 32 00:01:30,780 --> 00:01:33,560 prendere tutti quei dati demografici conto di metà semestre 33 00:01:33,560 --> 00:01:35,000 con le statistiche di classificazione. 34 00:01:35,000 --> 00:01:37,250 >> In altre parole, sappiamo statisticamente ogni anno 35 00:01:37,250 --> 00:01:39,570 che gli studenti che sono meno confortevoli, fare un po 'peggio sul quiz. 36 00:01:39,570 --> 00:01:42,050 E gli studenti che sono più a suo agio fare un po 'meglio sul quiz. 37 00:01:42,050 --> 00:01:45,430 Ma per questa promessa nel programma e anche nella prima settimana di lezioni, 38 00:01:45,430 --> 00:01:46,880 prendiamo tutto questo in considerazione. 39 00:01:46,880 --> 00:01:48,900 >> Infatti, a fine anni, quello che si finisce per fare 40 00:01:48,900 --> 00:01:52,154 è normalizzare tutti gli spartiti di fronte sezioni, sia in Cambridge 41 00:01:52,154 --> 00:01:54,570 e ora qui a New Haven, il che significa tenendo conto 42 00:01:54,570 --> 00:01:57,310 gli stili più disparati, il disparate durezza, il diverso tipo 43 00:01:57,310 --> 00:02:00,722 di personaggi che l'individuo TA hanno qui a Cambridge e 44 00:02:00,722 --> 00:02:02,930 in modo che non sei in un svantaggio anche se solo 45 00:02:02,930 --> 00:02:06,120 capita di avere avuto un TF o un TA che è stato un po 'più difficile su di voi 46 00:02:06,120 --> 00:02:07,170 nella tua mente. 47 00:02:07,170 --> 00:02:10,139 >> Due, prendiamo in considerazione il comfort livello e sfondo reale, o la mancanza 48 00:02:10,139 --> 00:02:13,310 dello stesso, durante l'assunzione di punteggi quiz in considerazione. 49 00:02:13,310 --> 00:02:14,830 Così quei due sono presi in. 50 00:02:14,830 --> 00:02:17,142 E alla fine della giornata, perché è sempre il caso 51 00:02:17,142 --> 00:02:19,100 che uno studente ha finito per in una sezione meno comodo 52 00:02:19,100 --> 00:02:24,250 quando lui o lei in realtà apparteneva in un in-tra o viceversa, 53 00:02:24,250 --> 00:02:26,230 tutto è così incredibilmente individualizzato. 54 00:02:26,230 --> 00:02:29,560 In effetti, si otterrà infastidito noi Alla fine del termine, quando siamo in ritardo 55 00:02:29,560 --> 00:02:32,630 presentando i tuoi voti perché con SCAZ, e Jason, e Andy, e io, 56 00:02:32,630 --> 00:02:35,430 e la squadra avrà fatto a Cambridge è letteralmente 57 00:02:35,430 --> 00:02:38,480 avere centinaia di e-mail indietro e avanti con tutte centinaio di corsi 58 00:02:38,480 --> 00:02:41,279 TA, qui e in Cambridge, chiedendo loro cosa 59 00:02:41,279 --> 00:02:44,070 pensano di tutti i loro studenti sulla base di un progetto di voti. 60 00:02:44,070 --> 00:02:46,230 E tutto quello che c'è dopo è incredibilmente individualizzato. 61 00:02:46,230 --> 00:02:49,230 Quindi per quanto ci conosciamo te in orario di ufficio, sezioni e di più, 62 00:02:49,230 --> 00:02:51,350 Anche tutto questo è preso in considerazione. 63 00:02:51,350 --> 00:02:55,210 >> Quindi, anche se tendiamo ad usare questo cinque scala punto, per favore, staccarsi 64 00:02:55,210 --> 00:02:57,492 dall'assunto che un tre è davvero un 60%. 65 00:02:57,492 --> 00:02:58,450 E 'pensato per essere buono. 66 00:02:58,450 --> 00:03:01,360 E gli assistenti di insegnamento hanno un costo di partenza termine 67 00:03:01,360 --> 00:03:04,050 per cercare di mantenere i punteggi nei gruppi di due, o tre, 68 00:03:04,050 --> 00:03:06,590 e quattro zampe vanno in modo da in realtà hanno spazio per crescere. 69 00:03:06,590 --> 00:03:08,610 E in realtà abbiamo un metro con il quale 70 00:03:08,610 --> 00:03:11,086 siamo in grado di darvi utili un feedback su come si sta facendo 71 00:03:11,086 --> 00:03:12,210 e come si sta procedendo. 72 00:03:12,210 --> 00:03:15,130 Quindi, per favore prendere quella a cuore. 73 00:03:15,130 --> 00:03:20,565 >> Ci sono domande posso aiutare Indirizzo o preoccupazioni che possono aiutare placare? 74 00:03:20,565 --> 00:03:23,800 O promesse Posso provare a mantenere? 75 00:03:23,800 --> 00:03:24,690 No? 76 00:03:24,690 --> 00:03:25,330 OK. 77 00:03:25,330 --> 00:03:26,010 >> Tutto ok. 78 00:03:26,010 --> 00:03:28,970 Quindi, con quello detto, questo è CS50. 79 00:03:28,970 --> 00:03:31,670 Questo è l'inizio di settimana sei qui a New Haven. 80 00:03:31,670 --> 00:03:33,820 Cominciamo con una breve oscuramento delle luci 81 00:03:33,820 --> 00:03:37,439 a preparare il terreno per il contenuto di oggi. 82 00:03:37,439 --> 00:03:38,105 [RIPRODUZIONE VIDEO] 83 00:03:38,105 --> 00:03:44,045 [RIPRODUZIONE DI BRANI MUSICALI] 84 00:03:44,045 --> 00:03:46,600 -Ha Venuto con un messaggio. 85 00:03:46,600 --> 00:03:50,300 86 00:03:50,300 --> 00:03:52,900 Con un protocollo tutto suo. 87 00:03:52,900 --> 00:04:06,417 88 00:04:06,417 --> 00:04:13,090 Egli è venuto per un mondo di firewall freschi, router indifferente, e pericoli ben peggiori 89 00:04:13,090 --> 00:04:16,079 che la morte. 90 00:04:16,079 --> 00:04:21,079 E 'veloce, è forte, è il protocollo TCP / IP. 91 00:04:21,079 --> 00:04:23,120 E ha il vostro indirizzo. 92 00:04:23,120 --> 00:04:25,820 93 00:04:25,820 --> 00:04:29,268 Guerrieri della rete. 94 00:04:29,268 --> 00:04:29,917 >> [FINE RIPRODUZIONE] 95 00:04:29,917 --> 00:04:31,000 DAVID J. MALAN: Va bene. 96 00:04:31,000 --> 00:04:32,030 Questo è CS50. 97 00:04:32,030 --> 00:04:33,820 Questo è l'inizio della sesta settimana. 98 00:04:33,820 --> 00:04:37,270 E questo è l'inizio del nostro sguardo alla programmazione internet e web. 99 00:04:37,270 --> 00:04:41,220 E, cosa forse più eccitante, oggi segna il passaggio per noi 100 00:04:41,220 --> 00:04:43,780 dalla nostra linea di comando mondo di C al web 101 00:04:43,780 --> 00:04:47,020 basato mondo di PHP e HTML, e CSS, e SQL, e JavaScript, 102 00:04:47,020 --> 00:04:49,800 e tanto più che è all'orizzonte. 103 00:04:49,800 --> 00:04:53,390 >> Ma prima, si è giunti alla nostra attenzione in piedi attraverso città universitaria che ci 104 00:04:53,390 --> 00:04:57,914 è una certa bagno qui a New Haven chiamato la camera di Harvard, che 105 00:04:57,914 --> 00:04:59,080 è un po 'in grigio qui. 106 00:04:59,080 --> 00:05:03,830 Ma anzi, qualcuno è andato al tempo e le spese di incisione in camera di Harvard 107 00:05:03,830 --> 00:05:05,700 su questo qui stanza. 108 00:05:05,700 --> 00:05:07,790 Grazie per questo. 109 00:05:07,790 --> 00:05:11,020 Non posso dire che abbiamo un analogo a Cambridge ancora, 110 00:05:11,020 --> 00:05:14,060 ma penso che abbiamo un piccolo progetto per noi stessi ora quando torneremo. 111 00:05:14,060 --> 00:05:15,890 Quindi grazie per questo. 112 00:05:15,890 --> 00:05:18,340 >> Quindi un rapido sguardo indietro a dove avevamo interrotto la scorsa settimana 113 00:05:18,340 --> 00:05:21,010 e dove si sta andando il prossimo settimana con problemi di set five. 114 00:05:21,010 --> 00:05:24,350 Quindi, in cinque set problema, sarete sfidati a implementare un correttore ortografico. 115 00:05:24,350 --> 00:05:26,630 E per farlo, sarete consegnato un testo abbastanza grande 116 00:05:26,630 --> 00:05:29,160 depositarvi come 140.000 parole inglesi. 117 00:05:29,160 --> 00:05:32,610 E sarete sfidati a decidere su una struttura di dati con cui 118 00:05:32,610 --> 00:05:35,340 vogliono caricare tutte quelle parole in memoria, e nella RAM, 119 00:05:35,340 --> 00:05:38,470 e quindi implementare alcune funzioni, uno dei quali sta per essere controllo. 120 00:05:38,470 --> 00:05:41,555 Per cui quando passò una discussione, una parola, il vostro controllo funzionale 121 00:05:41,555 --> 00:05:43,430 semplicemente sta per avere a dire vero o falso, 122 00:05:43,430 --> 00:05:44,990 questa è una parola nel dizionario. 123 00:05:44,990 --> 00:05:47,110 >> Ma si sta andando ad avere un po ' progettazione discrezione e sfide 124 00:05:47,110 --> 00:05:48,568 quando si tratta di attuare questo. 125 00:05:48,568 --> 00:05:51,250 Nel più semplice attuazione, si potrebbe certamente 126 00:05:51,250 --> 00:05:53,960 implementare un correttore ortografico in il dizionario sottostante 127 00:05:53,960 --> 00:05:55,380 con che tipo di struttura dei dati? 128 00:05:55,380 --> 00:05:57,796 Hai solo bisogno di memorizzare un intero mazzo di stringhe in memoria? 129 00:05:57,796 --> 00:06:00,074 Qual è il via per rispondere dalla settimana due, forse? 130 00:06:00,074 --> 00:06:00,740 PUBBLICO: Array. 131 00:06:00,740 --> 00:06:01,500 DAVID J. MALAN: È possibile utilizzare una matrice. 132 00:06:01,500 --> 00:06:02,750 E questo non è poi così male. 133 00:06:02,750 --> 00:06:05,631 Ma non necessariamente conosce in anticipo quanto grande di una matrice 134 00:06:05,631 --> 00:06:08,630 si sta andando ad avere bisogno, se non lo fai conoscere il file necessariamente in anticipo. 135 00:06:08,630 --> 00:06:10,110 Così si sta andando ad avere per usare un po 'di inganno 136 00:06:10,110 --> 00:06:11,970 come malloc, come abbiamo iniziato a utilizzare. 137 00:06:11,970 --> 00:06:13,977 O potremmo affrontare che riguardano utilizzando 138 00:06:13,977 --> 00:06:16,810 quali altri struttura dati che è stata una sorta di miglioramento marginale 139 00:06:16,810 --> 00:06:17,894 su un array? 140 00:06:17,894 --> 00:06:18,810 PUBBLICO: lista collegata. 141 00:06:18,810 --> 00:06:21,270 DAVID J. MALAN: Come un collegato elenco, in cui abbiamo un po 'dinamismo. 142 00:06:21,270 --> 00:06:22,686 Ma c'è un po 'più di spesa. 143 00:06:22,686 --> 00:06:24,150 Dobbiamo puntatori per mantenere. 144 00:06:24,150 --> 00:06:25,890 E non hai ancora codificato questo up, ma c'è sicuramente 145 00:06:25,890 --> 00:06:28,473 per essere un po 'più complessità non solo utilizzando le parentesi quadre 146 00:06:28,473 --> 00:06:30,080 e saltare un array. 147 00:06:30,080 --> 00:06:33,340 >> Ma il tempo in esecuzione di un array, se siete alla ricerca di una parola, 148 00:06:33,340 --> 00:06:34,179 potrebbe essere log di n. 149 00:06:34,179 --> 00:06:35,970 Ma ancora una volta, potrebbe essere un po 'non banale 150 00:06:35,970 --> 00:06:38,734 per costruire quella matrice non conoscendo la dimensione in anticipo. 151 00:06:38,734 --> 00:06:41,150 Una lista concatenata però, se si solo memorizzare un mucchio di stringhe 152 00:06:41,150 --> 00:06:43,300 in una lista collegata, qual è il tuo limite superiore 153 00:06:43,300 --> 00:06:46,920 al tempo di riproduzione sta per essere alla ricerca per o controllare una parola in quella lista? 154 00:06:46,920 --> 00:06:47,700 >> PUBBLICO: n. 155 00:06:47,700 --> 00:06:50,575 >> DAVID J. MALAN: Sì, grande O di n o lineare perché nel caso peggiore, 156 00:06:50,575 --> 00:06:52,640 la parola è come una parola Z fino alla fine. 157 00:06:52,640 --> 00:06:55,350 E a causa di una lista collegata, perché quelle frecce per impostazione predefinita, 158 00:06:55,350 --> 00:06:58,280 in una lista concatenata semplice, solo andare da una direzione all'altra, 159 00:06:58,280 --> 00:06:59,590 non si può saltare in giro. 160 00:06:59,590 --> 00:07:01,160 Dovete seguire tutti loro. 161 00:07:01,160 --> 00:07:05,505 >> Così abbiamo proposto alla fine della scorsa settimana, settimana di cinque, che ci sono modi migliori. 162 00:07:05,505 --> 00:07:08,727 E infatti, il Santo Graal sarebbe davvero tempo costante 163 00:07:08,727 --> 00:07:10,560 per cui quando vuoi per cercare una parola, 164 00:07:10,560 --> 00:07:13,370 avere una risposta immediata a prescindere di quante parole sono già 165 00:07:13,370 --> 00:07:14,350 nel vostro dizionario. 166 00:07:14,350 --> 00:07:17,680 >> Si tratta di resa di un artista di quello che si potrebbe chiamare una tabella hash. 167 00:07:17,680 --> 00:07:21,900 E una tabella di hash è una specie di bella amalgama di un array-- tracciata verticalmente 168 00:07:21,900 --> 00:07:26,416 qui, appena perchè-- e poi un linked list-- disegnare qui orizzontalmente. 169 00:07:26,416 --> 00:07:28,790 E la tabella di hash può essere implementato in mazzi di modi. 170 00:07:28,790 --> 00:07:34,110 Questo estratto da un libro di testo che accade utilizzare date di nascita di queste persone 171 00:07:34,110 --> 00:07:38,940 come il mezzo con cui è decidere dove mettere il nome di qualcuno. 172 00:07:38,940 --> 00:07:41,230 Quindi questo è un dizionario se si vuole di nomi. 173 00:07:41,230 --> 00:07:45,240 E al fine di accelerare la messa nomi in questa struttura dati, 174 00:07:45,240 --> 00:07:49,280 guardano, a quanto pare, questa gente di Date nascita rispetto ad un mese. 175 00:07:49,280 --> 00:07:50,570 >> Quindi è 1-31. 176 00:07:50,570 --> 00:07:52,910 E dimenticare febbraio e casi d'angolo del genere. 177 00:07:52,910 --> 00:07:57,050 E se il vostro compleanno è il gennaio 1, o 1 febbraio o il 1 dicembre 178 00:07:57,050 --> 00:07:59,890 si sta andando a finire in la prima in alto a catena su. 179 00:07:59,890 --> 00:08:02,150 Se la vostra data di nascita è come il 25 di un mese, 180 00:08:02,150 --> 00:08:04,567 si sta andando a finire al numero 25 della benna. 181 00:08:04,567 --> 00:08:07,400 E se c'è già qualcuno in una delle posizioni, cosa 182 00:08:07,400 --> 00:08:10,470 si inizia a fare con questi collegato liste li sta cucendo insieme 183 00:08:10,470 --> 00:08:14,320 in modo da poter avere un arbitrario numero di persone, o di qualsiasi cosa, 184 00:08:14,320 --> 00:08:15,580 in tale posizione. 185 00:08:15,580 --> 00:08:18,400 >> In modo da avere una specie di mix di costante di tempo per l'hashing. 186 00:08:18,400 --> 00:08:21,160 E per hash qualcosa significa prendere in input come una persona, 187 00:08:21,160 --> 00:08:25,360 o il suo nome, o il suo parto la data, e poi decidere su qualche uscita 188 00:08:25,360 --> 00:08:29,780 sulla base di tale, come guardare loro compleanno e output da uno a 31. 189 00:08:29,780 --> 00:08:31,900 >> Allora si potrebbe avere un po 'di tempo lineare, 190 00:08:31,900 --> 00:08:34,429 ma in realtà, e come in il caso di problema set five, 191 00:08:34,429 --> 00:08:36,220 non stiamo andando a essere lavorando in cinque set P 192 00:08:36,220 --> 00:08:40,059 tanto di esecuzione asintotico tempo, come la lentezza teorica 193 00:08:40,059 --> 00:08:41,809 con la quale un algoritmo potrebbe correre. 194 00:08:41,809 --> 00:08:44,330 Stiamo andando a cura di il numero effettivo di secondi 195 00:08:44,330 --> 00:08:47,350 e la quantità effettiva di memoria, il numero effettivo di byte di memoria 196 00:08:47,350 --> 00:08:48,140 si sta utilizzando. 197 00:08:48,140 --> 00:08:52,710 Quindi, francamente, avendo un enorme catena di come un milione di persone 198 00:08:52,710 --> 00:08:56,710 è dannatamente lento se siete alla ricerca per un nome in un elenco di dimensioni milioni. 199 00:08:56,710 --> 00:08:59,830 >> Ma cosa succede se si divide che elenco in 31 parti? 200 00:08:59,830 --> 00:09:04,400 Cercando 1/31 di quella eccellente lungo elenco, in realtà, 201 00:09:04,400 --> 00:09:05,741 è certamente sta per essere più veloce. 202 00:09:05,741 --> 00:09:07,240 Asintoticamente, è la stessa cosa. 203 00:09:07,240 --> 00:09:08,860 Stai solo dividendo per un fattore costante. 204 00:09:08,860 --> 00:09:10,651 E ricordare che noi buttare via le cose. 205 00:09:10,651 --> 00:09:13,486 Ma in realtà, sta andando per essere 31 volte più veloce. 206 00:09:13,486 --> 00:09:16,110 Ed è quello che stiamo andando a iniziare a leva in P impostare cinque. 207 00:09:16,110 --> 00:09:18,750 >> Così P ha impostato cinque troppo anche propone che si considera 208 00:09:18,750 --> 00:09:21,810 leggermente più sofisticato struttura di dati chiamata un trie. 209 00:09:21,810 --> 00:09:24,420 E un trie è solo un albero come la struttura dei dati. 210 00:09:24,420 --> 00:09:26,672 Ma invece di avere piccoli cerchi o rettangoli 211 00:09:26,672 --> 00:09:28,380 come continuiamo a disegnare per i nodi, in realtà 212 00:09:28,380 --> 00:09:30,840 ha interi array per i suoi nodi. 213 00:09:30,840 --> 00:09:33,430 E anche se questo è un bit astratto qui per guardare, 214 00:09:33,430 --> 00:09:35,450 Zamyla nel P set passeggiata vi guiderà attraverso 215 00:09:35,450 --> 00:09:37,580 attraverso in modo più dettagliato su questo. 216 00:09:37,580 --> 00:09:39,980 Questa è una struttura dati che piuttosto abilmente 217 00:09:39,980 --> 00:09:44,130 potrebbe avere ogni nodo sia una matrice di dimensioni 26, da A a Z o pari a zero 218 00:09:44,130 --> 00:09:45,320 attraverso 25. 219 00:09:45,320 --> 00:09:49,260 E quando si desidera inserire una persona di nome in questa struttura dati o trovare 220 00:09:49,260 --> 00:09:53,990 lui o lei, quello che fai, se il nome è come Maxwell, M-A-X-W-E-L-L, 221 00:09:53,990 --> 00:09:57,900 in primo luogo guarda M. E poi si passare alla corrispondente posizione M 222 00:09:57,900 --> 00:09:59,100 nella prima matrice. 223 00:09:59,100 --> 00:10:02,400 È quindi saltare alla A, il primo posizione nell'array successivo, 224 00:10:02,400 --> 00:10:03,610 seguendo le frecce. 225 00:10:03,610 --> 00:10:08,300 Poi X, allora W, allora E, allora L, quindi L, e poi magari un fine speciale 226 00:10:08,300 --> 00:10:11,850 carattere, un po 'sentinella che dice una parola si ferma qui. 227 00:10:11,850 --> 00:10:14,780 >> E che cosa c'è di bello e questo-- tenere a mente che l'immagine qui, 228 00:10:14,780 --> 00:10:16,797 Notate come bordi ogni matrice sono tagliati fuori. 229 00:10:16,797 --> 00:10:19,630 Questo è solo perché questa cosa sarebbe essere massiccia e orribile a guardare 230 00:10:19,630 --> 00:10:20,338 presso sullo schermo. 231 00:10:20,338 --> 00:10:21,820 Così è stato estratto. 232 00:10:21,820 --> 00:10:25,920 Che cosa è bella di questo approccio è che se c'è un milione di nomi già 233 00:10:25,920 --> 00:10:30,890 in questa struttura dati, quanti passi ci vuole mi inserire Maxwell? 234 00:10:30,890 --> 00:10:36,450 M-A-X-W-E-L-L-- come sette-ish passi per inserire o cercare Maxwell. 235 00:10:36,450 --> 00:10:39,320 >> Supponete che ci sia un trilione nomi in questa struttura dati. 236 00:10:39,320 --> 00:10:41,900 Quanti passi ci vuole me a guardare per Maxwell? 237 00:10:41,900 --> 00:10:43,450 M-A-X-- ancora sette. 238 00:10:43,450 --> 00:10:45,770 >> E qui sta il cosiddetto tempo costante. 239 00:10:45,770 --> 00:10:47,960 Se assumiamo che le parole sono certamente delimitate 240 00:10:47,960 --> 00:10:52,150 da 20 caratteri, o 46 caratteri, o qualche ragionevolmente piccolo intero, 241 00:10:52,150 --> 00:10:53,790 quindi è efficace una costante. 242 00:10:53,790 --> 00:10:57,790 E così l'inserimento e la ricerca un trie è super veloce. 243 00:10:57,790 --> 00:10:59,540 Naturalmente, non abbiamo mai ottenere nulla gratis. 244 00:10:59,540 --> 00:11:02,740 E anche se probabilmente non sono tuffato in P impostare cinque ancora, 245 00:11:02,740 --> 00:11:06,596 che prezzo stiamo pagando probabilmente a ottenere una maggiore efficienza tempo saggio? 246 00:11:06,596 --> 00:11:07,470 >> PUBBLICO: Memoria. 247 00:11:07,470 --> 00:11:08,390 >> DAVID J. MALAN: memoria, giusto? 248 00:11:08,390 --> 00:11:10,240 Voglio dire, non abbiamo trascinati l'intero quadro qui. 249 00:11:10,240 --> 00:11:12,823 Questo estratto dal libro di testo non ha tratto tutte le matrici. 250 00:11:12,823 --> 00:11:16,687 C'è una grande quantità di memoria e solo puntatori nulli che non vengono utilizzati. 251 00:11:16,687 --> 00:11:17,520 Quindi è un compromesso. 252 00:11:17,520 --> 00:11:21,050 E sarà lasciato a voi in cinque set P a decidere su quale strada si vuole andare. 253 00:11:21,050 --> 00:11:24,460 >> Ora, questa idea di hashing, come a parte, è in realtà eccellente prevalente. 254 00:11:24,460 --> 00:11:27,980 Quindi, per hash un mezzo di valore, piuttosto semplicemente, per prendere qualcosa come input 255 00:11:27,980 --> 00:11:29,220 e produrre un'uscita. 256 00:11:29,220 --> 00:11:31,270 Quindi una funzione di hash è solo un algoritmo. 257 00:11:31,270 --> 00:11:34,990 >> E, in generale, uno scopo funzioni hash nella vita è quello di prendere qualcosa come input 258 00:11:34,990 --> 00:11:39,655 e produrre un numero come output, come la numero uno a 31 o da A a Z, 259 00:11:39,655 --> 00:11:40,960 zero a 25. 260 00:11:40,960 --> 00:11:44,250 Quindi ci vuole un complesso di uscita e si restringe verso il basso per qualcosa 261 00:11:44,250 --> 00:11:46,310 che è un po 'di più utile e gestibile. 262 00:11:46,310 --> 00:11:49,250 >> E così si scopre in una funzione molto popolare 263 00:11:49,250 --> 00:11:51,160 che il mondo della sicurezza e il mondo umano 264 00:11:51,160 --> 00:11:53,060 usato per anni si chiama SHA1. 265 00:11:53,060 --> 00:11:56,260 Questa è una bella fantasia matematica formula che fa in sostanza, che. 266 00:11:56,260 --> 00:11:58,870 >> Si prende una davvero grande pezzo di zeri e ones-- 267 00:11:58,870 --> 00:12:01,530 che potrebbe essere un megabyte lungo, un long-- gigabyte 268 00:12:01,530 --> 00:12:05,930 e si restringe verso il basso per solo pochi bit, alcuni pezzi, 269 00:12:05,930 --> 00:12:09,082 in modo da avere un numero come uno a 31, oppure a Z. 270 00:12:09,082 --> 00:12:11,540 Ma in realtà, è un po ' più grande di appena A alla Z. 271 00:12:11,540 --> 00:12:16,640 >> Purtroppo, siamo sul punto di ciò che qualcuno scherzosamente chiamato il SHAppening 272 00:12:16,640 --> 00:12:19,840 per cui il mondo sta per concluderà probabilmente in pochi mesi 273 00:12:19,840 --> 00:12:22,617 tempo perché i ricercatori, solo la scorsa settimana, 274 00:12:22,617 --> 00:12:25,700 pubblicato un rapporto che, contrariamente a quello che i ricercatori di sicurezza hanno pensato 275 00:12:25,700 --> 00:12:29,810 per qualche tempo, semplicemente spendendo circa, cos'era, 276 00:12:29,810 --> 00:12:33,420 Credo che sia stato $ 175,000-- molti soldi, 277 00:12:33,420 --> 00:12:36,540 ma non oltre la portata di cattivi particolarmente cattivi, 278 00:12:36,540 --> 00:12:41,560 o particolarmente grave countries-- $ 175.000 potrebbe comprare un sacco di server di affitto 279 00:12:41,560 --> 00:12:42,690 spazio nella nuvola. 280 00:12:42,690 --> 00:12:44,619 E torneremo a la nube in breve tempo. 281 00:12:44,619 --> 00:12:47,410 Ma significa solo l'affitto di server spazio sul come i server di Microsoft, 282 00:12:47,410 --> 00:12:50,285 o Google, o Amazon, o il come dove è possibile pagare con il minuto 283 00:12:50,285 --> 00:12:51,670 ad usare il computer di qualcun altro. 284 00:12:51,670 --> 00:12:54,250 >> E si scopre se si può pagare qualcun altro di prendere in prestito i loro computer 285 00:12:54,250 --> 00:12:56,730 ed eseguire il codice che avete scritto su di esso e utilizzare abbastanza fantasia 286 00:12:56,730 --> 00:13:01,580 matematica, si può essenzialmente figura come funzione hash di qualcuno è 287 00:13:01,580 --> 00:13:05,320 lavorare, e data la sua uscita, decodificare ciò che il suo ingresso è. 288 00:13:05,320 --> 00:13:08,590 E per scopi di oggi, basti dire, questo è male. 289 00:13:08,590 --> 00:13:12,540 Poiché le funzioni di hash SHA1 e come si sono super comunemente 290 00:13:12,540 --> 00:13:17,050 utilizzato in applicazioni di sicurezza, connessioni crittografate sul web, 291 00:13:17,050 --> 00:13:21,890 transazioni bancarie, crittografia cellulare per i vostri telefoni cellulari, e simili. 292 00:13:21,890 --> 00:13:24,880 E quindi ogni volta che qualcuno trova un modo per invertire 293 00:13:24,880 --> 00:13:28,510 progettare una di queste tecnologie o romperlo, cose brutte possono accadere. 294 00:13:28,510 --> 00:13:30,300 >> Ora il mondo già lo sapeva. 295 00:13:30,300 --> 00:13:31,310 Questo era prevedibile. 296 00:13:31,310 --> 00:13:34,670 E il mondo ha da allora spostato da SHA1 a SHA256, 297 00:13:34,670 --> 00:13:37,320 che è solo un modo elegante per dicendo che usano pezzi più grandi. 298 00:13:37,320 --> 00:13:40,570 E infatti, anche CS50 propria sito web aggiornato lo scorso anno a-- 299 00:13:40,570 --> 00:13:43,290 Non che ci troviamo di fronte tutto questo molti minacce cercando di ottenere i file PDF 300 00:13:43,290 --> 00:13:46,520 e whatnot-- ma il sito web di CS50 utilizza la funzione hash più grande, 301 00:13:46,520 --> 00:13:47,980 il che significa che saremo al sicuro. 302 00:13:47,980 --> 00:13:50,020 Quindi, tutti i tuoi file PDF sarà sicuro, ma non 303 00:13:50,020 --> 00:13:52,880 necessariamente i vostri soldi o niente particolarmente privato o personale 304 00:13:52,880 --> 00:13:53,380 usare. 305 00:13:53,380 --> 00:13:56,550 Sp verificare che l'URL se si desidera come alcuni dettagli aggiuntivi. 306 00:13:56,550 --> 00:13:59,840 >> Così problema set five è infatti all'orizzonte. 307 00:13:59,840 --> 00:14:01,560 Quiz uno è il prossimo Mercoledì. 308 00:14:01,560 --> 00:14:04,479 Ma approfittare di ufficio ore, sia stasera e domani. 309 00:14:04,479 --> 00:14:07,770 E inoltre usufruire di orari di ufficio, se sei disponibile, subito dopo questo. 310 00:14:07,770 --> 00:14:11,550 Il personale e io attaccare intorno e fare Q & A più informale, oltre a stasera. 311 00:14:11,550 --> 00:14:16,610 E lasciatemi fortemente notare qui, per quelli di noi qui a New Haven-- 312 00:14:16,610 --> 00:14:19,360 quindi è assolutamente al di SCAZ osservazioni feltro, ne sono sicuro, 313 00:14:19,360 --> 00:14:21,140 come un po 'di una lotta in salita. 314 00:14:21,140 --> 00:14:24,627 E per la reputazione, se Non hanno imparato già o sentito 315 00:14:24,627 --> 00:14:27,710 da alcuni amici ad Harvard, conoscere qui ci sono alcune nuove memoria istituzionale. 316 00:14:27,710 --> 00:14:30,790 P ha impostato cinque sorta di sorta di tende ad essere la più difficile in CS50, 317 00:14:30,790 --> 00:14:32,590 o il più impegnativo per la maggior parte degli studenti. 318 00:14:32,590 --> 00:14:37,180 >> Ma ciò significa che siamo quasi in cima a questa collina. 319 00:14:37,180 --> 00:14:38,270 E ho davvero intendo questo. 320 00:14:38,270 --> 00:14:40,728 E 'il più impegnativo, ma è anche il più gratificante 321 00:14:40,728 --> 00:14:43,560 in tale differenza della maggior parte ogni altra introduttivo informatica 322 00:14:43,560 --> 00:14:47,980 corso negli Stati Uniti, che conosciamo, maggior parte degli studenti non finiscono un intro 323 00:14:47,980 --> 00:14:51,400 Ovviamente avendo già implementato cose come gli alberi, e cerca, 324 00:14:51,400 --> 00:14:52,880 e tabelle hash, e simili. 325 00:14:52,880 --> 00:14:54,770 >> E così mi auguro, e ci auguriamo che tu sia 326 00:14:54,770 --> 00:14:57,280 hanno un senso grande di soddisfazione anche 327 00:14:57,280 --> 00:15:00,760 se la settimana o due via che si arriva a che la soddisfazione 328 00:15:00,760 --> 00:15:02,490 si sente un po 'come questo. 329 00:15:02,490 --> 00:15:05,250 Ma permettetemi di rassicurarvi, abbiamo avere solo quattro P set sinistra. 330 00:15:05,250 --> 00:15:07,380 Quindi una sorta di superiore che è in vista. 331 00:15:07,380 --> 00:15:12,370 >> Dall'altra parte di esso, fidatevi di noi, è solo dolci colline e nuvole. 332 00:15:12,370 --> 00:15:16,000 E diciamo, cuccioli sono sull'altro lato. 333 00:15:16,000 --> 00:15:18,340 In modo da avere solo per appendere in là un po 'di più. 334 00:15:18,340 --> 00:15:22,050 Voglio dire, anzi come si comincia a transizione nel mondo della programmazione web, 335 00:15:22,050 --> 00:15:26,060 troverete che le cose become-- questo è adorabile realtà. 336 00:15:26,060 --> 00:15:29,680 337 00:15:29,680 --> 00:15:33,490 OK, postiamo questo URL tardi. 338 00:15:33,490 --> 00:15:36,140 Troverete anche che siamo raggiungendo una sorta di altopiano 339 00:15:36,140 --> 00:15:38,150 dove tutto è infatti ancora sofisticato 340 00:15:38,150 --> 00:15:40,170 e stimolante per disegno, ma non sei 341 00:15:40,170 --> 00:15:42,590 andando a sentire come siamo perpetuamente salire questa collina. 342 00:15:42,590 --> 00:15:44,390 Quindi prendere un po 'di conforto in questo. 343 00:15:44,390 --> 00:15:47,409 >> Quindi, senza ulteriori indugi, cominciamo per rendere questa transizione di mercato 344 00:15:47,409 --> 00:15:49,950 nel semestre per il mondo di il web, e davvero il mondo 345 00:15:49,950 --> 00:15:51,420 con la quale tutti noi siamo più familiare. 346 00:15:51,420 --> 00:15:53,753 Abbiamo i dispositivi di internet nelle nostre tasche, sulle nostre scrivanie, 347 00:15:53,753 --> 00:15:55,127 nei nostri zaini, e simili. 348 00:15:55,127 --> 00:15:56,210 Come funziona tutto questo lavoro? 349 00:15:56,210 --> 00:15:59,077 E come possiamo iniziare a scrivere codice che non è super arcano 350 00:15:59,077 --> 00:16:01,910 e in qualche sollecito testo lampeggiante che nessuno dei tuoi amici o familiari 351 00:16:01,910 --> 00:16:04,659 sono sempre andando a voler interagire con, ma qualcosa che si può mettere 352 00:16:04,659 --> 00:16:06,660 sui loro telefoni, o nel proprio browser Web, 353 00:16:06,660 --> 00:16:09,010 o su qualsiasi dispositivo con cui interagiscono. 354 00:16:09,010 --> 00:16:10,430 >> Così qui è casa di qualcuno. 355 00:16:10,430 --> 00:16:14,040 E dentro di questa casa è un paio di computer portatili, un paio di vecchio desktop school 356 00:16:14,040 --> 00:16:17,470 computer, una cosa chiamata router o hub al centro, 357 00:16:17,470 --> 00:16:20,310 e quindi una sorta di modem via cavo o DSL. 358 00:16:20,310 --> 00:16:24,560 E poi c'è internet, generalmente disegnato come una nuvola lassù nel cielo. 359 00:16:24,560 --> 00:16:29,230 >> Quindi questa immagine, anche se un po 'sorta di' datato, 360 00:16:29,230 --> 00:16:32,604 certamente coglie ciò che più di probabilmente avete nelle vostre case, 361 00:16:32,604 --> 00:16:35,520 o effettivamente ciò che tutti avete nelle vostre stanze del dormitorio, o appartamenti, 362 00:16:35,520 --> 00:16:36,480 o simili. 363 00:16:36,480 --> 00:16:40,010 >> Così che cosa sta realmente succedendo quando si tenta di utilizzare Internet oggi? 364 00:16:40,010 --> 00:16:42,010 Così ogni computer della Internet, si scopre, 365 00:16:42,010 --> 00:16:46,860 deve avere un indirizzo univoco, proprio come noi del mondo reale necessità 366 00:16:46,860 --> 00:16:52,050 un indirizzo postale, come 51 Prospect Via, New Haven, Connecticut, o 33 367 00:16:52,050 --> 00:16:54,170 Oxford Street, Cambridge, Massachusetts. 368 00:16:54,170 --> 00:16:58,520 Così fanno i computer su Internet hanno bisogno di un modo di affrontare in modo univoco se stessi. 369 00:16:58,520 --> 00:17:01,180 >> Questo è in modo che quando un computer vuole parlare con un altro, 370 00:17:01,180 --> 00:17:04,525 può inviare un messaggio e informare il destinatario a cui 371 00:17:04,525 --> 00:17:05,900 dovrebbe inviare la risposta indietro. 372 00:17:05,900 --> 00:17:07,900 Così si fa solo una sorta di senso intuitivo forse 373 00:17:07,900 --> 00:17:09,980 che tutto hanno un indirizzo di qualche tipo. 374 00:17:09,980 --> 00:17:11,240 >> Ma come si fa a ottenere un indirizzo? 375 00:17:11,240 --> 00:17:13,589 Beh, se si arriva qui su campus, o si va a casa 376 00:17:13,589 --> 00:17:15,760 e si accende il computer portatile o desktop, 377 00:17:15,760 --> 00:17:17,770 e sia collegarlo o connettersi al Wi-Fi, 378 00:17:17,770 --> 00:17:19,569 si scopre che c'è un server speciale 379 00:17:19,569 --> 00:17:22,089 sulla maggior parte delle reti chiamato un server DHCP. 380 00:17:22,089 --> 00:17:23,880 Non ha molta importanza ciò che questo rappresenta, 381 00:17:23,880 --> 00:17:26,660 ma è Dynamic Host Configuration protocollo, che è solo 382 00:17:26,660 --> 00:17:29,760 un modo elegante per dire, questo è un computer che o Yale ha, 383 00:17:29,760 --> 00:17:32,600 o Harvard ha, o Comcast ha o Verizon ha, 384 00:17:32,600 --> 00:17:35,100 o la vostra azienda ha, il cui scopo nella vita, 385 00:17:35,100 --> 00:17:38,810 quando sente qualcuno di recente ha aggiunto alla rete, è da dire, 386 00:17:38,810 --> 00:17:40,010 Usa questo indirizzo. 387 00:17:40,010 --> 00:17:42,790 >> Quindi noi esseri umani non devono codificare in nostri computer 388 00:17:42,790 --> 00:17:44,040 ciò che il nostro indirizzo univoco è. 389 00:17:44,040 --> 00:17:47,070 Abbiamo appena accenderlo, aprire il coperchio, e in qualche modo questo server 390 00:17:47,070 --> 00:17:52,210 sulla rete locale appena mi dice che il mio indirizzo è 51 Prospect Street, o 33 391 00:17:52,210 --> 00:17:53,940 Oxford Street, o simili. 392 00:17:53,940 --> 00:17:56,000 >> Ora non sta andando a essere così verbose come quello. 393 00:17:56,000 --> 00:18:00,210 Piuttosto quello che ho intenzione di ottenere un indirizzo numerico chiamato un indirizzo IP. 394 00:18:00,210 --> 00:18:01,960 IP significa Internet Protocol. 395 00:18:01,960 --> 00:18:06,025 E le probabilità sono da questo momento nella tua vita, probabilmente sentito o visto la parola IP, 396 00:18:06,025 --> 00:18:08,140 o in generale gettati in giro, forse. 397 00:18:08,140 --> 00:18:10,720 Ma in realtà, è piuttosto semplice una cosa. 398 00:18:10,720 --> 00:18:13,610 >> Un indirizzo IP è solo una numero decimale con punti, 399 00:18:13,610 --> 00:18:17,150 il che significa che si tratta di qualcosa di punti qualcosa dot qualcosa dot qualcosa. 400 00:18:17,150 --> 00:18:21,980 E ciascuna di queste quarantina succede essere un numero tra 0 e 255. 401 00:18:21,980 --> 00:18:26,710 >> Quindi, sulla base di cinque più settimane di CS50, se questi numeri ogni intervallo da 0 a 255, 402 00:18:26,710 --> 00:18:28,713 quanti bit è ogni di quei segni numerici? 403 00:18:28,713 --> 00:18:29,420 >> PUBBLICO: Otto. 404 00:18:29,420 --> 00:18:30,100 >> DAVID J. MALAN: Deve essere di otto. 405 00:18:30,100 --> 00:18:31,933 Quindi, in totale, quanti bit è un indirizzo IP? 406 00:18:31,933 --> 00:18:32,710 PUBBLICO: 32. 407 00:18:32,710 --> 00:18:33,820 >> DAVID J. MALAN: So 32. 408 00:18:33,820 --> 00:18:35,830 8 più 8 più 8 più 8 è 32. 409 00:18:35,830 --> 00:18:38,767 Quanti indirizzi IP totali ci può essere nel mondo? 410 00:18:38,767 --> 00:18:39,600 PUBBLICO: 4 miliardi. 411 00:18:39,600 --> 00:18:42,410 DAVID J. MALAN: Così circa quattro miliardi perché è 2 il potere 32. 412 00:18:42,410 --> 00:18:44,410 E se non si può sorta di Grok che nella vostra mente, 413 00:18:44,410 --> 00:18:47,470 è sufficiente sapere che i valori a 32 bit può essere grande come 4 miliardi 414 00:18:47,470 --> 00:18:49,140 se è tutti i valori positivi. 415 00:18:49,140 --> 00:18:52,500 In modo che significa che c'è 4 miliardi possibili indirizzi IP del mondo. 416 00:18:52,500 --> 00:18:55,090 >> E divertente storia, siamo genere di correre fuori di essi. 417 00:18:55,090 --> 00:18:59,720 E in effetti si tratta di un problema enorme in quel il mondo ha visto anche questo problema a venire, 418 00:18:59,720 --> 00:19:03,639 ma non è necessariamente risposto nel modo più veloce possibile. 419 00:19:03,639 --> 00:19:05,680 E infatti, una volta che hai finito CS50 e ha iniziato 420 00:19:05,680 --> 00:19:06,950 prestando attenzione a il mondo tecnologico, ti 421 00:19:06,950 --> 00:19:08,520 vedere questo è molto comunemente tematica. 422 00:19:08,520 --> 00:19:12,260 >> Ad esempio, se andiamo veramente vecchia scuola al giorno d'oggi, Y2K. 423 00:19:12,260 --> 00:19:13,570 Non era davvero una sorpresa. 424 00:19:13,570 --> 00:19:15,700 Come tutti sapevano per 1.000 anni che quel 425 00:19:15,700 --> 00:19:20,250 era-- più di un migliaio che anni-- che è stato alla fine sta per accadere. 426 00:19:20,250 --> 00:19:23,295 Eppure, abbiamo risposto ad esso molto all'ultimo minuto. 427 00:19:23,295 --> 00:19:24,420 E questo sta accadendo di nuovo. 428 00:19:24,420 --> 00:19:26,740 Così oggi parleremo di IP versione 4. 429 00:19:26,740 --> 00:19:29,250 Ma sapere che il mondo è arrivare finalmente 430 00:19:29,250 --> 00:19:31,590 in giro per l'aggiornamento a qualcosa chiamato IPv6, 431 00:19:31,590 --> 00:19:34,540 che invece di 32 bit indirizzi, uses-- chiunque 432 00:19:34,540 --> 00:19:36,443 vuole prendere una supposizione, quanti bit? 433 00:19:36,443 --> 00:19:37,310 >> PUBBLICO: 64? 434 00:19:37,310 --> 00:19:38,380 >> DAVID J. MALAN: buona congettura, ma no. 435 00:19:38,380 --> 00:19:39,975 Stiamo finalmente cercando di ottenere davanti alla curva. 436 00:19:39,975 --> 00:19:40,558 >> PUBBLICO: 128. 437 00:19:40,558 --> 00:19:43,490 DAVID J. MALAN: 128, che è un enorme numero di impazzendo 438 00:19:43,490 --> 00:19:46,250 di indirizzi IP, perché che è come volte, 2 volte 2, 439 00:19:46,250 --> 00:19:49,620 2 volte, un sacco di volte due a due su da 4 miliardi. 440 00:19:49,620 --> 00:19:50,530 >> Quindi, se curioso. 441 00:19:50,530 --> 00:19:54,110 Si scopre fuori-- e ho appena googled questo per trovare questo fuori-- computer Yale, 442 00:19:54,110 --> 00:19:58,910 qui a Yale, tendono a iniziare con questi numbers-- 130,132 puntino qualcosa, 443 00:19:58,910 --> 00:20:00,669 e 128.36 dot qualcosa. 444 00:20:00,669 --> 00:20:02,710 Ma c'è sicuramente eccezioni su tutta la linea 445 00:20:02,710 --> 00:20:05,334 a seconda di cosa reparto e costruzione e campus siete su. 446 00:20:05,334 --> 00:20:09,310 Harvard tende ad avere 140,247 o 128,103. 447 00:20:09,310 --> 00:20:11,530 E in generale si tratta di informazioni inutili, 448 00:20:11,530 --> 00:20:13,260 ma è qualcosa che si potrebbe notare ora. 449 00:20:13,260 --> 00:20:15,593 Quando si avvia rovistando impostazioni sui computer, 450 00:20:15,593 --> 00:20:18,540 si potrebbe iniziare a notare questi tipi di modelli in breve tempo. 451 00:20:18,540 --> 00:20:23,470 >> Ma quando sei a casa e avere un Apple AirPort o un dispositivo di Linksys, 452 00:20:23,470 --> 00:20:26,560 o un D-Link, o quello che è i vostri genitori o fratelli installati 453 00:20:26,560 --> 00:20:28,890 nella vostra casa, ben ciò che probabilmente avete 454 00:20:28,890 --> 00:20:30,800 è ciò che è chiamato un indirizzo IP privato. 455 00:20:30,800 --> 00:20:34,850 E questi erano in realtà un bello, soluzione temporanea 456 00:20:34,850 --> 00:20:38,050 al problema della corsa a corto di indirizzi IP. 457 00:20:38,050 --> 00:20:40,382 >> E che cosa si può fare con reti domestiche, typically-- 458 00:20:40,382 --> 00:20:42,340 e francamente, anche Yale e Harvard stanno iniziando 459 00:20:42,340 --> 00:20:46,840 per fare questo in diversi areas-- sei tu può dare un sacco di computer 460 00:20:46,840 --> 00:20:50,360 un indirizzo IP fino a quando si mette uno speciale dispositivo di fronte a loro, 461 00:20:50,360 --> 00:20:52,410 qualcosa chiamato un router, oppure può essere chiamato 462 00:20:52,410 --> 00:20:54,060 un proxy o un qualsiasi numero di altre cose. 463 00:20:54,060 --> 00:20:56,710 Ma un certo dispositivo che ha che un indirizzo IP. 464 00:20:56,710 --> 00:20:59,450 E poi dietro quel dispositivo, all'interno di un edificio, 465 00:20:59,450 --> 00:21:03,030 all'interno di una casa o un appartamento, può essere qualsiasi numero di computer, ognuno dei quali 466 00:21:03,030 --> 00:21:06,460 avere un indirizzo IP che iniziano con uno di questi numeri qui. 467 00:21:06,460 --> 00:21:08,590 E fino a quando quel computer sa come convertire 468 00:21:08,590 --> 00:21:10,900 l'indirizzo pubblico di l'indirizzo privato, 469 00:21:10,900 --> 00:21:13,340 tutto può ordinare di lavoro come previsto. 470 00:21:13,340 --> 00:21:17,290 >> Ma l'inverso di questo è che se siete a casa e avete un fratello, 471 00:21:17,290 --> 00:21:19,650 e entrambi sono visitare qualche sito web, 472 00:21:19,650 --> 00:21:23,520 che il sito web non sa se è lei o il vostro fratello visitando il sito web, 473 00:21:23,520 --> 00:21:26,780 perché sembrano essere la stessa persona a causa tutti i dati 474 00:21:26,780 --> 00:21:30,050 sta attraversando quel router o quel punto centrale. 475 00:21:30,050 --> 00:21:32,220 >> Ma basta su questi dettagli di livello inferiore. 476 00:21:32,220 --> 00:21:37,770 Diamo uno sguardo a come indirizzi IP a volte venire forse dai media 477 00:21:37,770 --> 00:21:41,370 e come ora possiamo iniziare a rovinare, francamente, anche più spettacoli per voi. 478 00:21:41,370 --> 00:21:45,010 Se potessimo ridurre la luminosità luci per alcuni secondi. 479 00:21:45,010 --> 00:21:46,550 >> [RIPRODUZIONE VIDEO] 480 00:21:46,550 --> 00:21:49,310 >> -E 'Una a 32 bit su IPP 4 indirizzo. 481 00:21:49,310 --> 00:21:50,650 >> -IP ES internet-- 482 00:21:50,650 --> 00:21:52,800 >> Rete Privata, Rete privata di Tamia. 483 00:21:52,800 --> 00:22:05,670 484 00:22:05,670 --> 00:22:08,145 Lei è così sorprendente. 485 00:22:08,145 --> 00:22:09,630 -Dai Charlie. 486 00:22:09,630 --> 00:22:11,750 DAVID J. MALAN: E ' un indirizzo IP specchio. 487 00:22:11,750 --> 00:22:15,093 Sta facendoci guardare che lei sta facendo in tempo reale. 488 00:22:15,093 --> 00:22:16,285 >> [FINE RIPRODUZIONE] 489 00:22:16,285 --> 00:22:17,130 >> DAVID J. MALAN: OK. 490 00:22:17,130 --> 00:22:18,480 Così un paio di problemi con questo. 491 00:22:18,480 --> 00:22:22,740 Così uno, quello che stiamo cercando a qui sullo schermo 492 00:22:22,740 --> 00:22:25,290 è un codice scritto in un linguaggio chiamato Objective-C, 493 00:22:25,290 --> 00:22:28,020 che è una specie di un successore il linguaggio C che stiamo facendo. 494 00:22:28,020 --> 00:22:30,150 Questo non ha assolutamente nulla a che fare con la programmazione. 495 00:22:30,150 --> 00:22:32,399 In realtà, come meglio posso dire, questo è un programma di disegno 496 00:22:32,399 --> 00:22:38,360 che qualcuno scaricato dal Internet in qualche modo coinvolge pastelli. 497 00:22:38,360 --> 00:22:43,660 >> Forse meno eclatanti è che questo indirizzo IP, valido o non valido? 498 00:22:43,660 --> 00:22:44,520 >> PUBBLICO: non valido. 499 00:22:44,520 --> 00:22:48,479 >> DAVID J. MALAN: Non valido, perché 275 è, naturalmente, non tra 0 e 255. 500 00:22:48,479 --> 00:22:51,770 Anche questo è probabilmente OK però, perché non si vuole di gruppo di matti 501 00:22:51,770 --> 00:22:54,790 che sono come pausa la TV sul proprio TiVo e poi visitare la IP per vedere 502 00:22:54,790 --> 00:22:56,290 se c'è realmente qualcosa. 503 00:22:56,290 --> 00:22:58,200 In modo che uno è un po 'meno eclatanti. 504 00:22:58,200 --> 00:23:00,990 Ma si rendono conto che è troppo sorta di tutto intorno a noi. 505 00:23:00,990 --> 00:23:04,980 >> Così, naturalmente, nessuno di noi ha mai davvero digitare indirizzi numerici 506 00:23:04,980 --> 00:23:06,410 nei nostri browser. 507 00:23:06,410 --> 00:23:09,580 Sarebbe una specie di brutta cosa se Google, per visitare Google, 508 00:23:09,580 --> 00:23:15,060 si doveva andare a 123.46.57.89. 509 00:23:15,060 --> 00:23:17,007 E il mondo intero ha avuto a ricordare proprio questo. 510 00:23:17,007 --> 00:23:19,090 E, francamente, abbiamo tipo di visto questo problema prima. 511 00:23:19,090 --> 00:23:24,130 Indietro nel giorno in cui la gente non lo fanno avere i telefoni cellulari ed elenchi di contatti, 512 00:23:24,130 --> 00:23:27,640 e le aziende in realtà still-- realtà, Credo che le aziende hanno ancora 800 513 00:23:27,640 --> 00:23:30,600 numeri e il like-- ma è generalmente vedere i numeri pubblicizzati 514 00:23:30,600 --> 00:23:36,480 come 1-800-RACCOGLIERE, C-O-L-L-E-C-T. Perché nessuno può davvero ricordare, 515 00:23:36,480 --> 00:23:39,754 quando vede una pubblicità su un autobus o cartellone pubblicitario, quello che qualcuno di numero, 516 00:23:39,754 --> 00:23:42,420 ma possono probabilmente, con una maggiore probabilità, ricorda una parola. 517 00:23:42,420 --> 00:23:44,530 >> Così abbiamo adottato la stessa tipo di sistema al mondo 518 00:23:44,530 --> 00:23:48,290 di Internet per cui c'è un sistema dei nomi di dominio in modo che noi umani possiamo 519 00:23:48,290 --> 00:23:52,340 digitare google.com, facebook.com, yale.edu, harvard.edu, 520 00:23:52,340 --> 00:23:56,140 e lasciare che la cifra computer ciò che il relativo IP 521 00:23:56,140 --> 00:23:58,480 indirizzo è per un determinato nome. 522 00:23:58,480 --> 00:24:01,620 >> E il modo di fare questo nel mondo reale è che per $ 10 all'anno, 523 00:24:01,620 --> 00:24:05,900 forse $ 50 all'anno, è possibile acquistare un dominio nome, o realmente affittare un nome di dominio. 524 00:24:05,900 --> 00:24:09,860 E poi chi si sta pagando affittare quel nome a dominio, 525 00:24:09,860 --> 00:24:14,069 dite loro che nel mondo sa che cosa il vostro indirizzo IP. 526 00:24:14,069 --> 00:24:16,360 E noi non entreremo nei questi particolari, ma molti di voi 527 00:24:16,360 --> 00:24:18,750 potrebbe desiderare, per finale progetti, a firmare in realtà su 528 00:24:18,750 --> 00:24:22,120 per il proprio web hosting società, o gratuito per 529 00:24:22,120 --> 00:24:23,500 o per un paio di dollari al mese. 530 00:24:23,500 --> 00:24:26,100 Alcuni di voi potrebbero desiderare di comprare, per un paio di dollari, il proprio nome di dominio, 531 00:24:26,100 --> 00:24:28,900 solo per divertimento o per avviare un'impresa o un sito personale o simile. 532 00:24:28,900 --> 00:24:30,880 >> E rendersi conto che tutto di che in ultima analisi 533 00:24:30,880 --> 00:24:35,260 bollire fino a che ti dice il mondo ciò che l'indirizzo IP del server è. 534 00:24:35,260 --> 00:24:37,740 E poi questi DNS server effettivamente prendere cura 535 00:24:37,740 --> 00:24:39,910 di informare il resto del mondo. 536 00:24:39,910 --> 00:24:41,830 Quindi tutto un server DNS ha, insomma, dentro 537 00:24:41,830 --> 00:24:44,780 della sua memoria è come la equivalente di un foglio di calcolo di Google 538 00:24:44,780 --> 00:24:49,420 o un foglio di calcolo Excel con almeno due colonne, una delle quali nomi, 539 00:24:49,420 --> 00:24:52,100 come harvard.edu, e yale.edu, e google.com. 540 00:24:52,100 --> 00:24:55,870 E l'altra colonna ha la corrispondente indirizzo IP o IP 541 00:24:55,870 --> 00:24:56,382 indirizzi. 542 00:24:56,382 --> 00:24:57,590 E possiamo realmente vedere questo. 543 00:24:57,590 --> 00:24:59,881 Così il mio Mac-- e si può fare questo su computer Windows 544 00:24:59,881 --> 00:25:04,330 come well-- se apro una finestra di terminale qui, del tutto simile a quella di CD50 IDE, 545 00:25:04,330 --> 00:25:08,190 maggior parte dei computer hanno un comando chiamato nslookup, il nome del server sguardo. 546 00:25:08,190 --> 00:25:12,380 E se digito qualcosa del genere yale.edu e premere Invio, cosa 547 00:25:12,380 --> 00:25:19,250 Vorrei vedere se la mia rete collabora come lo ha fatto per più test prima classe 548 00:25:19,250 --> 00:25:24,584 began-- proviamo google.com. 549 00:25:24,584 --> 00:25:26,390 Naturalmente ora nulla funziona. 550 00:25:26,390 --> 00:25:27,190 È fantastico. 551 00:25:27,190 --> 00:25:30,660 D'accordo, una pausa per un momento. 552 00:25:30,660 --> 00:25:32,100 nslookup google.com. 553 00:25:32,100 --> 00:25:35,570 554 00:25:35,570 --> 00:25:38,660 >> Bene, vediamo se la attuale internet-- no. 555 00:25:38,660 --> 00:25:39,700 Questo è quello che è successo. 556 00:25:39,700 --> 00:25:43,090 Oh mio Dio, va bene. 557 00:25:43,090 --> 00:25:45,490 Il Wi-Fi è rotto. 558 00:25:45,490 --> 00:25:47,410 >> Ehi, volete sapere qual è il mio indirizzo IP è? 559 00:25:47,410 --> 00:25:49,722 Tutto ok. 560 00:25:49,722 --> 00:25:50,820 YaleSecure. 561 00:25:50,820 --> 00:25:53,330 Questo è il modo di risolvere cose come un informatico. 562 00:25:53,330 --> 00:25:54,617 Giriamo la connessione Wi-Fi spento. 563 00:25:54,617 --> 00:25:57,480 564 00:25:57,480 --> 00:25:59,450 OK. 565 00:25:59,450 --> 00:26:02,610 >> E in realtà, SCAZ, ti dispiace noi accedendo quello sicuro? 566 00:26:02,610 --> 00:26:06,246 In caso contrario, più prove are-- OK, grazie si Yale-- o è sul punto di rottura. 567 00:26:06,246 --> 00:26:07,370 Voglio andare in YaleSecure. 568 00:26:07,370 --> 00:26:09,880 569 00:26:09,880 --> 00:26:11,870 Oh, e forse saremo OK. 570 00:26:11,870 --> 00:26:12,686 Forse siamo indietro. 571 00:26:12,686 --> 00:26:16,810 572 00:26:16,810 --> 00:26:19,733 Ed è così che, come un computer scienziato fissare un computer. 573 00:26:19,733 --> 00:26:22,000 [Applausi] 574 00:26:22,000 --> 00:26:23,220 Tutto ok. 575 00:26:23,220 --> 00:26:27,160 Allora, dove sono stato in questo cosiddetta finestra di terminale, 576 00:26:27,160 --> 00:26:32,270 e se io NSLOOKUP yale.edu, ci andiamo. 577 00:26:32,270 --> 00:26:38,350 Così torno prima l'indirizzo IP il server DNS che il mio computer portatile sta usando. 578 00:26:38,350 --> 00:26:41,610 Quindi, oltre a un server DHCP che abbiamo parlato un momento fa raccontare 579 00:26:41,610 --> 00:26:44,720 qual è il mio IP mio portatile indirizzo è, che il server DHCP 580 00:26:44,720 --> 00:26:46,860 mi dice anche quale server DNS da utilizzare. 581 00:26:46,860 --> 00:26:48,860 Altrimenti avrei digitare manualmente questo. 582 00:26:48,860 --> 00:26:50,359 >> Ma non è tutto ciò che interessante. 583 00:26:50,359 --> 00:26:54,310 Quello che mi interessa è che questo è il Indirizzo IP del sito web di Yale a quanto pare. 584 00:26:54,310 --> 00:26:55,470 Quindi, in realtà, proviamo questo. 585 00:26:55,470 --> 00:27:02,710 Lasciami andare su in un browser e andare a http: //, e quindi tale indirizzo IP, 586 00:27:02,710 --> 00:27:04,220 e premere Invio. 587 00:27:04,220 --> 00:27:06,700 E vediamo. 588 00:27:06,700 --> 00:27:09,587 Questo è in quale altro modo si può visitare i siti web di Yale. 589 00:27:09,587 --> 00:27:10,920 Ora non è tutto ciò che memorabile. 590 00:27:10,920 --> 00:27:12,220 Come, il pre-frosh probabilmente non stanno andando 591 00:27:12,220 --> 00:27:15,310 a ricordare questo particolare indirizzo se ha detto di visitare lì dopo aver visitato. 592 00:27:15,310 --> 00:27:16,580 Ma non sembra funzionare. 593 00:27:16,580 --> 00:27:21,179 E così DNS davvero ci permette solo di avere indirizzi molto più umano amichevoli. 594 00:27:21,179 --> 00:27:23,220 Ma non lo fanno necessariamente solo dare una risposta. 595 00:27:23,220 --> 00:27:25,640 >> In realtà, quando sei un davvero grande tech, 596 00:27:25,640 --> 00:27:27,620 probabilmente si desidera hanno un sacco di server. 597 00:27:27,620 --> 00:27:29,027 E anche questo è fuorviante. 598 00:27:29,027 --> 00:27:31,110 Quindi Yale probabilmente non lo fa avere un solo server web. 599 00:27:31,110 --> 00:27:34,150 Google probabilmente non ha a soli 10 o giù di lì server web. 600 00:27:34,150 --> 00:27:36,960 Google in particolare, probabilmente ha migliaia di server web 601 00:27:36,960 --> 00:27:40,030 in tutto il mondo in grado di rispondere alle richieste da parte di persone come noi. 602 00:27:40,030 --> 00:27:43,870 >> Ma usano anche una tecnologia chiamata il bilanciamento del carico, che per farla breve, 603 00:27:43,870 --> 00:27:48,810 ha solo pochi dispositivi nel mondo distribuendo il carico su più server. 604 00:27:48,810 --> 00:27:52,320 Quindi è un po 'come una tela di ragno, se si dispacciamento le richieste. 605 00:27:52,320 --> 00:27:54,380 Ma per ora, tutto ciò che è interessante per oggi 606 00:27:54,380 --> 00:27:56,870 che è un nome di dominio come google.com anche possibile 607 00:27:56,870 --> 00:28:00,100 avere più indirizzi IP del genere. 608 00:28:00,100 --> 00:28:04,610 >> Ma come fa tutti i nostri dati effettivamente andare avanti e indietro poi alla fine? 609 00:28:04,610 --> 00:28:08,320 Beh, si scopre che ci sono questi cose chiamati router su internet. 610 00:28:08,320 --> 00:28:10,980 E che cosa è un router per la tanto che già conoscete? 611 00:28:10,980 --> 00:28:13,730 E ho usato la parola un paio volte nel contesto di una casa, 612 00:28:13,730 --> 00:28:17,155 ma in termini semplici, cosa fa un router fare? 613 00:28:17,155 --> 00:28:18,780 Dammi solo una supposizione basata sul suo nome? 614 00:28:18,780 --> 00:28:20,082 >> PUBBLICO: Quindi una strada o un percorso? 615 00:28:20,082 --> 00:28:21,790 DAVID J. MALAN: So si tratta di una strada o un percorso. 616 00:28:21,790 --> 00:28:23,980 Quindi un percorso è una strada o il percorso, assolutamente. 617 00:28:23,980 --> 00:28:27,000 E un router, quindi un dispositivo che in realtà informazioni percorsi, 618 00:28:27,000 --> 00:28:29,690 sarebbe spostare i dati tra i punti A e B. 619 00:28:29,690 --> 00:28:31,920 >> E così nel fact-- e questo è forse quando 620 00:28:31,920 --> 00:28:34,510 voi Google raffigurazioni di router sul mondo, tutti si ottiene 621 00:28:34,510 --> 00:28:35,900 sono diagrammi di marketing di formaggio. 622 00:28:35,900 --> 00:28:38,550 E così questo è una sorta di più un rappresentante che ho trovato 623 00:28:38,550 --> 00:28:39,841 che sembrava moderatamente interessante. 624 00:28:39,841 --> 00:28:44,170 Ognuno di questi punti o barlumi di speranza nel mondo rappresenta un router. 625 00:28:44,170 --> 00:28:47,210 E ciascuno di essi ha una linea tra qualche altro router. 626 00:28:47,210 --> 00:28:49,090 >> Perché in effetti, ci sono migliaia, probabilmente 627 00:28:49,090 --> 00:28:52,560 milioni di router in tutto il mondo, alcuni dei quali sono nelle nostre case 628 00:28:52,560 --> 00:28:56,070 e sui nostri campus, ma un sacco di che sono di proprietà di grandi aziende 629 00:28:56,070 --> 00:29:00,250 e sono interconnesse in modo che se desidera inviare alcuni dati da qui a Yale 630 00:29:00,250 --> 00:29:04,430 torna a casa a Cambridge, Yale probabilmente non ha un singolo cavo, certamente, 631 00:29:04,430 --> 00:29:05,650 andando direttamente a Harvard. 632 00:29:05,650 --> 00:29:07,399 E Yale non ha un unico cavo che va 633 00:29:07,399 --> 00:29:10,010 al MIT, o di Stanford, o a Berkeley, o di Google, 634 00:29:10,010 --> 00:29:11,820 o un qualsiasi numero di destinazioni. 635 00:29:11,820 --> 00:29:14,760 >> Piuttosto, Yale, Harvard e, e tutti gli altri su internet 636 00:29:14,760 --> 00:29:17,610 non ha uno o più router ad esso collegato, forse 637 00:29:17,610 --> 00:29:18,810 alla periferia della città universitaria. 638 00:29:18,810 --> 00:29:21,690 In modo che quando i miei dati vuole lasciare campus di Yale, 639 00:29:21,690 --> 00:29:24,770 va a quel router più vicino, come rappresentato da uno di questi punti. 640 00:29:24,770 --> 00:29:27,940 E poi che i dati del router fuori se per inviare in questo modo, o in questo modo, 641 00:29:27,940 --> 00:29:33,440 o in questo modo, o in questo modo basano su un altro tavolo nella sua memoria, 642 00:29:33,440 --> 00:29:36,870 un altro file Excel o Google foglio di calcolo in una colonna 643 00:29:36,870 --> 00:29:41,315 dice, se il vostro indirizzo IP inizia con il numero uno, andare in questo modo. 644 00:29:41,315 --> 00:29:43,690 Se l'indirizzo IP inizia con un numero di due, andare in quel modo. 645 00:29:43,690 --> 00:29:47,040 E così si può abbattere numericamente di avere il router invio 646 00:29:47,040 --> 00:29:49,040 i dati in tutte le direzioni. 647 00:29:49,040 --> 00:29:51,419 >> E possiamo tipo di vedere questo. 648 00:29:51,419 --> 00:29:54,210 Andiamo avanti in questo terminale di nuovo la finestra, e mi permetta di andare avanti 649 00:29:54,210 --> 00:30:00,700 e tracciare la rotta verso, diciamo, www.mit.edu, 650 00:30:00,700 --> 00:30:02,970 che è un paio di centinaia di miglia di distanza. 651 00:30:02,970 --> 00:30:04,500 E 'stato davvero dannatamente veloce. 652 00:30:04,500 --> 00:30:06,290 >> Allora cosa è successo? 653 00:30:06,290 --> 00:30:10,360 Quindi, in soli sette passi, e in soli quattro millisecondi, 654 00:30:10,360 --> 00:30:14,660 Ho inviato i dati su Internet da qui a Yale al MIT. 655 00:30:14,660 --> 00:30:18,240 Ognuna di queste righe, è possibile forse indovinare rappresenta ora che cosa? 656 00:30:18,240 --> 00:30:19,060 >> PUBBLICO: Un router. 657 00:30:19,060 --> 00:30:20,101 >> DAVID J. MALAN: Un router. 658 00:30:20,101 --> 00:30:24,090 Così in effetti, sembra che ci sia circa sette o giù di lì router, 659 00:30:24,090 --> 00:30:29,350 o sei router tra me fisicamente a scuola di diritto di Yale qui 660 00:30:29,350 --> 00:30:31,612 e il sito web del MIT laggiù. 661 00:30:31,612 --> 00:30:34,570 E cosa possiamo ricavare da questo è come follows-- e fammi pulirlo. 662 00:30:34,570 --> 00:30:38,180 Ho intenzione di eseguire nuovamente con un comando argomento della riga di q 1 a proprio dire, 663 00:30:38,180 --> 00:30:39,300 dammi solo una query. 664 00:30:39,300 --> 00:30:40,800 Per impostazione predefinita, trace route fa tre. 665 00:30:40,800 --> 00:30:42,350 Ed è per questo che abbiamo visto mazzi di numeri. 666 00:30:42,350 --> 00:30:44,850 Voglio vedere un minor numero di numeri solo per mantenere il pulitore uscita. 667 00:30:44,850 --> 00:30:46,280 E vediamo cosa succede. 668 00:30:46,280 --> 00:30:49,220 >> Quindi per qualsiasi motivo, qualcuno al pensiero di Yale 669 00:30:49,220 --> 00:30:54,130 che sarebbe stato divertente per chiamare il vostro arubacentral router di default, che 670 00:30:54,130 --> 00:30:57,920 è su VLAN o virtuale LAN, locale virtuale 671 00:30:57,920 --> 00:30:59,810 30-- rete in modo da probabilmente almeno 672 00:30:59,810 --> 00:31:03,050 29 router.net.yale.internal others--. 673 00:31:03,050 --> 00:31:06,660 Ed .internal qui è una specie di falso dominio di primo livello pensato per essere utilizzato solo 674 00:31:06,660 --> 00:31:07,210 nel campus. 675 00:31:07,210 --> 00:31:10,335 E notare l'indirizzo IP corrispondente di quel router, ovunque esso sia qui 676 00:31:10,335 --> 00:31:13,920 nel campus, è 172.28.204.129. 677 00:31:13,920 --> 00:31:17,470 E ci sono voluti 36 millisecondi per andare da qui a lì. 678 00:31:17,470 --> 00:31:18,050 >> Storia divertente. 679 00:31:18,050 --> 00:31:19,716 Torneremo a che in un attimo. 680 00:31:19,716 --> 00:31:22,920 Ma ora il secondo router-- a che a quanto pare arubacentral 681 00:31:22,920 --> 00:31:25,790 ha un certo tipo di fisico collegamento più likely-- 682 00:31:25,790 --> 00:31:27,249 gli esseri umani non si sono preoccupati nominarlo. 683 00:31:27,249 --> 00:31:30,373 Gli umani Yale non si sono preoccupati di denominazione perché è all'interno della vostra rete 684 00:31:30,373 --> 00:31:30,940 sembra. 685 00:31:30,940 --> 00:31:32,520 E quindi ha solo un indirizzo IP. 686 00:31:32,520 --> 00:31:34,660 >> Ma poi una terza router qui sulla rete di Yale 687 00:31:34,660 --> 00:31:36,700 questo è probabilmente un po ' più lontano ancora 688 00:31:36,700 --> 00:31:41,330 si chiama cen10g qualunque cioè asr.net.yale.internal. 689 00:31:41,330 --> 00:31:43,040 E ha anche un indirizzo IP. 690 00:31:43,040 --> 00:31:44,990 >> Ora, perché sono questi i numeri tipo di fluttuanti? 691 00:31:44,990 --> 00:31:47,890 2.9, 1.4, 36? 692 00:31:47,890 --> 00:31:48,840 I router affollata. 693 00:31:48,840 --> 00:31:50,420 E ottengono congestionato e backup. 694 00:31:50,420 --> 00:31:53,200 Ci sono migliaia di persone su questo campus utilizzando internet in questo momento. 695 00:31:53,200 --> 00:31:56,050 Ci sono un centinaio di persone in questo camera con internet in questo momento. 696 00:31:56,050 --> 00:31:59,030 >> E così quello che sta succedendo è che i router potrebbero ottenere congestionato. 697 00:31:59,030 --> 00:32:01,350 E così quei tempi potrebbe variare un po '. 698 00:32:01,350 --> 00:32:04,620 Ecco, questo è il motivo per cui non lo fanno necessariamente aumentare semplicemente. 699 00:32:04,620 --> 00:32:07,510 >> Ma le cose si fanno tipo di interessante in fase quattro. 700 00:32:07,510 --> 00:32:13,040 A quanto pare tra Yale e punto quattro è un altro hop. 701 00:32:13,040 --> 00:32:16,480 E dov'è il router nella fase quattro, probabilmente? 702 00:32:16,480 --> 00:32:17,410 >> PUBBLICO: [incomprensibile] 703 00:32:17,410 --> 00:32:19,410 >> DAVID J. MALAN: JFK forse, forse in aeroporto. 704 00:32:19,410 --> 00:32:21,950 Ma per qualsiasi motivo, gli amministratori di sistema, in modo da 705 00:32:21,950 --> 00:32:24,140 geek che corrono per i server anni hanno chiamato router 706 00:32:24,140 --> 00:32:25,600 dopo il codice aeroporto più vicino. 707 00:32:25,600 --> 00:32:27,420 Così JFK probabilmente significa è solo un posto 708 00:32:27,420 --> 00:32:29,970 a New York, forse a Manhattan o uno dei quartieri. 709 00:32:29,970 --> 00:32:34,460 nyc2 denota, presumibilmente, un altro router che da qualche parte a New York. 710 00:32:34,460 --> 00:32:37,140 >> Io non so bene dove fila sei è qui, numero di router a sei. 711 00:32:37,140 --> 00:32:40,110 quest.net un grande ISP, fornitore di servizi Internet, 712 00:32:40,110 --> 00:32:43,240 che fornisce connettività internet ai grandi luoghi come Yale e altri. 713 00:32:43,240 --> 00:32:47,110 E poi quest'ultima, esso sembra che il MIT non ha nemmeno 714 00:32:47,110 --> 00:32:50,180 hanno un proprio sito web in necessariamente Cambridge, 715 00:32:50,180 --> 00:32:52,090 ma essi hanno in outsourcing il loro sito web, 716 00:32:52,090 --> 00:32:55,150 o almeno le server fisici, ad una società denominata Akamai. 717 00:32:55,150 --> 00:32:57,940 E Akamai in realtà è proprio in fondo la strada dal MIT a Cambridge 718 00:32:57,940 --> 00:32:58,790 si scopre. 719 00:32:58,790 --> 00:33:02,360 >> Ma rendersi conto anche che anche il pensiero si sta andando a www.mit.edu, 720 00:33:02,360 --> 00:33:05,200 potremmo davvero essere inviati ovunque nel mondo. 721 00:33:05,200 --> 00:33:06,960 >> E vediamo da qualche parte altra parte del mondo. 722 00:33:06,960 --> 00:33:09,240 Lasciami andare avanti e cancellare questa schermata e invece 723 00:33:09,240 --> 00:33:15,240 tracciare il percorso, solo una volta, in modo interrogare uno, per www.cnn.co.jp, 724 00:33:15,240 --> 00:33:18,390 home page giapponese per la CNN, il sito di notizie. 725 00:33:18,390 --> 00:33:20,660 E se ho colpito Entra subito, vediamo cosa succede. 726 00:33:20,660 --> 00:33:23,610 Stiamo di nuovo a partire da arubacentral. 727 00:33:23,610 --> 00:33:26,510 Stiamo quindi andando al router senza nome, qualcuno in più. 728 00:33:26,510 --> 00:33:29,527 Così ci sono voluti 12 luppolo raggiungere il Giappone questa volta. 729 00:33:29,527 --> 00:33:30,860 E vediamo cosa possiamo raccogliere. 730 00:33:30,860 --> 00:33:32,450 >> Così lo stesso hop, hop stesso. 731 00:33:32,450 --> 00:33:35,170 Leggermente diverso ora. 732 00:33:35,170 --> 00:33:36,380 Di interessante questo. 733 00:33:36,380 --> 00:33:40,870 Quindi immagino qui, stamford1 è un alcune città di distanza nel Connecticut anche. 734 00:33:40,870 --> 00:33:43,810 Questi router in fila sei e sette non hanno nomi. 735 00:33:43,810 --> 00:33:46,370 Ma questo è una specie di sorprendente. 736 00:33:46,370 --> 00:33:53,310 >> Quindi, quello che sembra essere tra i router passo sette e otto? 737 00:33:53,310 --> 00:33:54,760 E perché dici tanto? 738 00:33:54,760 --> 00:33:55,260 Sì? 739 00:33:55,260 --> 00:33:56,060 >> PUBBLICO: Ocean. 740 00:33:56,060 --> 00:33:57,640 >> DAVID J. MALAN: Probabilmente un oceano. 741 00:33:57,640 --> 00:34:01,366 Noi sappiamo che è vero come, intuitivamente, giusto? 742 00:34:01,366 --> 00:34:04,790 Ma possiamo confermare quanto tipo di specie di empiricamente perché? 743 00:34:04,790 --> 00:34:06,860 Che cosa è cambiato tra righe sette e otto? 744 00:34:06,860 --> 00:34:09,429 745 00:34:09,429 --> 00:34:14,739 >> Ci è voluto molto più tempo per andare a qualunque cosa questo router senza nome sette è, 746 00:34:14,739 --> 00:34:18,670 probabilmente da qualche parte nel Uniti continentali, a un passo otto, 747 00:34:18,670 --> 00:34:22,639 che è probabilmente da qualche parte in Giappone in base al nome di dominio del .jp lì. 748 00:34:22,639 --> 00:34:25,719 E così quelli supplementari centinaia di qualcosa di millisecondi 749 00:34:25,719 --> 00:34:28,960 o 90 o giù di lì è millisecondi il risultato dei nostri dati in corso 750 00:34:28,960 --> 00:34:31,100 su una bella grande specchio d'acqua. 751 00:34:31,100 --> 00:34:34,570 >> Ora curiosamente, sembra che forse che il cavo attraversa il territorio della federazione. 752 00:34:34,570 --> 00:34:37,070 Se stiamo davvero andando oltre la West Coast per raggiungere il Giappone, 753 00:34:37,070 --> 00:34:39,111 è una specie di lungo strada se andiamo nella direzione opposta. 754 00:34:39,111 --> 00:34:41,400 Quindi non è tutto chiaro cosa sta succedendo fisicamente. 755 00:34:41,400 --> 00:34:43,830 Ma il fatto che ogni hop aggiuntivo davvero 756 00:34:43,830 --> 00:34:46,020 ha preso nettamente più lungo di ogni altro, è 757 00:34:46,020 --> 00:34:50,440 abbastanza bene la conferma che CNN Web server giapponese è probabilmente davvero 758 00:34:50,440 --> 00:34:51,310 in Giappone. 759 00:34:51,310 --> 00:34:54,089 Ed è certamente più lontano via di MIT è stato. 760 00:34:54,089 --> 00:34:56,380 E vale la pena notare troppo, i dati non sono necessariamente 761 00:34:56,380 --> 00:34:58,794 andando a viaggiare per il più breve possibile. 762 00:34:58,794 --> 00:35:00,960 In realtà, se si gioca in giro con trace route a casa 763 00:35:00,960 --> 00:35:04,170 semplicemente prendendo in siti web casuale, è possono scoprire che solo invia un'email 764 00:35:04,170 --> 00:35:06,490 o visitare un sito web che è qui a New Haven, 765 00:35:06,490 --> 00:35:09,200 a volte i dati potrebbero primo fare una deviazione, scendere a DC, 766 00:35:09,200 --> 00:35:10,450 e poi tornare su. 767 00:35:10,450 --> 00:35:12,860 E questo è solo a causa di le decisioni di routing dinamico 768 00:35:12,860 --> 00:35:14,650 che questi computer stanno facendo. 769 00:35:14,650 --> 00:35:18,930 >> Ora solo per divertimento, il team di produzione rifilato uno di questi video per noi 770 00:35:18,930 --> 00:35:20,807 di essere solo un po 'più succinto. 771 00:35:20,807 --> 00:35:23,640 Ma a noi dare un senso rapido qui-- e siamo in grado di lasciare le luci on-- 772 00:35:23,640 --> 00:35:32,363 da quanta cablaggio è in realtà portando tutti i nostri dati. 773 00:35:32,363 --> 00:35:33,029 [RIPRODUZIONE VIDEO] 774 00:35:33,029 --> 00:35:36,023 [RIPRODUZIONE DI BRANI MUSICALI] 775 00:35:36,023 --> 00:36:31,911 776 00:36:31,911 --> 00:36:32,777 [FINE RIPRODUZIONE] 777 00:36:32,777 --> 00:36:35,860 DAVID J. MALAN: Tutti i video di rete avere la musica dal suono fresco a quanto pare. 778 00:36:35,860 --> 00:36:38,084 Ecco, questo è per ottenere solo un senso di quanta avere 779 00:36:38,084 --> 00:36:39,500 sta succedendo sotto il cofano. 780 00:36:39,500 --> 00:36:41,355 >> Ma diamo un'occhiata a un livello leggermente inferiore ora 781 00:36:41,355 --> 00:36:44,150 a quali dati è in realtà attraversare quelle linee, 782 00:36:44,150 --> 00:36:46,720 e andando anche in modalità wireless in una camera come questo. 783 00:36:46,720 --> 00:36:49,580 >> Così si scopre quando si richiede una pagina web, o inviare una e-mail, 784 00:36:49,580 --> 00:36:53,670 o ricevere una pagina web, o una e-mail, o un messaggio Gchat, o un messaggio di Facebook, 785 00:36:53,670 --> 00:36:57,800 o simili, che non è solo uno grossa fetta di bit che scorre in modalità wireless 786 00:36:57,800 --> 00:37:00,600 attraverso l'aria o elettronicamente su un filo. 787 00:37:00,600 --> 00:37:03,680 Invece, tale domanda o risposta è generalmente 788 00:37:03,680 --> 00:37:05,810 chunked in pezzi separati. 789 00:37:05,810 --> 00:37:08,880 >> Quindi, in altre parole, quando si dispone di una chiedere di fare di un altro computer, 790 00:37:08,880 --> 00:37:10,980 o si torna una risposta da un altro computer-- 791 00:37:10,980 --> 00:37:15,800 come supponiamo, per esempio, se unfamiliar-- come troppe persone 792 00:37:15,800 --> 00:37:18,400 sembrano essere questi days-- se non hanno familiarità con questo-- 793 00:37:18,400 --> 00:37:20,200 Non questo fellow-- costui. 794 00:37:20,200 --> 00:37:23,950 Quindi supponiamo che questo è un messaggio che Voglio inviare a qualcuno dietro. 795 00:37:23,950 --> 00:37:28,930 Chi ha nel retro vorrebbe ricevere un'immagine di Rick Astley oggi? 796 00:37:28,930 --> 00:37:29,805 OK, come ti chiami? 797 00:37:29,805 --> 00:37:30,590 >> PUBBLICO: Cole. 798 00:37:30,590 --> 00:37:31,306 >> DAVID J. MALAN: Che cosa è? 799 00:37:31,306 --> 00:37:31,672 >> PUBBLICO: Cole. 800 00:37:31,672 --> 00:37:32,040 >> DAVID J. MALAN: Holt? 801 00:37:32,040 --> 00:37:32,540 H-O? 802 00:37:32,540 --> 00:37:33,711 PUBBLICO: C-O-L-E. 803 00:37:33,711 --> 00:37:34,960 David J. MALAN: C-O-L-E, Cole. 804 00:37:34,960 --> 00:37:35,520 Scusate. 805 00:37:35,520 --> 00:37:36,430 C-O-L-E. 806 00:37:36,430 --> 00:37:36,930 Tutto ok. 807 00:37:36,930 --> 00:37:40,990 Quindi, se voglio inviare questo Cole immaginare qui, lo sai 808 00:37:40,990 --> 00:37:42,410 è una specie di un grande quadro, giusto? 809 00:37:42,410 --> 00:37:44,472 Questo potrebbe essere un qualche kilobyte, pochi megabyte, 810 00:37:44,472 --> 00:37:45,930 soprattutto se si tratta di alta risoluzione. 811 00:37:45,930 --> 00:37:48,660 E io in realtà non voglio smettere tutti gli altri di usare Internet 812 00:37:48,660 --> 00:37:50,680 proprio mentre io mando questo davvero grande, immagine di alta qualità 813 00:37:50,680 --> 00:37:52,138 di Rick Astley in tutta la stanza. 814 00:37:52,138 --> 00:37:55,310 Mi piacerebbe vostri dati per continuare a attraversare la rete e il Wi-Fi 815 00:37:55,310 --> 00:37:56,100 anche. 816 00:37:56,100 --> 00:38:00,100 >> E così fa sense-- e questo è recuperabili elettronicamente, 817 00:38:00,100 --> 00:38:01,780 non tanto nel mondo reale. 818 00:38:01,780 --> 00:38:04,904 In realtà, questo sta per avere più significati se si prende la mia uscita audio. 819 00:38:04,904 --> 00:38:08,360 Quindi, se mi strappo questo il mezzo come questo qui, 820 00:38:08,360 --> 00:38:11,912 questo ora può viaggiare il Internet in modo più efficiente, 821 00:38:11,912 --> 00:38:13,120 perché è un pezzo più piccolo. 822 00:38:13,120 --> 00:38:16,780 Quindi, con minore probabilità sta andando entrare in collisione con il traffico di qualcun altro 823 00:38:16,780 --> 00:38:17,650 su internet. 824 00:38:17,650 --> 00:38:21,240 >> E così ciò che il computer fa davvero quando si vuole inviare un messaggio a Cole 825 00:38:21,240 --> 00:38:24,917 è pezzi di un messaggio come questo in piccoli pezzi, frammenti per così dire. 826 00:38:24,917 --> 00:38:28,000 E poi li mette dentro di ciò che chiameremo sorta di buste virtuali. 827 00:38:28,000 --> 00:38:29,620 >> Così ho quattro buste di carta qui. 828 00:38:29,620 --> 00:38:32,690 E ho li pre-numerati, uno, due, tre e quattro. 829 00:38:32,690 --> 00:38:35,800 E quello che ho intenzione di fare sul fronte di questo, proprio come un normale mailing, 830 00:38:35,800 --> 00:38:38,000 è ho intenzione di mettere il nome di Cole lì. 831 00:38:38,000 --> 00:38:41,270 E poi nella parte superiore, sono andando a mettere il mio nome lì, 832 00:38:41,270 --> 00:38:44,995 David, in modo che il primo tale pacchetto Sto inviando là fuori su internet 833 00:38:44,995 --> 00:38:47,620 sembra un po 'qualcosa di simile queste, le caratteristiche salienti 834 00:38:47,620 --> 00:38:50,830 di cui sono che ha un affrontare, un dall'indirizzo, 835 00:38:50,830 --> 00:38:52,670 e anche un numero, così che che si spera 836 00:38:52,670 --> 00:38:55,680 sono informazioni sufficienti per Cole per ricostruire questo messaggio. 837 00:38:55,680 --> 00:38:58,820 >> Così mi permetta di fare la stessa cosa qui, il stesso qui, e lo stesso qui, 838 00:38:58,820 --> 00:39:01,310 scrivere il suo nome nella Per campo su ognuna di esse. 839 00:39:01,310 --> 00:39:04,240 E allora andiamo avanti e mettere queste immagini all'interno. 840 00:39:04,240 --> 00:39:06,540 >> Così qui è un pacchetto che è pronto ad andare. 841 00:39:06,540 --> 00:39:09,780 Ecco un altro pacchetto che è pronto ad andare. 842 00:39:09,780 --> 00:39:14,100 Ecco un terzo pacchetto che è pronto ad andare. 843 00:39:14,100 --> 00:39:16,870 Ed ecco una quarta pacchetto che è pronto ad andare. 844 00:39:16,870 --> 00:39:19,849 >> E ora che cosa è interessante come internet in funziona la realtà 845 00:39:19,849 --> 00:39:22,140 è che, anche se ho quattro pacchetti, tutte 846 00:39:22,140 --> 00:39:24,730 sono destinate a uno stesso posizione, non sono necessariamente 847 00:39:24,730 --> 00:39:26,870 andando a percorrere la stessa strada. 848 00:39:26,870 --> 00:39:32,070 E così, anche se avrei potuto consegnare questi pacchetti all'esterno al router più vicino 849 00:39:32,070 --> 00:39:36,660 diciamo che, se si desidera inviare loro in tutte le direzioni, vediamo 850 00:39:36,660 --> 00:39:40,706 ciò che effettivamente accade, l'obiettivo di che è quello di ottenere loro in ultima analisi, a Cole. 851 00:39:40,706 --> 00:39:44,850 852 00:39:44,850 --> 00:39:48,770 E in effetti, non sono già procedere necessariamente nella stessa direzione. 853 00:39:48,770 --> 00:39:50,510 E questo è bene. 854 00:39:50,510 --> 00:39:52,480 Questo è un po 'scomodo e lo stile Oprah oggi. 855 00:39:52,480 --> 00:39:56,540 >> E ora lasciatemi deliberatamente prendere quella posteriore. 856 00:39:56,540 --> 00:40:00,196 E ora Cole, se piacerebbe rimontarlo nel miglior modo possibile. 857 00:40:00,196 --> 00:40:06,610 858 00:40:06,610 --> 00:40:10,180 Naturalmente, tutti possiamo indovinare che cosa la conclusione qui sta per essere. 859 00:40:10,180 --> 00:40:12,600 Si sta andando ad avere 3/4 di Rick Astley in un attimo. 860 00:40:12,600 --> 00:40:15,920 861 00:40:15,920 --> 00:40:19,291 E qual è però la implicazione di questo? 862 00:40:19,291 --> 00:40:20,540 Si vuole cercare di tenere in su? 863 00:40:20,540 --> 00:40:23,540 Abbiamo una macchina fotografica puntato su di te se vuoi 864 00:40:23,540 --> 00:40:26,226 a posare con Rick Astley qui. 865 00:40:26,226 --> 00:40:28,610 866 00:40:28,610 --> 00:40:29,510 Ci siamo. 867 00:40:29,510 --> 00:40:30,410 Bello. 868 00:40:30,410 --> 00:40:33,230 >> Ma ti sembra di essere dispersi un frammento di Rick Astley. 869 00:40:33,230 --> 00:40:37,015 Così si scopre che Internet è generalmente guidato da non solo IP, 870 00:40:37,015 --> 00:40:39,890 ma in realtà abbiamo sentito per lo inizio della lezione in quel video-- 871 00:40:39,890 --> 00:40:42,473 e probabilmente avete visto questo acronimo di più often-- ciò che realmente 872 00:40:42,473 --> 00:40:44,360 è il protocollo si tende a sentir parlare? 873 00:40:44,360 --> 00:40:45,120 >> PUBBLICO: TCP / IP. 874 00:40:45,120 --> 00:40:48,090 >> DAVID J. MALAN: TCP / IP, che è solo una combinazione 875 00:40:48,090 --> 00:40:49,940 di due protocolli, uno chiamato IP. 876 00:40:49,940 --> 00:40:52,640 Che ancora una volta, è solo il set delle convenzioni attraverso la quale noi 877 00:40:52,640 --> 00:40:54,740 affrontare ogni computer in internet. 878 00:40:54,740 --> 00:40:56,930 E poi TCP, che serve un altro scopo. 879 00:40:56,930 --> 00:41:00,110 >> TCP è un protocollo che tipicamente utilizzare in combinazione 880 00:41:00,110 --> 00:41:04,410 con IP, che tra l'altro cose, garantisce la consegna. 881 00:41:04,410 --> 00:41:08,860 Infatti, TCP è il protocollo nota che uno dei pacchetti 882 00:41:08,860 --> 00:41:10,930 a quanto pare non arrivare a Cole, perché sembra 883 00:41:10,930 --> 00:41:12,830 per essere il numero quattro dispersi su quattro. 884 00:41:12,830 --> 00:41:16,530 E così quello che il TCP, un protocollo lo fa, è dice Cole, 885 00:41:16,530 --> 00:41:19,850 hey Cole, se si riceve solo tre su quattro pacchetti, 886 00:41:19,850 --> 00:41:22,600 mi quale dire mancano, in sostanza, 887 00:41:22,600 --> 00:41:25,570 e poi la mia ragione di vita dovrebbe essere quello di ritrasmettere quello. 888 00:41:25,570 --> 00:41:28,580 >> E così, se anch'io, il mittente, si utilizza il protocollo TCP, 889 00:41:28,580 --> 00:41:31,810 Dovrei quindi creare un nuovo packet-- Non questo rugosa uno qui-- 890 00:41:31,810 --> 00:41:35,980 ritrasmettere proprio questo pezzo di , in modo che alla fine ha Cole 891 00:41:35,980 --> 00:41:38,280 un ricordo completo, se non altro. 892 00:41:38,280 --> 00:41:43,000 Ma in ultima analisi, in modo che i dati in realtà arriva a sua corretta destinazione. 893 00:41:43,000 --> 00:41:48,020 >> Ma, purtroppo, scrivendo il nome di Cole sul fronte non è sufficiente, di per sé. 894 00:41:48,020 --> 00:41:50,270 E davvero, non vorrei scrivere Nome di Cole, ma probabilmente 895 00:41:50,270 --> 00:41:51,655 il suo indirizzo IP sulla busta. 896 00:41:51,655 --> 00:41:52,780 E non vorrei scrivere David. 897 00:41:52,780 --> 00:41:56,550 Mi piacerebbe scrivere il mio indirizzo IP sulla busta in modo che i computer possono realmente 898 00:41:56,550 --> 00:41:57,999 comunicare avanti e indietro. 899 00:41:57,999 --> 00:42:00,540 Ma si scopre che i computer può fare molto più di servire fino 900 00:42:00,540 --> 00:42:01,900 immagini di Rick Astley. 901 00:42:01,900 --> 00:42:05,340 Essi possono anche inviare nuovamente e ricevere e-mail, messaggi di chat. 902 00:42:05,340 --> 00:42:09,780 Possono fare cose come il trasferimento di file, e qualsiasi numero di altri strumenti 903 00:42:09,780 --> 00:42:12,330 si utilizza su Internet, server possono fare in questi giorni. 904 00:42:12,330 --> 00:42:15,300 >> E solo perché una società, o una scuola, o di una persona 905 00:42:15,300 --> 00:42:19,420 vuole avere un web server, e un server di posta elettronica, e un server di chat, 906 00:42:19,420 --> 00:42:21,420 non significa che avete bisogno di tre computer. 907 00:42:21,420 --> 00:42:26,200 Si può avere solo un computer che esegue più servizi, per così dire. 908 00:42:26,200 --> 00:42:29,190 >> E così, quando Cole riceve un messaggio del genere, come 909 00:42:29,190 --> 00:42:32,940 fa il suo computer sa se dimostrare che la foto nel proprio browser, 910 00:42:32,940 --> 00:42:37,730 o in Gchat, o in Facebook Messenger, o in qualsiasi numero di altri strumenti? 911 00:42:37,730 --> 00:42:40,430 >> Così si scopre anche che come busta pezzo aggiuntivo 912 00:42:40,430 --> 00:42:43,070 delle informazioni note come numero di porta. 913 00:42:43,070 --> 00:42:45,240 E un numero di porta è solo un numero davvero, 914 00:42:45,240 --> 00:42:48,342 ma non identifica univocamente il computer, ma il servizio. 915 00:42:48,342 --> 00:42:49,550 E ci sono grappoli di questi. 916 00:42:49,550 --> 00:42:51,258 Così si scopre che nel mondo, gli esseri umani 917 00:42:51,258 --> 00:42:57,095 hanno deciso su alcuni tale convenzioni, alcune delle quali sono questi. 918 00:42:57,095 --> 00:42:59,220 Quindi c'è qualcosa chiamato File Transfer Protocol. 919 00:42:59,220 --> 00:42:59,870 E 'piuttosto datato. 920 00:42:59,870 --> 00:43:00,970 E 'completamente insicuro. 921 00:43:00,970 --> 00:43:02,320 Un sacco di persone ancora utilizzano. 922 00:43:02,320 --> 00:43:04,240 E utilizza il numero di porta 21. 923 00:43:04,240 --> 00:43:07,250 In altre parole, se invio di un file tramite FTP, 924 00:43:07,250 --> 00:43:10,570 la busta avrebbe non solo la mittente e l'indirizzo IP del ricevitore, 925 00:43:10,570 --> 00:43:14,020 avrebbe anche il numero 21 in modo che il computer ricevente sappia oh, questo 926 00:43:14,020 --> 00:43:17,280 è un file, non una e-mail o un messaggio di chat. 927 00:43:17,280 --> 00:43:19,016 >> 25 è SMTP. 928 00:43:19,016 --> 00:43:20,516 Quanti di voi hanno mai usato SMTP? 929 00:43:20,516 --> 00:43:22,850 930 00:43:22,850 --> 00:43:23,380 Sbagliato. 931 00:43:23,380 --> 00:43:24,490 Quasi tutti voi avere. 932 00:43:24,490 --> 00:43:28,730 Se avete mai usato e-mail, che hai usato SMTP, Simple Mail Transfer Protocol, 933 00:43:28,730 --> 00:43:32,300 che è solo un modo elegante per dire, questo è il tipo di computer o servizio 934 00:43:32,300 --> 00:43:34,600 che invia i messaggi e-mail in uscita. 935 00:43:34,600 --> 00:43:38,780 >> E se hai mai visto sigle come POP o IMAP, e ci sono pochi altri, 936 00:43:38,780 --> 00:43:40,670 quelli sono per la ricezione e-mail, in genere. 937 00:43:40,670 --> 00:43:42,650 Questo significa solo che è un servizio diverso. 938 00:43:42,650 --> 00:43:45,850 E 'un software che qualcuno scrisse che invia o ascolti 939 00:43:45,850 --> 00:43:48,880 su un numero di porta specifico così che non confonde e-mail 940 00:43:48,880 --> 00:43:50,360 con qualche altro tipo di dati. 941 00:43:50,360 --> 00:43:55,500 >> Ora il web è HTTP, che è il numero 80, e anche la porta 443. 942 00:43:55,500 --> 00:43:57,590 Ed infatti, anche se Noi esseri umani per fortuna 943 00:43:57,590 --> 00:43:59,610 non c'è bisogno di fare questo, ogni volta che si visita 944 00:43:59,610 --> 00:44:05,810 un sito web come http://www.yale.edu, il browser 945 00:44:05,810 --> 00:44:07,790 è solo di essere di tipo utile in quanto è 946 00:44:07,790 --> 00:44:10,970 partendo dal presupposto che si desidera la porta numerica 80. 947 00:44:10,970 --> 00:44:15,710 Sappiamo già che il DNS riesce a capire ciò che l'indirizzo IP è di www.yale.edu. 948 00:44:15,710 --> 00:44:17,970 Ma il computer è solo andando a dedurre che si 949 00:44:17,970 --> 00:44:21,560 vogliono porta 80 perché si sta utilizzando Chrome, o IE, o qualche altro browser. 950 00:44:21,560 --> 00:44:24,930 Ma potrei fare tecnicamente colon 80. 951 00:44:24,930 --> 00:44:28,520 E poi posso dire in modo esplicito mio browser, inviare un pacchetto o più 952 00:44:28,520 --> 00:44:32,080 di informazioni per www.yale.edu chiedendo home page di oggi. 953 00:44:32,080 --> 00:44:36,070 Ma in particolare, indirizzo a IP di Yale a porta 80 954 00:44:36,070 --> 00:44:39,190 in modo che io realmente ottenere eseguire il server web di Yale. 955 00:44:39,190 --> 00:44:42,229 >> Ora scompare subito perché i browser solo 956 00:44:42,229 --> 00:44:44,020 Decidiamo che non lo facciamo hanno bisogno di confondere gli esseri umani 957 00:44:44,020 --> 00:44:46,810 avendo ancora più arcane informazioni come i due punti 80. 958 00:44:46,810 --> 00:44:50,640 E, francamente, i browser come Chrome non fare ancora 959 00:44:50,640 --> 00:44:55,464 mostrarvi Http più, o il colon, o la barra barra, o la barra finale, 960 00:44:55,464 --> 00:44:58,380 in un certo senso, perché stanno cercando per rendere le cose più semplici per gli utenti. 961 00:44:58,380 --> 00:45:01,080 In un altro senso, è solo un po ' di un'esperienza utente cosa-- 962 00:45:01,080 --> 00:45:02,720 cerchiamo di liberarsi di alcuni del disordine. 963 00:45:02,720 --> 00:45:05,405 Ma sta nascondendo alcune delle questi dettagli sottostanti. 964 00:45:05,405 --> 00:45:09,360 >> Ed infatti, nessuno di noi probabilmente mai più scrivere http. 965 00:45:09,360 --> 00:45:12,060 Basta digitare in qualcosa come www.harvard.edu. 966 00:45:12,060 --> 00:45:15,310 E ancora, deduce Chrome che si desidera HTTP. 967 00:45:15,310 --> 00:45:18,970 Ma vi sono altri protocolli che potremmo sicuramente utilizzeremo. 968 00:45:18,970 --> 00:45:24,480 >> Quindi, dato tutto questo, se ora sorta di mettere sul cosiddetto cappello engineering, 969 00:45:24,480 --> 00:45:27,417 come stanno le cose chiamati firewall funzionano? 970 00:45:27,417 --> 00:45:29,750 Quindi probabilmente stai in genere familiarità con il firewall, 971 00:45:29,750 --> 00:45:30,990 non tanto in senso fisico. 972 00:45:30,990 --> 00:45:32,470 Così back in the day, e ancora oggi, 973 00:45:32,470 --> 00:45:35,430 se hai come centri commerciali per esempio che hanno un sacco di negozi, 974 00:45:35,430 --> 00:45:38,500 generalmente le pareti tra singoli negozi o negozi 975 00:45:38,500 --> 00:45:43,180 sono i firewall nel senso che hanno isolamento speciale 976 00:45:43,180 --> 00:45:45,310 in modo che se un incendio scoppia in un negozio, 977 00:45:45,310 --> 00:45:48,210 non è così necessariamente diffuso al negozio accanto. 978 00:45:48,210 --> 00:45:51,710 >> Il mondo dei computer ha anche firewall che fare qualcosa di diverso. 979 00:45:51,710 --> 00:45:52,798 Cosa fa una palla di fuoco fare? 980 00:45:52,798 --> 00:45:53,298 Sì? 981 00:45:53,298 --> 00:45:55,290 >> PUBBLICO: Fondamentalmente hanno tagliato la connessione 982 00:45:55,290 --> 00:45:59,493 se incontrano qualcosa come, per esempio, 983 00:45:59,493 --> 00:46:01,361 hanno numero di istruzioni id. 984 00:46:01,361 --> 00:46:04,340 E se succede qualcosa, tagliano la connessione. 985 00:46:04,340 --> 00:46:07,570 Come se questo attacco dannoso [Incomprensibile] il computer, or-- 986 00:46:07,570 --> 00:46:08,630 >> DAVID J. MALAN: buono OK. 987 00:46:08,630 --> 00:46:11,220 Sì, e infatti si è anche andando un po 'più lontano 988 00:46:11,220 --> 00:46:14,590 nel descrivere qualcosa che potrebbe essere chiamato un sistema di rilevamento delle intrusioni, 989 00:46:14,590 --> 00:46:18,305 o IDS in breve, per cui si effettivamente avere regole definite. 990 00:46:18,305 --> 00:46:22,140 E se si inizia a vedere sospetto comportamento, si tenta di mettere fine a tutto questo. 991 00:46:22,140 --> 00:46:24,250 >> E un firewall, francamente, a livello rete, 992 00:46:24,250 --> 00:46:26,821 è anche più stupidi e più semplice Oltre a questo, in genere. 993 00:46:26,821 --> 00:46:29,070 E c'è diversi tipi dei firewall nel mondo. 994 00:46:29,070 --> 00:46:31,569 Ma quelli che operano a il livello di cui stiamo parlando oggi-- 995 00:46:31,569 --> 00:46:35,330 IP e TCP-- lavorare ancora più semplicemente. 996 00:46:35,330 --> 00:46:39,180 >> Per esempio, se tu fossi sistema di Yale amministratori, o il sistema di Harvard 997 00:46:39,180 --> 00:46:42,020 amministratori, o qualche grande Fratello a qualche azienda, 998 00:46:42,020 --> 00:46:45,040 e si voleva per evitare che tutti i vostri studenti o tutti i dipendenti 999 00:46:45,040 --> 00:46:47,619 di andare a facebook.com, tutto quello che dovete fare 1000 00:46:47,619 --> 00:46:50,160 è fare in modo che tutti i loro traffico di rete, prima di tutto, 1001 00:46:50,160 --> 00:46:51,850 passa attraverso un dispositivo speciale. 1002 00:46:51,850 --> 00:46:53,030 Chiamiamolo un firewall. 1003 00:46:53,030 --> 00:46:54,910 >> E va bene, perché potete fare il vostro router 1004 00:46:54,910 --> 00:46:57,618 la stessa cosa come un firewall se si mette lo stesso tipo di software 1005 00:46:57,618 --> 00:46:58,940 sulla stessa macchina. 1006 00:46:58,940 --> 00:47:01,780 Quindi, se tutti gli studenti o traffico dipendenti 1007 00:47:01,780 --> 00:47:04,450 sta attraversando questo firewall centrale, come 1008 00:47:04,450 --> 00:47:08,540 dovremmo bloccare le persone dall'andare a facebook.com, per esempio? 1009 00:47:08,540 --> 00:47:10,780 Cosa sarebbe il sistema amministratore ha a che fare? 1010 00:47:10,780 --> 00:47:11,370 Chiunque altro? 1011 00:47:11,370 --> 00:47:12,911 Cerchiamo di andare in giro. 1012 00:47:12,911 --> 00:47:15,074 >> PUBBLICO: [incomprensibile] 1013 00:47:15,074 --> 00:47:16,365 DAVID J. MALAN: Dire che ancora una volta? 1014 00:47:16,365 --> 00:47:19,215 PUBBLICO: Si deve solo ottenere raggiunto all'interno del sistema. 1015 00:47:19,215 --> 00:47:22,487 Così appena messo in Facebook 127.0.0-- 1016 00:47:22,487 --> 00:47:23,820 DAVID J. MALAN: Oh, interessante. 1017 00:47:23,820 --> 00:47:27,290 Così si può effettivamente poi incidere il vostro sistema DNS. 1018 00:47:27,290 --> 00:47:31,180 Questo è davvero un modo che si potrebbe fare questo per cui ogni volta che un studente di Yale tira 1019 00:47:31,180 --> 00:47:34,670 www.facebook.com up, tutto di noi qui oggi nel campus 1020 00:47:34,670 --> 00:47:38,590 stanno utilizzando server DNS di Yale, perché il server DHCP della Yale ci ha dato 1021 00:47:38,590 --> 00:47:39,580 tale indirizzo. 1022 00:47:39,580 --> 00:47:42,490 Quindi sì, si potrebbe tipo di rompere le cose o convenzione pausa 1023 00:47:42,490 --> 00:47:49,190 da solo dicendo, sì, indirizzo di facebook.com è falso, 1024 00:47:49,190 --> 00:47:52,530 è 1.2.3.4, che è in realtà non legittimo. 1025 00:47:52,530 --> 00:47:53,930 O forse è 278. 1026 00:47:53,930 --> 00:47:57,460 tutto ciò che era in una trasmissione televisiva Poco fa in modo che nessuno di noi 1027 00:47:57,460 --> 00:47:59,176 può effettivamente visitare il sito facebook.com. 1028 00:47:59,176 --> 00:48:00,590 >> Quindi supponiamo Yale ha fatto. 1029 00:48:00,590 --> 00:48:03,336 Supponiamo di Yale ha voluto mantenere fuori di facebook.com. 1030 00:48:03,336 --> 00:48:05,700 E quindi, cambiato le impostazioni DNS 1031 00:48:05,700 --> 00:48:08,812 per darvi un IP falso indirizzo per facebook.com. 1032 00:48:08,812 --> 00:48:10,616 Come rispondete? 1033 00:48:10,616 --> 00:48:12,990 Tecnicamente, not-- oh, ora tutti vogliono partecipare. 1034 00:48:12,990 --> 00:48:13,490 OK, sì. 1035 00:48:13,490 --> 00:48:16,190 PUBBLICO: Basta digitare nella indirizzo IP effettivo di Facebook. 1036 00:48:16,190 --> 00:48:16,710 >> DAVID J. MALAN: OK, bene. 1037 00:48:16,710 --> 00:48:19,350 Così potremmo semplicemente digitare il indirizzo IP effettivo di Facebook, 1038 00:48:19,350 --> 00:48:21,090 proprio come ho fatto con il sito web di Yale. 1039 00:48:21,090 --> 00:48:24,636 E se il server di Facebook è configurato per sostenere che, si dovrebbe effettivamente funzionare. 1040 00:48:24,636 --> 00:48:26,510 È un dolore minore il collo, perché ora siamo 1041 00:48:26,510 --> 00:48:30,220 sono da ricordare qualche casuale Valore a 32 bit, ma che potrebbe funzionare. 1042 00:48:30,220 --> 00:48:31,622 Che altro si potrebbe fare? 1043 00:48:31,622 --> 00:48:32,121 Già. 1044 00:48:32,121 --> 00:48:35,117 >> PUBBLICO: Si potrebbe cambiare tali impostazioni [incomprensibile]. 1045 00:48:35,117 --> 00:48:37,700 DAVID J. MALAN: Sì, si potrebbe anche modificare le impostazioni DNS. 1046 00:48:37,700 --> 00:48:40,480 Quindi, in realtà questo è in realtà molto utile, francamente, 1047 00:48:40,480 --> 00:48:45,590 se siete in un aeroporto, o se sei in un caffè, o qualcosa che 1048 00:48:45,590 --> 00:48:48,834 dispone di connessione internet per cui a volte traballante il server DNS ferma proprio lavoro. 1049 00:48:48,834 --> 00:48:51,000 Così anche io ogni tanto faccio questo, non per cattivo, io 1050 00:48:51,000 --> 00:48:52,750 vogliono usare Facebook scopi, ma in realtà 1051 00:48:52,750 --> 00:48:56,344 perché mi sembra di avere una rete collegamento, ma nulla funziona. 1052 00:48:56,344 --> 00:48:58,260 E così uno dei primi cose che try-- e voi 1053 00:48:58,260 --> 00:49:01,710 può fare questo su Windows too-- ma sul mio Mac, se vado a rete. 1054 00:49:01,710 --> 00:49:03,330 E ho scelto la mia connessione internet Wi-Fi. 1055 00:49:03,330 --> 00:49:04,750 E vado ad avanzato. 1056 00:49:04,750 --> 00:49:06,080 E vado a DNS. 1057 00:49:06,080 --> 00:49:08,260 Questi sono i tre Indirizzi IP Yale 1058 00:49:08,260 --> 00:49:10,290 mi dà per tre server DNS. 1059 00:49:10,290 --> 00:49:14,110 Lo scopo quindi è per me cercare qualsiasi uno di questi per risolvere gli indirizzi. 1060 00:49:14,110 --> 00:49:15,946 >> Ma posso ignorare questi facendo un plus. 1061 00:49:15,946 --> 00:49:18,333 E chiunque vuole proporre un server DNS? 1062 00:49:18,333 --> 00:49:19,120 >> PUBBLICO: 8.8.8.8? 1063 00:49:19,120 --> 00:49:20,578 >> DAVID J. MALAN: Oh, sei incredibile. 1064 00:49:20,578 --> 00:49:21,650 Sì, 8.8.8.8. 1065 00:49:21,650 --> 00:49:26,170 Così Google, benedire i loro cuori, comprato l'indirizzo IP 8.8.8.8, 1066 00:49:26,170 --> 00:49:29,560 perché di tipo sembra Gs probabilmente, ed è facile da ricordare. 1067 00:49:29,560 --> 00:49:34,820 Ma anzi, ora ho configurato il mio computer di utilizzare server DNS di Google. 1068 00:49:34,820 --> 00:49:38,050 >> Così ora se vado a yale.edu, è ancora in corso a lavorare. 1069 00:49:38,050 --> 00:49:40,100 Ma io non sto usando Yale I server DNS più. 1070 00:49:40,100 --> 00:49:44,430 E se vado a facebook.com, tutti coloro look up 1071 00:49:44,430 --> 00:49:45,960 stanno per passare attraverso Google. 1072 00:49:45,960 --> 00:49:49,120 >> Così, da un lato, ho abilmente eluso il sistema locale 1073 00:49:49,120 --> 00:49:51,810 amministratori solo per capire come funziona in rete. 1074 00:49:51,810 --> 00:49:53,360 Ma sto pagando un prezzo. 1075 00:49:53,360 --> 00:49:54,740 Niente è gratis. 1076 00:49:54,740 --> 00:49:56,096 Cosa ho appena rinunciato? 1077 00:49:56,096 --> 00:50:00,180 1078 00:50:00,180 --> 00:50:02,250 Cosa ho appena rinunciato? 1079 00:50:02,250 --> 00:50:06,090 Tutti di voi persone intelligenti che hanno state utilizzando 8.8.8.8, perché è cool 1080 00:50:06,090 --> 00:50:10,440 o risolve i problemi, quello che hanno hai fatto tutto questo tempo? 1081 00:50:10,440 --> 00:50:11,910 >> PUBBLICO: Viaggiando più lontano? 1082 00:50:11,910 --> 00:50:15,201 >> DAVID J. MALAN: Forse viaggiare più lontano, perché Google probabilmente non abbastanza 1083 00:50:15,201 --> 00:50:16,770 vicino come il server in fondo alla strada. 1084 00:50:16,770 --> 00:50:18,420 Ma più worrisomely. 1085 00:50:18,420 --> 00:50:18,920 Sì? 1086 00:50:18,920 --> 00:50:20,940 >> PUBBLICO: Così ora Google sa dove si sta andando. 1087 00:50:20,940 --> 00:50:23,856 >> DAVID J. MALAN: Google sa letteralmente ogni sito web che si sta visitando, 1088 00:50:23,856 --> 00:50:26,080 perché si è letteralmente chiedendo loro, hey Google, 1089 00:50:26,080 --> 00:50:28,360 si può tradurre yale.edu per me? 1090 00:50:28,360 --> 00:50:32,430 Oppure ehi Google, si può tradurre questo altro indirizzo del sito web per me 1091 00:50:32,430 --> 00:50:33,334 in un indirizzo IP. 1092 00:50:33,334 --> 00:50:35,750 E così they're-- non ho idea di cosa stai parlando. 1093 00:50:35,750 --> 00:50:38,080 E in modo che sappiano tutto di te. 1094 00:50:38,080 --> 00:50:42,180 Quindi rendersi conto che questo è un servizio gratuito con uno scopo da loro punto di vista 1095 00:50:42,180 --> 00:50:42,680 anche. 1096 00:50:42,680 --> 00:50:44,420 Ma si può certamente si uscire da un vicolo cieco. 1097 00:50:44,420 --> 00:50:46,380 >> Ora basta per affrontare un altro problema che spesso si presenta 1098 00:50:46,380 --> 00:50:48,640 tra gli studenti, in particolare quando si viaggia all'estero 1099 00:50:48,640 --> 00:50:50,765 in alcuni paesi come Cina, dove anzi 1100 00:50:50,765 --> 00:50:54,559 è un Great Firewall of China per cui il governo ci blocchi abbastanza 1101 00:50:54,559 --> 00:50:56,100 un po 'di traffico a diversi livelli. 1102 00:50:56,100 --> 00:50:58,141 Non c'è bisogno di solo blocco del traffico a livello 1103 00:50:58,141 --> 00:51:01,240 stiamo parlando qui, DNS o altrimenti, è possibile bloccarlo in altri livelli. 1104 00:51:01,240 --> 00:51:04,030 >> Ed infatti, solo essere chiari, un firewall 1105 00:51:04,030 --> 00:51:08,400 può funzionare anche più semplicemente di un semplice con gli amministratori di sistema cambiano 1106 00:51:08,400 --> 00:51:09,500 Impostazioni DNS. 1107 00:51:09,500 --> 00:51:12,920 Un firewall, un dispositivo tra noi e il resto del mondo, 1108 00:51:12,920 --> 00:51:16,850 potrebbe semplicemente bloccare qualsiasi uscita richieste all'indirizzo IP 1109 00:51:16,850 --> 00:51:21,240 Facebook sulla porta 80, o l'indirizzo IP per harvard.edu, 1110 00:51:21,240 --> 00:51:22,580 o l'indirizzo IP di qualsiasi cosa. 1111 00:51:22,580 --> 00:51:26,280 Quindi, un firewall può guardare il tuo buste 'indirizzi IP e anche porto 1112 00:51:26,280 --> 00:51:29,384 numeri, e se Yale ha voluto, potrebbe semplicemente smettere di tutti noi 1113 00:51:29,384 --> 00:51:32,550 da anche utilizzando più FTP, che avrebbe probabilmente una buona cosa perché 1114 00:51:32,550 --> 00:51:34,320 è infatti un protocollo insicuro. 1115 00:51:34,320 --> 00:51:37,620 Yale potrebbe addirittura impedirci visitando la totalità del web 1116 00:51:37,620 --> 00:51:42,632 solo bloccando tutto porto traffico sul numero 80 come pure. 1117 00:51:42,632 --> 00:51:43,840 Quindi questo potrebbe essere un altro modo. 1118 00:51:43,840 --> 00:51:45,740 E c'è anche modi fantasiosi pure. 1119 00:51:45,740 --> 00:51:47,770 >> Ma quando sei in viaggio all'estero per esempio, 1120 00:51:47,770 --> 00:51:50,740 o se sei in un internet café, o se siete ovunque dove c'è 1121 00:51:50,740 --> 00:51:53,179 blocchi o minacce, cosa si può fare? 1122 00:51:53,179 --> 00:51:56,220 Beh, se si va giù per la strada a Starbucks o si viaggia in un aeroporto, 1123 00:51:56,220 --> 00:51:58,780 generalmente si può solo salire sul Wi-Fi scegliendo 1124 00:51:58,780 --> 00:52:04,631 come, JFK Wi-Fi di LaGuardia Wi-Fi, o Logan Airport Wi-Fi, o cosa non. 1125 00:52:04,631 --> 00:52:05,880 E non è criptato, giusto? 1126 00:52:05,880 --> 00:52:06,949 Non c'è alcuna icona lucchetto. 1127 00:52:06,949 --> 00:52:09,490 E probabilmente non richiesto un nome utente e una password. 1128 00:52:09,490 --> 00:52:11,240 Stai solo richiesto con una qualche forma di stupido 1129 00:52:11,240 --> 00:52:15,260 per dire come, sono d'accordo di utilizzare questo solo per 30 minuti, o qualcosa di simile. 1130 00:52:15,260 --> 00:52:18,761 >> Ma non c'è la crittografia tra voi e Starbucks accesso Wi-Fi 1131 00:52:18,761 --> 00:52:20,760 punto, le cose con le antenne sulla parete. 1132 00:52:20,760 --> 00:52:24,840 Non c'è la crittografia tra voi e segnali Wi-Fi dell'aeroporto. 1133 00:52:24,840 --> 00:52:29,060 >> E quindi tecnicamente, quella persona raccapricciante seduto pochi posti a sedere giù da voi 1134 00:52:29,060 --> 00:52:31,970 in Starbucks o in aeroporto potrebbe essere, con il giusto software, 1135 00:52:31,970 --> 00:52:35,164 guardando tutti i vostri fili traffico sul suo computer portatile. 1136 00:52:35,164 --> 00:52:37,080 Non è così difficile mettere un computer portatile in ciò che è 1137 00:52:37,080 --> 00:52:39,880 chiamata modalità promiscua, che come suggerisce il nome, 1138 00:52:39,880 --> 00:52:41,760 significa che sei tipo di sciolto con le regole. 1139 00:52:41,760 --> 00:52:44,740 E ascolta semplicemente non solo per il traffico destinato per esso, 1140 00:52:44,740 --> 00:52:47,700 ma anche per tutti gli altri è traffico nel raggio d'azione. 1141 00:52:47,700 --> 00:52:50,550 >> E con questa logica, si può vedere tutti i pacchetti di informazioni 1142 00:52:50,550 --> 00:52:51,360 si sta ricevendo. 1143 00:52:51,360 --> 00:52:53,510 E se quei pacchetti non sono crittografati, è 1144 00:52:53,510 --> 00:52:56,680 state mettendo a rischio di le e-mail, o messaggi, 1145 00:52:56,680 --> 00:52:58,620 o qualsiasi altra cosa farsi esposto. 1146 00:52:58,620 --> 00:53:01,220 >> Quindi, anche se non siete all'estero ma sei solo a Starbucks, 1147 00:53:01,220 --> 00:53:03,800 o siete su qualche persona a caso di Wi-Fi che non è crittografato, 1148 00:53:03,800 --> 00:53:05,410 una VPN è una buona cosa. 1149 00:53:05,410 --> 00:53:07,410 Una VPN è una rete privata virtuale. 1150 00:53:07,410 --> 00:53:09,480 Ed è una tecnologia che permette di avere 1151 00:53:09,480 --> 00:53:14,560 un crittografato, un connection-- strapazzate più elaborato rispetto Cesare o Vigenere-- 1152 00:53:14,560 --> 00:53:17,420 tra il vostro computer portatile, o il telefono, o il vostro desktop, 1153 00:53:17,420 --> 00:53:22,460 e un server altrove, come un server nel campus di Yale. 1154 00:53:22,460 --> 00:53:25,840 >> E se si viaggia abroad-- e in effetti, si trova questo in alberghi 1155 00:53:25,840 --> 00:53:26,560 tutto il tempo. 1156 00:53:26,560 --> 00:53:28,580 E soprattutto come aspiranti gli informatici 1157 00:53:28,580 --> 00:53:32,090 dove voi ragazzi potrebbe, come geek, desidera utilizzare porte diverse da 80, 1158 00:53:32,090 --> 00:53:35,770 e porti diversi e 443-- infatti per il problema definito sei, 1159 00:53:35,770 --> 00:53:39,280 stiamo andando a giocare con più Porte TCP solo da scelta-- un sacco 1160 00:53:39,280 --> 00:53:42,940 di alberghi e negozi, e reti solo bloccare questo genere di cose 1161 00:53:42,940 --> 00:53:45,970 perché un po 'ingenuamente, o per ignoranza, basti pensare 1162 00:53:45,970 --> 00:53:48,010 che nessuno ha bisogno di quelle altre porte. 1163 00:53:48,010 --> 00:53:51,150 >> E così, utilizzando una VPN può voi aggirare questo tipo di restrizioni, 1164 00:53:51,150 --> 00:53:54,050 perché ciò che fa è una VPN esso permette a Starbucks, 1165 00:53:54,050 --> 00:53:58,630 o l'aeroporto, o in qualsiasi parte del mondo per connettersi a encryptedly yale.edu, 1166 00:53:58,630 --> 00:54:02,950 ad un server qui nel campus, e poi tunnel, per così dire, 1167 00:54:02,950 --> 00:54:06,570 tutto il traffico da dovunque siete attraverso Yale, a questo punto 1168 00:54:06,570 --> 00:54:08,720 va poi alla sua destinazione finale. 1169 00:54:08,720 --> 00:54:11,150 >> Ma mediante la crittografia, si evitare qualsiasi di questi tipi 1170 00:54:11,150 --> 00:54:15,380 di filtri o di imposizione che qualche rete locale ha imposto. 1171 00:54:15,380 --> 00:54:17,980 E in più, si ha un difesa molto più robusto 1172 00:54:17,980 --> 00:54:19,730 contro le persone raccapriccianti intorno a voi che potrebbe 1173 00:54:19,730 --> 00:54:21,300 essere cercando di ascoltare a sul traffico. 1174 00:54:21,300 --> 00:54:24,591 Ci potrebbe essere ancora persone raccapriccianti qui ritorno a casa a Yale a guardare il traffico 1175 00:54:24,591 --> 00:54:28,440 come si esce dalla VPN, ma almeno hai spinto la minaccia più lontano. 1176 00:54:28,440 --> 00:54:30,490 Ed è anche qui, un compromesso. 1177 00:54:30,490 --> 00:54:33,645 >> Ora, naturalmente, se si è in Cina o anche nel caffè, 1178 00:54:33,645 --> 00:54:35,770 e si sta tunneling tutto il vostro traffico attraverso Yale, 1179 00:54:35,770 --> 00:54:37,590 che prezzo stiamo pagando forse? 1180 00:54:37,590 --> 00:54:38,272 >> PUBBLICO: Velocità. 1181 00:54:38,272 --> 00:54:39,480 DAVID J. MALAN: Velocità, giusto? 1182 00:54:39,480 --> 00:54:41,430 Ci deve essere qualche matematica o qualche fanciness coinvolto 1183 00:54:41,430 --> 00:54:42,574 nella crittografia effettiva. 1184 00:54:42,574 --> 00:54:44,990 Ci potrebbero essere migliaia di miglia di distanza o migliaia 1185 00:54:44,990 --> 00:54:47,250 di miglia di cavi tra voi e Yale. 1186 00:54:47,250 --> 00:54:49,800 Ed è davvero male se siete in Cina, per esempio, 1187 00:54:49,800 --> 00:54:51,650 e si desidera visitare un sito web in Cina. 1188 00:54:51,650 --> 00:54:54,230 E così i dati sta per gli Stati Uniti, e poi di nuovo in Cina 1189 00:54:54,230 --> 00:54:56,620 solo perché si sta cifrando attraverso questo tunnel. 1190 00:54:56,620 --> 00:54:59,960 >> Ma si risolve tecnico e lavorare problemi simili. 1191 00:54:59,960 --> 00:55:02,050 Ma tutto si riduce a queste idee molto semplici. 1192 00:55:02,050 --> 00:55:06,530 E Harvard, per i curiosi, ha uno anche qui, a vpn.harvard.edu, 1193 00:55:06,530 --> 00:55:09,150 che opera proprio come Yale. 1194 00:55:09,150 --> 00:55:12,580 >> Quindi, con tutto ciò che ha detto, perché è tutta questa rete utile? 1195 00:55:12,580 --> 00:55:14,080 E cosa possiamo iniziare a fare con esso? 1196 00:55:14,080 --> 00:55:15,630 Bene, facciamo questo ora più reale. 1197 00:55:15,630 --> 00:55:17,610 Questo è l'acronimo con cui la maggior parte di noi 1198 00:55:17,610 --> 00:55:22,140 sono probabilmente eccellente familiar-- HTTP-- che sta per Hyper Text Transfer 1199 00:55:22,140 --> 00:55:22,950 protocollo. 1200 00:55:22,950 --> 00:55:26,460 E questo significa solo questo è la lingua, il protocollo 1201 00:55:26,460 --> 00:55:29,140 che i browser web e server web parlano. 1202 00:55:29,140 --> 00:55:31,437 >> Il P in HTTP è infatti un protocollo. 1203 00:55:31,437 --> 00:55:33,270 E un protocollo è solo un insieme di convenzioni. 1204 00:55:33,270 --> 00:55:36,690 Abbiamo visto IP-- internet protocol-- Controllo della trasmissione TCP-- 1205 00:55:36,690 --> 00:55:38,290 protocol-- e HTTP. 1206 00:55:38,290 --> 00:55:40,570 Ma che cosa è questo stupido cosa di un protocollo? 1207 00:55:40,570 --> 00:55:41,930 E 'solo un insieme di convenzioni. 1208 00:55:41,930 --> 00:55:43,760 >> Quindi, se ho una sorta di scendere qui, e voglio salutarvi. 1209 00:55:43,760 --> 00:55:44,930 Direi ciao, il mio nome è David. 1210 00:55:44,930 --> 00:55:45,600 >> PUBBLICO: Luis. 1211 00:55:45,600 --> 00:55:46,475 >> DAVID J. MALAN: Luis. 1212 00:55:46,475 --> 00:55:49,360 Abbiamo questo stupido umano convenzione di stringere la mano qui. 1213 00:55:49,360 --> 00:55:50,570 Ma questo è un protocollo, giusto? 1214 00:55:50,570 --> 00:55:51,470 Ho esteso la mia mano. 1215 00:55:51,470 --> 00:55:52,530 Luis tese la mano. 1216 00:55:52,530 --> 00:55:53,070 Lo abbiamo fatto. 1217 00:55:53,070 --> 00:55:54,790 E poi completo, fatto. 1218 00:55:54,790 --> 00:55:58,100 >> E questo è esattamente lo stesso spirito di un protocollo informatico 1219 00:55:58,100 --> 00:56:02,770 dove come in HTTP, ciò che accade è questo. 1220 00:56:02,770 --> 00:56:05,520 Se siete il computer sulla lasciato qui, e c'è qualche web 1221 00:56:05,520 --> 00:56:07,230 assistente lì sulla destra. 1222 00:56:07,230 --> 00:56:11,130 E il computer sulla sinistra vuole richiedere informazioni da tale server. 1223 00:56:11,130 --> 00:56:13,140 E 'una specie di un'operazione bidirezionale. 1224 00:56:13,140 --> 00:56:15,800 Il browser a sinistra chiede qualche pagina web. 1225 00:56:15,800 --> 00:56:18,404 Il server a destra risponde con qualche pagina web. 1226 00:56:18,404 --> 00:56:20,570 E vedremo quale forma quelli prendono in un attimo. 1227 00:56:20,570 --> 00:56:24,311 >> E si scopre che quei computers-- che il browser e il server, o un client 1228 00:56:24,311 --> 00:56:25,310 e il server, per così dire. 1229 00:56:25,310 --> 00:56:28,120 Proprio come un ristorante dove il cliente sta chiedendo qualcosa, 1230 00:56:28,120 --> 00:56:31,670 e il server sta portando lui o lei something-- ottenere 1231 00:56:31,670 --> 00:56:33,170 è una specie di la parola chiave. 1232 00:56:33,170 --> 00:56:38,560 Letteralmente all'interno della busta il mio browser invia da qui a un web 1233 00:56:38,560 --> 00:56:40,880 server è la parola get. 1234 00:56:40,880 --> 00:56:42,700 Come voglio avere notizie di oggi. 1235 00:56:42,700 --> 00:56:45,370 Voglio ottenere il mio News feed di Facebook, o io 1236 00:56:45,370 --> 00:56:47,330 vuole ottenere qualche pagina dal server. 1237 00:56:47,330 --> 00:56:50,760 >> In particolare, questo è ciò che è succedendo all'interno di quella busta. 1238 00:56:50,760 --> 00:56:53,810 Così io, con Cole, essenzialmente inviato Cole una risposta. 1239 00:56:53,810 --> 00:56:56,750 Se si immagina che in realtà Cole ha voluto una foto di Rick Astley, 1240 00:56:56,750 --> 00:57:00,700 egli mi avrebbe inviato una richiesta simile nello spirito a questo. 1241 00:57:00,700 --> 00:57:04,670 All'interno della sua busta per me, dove Ora sto giocando il ruolo di Google, 1242 00:57:04,670 --> 00:57:08,270 sarebbe una richiesta che letteralmente dice, ottenere, e quindi un slash-- avanti 1243 00:57:08,270 --> 00:57:10,636 e probabilmente avete visto slash negli URL prima. 1244 00:57:10,636 --> 00:57:13,260 Significa solo darmi il default pagina, il default Rick Astley 1245 00:57:13,260 --> 00:57:14,560 foto in questo caso. 1246 00:57:14,560 --> 00:57:20,100 >> E tra l'altro, Cole parla la lingua Versione HTTP 1.1, o il protocollo 1.1. 1247 00:57:20,100 --> 00:57:22,090 E si scopre là del una vecchia versione 1.0. 1248 00:57:22,090 --> 00:57:23,910 Ma i computer tendono ad usare 1.1. 1249 00:57:23,910 --> 00:57:27,840 >> La seconda linea è una cosa utile che tornerà a forse tra non molto. 1250 00:57:27,840 --> 00:57:31,900 Ma è solo una specifica per me, il destinatario, che la cosa che voglio 1251 00:57:31,900 --> 00:57:33,586 è www.google.com. 1252 00:57:33,586 --> 00:57:36,340 Perché è molto probabile in questi giorni per decine, 1253 00:57:36,340 --> 00:57:39,510 centinaia di siti web con diversi i nomi di dominio a tutti 1254 00:57:39,510 --> 00:57:40,735 vivere sullo stesso server. 1255 00:57:40,735 --> 00:57:42,860 Non sta andando per essere vero tanto nel caso di Google. 1256 00:57:42,860 --> 00:57:45,261 Ma in una società più piccola di caso, potrebbe assolutamente essere. 1257 00:57:45,261 --> 00:57:47,260 Così Cole è solo tipo di mettere nella busta, 1258 00:57:47,260 --> 00:57:50,840 tra l'altro, quando questo raggiunge il tuo indirizzo IP sulla porta 80, 1259 00:57:50,840 --> 00:57:54,450 tanto per essere sicuro che conoscete Voglio www.google.com, non 1260 00:57:54,450 --> 00:57:56,740 qualche altro sito web casuale sullo stesso server. 1261 00:57:56,740 --> 00:58:00,360 >> Quello che ho poi rispondo a Cole con, alla fine della giornata, è un quadro. 1262 00:58:00,360 --> 00:58:02,920 Ma in cima a quella foto all'interno della busta 1263 00:58:02,920 --> 00:58:05,600 è in realtà una parte di testo, dove dico io, OK. 1264 00:58:05,600 --> 00:58:07,970 Parlo versione HTTP 1.1 anche. 1265 00:58:07,970 --> 00:58:09,200 200. 1266 00:58:09,200 --> 00:58:11,730 Il che è un codice di stato che la maggior parte di noi hanno probabilmente 1267 00:58:11,730 --> 00:58:14,185 mai visto, perché significa OK. 1268 00:58:14,185 --> 00:58:16,810 E questo è un bene, perché significa che sto rispondendo con successo 1269 00:58:16,810 --> 00:58:18,040 alla richiesta di Cole. 1270 00:58:18,040 --> 00:58:21,930 >> Quali numeri avete probabilmente visto sul web che non sono OK? 1271 00:58:21,930 --> 00:58:22,780 >> PUBBLICO: 404. 1272 00:58:22,780 --> 00:58:24,830 >> DAVID J. MALAN: 404-- Impossibile trovare il file. 1273 00:58:24,830 --> 00:58:27,520 Così in effetti, ogni volta che hai visto uno di quei fastidiosi file non 1274 00:58:27,520 --> 00:58:31,010 errori trovati, perché la pagina web è morto, 1275 00:58:31,010 --> 00:58:34,190 o perché siano state digitate correttamente un URL, che significa semplicemente 1276 00:58:34,190 --> 00:58:37,600 che la piccola busta che il vostro calcolatore ricevuto dal server 1277 00:58:37,600 --> 00:58:42,670 conteneva un messaggio HTTP 1.1, 404-- non trovato. 1278 00:58:42,670 --> 00:58:44,930 Il file o la richiesta hai fatto non è stato trovato. 1279 00:58:44,930 --> 00:58:48,660 >> Inoltre, all'interno della busta in genere è questa linea, tipo di contenuto. 1280 00:58:48,660 --> 00:58:51,080 A volte è HTML, qualcosa che vedremo presto. 1281 00:58:51,080 --> 00:58:52,225 A volte è un JPEG. 1282 00:58:52,225 --> 00:58:53,100 A volte è un GIF. 1283 00:58:53,100 --> 00:58:56,060 A volte è un filmato, un file audio, qualsiasi numero di cose. 1284 00:58:56,060 --> 00:59:00,059 Così all'interno della busta è solo un piccolo suggerimento su ciò che sto ricevendo. 1285 00:59:00,059 --> 00:59:03,100 Ci sono altri codici di stato troppo, un po ' di cui esploreremo in P definito sei, 1286 00:59:03,100 --> 00:59:05,890 e ti imbatte in P set sette e / o otto. 1287 00:59:05,890 --> 00:59:08,580 Ma alcuni qui, come 404 che abbiamo visto. 1288 00:59:08,580 --> 00:59:11,700 Proibizione, 403, mezzi come i permessi sono sbagliati, 1289 00:59:11,700 --> 00:59:14,740 come se non si dispone di tipo di configurato correttamente. 1290 00:59:14,740 --> 00:59:17,830 301 e 302, raramente vediamo visivamente. 1291 00:59:17,830 --> 00:59:19,150 Ma significano reindirizzare. 1292 00:59:19,150 --> 00:59:21,650 Ogni volta che sei andato a uno URL e sei stato magicamente 1293 00:59:21,650 --> 00:59:24,410 inviato da qualche altra parte, questo è perché il browser ha inviato indietro 1294 00:59:24,410 --> 00:59:27,210 una busta contenente il numero 301 o 302, 1295 00:59:27,210 --> 00:59:30,790 e l'URL che vuole il browser per andare invece. 1296 00:59:30,790 --> 00:59:32,010 >> 500 è orribile. 1297 00:59:32,010 --> 00:59:34,842 Lo vedrete fra poco, probabilmente in P definito sei o P impostato sette. 1298 00:59:34,842 --> 00:59:37,050 E significa generalmente c'è qualche bug nel codice, 1299 00:59:37,050 --> 00:59:40,000 perché infatti saremo scrivendo codice che risponde alle richieste Web. 1300 00:59:40,000 --> 00:59:42,110 E tu hai appena avuto un po ' errore nella logica o la sintassi, 1301 00:59:42,110 --> 00:59:43,820 e il server non è in grado di gestirlo. 1302 00:59:43,820 --> 00:59:47,460 >> Così vediamo come ora possiamo sfruttare e capire queste richieste come segue. 1303 00:59:47,460 --> 00:59:50,716 Se vado a, diciamo, google.com. 1304 00:59:50,716 --> 00:59:55,240 Lasciami andare a www.google.com. 1305 00:59:55,240 --> 01:00:01,220 E per amor di dimostrazione, diamo vedo, ho bisogno di andare a Impostazioni qui. 1306 01:00:01,220 --> 01:00:03,180 Ho intenzione di andare in Impostazioni di ricerca. 1307 01:00:03,180 --> 01:00:08,236 E Google ha sempre più fastidioso caratteristiche, ma caratteristiche utili. 1308 01:00:08,236 --> 01:00:11,110 Così Google ha questa cosa come istante risultati in cui si inizia a digitare, 1309 01:00:11,110 --> 01:00:12,889 e automaticamente le cose cominciano ad apparire. 1310 01:00:12,889 --> 01:00:14,680 E questo è tutto bene e tecnicamente utili, 1311 01:00:14,680 --> 01:00:16,420 e capiremo in breve tempo come funziona. 1312 01:00:16,420 --> 01:00:18,429 Ma per ora, sto girando off risultati immediati, 1313 01:00:18,429 --> 01:00:20,720 perché voglio che il mio browser per tipo di lavoro così vecchia scuola 1314 01:00:20,720 --> 01:00:22,940 che posso vedere quello che sta succedendo. 1315 01:00:22,940 --> 01:00:23,840 >> Così ora sono tornato qui. 1316 01:00:23,840 --> 01:00:25,090 E voglio cercare per i gatti. 1317 01:00:25,090 --> 01:00:30,351 E noto che vedo alcuni suggerimenti, alcuni suggerimenti molto benigne 1318 01:00:30,351 --> 01:00:30,850 per fortuna. 1319 01:00:30,850 --> 01:00:34,730 E ora se ho colpito Enter, vediamo cosa succede. 1320 01:00:34,730 --> 01:00:35,850 >> Così ci sono alcuni gatti. 1321 01:00:35,850 --> 01:00:37,540 E il colpo superiore è su Wikipedia. 1322 01:00:37,540 --> 01:00:39,820 Ma oggi ci preoccupiamo la tecnologia qui. 1323 01:00:39,820 --> 01:00:42,479 Così l'URL a cui ho stato inviato è questo qui. 1324 01:00:42,479 --> 01:00:44,520 E ci sono alcune cose che in realtà non capire. 1325 01:00:44,520 --> 01:00:47,430 >> Quindi ho intenzione di andare avanti, perché I tipi di sapere come funziona Google, 1326 01:00:47,430 --> 01:00:50,700 e ho intenzione di distillare questo URL nella sua forma più semplice. 1327 01:00:50,700 --> 01:00:52,510 E ora sto andando a colpire di nuovo Invio. 1328 01:00:52,510 --> 01:00:53,360 E funziona ancora. 1329 01:00:53,360 --> 01:00:55,800 Ho una pagina di risultati di tutto sui gatti. 1330 01:00:55,800 --> 01:00:58,460 >> Meno di notare la semplicità del mio URL. 1331 01:00:58,460 --> 01:01:00,820 Si scopre in questo modo gran parte delle opere web. 1332 01:01:00,820 --> 01:01:03,500 Il web è solo un intero gruppo di computer 1333 01:01:03,500 --> 01:01:05,320 l'esecuzione di software che prendono in ingresso. 1334 01:01:05,320 --> 01:01:07,480 Non è ottenere ingresso stile stringa. 1335 01:01:07,480 --> 01:01:09,670 Non è da riga di comando argomenti come siamo abituati a. 1336 01:01:09,670 --> 01:01:13,449 Prendono di ingresso, questi server web, a titolo di URL molto spesso. 1337 01:01:13,449 --> 01:01:15,240 E ogni volta che avete cercato qualcosa, 1338 01:01:15,240 --> 01:01:17,448 ogni volta che hai effettuato l'accesso Facebook, ogni volta che hai 1339 01:01:17,448 --> 01:01:20,090 fatto nulla interattivo con una pagina web, quello che stai facendo 1340 01:01:20,090 --> 01:01:24,340 è effettivamente inviare un modulo, in modo da a speak-- caselle di testo, caselle di controllo, 1341 01:01:24,340 --> 01:01:27,880 piccoli cerchi, e quant'altro che inviano informazioni su di voi al server. 1342 01:01:27,880 --> 01:01:31,960 >> E si scopre che il web server sa guardare quella URL 1343 01:01:31,960 --> 01:01:36,040 e analizzarlo, come sguardo carattere che per carattere cercando qualcosa 1344 01:01:36,040 --> 01:01:38,000 interessante dopo un punto di domanda. 1345 01:01:38,000 --> 01:01:40,910 Perché dopo un punto interrogativo, si scopre, sta per venire 1346 01:01:40,910 --> 01:01:42,730 un gruppo di coppie di valori chiave. 1347 01:01:42,730 --> 01:01:44,570 Voglio dire chiave = valore. 1348 01:01:44,570 --> 01:01:48,130 E poi se c'è multiple-- forse una e commerciale, qualche chiave altro = valore, 1349 01:01:48,130 --> 01:01:50,200 commerciale, chiave = valore. 1350 01:01:50,200 --> 01:01:54,560 >> Così abbiamo tipo di visto questa idea prima dove qualcosa ha un valore. 1351 01:01:54,560 --> 01:01:55,880 E 'solo un nuovo formato qui. 1352 01:01:55,880 --> 01:01:59,040 E so solo, per convenzione, Google utilizza q per query. 1353 01:01:59,040 --> 01:02:02,670 E poi se voglio cercare per i cani, io può cercare manualmente per i cani del genere. 1354 01:02:02,670 --> 01:02:06,360 E poi mi pare sempre alcuni risultati di ricerca che coinvolge i cani. 1355 01:02:06,360 --> 01:02:07,727 >> In modo che sembra essere interessante. 1356 01:02:07,727 --> 01:02:10,060 E in effetti, che cosa sta succedendo sotto il cofano è presente. 1357 01:02:10,060 --> 01:02:11,460 Permettetemi di fare questo. 1358 01:02:11,460 --> 01:02:13,620 Questo è il a-- vediamo. 1359 01:02:13,620 --> 01:02:16,320 Torniamo su qui solo per un momento. 1360 01:02:16,320 --> 01:02:19,810 >> Vedremo che non c'è altro il modo di presentare le informazioni. 1361 01:02:19,810 --> 01:02:25,340 Quindi se sto login in Facebook, o Gmail o qualsiasi altro sito web popolare, 1362 01:02:25,340 --> 01:02:30,720 sembra tipo di male, se tutto ciò che ho scritto nella casella di ricerca finisce in mio URL, 1363 01:02:30,720 --> 01:02:32,850 nella barra degli indirizzi del mio browser. 1364 01:02:32,850 --> 01:02:33,690 Perché? 1365 01:02:33,690 --> 01:02:35,395 Perché è così leggermente preoccupante? 1366 01:02:35,395 --> 01:02:39,567 1367 01:02:39,567 --> 01:02:40,067 Sì? 1368 01:02:40,067 --> 01:02:41,380 PUBBLICO: digitare una password. 1369 01:02:41,380 --> 01:02:41,720 DAVID J. MALAN: Sì. 1370 01:02:41,720 --> 01:02:44,000 E se quello che ho digitato la mia password? 1371 01:02:44,000 --> 01:02:47,881 I tipi di non lo voglio così ovviamente visibile nella barra degli indirizzi del mio browser. 1372 01:02:47,881 --> 01:02:50,630 Uno, perché il mio compagno di stanza fastidioso tende a guardare oltre la mia spalla, 1373 01:02:50,630 --> 01:02:53,980 e lui o lei può ora vedere, anche se era pallottole quando sto scrivendo in, 1374 01:02:53,980 --> 01:02:54,810 piccoli cerchi. 1375 01:02:54,810 --> 01:02:56,010 Ora è nella mia barra degli indirizzi. 1376 01:02:56,010 --> 01:02:59,270 >> Inoltre, ciò che è vero di cose si tende a digitare nella barra degli indirizzi. 1377 01:02:59,270 --> 01:03:00,230 >> PUBBLICO: [incomprensibile] 1378 01:03:00,230 --> 01:03:01,505 >> DAVID J. MALAN: Che cos'è? 1379 01:03:01,505 --> 01:03:02,630 PUBBLICO: Essa viene inviato. 1380 01:03:02,630 --> 01:03:03,510 DAVID J. MALAN: Essa viene inviato. 1381 01:03:03,510 --> 01:03:05,102 E inoltre, viene ricordato. 1382 01:03:05,102 --> 01:03:07,060 Poiché la prossima volta si digita le cose lassù, 1383 01:03:07,060 --> 01:03:10,440 spesso autocompletes e ricorda ciò che hai scritto prima. 1384 01:03:10,440 --> 01:03:13,850 E così non c'è questa vera e propria storia che il fratello, o il vostro compagno di stanza, 1385 01:03:13,850 --> 01:03:16,830 o chi può camminare fino alla praticamente vedere ogni sito web 1386 01:03:16,830 --> 01:03:19,760 avete visitato perché è registrati in quella barra degli indirizzi. 1387 01:03:19,760 --> 01:03:22,790 >> Inoltre, si supponga di voler caricare una foto su Facebook. 1388 01:03:22,790 --> 01:03:26,520 Come in tutto il mondo che si sono andando a mettere una foto in un URL? 1389 01:03:26,520 --> 01:03:30,217 >> Beh, si scopre che si può fare in qualche modo, ma è certamente non ovvio. 1390 01:03:30,217 --> 01:03:33,050 E così non c'è questo altro modo di invio di informazioni in una busta, 1391 01:03:33,050 --> 01:03:35,680 non tramite un GET, ma via qualcosa chiamato POST. 1392 01:03:35,680 --> 01:03:38,060 E in teoria, sembra praticamente lo stesso. 1393 01:03:38,060 --> 01:03:41,270 Al posto della parola GET, POST diciamo, e quindi lo stesso tipo di formato. 1394 01:03:41,270 --> 01:03:43,310 >> Per esempio, questo è uno screenshot di quello che 1395 01:03:43,310 --> 01:03:46,920 potrebbe apparire come se cerco di registrazione in Facebook, che mi manda in un file 1396 01:03:46,920 --> 01:03:51,230 chiamato login.php, che è in realtà ancora oggi chiamato come tale. 1397 01:03:51,230 --> 01:03:53,910 E 'lo stesso Mark nome ha dato a molti anni fa. 1398 01:03:53,910 --> 01:03:58,520 E 'il programma che ha scritto in PHP via cui gli utenti possono accedere al sito web. 1399 01:03:58,520 --> 01:04:00,370 >> Ma è necessario inviare alcuni input aggiuntivo. 1400 01:04:00,370 --> 01:04:05,170 E piuttosto che andando dopo il il nome del file come ha fatto prima con cats-- 1401 01:04:05,170 --> 01:04:09,720 q = cats-- si può andare più bassa nella richiesta, più in profondità all'interno della busta, se si 1402 01:04:09,720 --> 01:04:12,440 sarà dove nessuno può vederlo, e dove non finire 1403 01:04:12,440 --> 01:04:15,670 nella barra browser dell'utente, e quindi Non ricordo per le persone a curiosare 1404 01:04:15,670 --> 01:04:16,290 intorno. 1405 01:04:16,290 --> 01:04:21,260 >> Ed ecco il mio indirizzo e-mail e la mia password falso effettivamente andare. 1406 01:04:21,260 --> 01:04:27,400 E se Facebook sta usando Non HTTP, HTTPS ma, 1407 01:04:27,400 --> 01:04:30,710 tutto questo sarà criptato, strapazzate, ala Cesare o Vigenere, 1408 01:04:30,710 --> 01:04:34,960 ma più fancily modo che nessuno può effettivamente vedere questa richiesta. 1409 01:04:34,960 --> 01:04:38,120 >> E così in effetti, ogni volta che avete un URL che inizia con https, 1410 01:04:38,120 --> 01:04:39,560 significa solo che è criptato. 1411 01:04:39,560 --> 01:04:42,710 Ma alla fine della giornata, cosa in realtà all'interno di queste buste? 1412 01:04:42,710 --> 01:04:44,070 Questo era super basso livello. 1413 01:04:44,070 --> 01:04:46,240 E per fortuna, non siamo andando ad avere necessariamente 1414 01:04:46,240 --> 01:04:49,310 andare così basso livello ogni volta per iniziare a scrivere software interessante. 1415 01:04:49,310 --> 01:04:51,060 Siamo in grado di iniziare a prendere le idee di una settimana 1416 01:04:51,060 --> 01:04:54,020 attraverso cinque, assumere che vi è ora che questa infrastruttura 1417 01:04:54,020 --> 01:04:57,160 consente di scrivere software che opera sul web, 1418 01:04:57,160 --> 01:05:00,120 e sta andando per permetterci la prossima settimana per iniziare 1419 01:05:00,120 --> 01:05:01,840 guardando qualcosa chiamato HTML. 1420 01:05:01,840 --> 01:05:04,750 Questa è la roba che è ancora più all'interno della busta, 1421 01:05:04,750 --> 01:05:06,150 ma è la roba siamo sta per iniziare a scrivere. 1422 01:05:06,150 --> 01:05:08,020 Ed è la roba più interessante, siamo 1423 01:05:08,020 --> 01:05:11,420 intenzione di scrivere programmi che inizia generando automaticamente 1424 01:05:11,420 --> 01:05:15,410 in modo che i nostri siti web non sono codificati, ma prendere in ingresso e produrre output. 1425 01:05:15,410 --> 01:05:18,810 >> Questo è forse il più semplice web pagina è possibile fare nel mondo. 1426 01:05:18,810 --> 01:05:23,000 Posso davvero aprire qualcosa di stupido come TextEdit 1427 01:05:23,000 --> 01:05:26,160 sul mio Mac, il che mi dà solo una finestra di testo semplice come questo. 1428 01:05:26,160 --> 01:05:29,510 Gli utenti PC hanno Notepad.ext, che è molto simile nello spirito. 1429 01:05:29,510 --> 01:05:33,212 >> E posso letteralmente digitare fuori questo-- HTML DOCTYPE, 1430 01:05:33,212 --> 01:05:34,420 che sembra un po 'criptico. 1431 01:05:34,420 --> 01:05:35,850 Ma torneremo a questo. 1432 01:05:35,850 --> 01:05:38,730 HTML, con questi strani parentesi angolari e barre, 1433 01:05:38,730 --> 01:05:42,240 all'interno del quale ora ho intenzione di dire ecco che arriva il capo della mia pagina web. 1434 01:05:42,240 --> 01:05:45,220 All'interno di questo, ho appena Sai, e presto sapere, 1435 01:05:45,220 --> 01:05:47,850 che posso mettere il titolo della mia pagina web. 1436 01:05:47,850 --> 01:05:49,720 E poi sotto il head della pagina web è 1437 01:05:49,720 --> 01:05:51,972 per andare al cosiddetto corpo della pagina web. 1438 01:05:51,972 --> 01:05:54,180 E sto solo rientri solo come in C per tipo di mantenere 1439 01:05:54,180 --> 01:05:57,620 cose ben leggibile stilisticamente. 1440 01:05:57,620 --> 01:06:04,745 E ora ho intenzione di salvare questo come un file sul mio desktop, chiamato hello.html. 1441 01:06:04,745 --> 01:06:06,770 >> E ho intenzione di dire che sì, usare l'HTML. 1442 01:06:06,770 --> 01:06:09,690 Non cambiare a txt, anche se tutto questo è un file di testo, 1443 01:06:09,690 --> 01:06:12,130 proprio come un programma in C scritto con un editor di testo. 1444 01:06:12,130 --> 01:06:15,080 Anche se non in CS50 IDE al momento, proprio qui sul mio Mac. 1445 01:06:15,080 --> 01:06:18,490 >> E se io ora vado al mio desktop, vedrete hello.html. 1446 01:06:18,490 --> 01:06:20,720 Se faccio doppio clic su questo, si aprirà Chrome. 1447 01:06:20,720 --> 01:06:23,260 E anche se questo file succede a vivere sul mio desktop, 1448 01:06:23,260 --> 01:06:26,550 che è forse la più semplice pagina web ho potuto fare. 1449 01:06:26,550 --> 01:06:30,080 >> Si noti che il titolo della top scheda salita è ciao mondo. 1450 01:06:30,080 --> 01:06:32,470 Il corpo della pagina web è davvero ciao mondo. 1451 01:06:32,470 --> 01:06:35,830 E tutto quello che ho fatto per arrivare a questo punto è implementare, 1452 01:06:35,830 --> 01:06:38,342 o è scrivere un nuovo linguaggio, chiamato HTML. 1453 01:06:38,342 --> 01:06:40,300 Non è una programmazione linguaggio come il C. C'è 1454 01:06:40,300 --> 01:06:42,508 Non sta per essere le condizioni, e loop, e funzioni. 1455 01:06:42,508 --> 01:06:46,560 Si tratta di un linguaggio di markup, in cui caso basta solo far sapere il ricevente 1456 01:06:46,560 --> 01:06:48,410 programma di ciò che si vuole fare. 1457 01:06:48,410 --> 01:06:51,195 Ciò significa hey del browser, ecco che arriva una pagina HTML. 1458 01:06:51,195 --> 01:06:53,040 Ehi del browser, ecco che arriva il capo della mia pagina. 1459 01:06:53,040 --> 01:06:55,130 Ehi del browser, ecco che arriva il corpo della pagina. 1460 01:06:55,130 --> 01:06:57,100 Ehi del browser, questo è tutto per il corpo. 1461 01:06:57,100 --> 01:06:59,350 Questo è tutto per la pagina HTML. 1462 01:06:59,350 --> 01:07:03,560 >> E con queste definizioni da solo, vedremo presto che uno, 1463 01:07:03,560 --> 01:07:05,122 possiamo rappresentare questo come un albero. 1464 01:07:05,122 --> 01:07:06,080 Ma ne riparleremo più avanti. 1465 01:07:06,080 --> 01:07:08,788 Quindi questo sarà tutto interconnessione a le nostre strutture dati più recenti. 1466 01:07:08,788 --> 01:07:12,460 Due, introdurremo questo stupido scherzo. 1467 01:07:12,460 --> 01:07:15,680 Questo è un tatuaggio reale che questo ragazzo ha avuto sul suo collo. 1468 01:07:15,680 --> 01:07:19,660 E 'probabilmente divertente la prima settimana o due, e successivamente, forse non tanto. 1469 01:07:19,660 --> 01:07:22,960 >> Ma HTML, e anche il web Pagina Ho appena fatto, mente eccellente 1470 01:07:22,960 --> 01:07:25,670 numbingly disappointing-- solo dicendo ciao mondo 1471 01:07:25,670 --> 01:07:27,210 in nero su uno sfondo bianco. 1472 01:07:27,210 --> 01:07:28,680 Sicuramente possiamo fare molto meglio. 1473 01:07:28,680 --> 01:07:31,552 E faremo così introducendo un altro linguaggio chiamato CSS. 1474 01:07:31,552 --> 01:07:34,760 Anche questo non è un language-- programmazione nessun cicli e le condizioni, o per cicli, 1475 01:07:34,760 --> 01:07:38,470 ma in realtà, solo sintassi con la quale possiamo dire, fanno di questo testo di grande. 1476 01:07:38,470 --> 01:07:39,415 Rendere questo testo piccolo. 1477 01:07:39,415 --> 01:07:40,040 Destra allinearlo. 1478 01:07:40,040 --> 01:07:40,650 Sinistra allinearla. 1479 01:07:40,650 --> 01:07:41,195 Rendono rosa. 1480 01:07:41,195 --> 01:07:41,820 Rendono viola. 1481 01:07:41,820 --> 01:07:42,650 Rendere blu. 1482 01:07:42,650 --> 01:07:44,860 O di fare qualsiasi numero di altri effetti visivi. 1483 01:07:44,860 --> 01:07:48,590 E quindi vedremo come avviare stilizzazione pagine web in modo che si guardano in un modo 1484 01:07:48,590 --> 01:07:50,480 più vicino a quello che vogliamo. 1485 01:07:50,480 --> 01:07:56,930 >> E, infine, abbiamo davvero rovinato forse molto di TV e del cinema per voi. 1486 01:07:56,930 --> 01:07:58,930 Ho pensato che saremmo finiti qui con i nostri secondi finali 1487 01:07:58,930 --> 01:08:03,700 su una clip finale che si mostra come l'hacking sulle opere di internet. 1488 01:08:03,700 --> 01:08:06,250 Se potessimo ridurre la luminosità accende un'ultima volta. 1489 01:08:06,250 --> 01:08:07,250 >> [RIPRODUZIONE VIDEO] 1490 01:08:07,250 --> 01:08:09,520 >> -Nessun modo. 1491 01:08:09,520 --> 01:08:10,650 Mi sto violato. 1492 01:08:10,650 --> 01:08:11,770 >> -Okorsky? 1493 01:08:11,770 --> 01:08:14,230 >> -No-- No, questo è importante. 1494 01:08:14,230 --> 01:08:17,074 Hanno già bruciate il firewall pubblico NCIS. 1495 01:08:17,074 --> 01:08:19,990 -Bene, Isolare il nodo e discarica li sull'altro lato del router. 1496 01:08:19,990 --> 01:08:20,990 -Sto cercando. 1497 01:08:20,990 --> 01:08:23,990 Si sta muovendo troppo in fretta. 1498 01:08:23,990 --> 01:08:25,179 >> Oh, questo non va bene. 1499 01:08:25,179 --> 01:08:27,470 Stanno usando la nostra connessione [Incomprensibile] questo database. 1500 01:08:27,470 --> 01:08:28,458 Sever esso. 1501 01:08:28,458 --> 01:08:28,958 -Non Può. 1502 01:08:28,958 --> 01:08:29,454 E 'un attacco punto. 1503 01:08:29,454 --> 01:08:31,438 Lui o lei è solo andare dopo la mia macchina. 1504 01:08:31,438 --> 01:08:32,430 >> -Non è possibile. 1505 01:08:32,430 --> 01:08:33,847 C'è crittografia DOD il mio livello. 1506 01:08:33,847 --> 01:08:35,055 Ci vorrebbero mesi per get-- 1507 01:08:35,055 --> 01:08:35,857 Ehi, che cos'è? 1508 01:08:35,857 --> 01:08:36,398 Un videogioco? 1509 01:08:36,398 --> 01:08:37,886 >> -No Tony, stiamo ottenendo violato. 1510 01:08:37,886 --> 01:08:40,795 >> -Se Si mettono in computer di Abby, l'intera rete NCIS è accanto. 1511 01:08:40,795 --> 01:08:42,050 >> -Non Può fermarlo. 1512 01:08:42,050 --> 01:08:43,050 Fare qualcosa di McGee. 1513 01:08:43,050 --> 01:08:44,550 >> -Ho Mai visto codice come questo. 1514 01:08:44,550 --> 01:08:47,432 1515 01:08:47,432 --> 01:08:48,571 Oh. 1516 01:08:48,571 --> 01:08:49,196 -Dove Sta a finire? 1517 01:08:49,196 --> 01:08:50,604 Abby? 1518 01:08:50,604 --> 01:08:51,520 -Io Non ha fatto nulla. 1519 01:08:51,520 --> 01:08:53,020 Ho pensato che hai fatto. 1520 01:08:53,020 --> 01:08:54,520 >> -No. 1521 01:08:54,520 --> 01:08:57,232 >> -Ho fatto. 1522 01:08:57,232 --> 01:08:58,307 >> [FINE RIPRODUZIONE] 1523 01:08:58,307 --> 01:09:00,390 DAVID J. MALAN: Il migliore parte è di due persone che digitano 1524 01:09:00,390 --> 01:09:02,170 sulla tastiera contemporaneamente. 1525 01:09:02,170 --> 01:09:03,200 >> Quindi questo è tutto per CS50. 1526 01:09:03,200 --> 01:09:04,700 Restiamo sempre in giro per l'orario di ufficio. 1527 01:09:04,700 --> 01:09:06,344 E noi vediamo la prossima volta. 1528 01:09:06,344 --> 01:09:07,760 [MUSICA GIOCO - "TEMA Seinfeld"] 1529 01:09:07,760 --> 01:09:11,139 1530 01:09:11,139 --> 01:09:11,680 Questo è CS50. 1531 01:09:11,680 --> 01:09:17,960 1532 01:09:17,960 --> 01:09:20,854 Non voglio essere un pirata. 1533 01:09:20,854 --> 01:09:21,770 SPEAKER 2: Yarr David. 1534 01:09:21,770 --> 01:09:23,700 Si tratta di una bella doppietta voi indossare. 1535 01:09:23,700 --> 01:09:26,450 Lotto di orzare quel soffio. 1536 01:09:26,450 --> 01:09:29,327