1 00:00:00,000 --> 00:00:03,395 >> [Música tocando] 2 00:00:03,395 --> 00:00:13,100 3 00:00:13,100 --> 00:00:15,570 >> DAVID J. MALAN: Então, eu só queria amenizar a. 4 00:00:15,570 --> 00:00:18,260 Gostaria echo exatamente o que SCAZ disse sobre a memória institucional. 5 00:00:18,260 --> 00:00:20,350 CS50 tem sido em torno de cerca de 20 anos em Harvard. 6 00:00:20,350 --> 00:00:22,280 E a realidade é, a partir de os idosos para baixo, 7 00:00:22,280 --> 00:00:25,045 há anualmente tranquilidade que os calouros, os alunos do segundo ano, 8 00:00:25,045 --> 00:00:26,870 e os juniores e Também os idosos a tomar 9 00:00:26,870 --> 00:00:30,360 CS50, que você acaba fazendo muito bem. 10 00:00:30,360 --> 00:00:32,680 >> A realidade é, os alunos não falhar CS50. 11 00:00:32,680 --> 00:00:35,740 Na verdade, nas raras onde nós tivemos Es ou Fs, 12 00:00:35,740 --> 00:00:37,990 Tem sido realmente por causa de circunstâncias extenuantes, 13 00:00:37,990 --> 00:00:39,840 se é médico ou pessoal. 14 00:00:39,840 --> 00:00:41,830 Ds são incrivelmente raro assim. 15 00:00:41,830 --> 00:00:45,270 E eu posso dizer confortavelmente, embora nós normalmente não divulgam estatísticas, 16 00:00:45,270 --> 00:00:48,450 mas uma vez que não há nenhuma memória institucional aqui qualquer, 17 00:00:48,450 --> 00:00:51,810 a maioria dos estudantes em CS50 não acabar recebendo um graus da escala. 18 00:00:51,810 --> 00:00:54,720 Uma parte significativa acabar terminando na faixa B também. 19 00:00:54,720 --> 00:00:57,490 >> Assim, mesmo que você talvez possa estar equacionando em seus trios mente 20 00:00:57,490 --> 00:01:00,690 com 60% e, portanto, Ds, ou Cs, ou semelhante, 21 00:01:00,690 --> 00:01:02,530 ele realmente não se alinha -se com a realidade. 22 00:01:02,530 --> 00:01:05,238 Na verdade, queremos dizer exatamente o que nós dizer, no início do termo 23 00:01:05,238 --> 00:01:08,380 que tantos estudantes em CS50, ambos em Cambridge e aqui em New Haven, 24 00:01:08,380 --> 00:01:10,220 nunca frequentaram um curso CS antes. 25 00:01:10,220 --> 00:01:13,090 E o que de fato importa, em última instância é o lugar onde você acaba na semana 12 26 00:01:13,090 --> 00:01:15,882 em relação a si mesmo na semana zero. 27 00:01:15,882 --> 00:01:17,590 Agora temos múltipla rastreia no curso 28 00:01:17,590 --> 00:01:20,548 como você sabe-- menos confortável, mais confortável, algures no meio. 29 00:01:20,548 --> 00:01:23,790 E, de fato, quando você chegar estatísticas sobre o teste desta semana, 30 00:01:23,790 --> 00:01:27,460 Não desanime se, especialmente se Você sente que você está em torno da média 31 00:01:27,460 --> 00:01:30,780 ou abaixo da média ou da mediana, especialmente desde que não necessariamente 32 00:01:30,780 --> 00:01:33,560 tomar todos esses dados demográficos em conta na metade do semestre 33 00:01:33,560 --> 00:01:35,000 com as estatísticas de classificação. 34 00:01:35,000 --> 00:01:37,250 >> Em outras palavras, sabemos estatisticamente a cada ano 35 00:01:37,250 --> 00:01:39,570 que os estudantes que são menos confortáveis, fazer um pouco pior no quiz. 36 00:01:39,570 --> 00:01:42,050 E os estudantes que são mais confortáveis fazer um pouco melhor no quiz. 37 00:01:42,050 --> 00:01:45,430 Mas por que a promessa no programa e também na primeira semana de palestras, 38 00:01:45,430 --> 00:01:46,880 levamos tudo isso em conta. 39 00:01:46,880 --> 00:01:48,900 >> Com efeito, na extremidade anos, o que acaba fazendo 40 00:01:48,900 --> 00:01:52,154 é normalizar todas as pontuações do outro lado secções, tanto em Cambridge 41 00:01:52,154 --> 00:01:54,570 e agora aqui em New Haven, o que significa que, tendo em conta 42 00:01:54,570 --> 00:01:57,310 os estilos díspares, o disparate aspereza, a sorte diferente 43 00:01:57,310 --> 00:02:00,722 de personalidades que o indivíduo TAs têm aqui e em Cambridge 44 00:02:00,722 --> 00:02:02,930 de modo que você não está em um desvantagem mesmo que você acabou 45 00:02:02,930 --> 00:02:06,120 acontecer de ter tido um TF ou TA que foi um pouco mais difícil de você 46 00:02:06,120 --> 00:02:07,170 Na sua cabeça. 47 00:02:07,170 --> 00:02:10,139 >> Dois, devemos levar em conta o conforto nível e fundo real, ou a falta 48 00:02:10,139 --> 00:02:13,310 do mesmo, ao tomar pontuações do questionário em conta. 49 00:02:13,310 --> 00:02:14,830 Portanto, aqueles dois estão incluídos. 50 00:02:14,830 --> 00:02:17,142 E no final do dia, porque é sempre o caso 51 00:02:17,142 --> 00:02:19,100 que um estudante terminou em uma seção menos confortável 52 00:02:19,100 --> 00:02:24,250 quando ele ou ela realmente pertencia em um de entre-ou vice-versa, 53 00:02:24,250 --> 00:02:26,230 tudo é tão incrivelmente individualizada. 54 00:02:26,230 --> 00:02:29,560 Na verdade, você vai ficar irritado com-nos em o fim do prazo, quando estamos atrasados 55 00:02:29,560 --> 00:02:32,630 enviar suas notas porque com SCAZ, e Jason e Andy, e eu, 56 00:02:32,630 --> 00:02:35,430 ea equipe vai ter feito em Cambridge é, literalmente, 57 00:02:35,430 --> 00:02:38,480 tem centenas de e-mails para trás e adiante com tudo cento dos cursos 58 00:02:38,480 --> 00:02:41,279 TAS, aqui e em Cambridge, pedindo-lhes que 59 00:02:41,279 --> 00:02:44,070 eles pensam de todos os seus alunos com base num projecto das notas. 60 00:02:44,070 --> 00:02:46,230 E tudo o que há depois é incrivelmente individualizada. 61 00:02:46,230 --> 00:02:49,230 Então, na medida em que ficamos a conhecer você em horário de expediente, seções e mais, 62 00:02:49,230 --> 00:02:51,350 tudo isso também é levada em conta. 63 00:02:51,350 --> 00:02:55,210 >> Assim, embora nós tendemos a usar este cinco escala de pontos, por favor, retire-se 64 00:02:55,210 --> 00:02:57,492 a partir do pressuposto de que três é realmente um 60%. 65 00:02:57,492 --> 00:02:58,450 Ele foi criado para ser bom. 66 00:02:58,450 --> 00:03:01,360 E os assistentes de ensino são cobrados no início termo 67 00:03:01,360 --> 00:03:04,050 para tentar manter pontuações nos grupos de dois, ou três, 68 00:03:04,050 --> 00:03:06,590 fours e variar de modo que nós realmente tem espaço para crescer. 69 00:03:06,590 --> 00:03:08,610 E nós realmente temos um critério pelo qual 70 00:03:08,610 --> 00:03:11,086 podemos dar-lhe útil feedback sobre como você está fazendo 71 00:03:11,086 --> 00:03:12,210 e como você está progredindo. 72 00:03:12,210 --> 00:03:15,130 Então, por favor, levar isso a sério. 73 00:03:15,130 --> 00:03:20,565 >> Há alguma pergunta que eu possa ajudá- tratar ou preocupações que podem ajudar a amenizar? 74 00:03:20,565 --> 00:03:23,800 Ou promessas que posso tentar manter? 75 00:03:23,800 --> 00:03:24,690 Não? 76 00:03:24,690 --> 00:03:25,330 ESTÁ BEM. 77 00:03:25,330 --> 00:03:26,010 >> Tudo certo. 78 00:03:26,010 --> 00:03:28,970 Então, com isso dito, este é CS50. 79 00:03:28,970 --> 00:03:31,670 Este é o início da semana seis aqui em New Haven. 80 00:03:31,670 --> 00:03:33,820 Vamos começar com uma breve escurecimento das luzes 81 00:03:33,820 --> 00:03:37,439 para definir o cenário para o índice de hoje. 82 00:03:37,439 --> 00:03:38,105 [REPRODUÇÃO DE VÍDEO] 83 00:03:38,105 --> 00:03:44,045 [Música tocando] 84 00:03:44,045 --> 00:03:46,600 -Ele Veio com uma mensagem. 85 00:03:46,600 --> 00:03:50,300 86 00:03:50,300 --> 00:03:52,900 Com um protocolo de todos os seus próprios. 87 00:03:52,900 --> 00:04:06,417 88 00:04:06,417 --> 00:04:13,090 Ele veio para um mundo de firewalls legal, routers indiferente, e perigos muito piores 89 00:04:13,090 --> 00:04:16,079 que a morte. 90 00:04:16,079 --> 00:04:21,079 Ele é rápido, ele é forte, ele é TCP / IP. 91 00:04:21,079 --> 00:04:23,120 E ele tem o seu endereço. 92 00:04:23,120 --> 00:04:25,820 93 00:04:25,820 --> 00:04:29,268 Guerreiros da rede. 94 00:04:29,268 --> 00:04:29,917 >> [FIM DE REPRODUÇÃO] 95 00:04:29,917 --> 00:04:31,000 DAVID J. MALAN: Tudo bem. 96 00:04:31,000 --> 00:04:32,030 Este é CS50. 97 00:04:32,030 --> 00:04:33,820 Este é o início da semana seis. 98 00:04:33,820 --> 00:04:37,270 E este é o início do nosso olhar na programação internet e web. 99 00:04:37,270 --> 00:04:41,220 E, talvez o mais excitante, hoje marca a transição para nós 100 00:04:41,220 --> 00:04:43,780 da nossa linha de comando mundo da C para a web 101 00:04:43,780 --> 00:04:47,020 mundo baseado de PHP e HTML, e CSS, e SQL e JavaScript, 102 00:04:47,020 --> 00:04:49,800 e tanto mais que é no horizonte. 103 00:04:49,800 --> 00:04:53,390 >> Mas, primeiro, ele veio ao nosso conhecimento em andar pelo campus que não 104 00:04:53,390 --> 00:04:57,914 é determinado um banho aqui em Nova Haven chamado a sala de Harvard, que 105 00:04:57,914 --> 00:04:59,080 é um pouco acinzentado aqui. 106 00:04:59,080 --> 00:05:03,830 Mas, de fato, alguém foi para o tempo ea despesa de gravura na sala de Harvard 107 00:05:03,830 --> 00:05:05,700 aqui nesta sala. 108 00:05:05,700 --> 00:05:07,790 Obrigado por isso. 109 00:05:07,790 --> 00:05:11,020 Eu não posso dizer que temos um Ainda análogo em Cambridge, 110 00:05:11,020 --> 00:05:14,060 mas eu acho que nós temos um pouco de projeto para nós mesmos agora quando vamos voltar. 111 00:05:14,060 --> 00:05:15,890 Então, obrigado por isso. 112 00:05:15,890 --> 00:05:18,340 >> Então, um rápido olhar para trás, onde paramos na semana passada 113 00:05:18,340 --> 00:05:21,010 e para onde está indo no próximo semana com problemas de definir cinco. 114 00:05:21,010 --> 00:05:24,350 Assim, no conjunto de problemas cinco, você poderá desafiados a implementar um corretor ortográfico. 115 00:05:24,350 --> 00:05:26,630 E para fazer isso, você poderá entregou um texto muito grande 116 00:05:26,630 --> 00:05:29,160 arquivo como com 140.000 palavras em inglês. 117 00:05:29,160 --> 00:05:32,610 E você vai ser desafiados a decidir sobre uma estrutura de dados com a qual 118 00:05:32,610 --> 00:05:35,340 deseja carregar todas essas palavras na memória, e para a memória RAM, 119 00:05:35,340 --> 00:05:38,470 e, em seguida, implementar algumas funções, um dos quais vai ser verificar. 120 00:05:38,470 --> 00:05:41,555 Pelo que, quando passou um argumento, Numa palavra, o seu teste de funcionamento 121 00:05:41,555 --> 00:05:43,430 simplesmente vai ter dizer verdadeiro ou falso, 122 00:05:43,430 --> 00:05:44,990 esta é uma palavra no dicionário. 123 00:05:44,990 --> 00:05:47,110 >> Mas você vai ter algum discrição projeto e desafios 124 00:05:47,110 --> 00:05:48,568 quando se trata de implementar isso. 125 00:05:48,568 --> 00:05:51,250 Na implementação mais simples, você poderia certamente 126 00:05:51,250 --> 00:05:53,960 implementar um corretor ortográfico em o dicionário subjacente 127 00:05:53,960 --> 00:05:55,380 com o tipo de estrutura de dados? 128 00:05:55,380 --> 00:05:57,796 Você só precisa armazenar um todo bando de strings na memória? 129 00:05:57,796 --> 00:06:00,074 Qual é o movimento para responder a partir de duas semanas, talvez? 130 00:06:00,074 --> 00:06:00,740 AUDIÊNCIA: Array. 131 00:06:00,740 --> 00:06:01,500 DAVID J. MALAN: Você pode usar uma matriz. 132 00:06:01,500 --> 00:06:02,750 E isso não é de todo ruim. 133 00:06:02,750 --> 00:06:05,631 Mas você não necessariamente sabe com antecedência como grande de um array 134 00:06:05,631 --> 00:06:08,630 você vai precisar de, se não o fizer sabe que o arquivo necessariamente com antecedência. 135 00:06:08,630 --> 00:06:10,110 Então você vai ter que usar um pouco de malandragem 136 00:06:10,110 --> 00:06:11,970 como malloc, como começamos a usar. 137 00:06:11,970 --> 00:06:13,977 Ou poderíamos abordar que a preocupação usando 138 00:06:13,977 --> 00:06:16,810 o que outra estrutura de dados que é foi uma espécie de aumento marginal 139 00:06:16,810 --> 00:06:17,894 em uma matriz? 140 00:06:17,894 --> 00:06:18,810 AUDIÊNCIA: lista encadeada. 141 00:06:18,810 --> 00:06:21,270 DAVID J. MALAN: Como um ligado lista, em que temos algum dinamismo. 142 00:06:21,270 --> 00:06:22,686 Mas há um pouco mais despesa. 143 00:06:22,686 --> 00:06:24,150 Temos ponteiros para manter. 144 00:06:24,150 --> 00:06:25,890 E você ainda não codificada esta -se, mas há definitivamente 145 00:06:25,890 --> 00:06:28,473 para ser um pouco maior complexidade que apenas usando colchetes 146 00:06:28,473 --> 00:06:30,080 e pulando uma matriz. 147 00:06:30,080 --> 00:06:33,340 >> Mas o tempo correndo de uma matriz, se você está à procura de uma palavra, 148 00:06:33,340 --> 00:06:34,179 pode ser log de n. 149 00:06:34,179 --> 00:06:35,970 Mas, novamente, pode ser um pouco não-trivial 150 00:06:35,970 --> 00:06:38,734 para construir essa matriz não o conhecimento do tamanho de antecedência. 151 00:06:38,734 --> 00:06:41,150 Uma lista ligada, porém, se você apenas armazenar um monte de cordas 152 00:06:41,150 --> 00:06:43,300 em uma lista vinculada, qual é o seu limite superior 153 00:06:43,300 --> 00:06:46,920 sobre a execução de tempo vai ser para pesquisa para ou verificar uma palavra nessa lista? 154 00:06:46,920 --> 00:06:47,700 >> AUDIÊNCIA: n. 155 00:06:47,700 --> 00:06:50,575 >> DAVID J. MALAN: Sim, grande O de n ou linear porque na pior das hipóteses, 156 00:06:50,575 --> 00:06:52,640 a palavra é como uma palavra Z todo o caminho no final. 157 00:06:52,640 --> 00:06:55,350 E por causa de uma lista ligada, porque essas flechas, por padrão, 158 00:06:55,350 --> 00:06:58,280 em uma lista vinculada isoladamente, só vão a partir de uma direcção para a outra, 159 00:06:58,280 --> 00:06:59,590 você não pode saltar ao redor. 160 00:06:59,590 --> 00:07:01,160 Você tem que seguir todos eles. 161 00:07:01,160 --> 00:07:05,505 >> Então propusemos no final da semana passada, semana cinco, que há maneiras melhores. 162 00:07:05,505 --> 00:07:08,727 E, de fato, o Santo Graal seria realmente constante de tempo 163 00:07:08,727 --> 00:07:10,560 pelo que, quando você quiser para procurar uma palavra, você 164 00:07:10,560 --> 00:07:13,370 receber uma resposta instantânea, independentemente de quantas palavras já são 165 00:07:13,370 --> 00:07:14,350 em seu dicionário. 166 00:07:14,350 --> 00:07:17,680 >> Esta é a interpretação de um artista de o que se pode chamar de uma tabela hash. 167 00:07:17,680 --> 00:07:21,900 E uma tabela hash é uma espécie de agradável amálgama de um array-- desenhada verticalmente 168 00:07:21,900 --> 00:07:26,416 aqui, apenas porque-- e, em seguida, um ligada lista-- desenhar horizontalmente aqui. 169 00:07:26,416 --> 00:07:28,790 E a tabela de hash pode ser implementado em cachos de maneiras. 170 00:07:28,790 --> 00:07:34,110 Este trecho de um livro didático acontece usar datas de nascimento dessas pessoas 171 00:07:34,110 --> 00:07:38,940 como o meio pelo qual ele está decidindo onde colocar o nome de alguém. 172 00:07:38,940 --> 00:07:41,230 Portanto, este é um dicionário se você vai de nomes. 173 00:07:41,230 --> 00:07:45,240 E, a fim de agilizar a colocação nomes para essa estrutura de dados, 174 00:07:45,240 --> 00:07:49,280 eles olham para, aparentemente, essas pessoas de datas de nascimento, com respeito a um mês. 175 00:07:49,280 --> 00:07:50,570 >> Portanto, é de 1 a 31. 176 00:07:50,570 --> 00:07:52,910 E esquecer de fevereiro e casos de canto assim. 177 00:07:52,910 --> 00:07:57,050 E se o seu aniversário é em janeiro 1, ou 01 de fevereiro, ou 01 de dezembro, 178 00:07:57,050 --> 00:07:59,890 você vai acabar em a primeira cadeia de topo para cima. 179 00:07:59,890 --> 00:08:02,150 Se a sua data de nascimento é como o dia 25 de um mês, 180 00:08:02,150 --> 00:08:04,567 você vai acabar no balde número 25. 181 00:08:04,567 --> 00:08:07,400 E se há alguém lá já em qualquer desses locais, o que 182 00:08:07,400 --> 00:08:10,470 você começar a fazer com estes ligados listas é costurá-las juntas 183 00:08:10,470 --> 00:08:14,320 de modo que você pode ter uma arbitrária número de pessoas, ou qualquer coisa, 184 00:08:14,320 --> 00:08:15,580 nesse local. 185 00:08:15,580 --> 00:08:18,400 >> Então você tem uma espécie de mistura de constante de tempo para hash. 186 00:08:18,400 --> 00:08:21,160 E para botar alguma coisa significa tomar como entrada como uma pessoa, 187 00:08:21,160 --> 00:08:25,360 ou pelo seu nome, ou o seu nascimento data, e então decidir sobre alguma saída 188 00:08:25,360 --> 00:08:29,780 com base nisso, como olhar para o seu aniversário e saída de um a 31. 189 00:08:29,780 --> 00:08:31,900 >> Então, então você pode ter um pouco de tempo linear, 190 00:08:31,900 --> 00:08:34,429 mas, na realidade, e tal como no o caso de problema definir cinco, 191 00:08:34,429 --> 00:08:36,220 nós não vamos ser trabalhando em P ajustou cinco 192 00:08:36,220 --> 00:08:40,059 tanto sobre a execução assintótica tempo, como a lentidão teórica 193 00:08:40,059 --> 00:08:41,809 com um algoritmo que pode ser executado. 194 00:08:41,809 --> 00:08:44,330 Nós estamos indo para se preocupar com o número real de segundos 195 00:08:44,330 --> 00:08:47,350 e a quantidade real de memória, o número real de bytes de memória 196 00:08:47,350 --> 00:08:48,140 você está usando. 197 00:08:48,140 --> 00:08:52,710 Então, francamente, tendo um enorme cadeia de como um milhão de pessoas 198 00:08:52,710 --> 00:08:56,710 é muito muito lento se você estiver pesquisando para um nome em uma lista de tamanhos milhões. 199 00:08:56,710 --> 00:08:59,830 >> Mas o que se você dividir que lista acima em 31 partes? 200 00:08:59,830 --> 00:09:04,400 Pesquisando 1/31 desse Super longa lista, na realidade, 201 00:09:04,400 --> 00:09:05,741 é, certamente, vai ser mais rápido. 202 00:09:05,741 --> 00:09:07,240 Assintoticamente, é a mesma coisa. 203 00:09:07,240 --> 00:09:08,860 Você só está dividindo por um factor constante. 204 00:09:08,860 --> 00:09:10,651 E lembrar que nós jogue as coisas de distância. 205 00:09:10,651 --> 00:09:13,486 Mas, na realidade, vai para ser 31 vezes mais rápido. 206 00:09:13,486 --> 00:09:16,110 E é isso que nós vamos começar a força de alavanca em P ajustou cinco. 207 00:09:16,110 --> 00:09:18,750 >> Então P ajustou cinco demais também propõe que você considere 208 00:09:18,750 --> 00:09:21,810 ligeiramente mais sofisticado estrutura de dados chamada um trie. 209 00:09:21,810 --> 00:09:24,420 E um trie é apenas um árvore como a estrutura de dados. 210 00:09:24,420 --> 00:09:26,672 Mas em vez de ter pequenos círculos ou retângulos 211 00:09:26,672 --> 00:09:28,380 como nós mantemos desenho para nós, é, na verdade, 212 00:09:28,380 --> 00:09:30,840 tem arrays inteiros para seus nós. 213 00:09:30,840 --> 00:09:33,430 E mesmo que este é um pouco abstrato aqui para olhar, 214 00:09:33,430 --> 00:09:35,450 Zamyla no conjunto P caminhada através irá orientá-lo 215 00:09:35,450 --> 00:09:37,580 através de mais detalhes sobre isso. 216 00:09:37,580 --> 00:09:39,980 Esta é uma estrutura de dados que, em vez de forma inteligente 217 00:09:39,980 --> 00:09:44,130 pode ter cada nó sendo uma matriz de tamanho 26, de A a Z ou zero 218 00:09:44,130 --> 00:09:45,320 a 25. 219 00:09:45,320 --> 00:09:49,260 E quando você deseja inserir uma pessoa de nomear para essa estrutura de dados ou encontrar 220 00:09:49,260 --> 00:09:53,990 ele ou ela, o que você faz, se o nome é como Maxwell, M-A-X-W-E-G-G, 221 00:09:53,990 --> 00:09:57,900 você olhar para M. E então você salte para a localização correspondente M 222 00:09:57,900 --> 00:09:59,100 na primeira matriz. 223 00:09:59,100 --> 00:10:02,400 Você, então, ir para A, o primeiro localização no próximo matriz, 224 00:10:02,400 --> 00:10:03,610 seguindo as setas. 225 00:10:03,610 --> 00:10:08,300 Em seguida, X, W, em seguida, em seguida, E, em seguida, L, em seguida, L, e então talvez algum fim especial 226 00:10:08,300 --> 00:10:11,850 caráter, alguns sentinela que diz uma palavra pára aqui. 227 00:10:11,850 --> 00:10:14,780 >> E o que é agradável sobre isto-- e tenha em mente que a imagem aqui, 228 00:10:14,780 --> 00:10:16,797 Observe como bordas de cada array são cortadas. 229 00:10:16,797 --> 00:10:19,630 Isso é só porque esta coisa seria ser enorme e horrível de olhar 230 00:10:19,630 --> 00:10:20,338 a na tela. 231 00:10:20,338 --> 00:10:21,820 Portanto, é extraído. 232 00:10:21,820 --> 00:10:25,920 O que é agradável sobre esta abordagem é que, se há um milhão de nomes já 233 00:10:25,920 --> 00:10:30,890 nesta estrutura de dados, como muitos passos leva-me para inserir Maxwell? 234 00:10:30,890 --> 00:10:36,450 M-A-X-W-E-L-L-- como sete-ish etapas para inserir ou olhar para Maxwell. 235 00:10:36,450 --> 00:10:39,320 >> Suponha que há um trilhão nomes nesta estrutura de dados. 236 00:10:39,320 --> 00:10:41,900 Quantos passos que é preciso me a olhar para Maxwell? 237 00:10:41,900 --> 00:10:43,450 M-A-x-- ainda sete. 238 00:10:43,450 --> 00:10:45,770 >> E é aí que reside o o chamado tempo constante. 239 00:10:45,770 --> 00:10:47,960 Se assumirmos que as palavras são certamente delimitada 240 00:10:47,960 --> 00:10:52,150 por 20 caracteres, ou 46 caracteres, ou algum inteiro razoavelmente pequena, 241 00:10:52,150 --> 00:10:53,790 então é efetivamente uma constante. 242 00:10:53,790 --> 00:10:57,790 E assim inserção e procura um trie é super rápido. 243 00:10:57,790 --> 00:10:59,540 É claro, nós nunca obter algo de graça. 244 00:10:59,540 --> 00:11:02,740 E mesmo que você provavelmente não mergulhou na P ajustou cinco ainda, 245 00:11:02,740 --> 00:11:06,596 qual o preço que estamos pagando provavelmente a obter uma maior eficiência tempo sábio? 246 00:11:06,596 --> 00:11:07,470 >> AUDIÊNCIA: Memória. 247 00:11:07,470 --> 00:11:08,390 >> DAVID J. MALAN: Memória, certo? 248 00:11:08,390 --> 00:11:10,240 Quero dizer, nós não tenha desenhado toda a imagem aqui. 249 00:11:10,240 --> 00:11:12,823 Este trecho do livro não tem atraído todas as matrizes. 250 00:11:12,823 --> 00:11:16,687 Há uma enorme quantidade de memória e apenas ponteiros nulos que não estão sendo utilizados. 251 00:11:16,687 --> 00:11:17,520 Portanto, é um trade off. 252 00:11:17,520 --> 00:11:21,050 E vai ser deixado para você em P ajustou cinco para decidir sobre o caminho que você quer ir. 253 00:11:21,050 --> 00:11:24,460 >> Agora essa idéia de hashing, como um de lado, é realmente super-prevalentes. 254 00:11:24,460 --> 00:11:27,980 Então, para botar um meio de valores, bastante simplesmente, para ter algo como entrada 255 00:11:27,980 --> 00:11:29,220 e produzir uma saída. 256 00:11:29,220 --> 00:11:31,270 Assim, uma função hash é apenas um algoritmo. 257 00:11:31,270 --> 00:11:34,990 >> E, geralmente, um propósito funções hash na vida é ter algo como entrada 258 00:11:34,990 --> 00:11:39,655 e produzir um número como de saída, como o número de um a 31 ou A a Z, 259 00:11:39,655 --> 00:11:40,960 de zero a 25. 260 00:11:40,960 --> 00:11:44,250 Então, é preciso um complexo de saída e encolhe-lo para algo 261 00:11:44,250 --> 00:11:46,310 isso é um pouco mais útil e gerenciável. 262 00:11:46,310 --> 00:11:49,250 >> E assim acontece que em uma função muito popular 263 00:11:49,250 --> 00:11:51,160 que o mundo da segurança e do mundo humano 264 00:11:51,160 --> 00:11:53,060 usado por anos é chamado SHA1. 265 00:11:53,060 --> 00:11:56,260 Esta é uma bela fantasia matemática fórmula que faz essencialmente que. 266 00:11:56,260 --> 00:11:58,870 >> Você toma um realmente grande pedaço de zeros e ones-- 267 00:11:58,870 --> 00:12:01,530 que poderia ser um megabyte por muito tempo, um gigabyte long-- 268 00:12:01,530 --> 00:12:05,930 e ele encolhe para baixo a apenas alguns pedaços, alguns pedaços, 269 00:12:05,930 --> 00:12:09,082 para que você tenha um número como de um a 31, ou de A a Z. 270 00:12:09,082 --> 00:12:11,540 Mas, na realidade, é um pouco maior do que apenas A a Z. 271 00:12:11,540 --> 00:12:16,640 >> Infelizmente, nós estamos no limite do que alguém de brincadeira chamada de SHAppening 272 00:12:16,640 --> 00:12:19,840 através do qual o mundo está prestes a provavelmente terminará em poucos meses 273 00:12:19,840 --> 00:12:22,617 tempo porque os pesquisadores, apenas na semana passada, 274 00:12:22,617 --> 00:12:25,700 publicou um relatório que, contrariamente ao o que os pesquisadores de segurança ter pensado 275 00:12:25,700 --> 00:12:29,810 durante algum tempo, por apenas gastando cerca, o que era, 276 00:12:29,810 --> 00:12:33,420 Eu acho que foi de US $ 175,000-- muito dinheiro, 277 00:12:33,420 --> 00:12:36,540 mas não além do alcance de particularmente ruins bandidos, 278 00:12:36,540 --> 00:12:41,560 ou particularmente ruim países-- $ 175.000 poderia comprar-lhe um monte de servidor alugado 279 00:12:41,560 --> 00:12:42,690 espaço na nuvem. 280 00:12:42,690 --> 00:12:44,619 E nós vamos voltar a a nuvem antes do tempo. 281 00:12:44,619 --> 00:12:47,410 Mas isso apenas significa alugar servidor espaço em como os servidores da Microsoft, 282 00:12:47,410 --> 00:12:50,285 ou Google, Amazon ou da, ou a como onde você pode pagar a cada minuto 283 00:12:50,285 --> 00:12:51,670 usar computadores de outra pessoa. 284 00:12:51,670 --> 00:12:54,250 >> E acontece que se você pode pagar alguém para emprestar seus computadores 285 00:12:54,250 --> 00:12:56,730 e executar o código que você escreveu nele e usar bastante chique 286 00:12:56,730 --> 00:13:01,580 matemática, você pode essencialmente figura para fora como função hash de alguém é 287 00:13:01,580 --> 00:13:05,320 de trabalho, e dada a sua saída, engenharia reversa que sua entrada é. 288 00:13:05,320 --> 00:13:08,590 E para fins de hoje, basta dizer, isso é ruim. 289 00:13:08,590 --> 00:13:12,540 Como as funções de hash SHA1 e como ele são super comumente 290 00:13:12,540 --> 00:13:17,050 usado em aplicações de segurança, conexões criptografadas na web, 291 00:13:17,050 --> 00:13:21,890 transações bancárias, criptografia de celular para seus telefones celulares e similares. 292 00:13:21,890 --> 00:13:24,880 E assim qualquer momento alguém encontra uma maneira de reverter 293 00:13:24,880 --> 00:13:28,510 engendrar uma destas tecnologias ou quebrá-lo, as coisas ruins podem acontecer. 294 00:13:28,510 --> 00:13:30,300 >> Agora, o mundo já sabia disso. 295 00:13:30,300 --> 00:13:31,310 Isto era previsível. 296 00:13:31,310 --> 00:13:34,670 E o mundo, desde então, movidos de SHA1 para SHA256, 297 00:13:34,670 --> 00:13:37,320 que é apenas uma maneira elegante de dizendo que eles usam pedaços maiores. 298 00:13:37,320 --> 00:13:40,570 E, na verdade, até mesmo a própria CS50 site atualizado no ano passado a-- 299 00:13:40,570 --> 00:13:43,290 não fomos nós que enfrentar tudo isso muitos ameaças tentando chegar aos PDFs 300 00:13:43,290 --> 00:13:46,520 e whatnot-- mas o site do CS50 usa a maior função hash, 301 00:13:46,520 --> 00:13:47,980 o que significa que estaremos seguros. 302 00:13:47,980 --> 00:13:50,020 Então todos os seus PDFs estarão a salvo, mas não 303 00:13:50,020 --> 00:13:52,880 necessariamente o seu dinheiro ou qualquer coisa particularmente confidenciais ou pessoais 304 00:13:52,880 --> 00:13:53,380 para usar. 305 00:13:53,380 --> 00:13:56,550 Sp verificar que URL Se você quiser como alguns detalhes adicionais. 306 00:13:56,550 --> 00:13:59,840 >> Assim problema é definir cinco na verdade, no horizonte. 307 00:13:59,840 --> 00:14:01,560 Questionário é esta próxima quarta-feira. 308 00:14:01,560 --> 00:14:04,479 Mas não tirar partido de escritório horas, tanto esta noite e amanhã. 309 00:14:04,479 --> 00:14:07,770 E também tirar proveito do horário de expediente, se você estiver disponível, logo após isso. 310 00:14:07,770 --> 00:14:11,550 A equipe e eu vou ficar por aqui e fazer mais Q & A ocasional além de hoje à noite. 311 00:14:11,550 --> 00:14:16,610 E deixe-me notar fortemente aqui, para aqueles de nós aqui em Nova Haven-- 312 00:14:16,610 --> 00:14:19,360 por isso é absolutamente per SCAZ de observações senti, eu tenho certeza, 313 00:14:19,360 --> 00:14:21,140 como um pouco de uma luta difícil. 314 00:14:21,140 --> 00:14:24,627 E pela reputação, se você ainda não tenha aprendido ou ouvido 315 00:14:24,627 --> 00:14:27,710 de alguns amigos em Harvard, saber aqui estão algumas nova memória institucional. 316 00:14:27,710 --> 00:14:30,790 P ajustou cinco tipo de tipo de tende a ser o mais difícil em CS50, 317 00:14:30,790 --> 00:14:32,590 ou o mais desafiador para a maioria dos estudantes. 318 00:14:32,590 --> 00:14:37,180 >> Mas o que isso significa é que nós somos quase no topo da colina. 319 00:14:37,180 --> 00:14:38,270 E eu realmente quero dizer isso. 320 00:14:38,270 --> 00:14:40,728 É o mais desafiador, mas é também o mais gratificante 321 00:14:40,728 --> 00:14:43,560 em que ao contrário da maioria todos os outros ciência da computação introdutória 322 00:14:43,560 --> 00:14:47,980 curso em os EUA de que nós sabemos, a maioria dos estudantes não terminar uma intro 323 00:14:47,980 --> 00:14:51,400 Claro que já tiverem aplicado coisas como árvores, e tentativas, 324 00:14:51,400 --> 00:14:52,880 e tabelas de dispersão, e semelhantes. 325 00:14:52,880 --> 00:14:54,770 >> E assim eu espero, e nós esperamos que você é 326 00:14:54,770 --> 00:14:57,280 têm um sentido enorme de satisfação, mesmo 327 00:14:57,280 --> 00:15:00,760 Se o ou duas semanas através das quais você chegar a esse satisfação 328 00:15:00,760 --> 00:15:02,490 não se sentir um pouco como isso. 329 00:15:02,490 --> 00:15:05,250 Mas deixe-me tranquilizar, nós só tem quatro conjuntos P esquerda. 330 00:15:05,250 --> 00:15:07,380 Então, que tipo de topo está à vista. 331 00:15:07,380 --> 00:15:12,370 >> Do outro lado do mesmo, confiar em nós, é só colinas e nuvens. 332 00:15:12,370 --> 00:15:16,000 E diremos, filhotes de cachorro são, por outro lado. 333 00:15:16,000 --> 00:15:18,340 Então você só tem que pendurar lá um pouco mais. 334 00:15:18,340 --> 00:15:22,050 Quer dizer, na verdade, quando começamos a transição no mundo da programação web, 335 00:15:22,050 --> 00:15:26,060 você vai descobrir que as coisas become-- este é realmente adorável. 336 00:15:26,060 --> 00:15:29,680 337 00:15:29,680 --> 00:15:33,490 OK, vamos deixar esta URL mais tarde. 338 00:15:33,490 --> 00:15:36,140 Você encontrará também que nós somos alcançando uma espécie de platô 339 00:15:36,140 --> 00:15:38,150 onde tudo é na verdade, ainda sofisticado 340 00:15:38,150 --> 00:15:40,170 e desafiador por design, mas você não é 341 00:15:40,170 --> 00:15:42,590 vai se sentir como nós somos perpetuamente subindo este morro. 342 00:15:42,590 --> 00:15:44,390 Portanto, tome algum conforto nisso. 343 00:15:44,390 --> 00:15:47,409 >> Assim, sem mais delongas, vamos começar para fazer essa transição de mercado 344 00:15:47,409 --> 00:15:49,950 no semestre para o mundo da a web, e realmente o mundo 345 00:15:49,950 --> 00:15:51,420 com a qual todos nós estamos mais familiarizados. 346 00:15:51,420 --> 00:15:53,753 Temos dispositivos de Internet em nossos bolsos, em nossas mesas, 347 00:15:53,753 --> 00:15:55,127 nas nossas mochilas, e semelhantes. 348 00:15:55,127 --> 00:15:56,210 Como faz todo esse trabalho? 349 00:15:56,210 --> 00:15:59,077 E como podemos começar a escrever código que não é super arcano 350 00:15:59,077 --> 00:16:01,910 e de alguma linha de texto intermitente que nenhum de seus amigos ou familiares 351 00:16:01,910 --> 00:16:04,659 são sempre vai querer interagir com, mas algo que você pode colocar 352 00:16:04,659 --> 00:16:06,660 em seus telefones, ou em seus navegadores da web, 353 00:16:06,660 --> 00:16:09,010 ou em quaisquer dispositivos com que eles interagem. 354 00:16:09,010 --> 00:16:10,430 >> Então aqui é a casa de alguém. 355 00:16:10,430 --> 00:16:14,040 E dentro desta casa é um par de laptops, um par de área de trabalho da velha escola 356 00:16:14,040 --> 00:16:17,470 computadores, uma coisa chamada router ou hub no meio, 357 00:16:17,470 --> 00:16:20,310 e, em seguida, algum tipo de modem por cabo ou modem DSL. 358 00:16:20,310 --> 00:16:24,560 E depois há a internet, geralmente desenhada como uma nuvem lá em cima no céu. 359 00:16:24,560 --> 00:16:29,230 >> Assim, este quadro, embora um pouco tipo de datada, 360 00:16:29,230 --> 00:16:32,604 certamente capta o que a maioria dos você provavelmente tem em suas casas, 361 00:16:32,604 --> 00:16:35,520 ou efetivamente o que todos vocês têm em seus dormitórios, ou apartamentos, 362 00:16:35,520 --> 00:16:36,480 ou semelhantes. 363 00:16:36,480 --> 00:16:40,010 >> Então, o que está realmente acontecendo quando você tentar usar a internet hoje? 364 00:16:40,010 --> 00:16:42,010 Assim, cada computador na internet, verifica-se, 365 00:16:42,010 --> 00:16:46,860 precisa ter um endereço exclusivo, tanto como nós no mundo real necessidade 366 00:16:46,860 --> 00:16:52,050 um endereço postal, como 51 Prospect Street, New Haven, Connecticut, ou 33 367 00:16:52,050 --> 00:16:54,170 Oxford Street, Cambridge, Massachusetts. 368 00:16:54,170 --> 00:16:58,520 Então faça computadores na internet precisa de um maneira de abordar-se de forma exclusiva. 369 00:16:58,520 --> 00:17:01,180 >> Isto é de modo que, quando um computador quer falar com outro, 370 00:17:01,180 --> 00:17:04,525 ele pode enviar uma mensagem e informar o destinatário a quem 371 00:17:04,525 --> 00:17:05,900 ele deve enviar a resposta de volta. 372 00:17:05,900 --> 00:17:07,900 Então ele só faz tipo de senso intuitivo, talvez, 373 00:17:07,900 --> 00:17:09,980 tudo o que tem um endereço de algum tipo. 374 00:17:09,980 --> 00:17:11,240 >> Mas como você obter um endereço? 375 00:17:11,240 --> 00:17:13,589 Bem, se você chegar aqui em campus, ou você vai para casa 376 00:17:13,589 --> 00:17:15,760 e você ligar o laptop ou computador desktop, 377 00:17:15,760 --> 00:17:17,770 e quer ligá-lo ou conectar a redes Wi-Fi, 378 00:17:17,770 --> 00:17:19,569 acontece que há um servidor especial 379 00:17:19,569 --> 00:17:22,089 Na maioria das redes chamado um servidor DHCP. 380 00:17:22,089 --> 00:17:23,880 Isso realmente não importa o que isso significa, 381 00:17:23,880 --> 00:17:26,660 mas é Dynamic Host Configuration protocolo, que é apenas 382 00:17:26,660 --> 00:17:29,760 uma maneira elegante de dizer, este é um computador que tem quer Yale, 383 00:17:29,760 --> 00:17:32,600 ou Harvard tem, ou Comcast tem, ou tem Verizon, 384 00:17:32,600 --> 00:17:35,100 ou sua empresa tem, cujo propósito na vida, 385 00:17:35,100 --> 00:17:38,810 quando se ouve alguém recém-adicionado para a rede, quer dizer aqui, 386 00:17:38,810 --> 00:17:40,010 use esse endereço. 387 00:17:40,010 --> 00:17:42,790 >> Então, nós, humanos, não tem que código duro em nossos computadores 388 00:17:42,790 --> 00:17:44,040 o que o nosso endereço exclusivo é. 389 00:17:44,040 --> 00:17:47,070 Nós apenas ligá-lo, abra o tampa, e de alguma forma este servidor 390 00:17:47,070 --> 00:17:52,210 na rede local só me diz que meu endereço é 51 Prospect Street, ou 33 391 00:17:52,210 --> 00:17:53,940 Oxford Street, ou semelhantes. 392 00:17:53,940 --> 00:17:56,000 >> Agora ele não vai ser tão detalhado como isso. 393 00:17:56,000 --> 00:18:00,210 Em vez disso o que eu estou indo para obter um endereço numérico chamado endereço IP. 394 00:18:00,210 --> 00:18:01,960 IP significa Internet Protocol. 395 00:18:01,960 --> 00:18:06,025 E as probabilidades são por este momento em sua vida, você provavelmente já ouviu falar ou viu a palavra IP, 396 00:18:06,025 --> 00:18:08,140 ou geralmente jogado em torno talvez. 397 00:18:08,140 --> 00:18:10,720 Mas, na verdade, é bastante para a frente uma coisa. 398 00:18:10,720 --> 00:18:13,610 >> Um endereço IP é apenas um número decimal pontilhado, 399 00:18:13,610 --> 00:18:17,150 que significa que é algo dot dot dot algo algo algo. 400 00:18:17,150 --> 00:18:21,980 E cada um desses poucos anos acontece para ser um número entre 0 e 255. 401 00:18:21,980 --> 00:18:26,710 >> Assim, com base em cinco semanas, mais de CS50, se estes números cada intervalo de 0 a 255, 402 00:18:26,710 --> 00:18:28,713 quantos bits é cada desses sinais de número? 403 00:18:28,713 --> 00:18:29,420 >> AUDIÊNCIA: Oito. 404 00:18:29,420 --> 00:18:30,100 >> DAVID J. MALAN: Tem que ser oito. 405 00:18:30,100 --> 00:18:31,933 Assim, no total, quantas bocados é um endereço IP? 406 00:18:31,933 --> 00:18:32,710 AUDIÊNCIA: 32. 407 00:18:32,710 --> 00:18:33,820 >> DAVID J. MALAN: Então 32. 408 00:18:33,820 --> 00:18:35,830 8 plus 8 plus 8 plus 8 é de 32. 409 00:18:35,830 --> 00:18:38,767 Quantos endereços IP no total pode haver no mundo? 410 00:18:38,767 --> 00:18:39,600 AUDIÊNCIA: 4 bilhões. 411 00:18:39,600 --> 00:18:42,410 DAVID J. MALAN: Então aproximadamente quatro bilhões, porque isso é 2 o poder 32. 412 00:18:42,410 --> 00:18:44,410 E se você não pode tipo de Grokar que em sua mente, 413 00:18:44,410 --> 00:18:47,470 só sei que valores de 32 bits pode ser tão grande quanto 4 bilhões 414 00:18:47,470 --> 00:18:49,140 se é todos os valores positivos. 415 00:18:49,140 --> 00:18:52,500 Então, isso significa que há 4 bilhões possíveis endereços IP do mundo. 416 00:18:52,500 --> 00:18:55,090 >> E história engraçada, nós somos tipo de ficar sem eles. 417 00:18:55,090 --> 00:18:59,720 E na verdade, é um problema enorme em que o mundo também viu esse problema que vem, 418 00:18:59,720 --> 00:19:03,639 mas não tem necessariamente que responderam -lo da maneira mais rápida possível. 419 00:19:03,639 --> 00:19:05,680 E, de fato, uma vez que você CS50 terminou e começou 420 00:19:05,680 --> 00:19:06,950 prestando atenção em o mundo da tecnologia, você vai 421 00:19:06,950 --> 00:19:08,520 ver isso é muito comumente temática. 422 00:19:08,520 --> 00:19:12,260 >> Por exemplo, se formos realmente velha escola hoje em dia, Y2K. 423 00:19:12,260 --> 00:19:13,570 Isso não foi realmente uma surpresa. 424 00:19:13,570 --> 00:19:15,700 Como todos sabiam para 1.000 anos que esta 425 00:19:15,700 --> 00:19:20,250 foi-- mais de um mil anos-- que que acabou por acontecer. 426 00:19:20,250 --> 00:19:23,295 E, no entanto, nós respondemos a ela muito no último minuto. 427 00:19:23,295 --> 00:19:24,420 E isso está acontecendo novamente. 428 00:19:24,420 --> 00:19:26,740 Então, hoje vamos falar sobre IP versão 4. 429 00:19:26,740 --> 00:19:29,250 Mas sabemos que o mundo está finalmente recebendo 430 00:19:29,250 --> 00:19:31,590 em torno do upgrade para o algo chamado IPv6, 431 00:19:31,590 --> 00:19:34,540 que em vez de 32 bits endereços, qualquer um uses-- 432 00:19:34,540 --> 00:19:36,443 quer dar um palpite, quantos bits? 433 00:19:36,443 --> 00:19:37,310 >> AUDIÊNCIA: 64? 434 00:19:37,310 --> 00:19:38,380 >> DAVID J. MALAN: Bom palpite, mas não. 435 00:19:38,380 --> 00:19:39,975 Nós estamos finalmente tentando chegar à frente da curva. 436 00:19:39,975 --> 00:19:40,558 >> AUDIÊNCIA: 128. 437 00:19:40,558 --> 00:19:43,490 David J. MALAN: 128, que é um número enorme pânico 438 00:19:43,490 --> 00:19:46,250 de endereços IP, por causa que é como vezes, 2 vezes 2, 439 00:19:46,250 --> 00:19:49,620 2 vezes, um monte de vezes TWOS acima dos 4 bilhões. 440 00:19:49,620 --> 00:19:50,530 >> Então, se curioso. 441 00:19:50,530 --> 00:19:54,110 Acontece out-- e eu pesquisei este para encontrar este out-- computadores de Yale, 442 00:19:54,110 --> 00:19:58,910 aqui em Yale, tendem a começar com estes Números de 130,132 dot alguma coisa, 443 00:19:58,910 --> 00:20:00,669 e 128,36 dot algo. 444 00:20:00,669 --> 00:20:02,710 Mas não há dúvida excepções através da placa 445 00:20:02,710 --> 00:20:05,334 dependendo do que departamento e prédio e campus que você está. 446 00:20:05,334 --> 00:20:09,310 Harvard tende a ter 140,247, 128,103 ou. 447 00:20:09,310 --> 00:20:11,530 E este é geralmente informação inútil, 448 00:20:11,530 --> 00:20:13,260 mas é algo que você pode notar agora. 449 00:20:13,260 --> 00:20:15,593 Quando você começar a fuçar configurações em seus computadores, 450 00:20:15,593 --> 00:20:18,540 você pode começar a notar estes tipos de padrões antes do tempo. 451 00:20:18,540 --> 00:20:23,470 >> Mas quando você está em casa e ter uma Apple AirPort, ou um dispositivo Linksys, 452 00:20:23,470 --> 00:20:26,560 ou um D-Link, ou seja o que for seus pais ou irmãos instalado 453 00:20:26,560 --> 00:20:28,890 em sua casa, bem o que você provavelmente tem 454 00:20:28,890 --> 00:20:30,800 é o que é chamado de endereço IP privado. 455 00:20:30,800 --> 00:20:34,850 E estes eram, na verdade, um agradável solução, temporária 456 00:20:34,850 --> 00:20:38,050 para o problema de execução curta em endereços IP. 457 00:20:38,050 --> 00:20:40,382 >> E o que você pode fazer com redes domésticas, typically-- 458 00:20:40,382 --> 00:20:42,340 e, francamente, mesmo Yale e Harvard estão começando 459 00:20:42,340 --> 00:20:46,840 fazer isso em areas-- diferente é você pode dar um monte de computadores 460 00:20:46,840 --> 00:20:50,360 um endereço IP, desde que você colocar um dispositivo especial em frente delas, 461 00:20:50,360 --> 00:20:52,410 algo chamado um roteador, ou ele pode ser chamado 462 00:20:52,410 --> 00:20:54,060 um proxy ou qualquer número de outras coisas. 463 00:20:54,060 --> 00:20:56,710 Mas um certo dispositivo que tem que um endereço IP. 464 00:20:56,710 --> 00:20:59,450 E, em seguida, por trás desse dispositivo, dentro de um edifício, 465 00:20:59,450 --> 00:21:03,030 dentro de uma casa ou um apartamento, pode ser qualquer número de computadores, os quais 466 00:21:03,030 --> 00:21:06,460 tem um endereço IP que comece com um destes dígitos aqui. 467 00:21:06,460 --> 00:21:08,590 E enquanto esse computador sabe como converter 468 00:21:08,590 --> 00:21:10,900 o endereço público para o endereço privado, 469 00:21:10,900 --> 00:21:13,340 tudo pode classificar de trabalho conforme o esperado. 470 00:21:13,340 --> 00:21:17,290 >> Mas o inverso disto é que se você está em casa e você tem um irmão, 471 00:21:17,290 --> 00:21:19,650 e ambos são visitar algum site, 472 00:21:19,650 --> 00:21:23,520 que o site não sei se é você ou seu irmão visitar o site, 473 00:21:23,520 --> 00:21:26,780 porque parecem ser a mesma pessoa, porque todos os seus dados 474 00:21:26,780 --> 00:21:30,050 está passando por esse roteador ou aquele ponto central. 475 00:21:30,050 --> 00:21:32,220 >> Mas o suficiente sobre esses detalhes de nível inferior. 476 00:21:32,220 --> 00:21:37,770 Vamos dar uma olhada em como os endereços IP às vezes vêm-se talvez na mídia 477 00:21:37,770 --> 00:21:41,370 e como nós podemos agora começar a arruinar, Francamente, ainda mais shows para você. 478 00:21:41,370 --> 00:21:45,010 Se pudéssemos diminuir a intensidade da luzes durante alguns segundos. 479 00:21:45,010 --> 00:21:46,550 >> [REPRODUÇÃO DE VÍDEO] 480 00:21:46,550 --> 00:21:49,310 >> -É Um de 32 bits em IPP 4 de endereço. 481 00:21:49,310 --> 00:21:50,650 >> -IP ES internet-- 482 00:21:50,650 --> 00:21:52,800 >> Rede-Privadas, Rede privada de Tamia. 483 00:21:52,800 --> 00:22:05,670 484 00:22:05,670 --> 00:22:08,145 Ela é tão incrível. 485 00:22:08,145 --> 00:22:09,630 -Vamos Charlie. 486 00:22:09,630 --> 00:22:11,750 DAVID J. MALAN: É um endereço IP espelho. 487 00:22:11,750 --> 00:22:15,093 Ela está deixando-nos ver que ela está fazendo em tempo real. 488 00:22:15,093 --> 00:22:16,285 >> [FIM DE REPRODUÇÃO] 489 00:22:16,285 --> 00:22:17,130 >> DAVID J. MALAN: OK. 490 00:22:17,130 --> 00:22:18,480 Então alguns problemas com isso. 491 00:22:18,480 --> 00:22:22,740 Então, um, o que estamos procurando no aqui na tela 492 00:22:22,740 --> 00:22:25,290 é um código escrito em uma linguagem chamada Objective-C, 493 00:22:25,290 --> 00:22:28,020 que é uma espécie de sucessor a linguagem C que estamos fazendo. 494 00:22:28,020 --> 00:22:30,150 Isso não tem absolutamente nada a ver com a programação. 495 00:22:30,150 --> 00:22:32,399 Na verdade, o melhor que posso dizer, este é um programa de desenho 496 00:22:32,399 --> 00:22:38,360 que alguém baixado da internet envolvendo de alguma forma lápis de cor. 497 00:22:38,360 --> 00:22:43,660 >> Talvez menos notório é que Neste endereço IP válido ou inválido? 498 00:22:43,660 --> 00:22:44,520 >> AUDIÊNCIA: Invalid. 499 00:22:44,520 --> 00:22:48,479 >> DAVID J. MALAN: inválido, porque 275 é, é claro, não entre 0 e 255. 500 00:22:48,479 --> 00:22:51,770 Isso também é provavelmente OK, porém, porque você não quer bando de loucos 501 00:22:51,770 --> 00:22:54,790 que são como uma pausa na sua TV TiVos e, em seguida, visitar o IP para ver 502 00:22:54,790 --> 00:22:56,290 se há realmente alguma coisa lá. 503 00:22:56,290 --> 00:22:58,200 Assim que um é um pouco menos flagrantes. 504 00:22:58,200 --> 00:23:00,990 Mas percebo que também é tipo de tudo o que nos rodeia. 505 00:23:00,990 --> 00:23:04,980 >> Então, é claro, nenhum de nós jamais realmente digitar endereços numéricos 506 00:23:04,980 --> 00:23:06,410 em nossos navegadores. 507 00:23:06,410 --> 00:23:09,580 Seria um tipo de coisa ruim se o Google, para visitar o Google, 508 00:23:09,580 --> 00:23:15,060 você tinha que ir para 123.46.57.89. 509 00:23:15,060 --> 00:23:17,007 E o mundo inteiro tinha para se lembrar exatamente isso. 510 00:23:17,007 --> 00:23:19,090 E, francamente, nós meio de visto este problema antes. 511 00:23:19,090 --> 00:23:24,130 De volta ao dia quando as pessoas não têm telefones celulares e listas de contatos, 512 00:23:24,130 --> 00:23:27,640 e empresas realmente still-- na verdade, Eu acho que as empresas ainda têm 800 513 00:23:27,640 --> 00:23:30,600 números ea como-- mas você geralmente ver os números anunciados 514 00:23:30,600 --> 00:23:36,480 como 1-800-COLLECT, C-O-G-G-E-C-T. Porque ninguém pode realmente se lembrar, 515 00:23:36,480 --> 00:23:39,754 ao ver um anúncio em um ônibus ou outdoor, que de alguém número é, 516 00:23:39,754 --> 00:23:42,420 mas eles podem provavelmente, com maior probabilidade, lembrar de uma palavra. 517 00:23:42,420 --> 00:23:44,530 >> Por isso, adotou o mesmo tipo de sistema no mundo 518 00:23:44,530 --> 00:23:48,290 da Internet através do qual há um sistema de nomes de domínio, de modo que nós, os seres humanos podem 519 00:23:48,290 --> 00:23:52,340 digite google.com, facebook.com, yale.edu, harvard.edu, 520 00:23:52,340 --> 00:23:56,140 e deixe a figura computadores o que o correspondente IP 521 00:23:56,140 --> 00:23:58,480 endereço é para um determinado nome. 522 00:23:58,480 --> 00:24:01,620 >> E a maneira de fazer isso no mundo real é que por US $ 10 por ano, 523 00:24:01,620 --> 00:24:05,900 talvez US $ 50 por ano, você pode comprar um domínio nome, ou mesmo alugar um nome de domínio. 524 00:24:05,900 --> 00:24:09,860 E então quem quer que você está pagando para alugar esse nome de domínio, 525 00:24:09,860 --> 00:24:14,069 você dizer-lhes que no mundo sabe o que seu endereço IP é. 526 00:24:14,069 --> 00:24:16,360 E nós não iremos a eles particularidades, mas muitos de vocês 527 00:24:16,360 --> 00:24:18,750 Convém, por último projetos, para realmente se inscrever 528 00:24:18,750 --> 00:24:22,120 para o seu próprio web hosting empresa, seja gratuitamente 529 00:24:22,120 --> 00:24:23,500 ou para alguns dólares por mês. 530 00:24:23,500 --> 00:24:26,100 Alguns de vocês pode querer comprar, por um, o seu próprio nome de domínio alguns dólares, 531 00:24:26,100 --> 00:24:28,900 apenas por diversão ou para começar um negócio ou um local de pessoal ou semelhantes. 532 00:24:28,900 --> 00:24:30,880 >> E perceber que tudo de que acabará por 533 00:24:30,880 --> 00:24:35,260 resumem-se a você dizer ao mundo o endereço IP do seu servidor está. 534 00:24:35,260 --> 00:24:37,740 E, em seguida, estes DNS servidores realmente cuidar 535 00:24:37,740 --> 00:24:39,910 de informar o resto do mundo. 536 00:24:39,910 --> 00:24:41,830 Então tudo um servidor DNS tem, em suma, dentro 537 00:24:41,830 --> 00:24:44,780 de sua memória é como o equivalente a uma planilha do Google 538 00:24:44,780 --> 00:24:49,420 ou uma planilha do Excel com pelo menos duas colunas, uma das quais tem, nomes 539 00:24:49,420 --> 00:24:52,100 como harvard.edu, e yale.edu, e google.com. 540 00:24:52,100 --> 00:24:55,870 E o outro tem a coluna IP ou endereço IP correspondente 541 00:24:55,870 --> 00:24:56,382 endereços. 542 00:24:56,382 --> 00:24:57,590 E nós podemos realmente ver isso. 543 00:24:57,590 --> 00:24:59,881 Então, no meu Mac-- e você pode fazer isso em computadores Windows 544 00:24:59,881 --> 00:25:04,330 bom-- como se eu abrir uma janela de terminal aqui, bem como a de CD50 IDE, 545 00:25:04,330 --> 00:25:08,190 a maioria dos computadores tem um comando chamado nslookup, servidor de nomes de olhar para cima. 546 00:25:08,190 --> 00:25:12,380 E se eu digitar algo em como yale.edu e pressione Enter, o que 547 00:25:12,380 --> 00:25:19,250 Eu deveria ver se a minha rede coopera como ele fez por vários testes antes da aula 548 00:25:19,250 --> 00:25:24,584 began-- vamos tentar google.com. 549 00:25:24,584 --> 00:25:26,390 Claro que agora nada está funcionando. 550 00:25:26,390 --> 00:25:27,190 Isso é ótimo. 551 00:25:27,190 --> 00:25:30,660 Tudo bem, fique por um 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 >> Bem, vamos ver se o internet-- não real. 555 00:25:38,660 --> 00:25:39,700 Isso é o que aconteceu. 556 00:25:39,700 --> 00:25:43,090 Oh meu deus, tudo bem. 557 00:25:43,090 --> 00:25:45,490 O Wi-Fi quebrou. 558 00:25:45,490 --> 00:25:47,410 >> Ei, quer saber o que o meu endereço IP é? 559 00:25:47,410 --> 00:25:49,722 Tudo certo. 560 00:25:49,722 --> 00:25:50,820 YaleSecure. 561 00:25:50,820 --> 00:25:53,330 Isto é como você solucionar problemas coisas como um cientista da computação. 562 00:25:53,330 --> 00:25:54,617 Nós viramos o Wi-Fi desligado. 563 00:25:54,617 --> 00:25:57,480 564 00:25:57,480 --> 00:25:59,450 ESTÁ BEM. 565 00:25:59,450 --> 00:26:02,610 >> E, na verdade, SCAZ, você se importa registrando-nos para o seguro? 566 00:26:02,610 --> 00:26:06,246 Caso contrário, mais testes é-- OK, obrigado você Yale-- ou está prestes a quebrar. 567 00:26:06,246 --> 00:26:07,370 Eu quero ir em YaleSecure. 568 00:26:07,370 --> 00:26:09,880 569 00:26:09,880 --> 00:26:11,870 Ah, e talvez nós vamos ficar bem. 570 00:26:11,870 --> 00:26:12,686 Talvez nós estamos de volta. 571 00:26:12,686 --> 00:26:16,810 572 00:26:16,810 --> 00:26:19,733 E é assim, como um computador cientista consertar um computador. 573 00:26:19,733 --> 00:26:22,000 [Aplausos] 574 00:26:22,000 --> 00:26:23,220 Tudo certo. 575 00:26:23,220 --> 00:26:27,160 Então, onde eu estava dentro deste o chamado janela de terminal, 576 00:26:27,160 --> 00:26:32,270 e se eu nslookup yale.edu, lá vamos nós. 577 00:26:32,270 --> 00:26:38,350 Então eu voltar em primeiro lugar o endereço IP do o servidor DNS que o meu laptop está usando. 578 00:26:38,350 --> 00:26:41,610 Assim, em adição a um servidor DHCP nós falamos sobre um momento atrás dizendo 579 00:26:41,610 --> 00:26:44,720 o que o meu laptop meu IP endereço é, que servidor DHCP 580 00:26:44,720 --> 00:26:46,860 também me diz o servidor DNS para usar. 581 00:26:46,860 --> 00:26:48,860 Caso contrário, eu teria para digitar manualmente esse in. 582 00:26:48,860 --> 00:26:50,359 >> Mas isso não é tudo o que interessante. 583 00:26:50,359 --> 00:26:54,310 O que me importa é que este é o Endereço IP do site da Yale aparentemente. 584 00:26:54,310 --> 00:26:55,470 Então, na verdade, vamos tentar isso. 585 00:26:55,470 --> 00:27:02,710 Deixe-me ir para cima em um navegador e vá http: // e, em seguida, que o endereço IP, 586 00:27:02,710 --> 00:27:04,220 e pressione Enter. 587 00:27:04,220 --> 00:27:06,700 E vamos ver. 588 00:27:06,700 --> 00:27:09,587 Ou seja Quanto mais você pode visitar sites de Yale. 589 00:27:09,587 --> 00:27:10,920 Agora não é tudo o que memorável. 590 00:27:10,920 --> 00:27:12,220 Como, a pré-frosh provavelmente não vai 591 00:27:12,220 --> 00:27:15,310 para recordar este endereço específico se disse para visitar lá depois de visitar. 592 00:27:15,310 --> 00:27:16,580 Mas isso não parece funcionar. 593 00:27:16,580 --> 00:27:21,179 E assim DNS realmente apenas nos permite têm endereços amigáveis ​​muito mais humanos. 594 00:27:21,179 --> 00:27:23,220 Mas eles não necessariamente apenas deu uma resposta. 595 00:27:23,220 --> 00:27:25,640 >> Na verdade, quando você é um realmente grande empresa de tecnologia, 596 00:27:25,640 --> 00:27:27,620 você provavelmente vai querer tem um monte de servidores. 597 00:27:27,620 --> 00:27:29,027 E mesmo isso é enganoso. 598 00:27:29,027 --> 00:27:31,110 Assim Yale provavelmente não faz ter apenas um servidor web. 599 00:27:31,110 --> 00:27:34,150 Google provavelmente não tem apenas a 10 ou mais servidores web. 600 00:27:34,150 --> 00:27:36,960 Google especialmente provavelmente tem milhares de servidores web 601 00:27:36,960 --> 00:27:40,030 ao redor do mundo que podem responder a pedidos de pessoas como nós. 602 00:27:40,030 --> 00:27:43,870 >> Mas eles também usam uma tecnologia chamada balanceamento de carga, que longa história curta, 603 00:27:43,870 --> 00:27:48,810 tem apenas alguns dispositivos do mundo espalhando a carga através de mais servidores. 604 00:27:48,810 --> 00:27:52,320 Então, é como uma espécie de teia de aranha se você vai despachar as solicitações. 605 00:27:52,320 --> 00:27:54,380 Mas, por agora, tudo o que é interessante para hoje 606 00:27:54,380 --> 00:27:56,870 que é um nome de domínio como google.com ainda pode 607 00:27:56,870 --> 00:28:00,100 ter vários endereços IP como esse. 608 00:28:00,100 --> 00:28:04,610 >> Mas como é que todos os nossos dados, na verdade, obter e para trás, em seguida, no final? 609 00:28:04,610 --> 00:28:08,320 Bem, acontece que há estes coisas chamados roteadores na internet. 610 00:28:08,320 --> 00:28:10,980 E o que é um roteador para o medida em que você já sabe? 611 00:28:10,980 --> 00:28:13,730 E eu usei a palavra um casal vezes no contexto de uma casa, 612 00:28:13,730 --> 00:28:17,155 mas em termos simples, o que faz um router fazer? 613 00:28:17,155 --> 00:28:18,780 Dê-me apenas uma suposição baseada em seu nome? 614 00:28:18,780 --> 00:28:20,082 >> AUDIÊNCIA: Então uma estrada ou um caminho? 615 00:28:20,082 --> 00:28:21,790 DAVID J. MALAN: Então, é uma estrada ou um caminho. 616 00:28:21,790 --> 00:28:23,980 Assim, um percurso é uma estrada ou caminho, absolutamente. 617 00:28:23,980 --> 00:28:27,000 E um router, de modo que um dispositivo na verdade, vias informações, 618 00:28:27,000 --> 00:28:29,690 iria mover dados entre os pontos A e B. 619 00:28:29,690 --> 00:28:31,920 >> E assim, em fact-- e este é, talvez, quando 620 00:28:31,920 --> 00:28:34,510 você Google representações de roteadores no mundo, tudo que você começa 621 00:28:34,510 --> 00:28:35,900 são diagramas de marketing de queijo. 622 00:28:35,900 --> 00:28:38,550 E por isso esta é uma espécie de mais um representante que eu poderia encontrar 623 00:28:38,550 --> 00:28:39,841 que parecia levemente interessante. 624 00:28:39,841 --> 00:28:44,170 Cada um desses pontos ou sinais de esperança em todo o mundo representa um router. 625 00:28:44,170 --> 00:28:47,210 E cada um deles tem uma linha entre algum outro roteador. 626 00:28:47,210 --> 00:28:49,090 >> Porque, na verdade, não são milhares, provavelmente 627 00:28:49,090 --> 00:28:52,560 milhões de routers de todo o mundo, alguns dos quais estão em nossas casas 628 00:28:52,560 --> 00:28:56,070 e em nossos campi, mas um monte de que são de propriedade de grandes empresas 629 00:28:56,070 --> 00:29:00,250 e estão interligados de modo a que se deseja enviar alguns dados de aqui em Yale 630 00:29:00,250 --> 00:29:04,430 casa de volta para Cambridge, Yale, provavelmente, não tem um único cabo, certamente, 631 00:29:04,430 --> 00:29:05,650 indo diretamente para Harvard. 632 00:29:05,650 --> 00:29:07,399 E Yale não tem um único cabo vai 633 00:29:07,399 --> 00:29:10,010 ao MIT, ou Stanford, ou para Berkeley, ou para o Google, 634 00:29:10,010 --> 00:29:11,820 ou qualquer número de destinos. 635 00:29:11,820 --> 00:29:14,760 >> Em vez disso, Yale, Harvard e, e todo mundo na internet 636 00:29:14,760 --> 00:29:17,610 tem um ou mais routers ligada ao mesmo, talvez 637 00:29:17,610 --> 00:29:18,810 na periferia do campus. 638 00:29:18,810 --> 00:29:21,690 De modo que quando os meus dados quer para sair do campus de Yale, 639 00:29:21,690 --> 00:29:24,770 ele vai para o roteador mais próximo, como representado por um destes pontos. 640 00:29:24,770 --> 00:29:27,940 E, em seguida, que os números do roteador para fora se para enviá-lo desta maneira, ou Desta forma, 641 00:29:27,940 --> 00:29:33,440 ou desta maneira, ou desta maneira baseado na outra mesa em sua memória, 642 00:29:33,440 --> 00:29:36,870 outro arquivo Excel ou Google planilha que em uma coluna 643 00:29:36,870 --> 00:29:41,315 diz que, se o seu endereço IP é iniciado com o número um, ir por este caminho. 644 00:29:41,315 --> 00:29:43,690 Se o seu endereço IP começa com um número de dois, ir por esse caminho. 645 00:29:43,690 --> 00:29:47,040 E assim você pode quebrá-lo para baixo numericamente a ter o router envio 646 00:29:47,040 --> 00:29:49,040 dados de todas as maneiras. 647 00:29:49,040 --> 00:29:51,419 >> E nós podemos tipo de ver isso também. 648 00:29:51,419 --> 00:29:54,210 Vamos em frente para este terminal janela novamente, e deixe-me ir em frente 649 00:29:54,210 --> 00:30:00,700 e traçar a rota para, digamos, www.mit.edu, 650 00:30:00,700 --> 00:30:02,970 que é um par cem milhas de distância. 651 00:30:02,970 --> 00:30:04,500 Isso foi realmente maldita rápido. 652 00:30:04,500 --> 00:30:06,290 >> Então o que aconteceu? 653 00:30:06,290 --> 00:30:10,360 Assim, em apenas sete etapas, e em apenas quatro milésimos de segundo, 654 00:30:10,360 --> 00:30:14,660 Enviei dados através da internet daqui em Yale para o MIT. 655 00:30:14,660 --> 00:30:18,240 Cada uma destas linhas, você pode talvez acho que agora representa o que? 656 00:30:18,240 --> 00:30:19,060 >> AUDIÊNCIA: Um roteador. 657 00:30:19,060 --> 00:30:20,101 >> DAVID J. MALAN: Um roteador. 658 00:30:20,101 --> 00:30:24,090 Então, na verdade, parece que há cerca de sete ou mais roteadores, 659 00:30:24,090 --> 00:30:29,350 ou seis roteadores entre mim fisicamente na escola de direito de Yale aqui 660 00:30:29,350 --> 00:30:31,612 e no site do MIT por lá. 661 00:30:31,612 --> 00:30:34,570 E o que podemos recolher a partir desta é como follows-- e deixe-me limpá-lo. 662 00:30:34,570 --> 00:30:38,180 Eu estou indo para executá-lo novamente com um comando argumento de linha de q 1 a apenas dizer, 663 00:30:38,180 --> 00:30:39,300 apenas dar-me uma consulta. 664 00:30:39,300 --> 00:30:40,800 Por padrão, trace rota faz três. 665 00:30:40,800 --> 00:30:42,350 E é por isso que vimos cachos de números. 666 00:30:42,350 --> 00:30:44,850 Eu quero ver o menor número apenas para manter o líquido de limpeza de saída. 667 00:30:44,850 --> 00:30:46,280 E vamos ver o que acontece. 668 00:30:46,280 --> 00:30:49,220 >> Então, por qualquer motivo, alguém no pensamento Yale 669 00:30:49,220 --> 00:30:54,130 que seria engraçado para chamá-lo a sua arubacentral roteador padrão, que 670 00:30:54,130 --> 00:30:57,920 é em VLAN ou virtual LAN, virtual de área local 671 00:30:57,920 --> 00:30:59,810 rede 30-- assim você provavelmente, tem pelo menos 672 00:30:59,810 --> 00:31:03,050 29 router.net.yale.internal outros-. 673 00:31:03,050 --> 00:31:06,660 E .internal aqui é uma espécie de falso Domínio de topo para ser usado apenas 674 00:31:06,660 --> 00:31:07,210 no campus. 675 00:31:07,210 --> 00:31:10,335 E observe o endereço IP correspondente desse roteador, onde quer que seja aqui 676 00:31:10,335 --> 00:31:13,920 no campus, é 172.28.204.129. 677 00:31:13,920 --> 00:31:17,470 E levou 36 milissegundos para ir daqui para lá. 678 00:31:17,470 --> 00:31:18,050 >> Estória engraçada. 679 00:31:18,050 --> 00:31:19,716 Nós vamos voltar a isso em apenas um momento. 680 00:31:19,716 --> 00:31:22,920 Mas agora o segundo router-- para que aparentemente arubacentral 681 00:31:22,920 --> 00:31:25,790 tem algum tipo de física conexão mais likely-- 682 00:31:25,790 --> 00:31:27,249 os seres humanos não se incomodou em nomeá-lo. 683 00:31:27,249 --> 00:31:30,373 Os seres humanos Yale não se incomodou de nomeação isso porque é dentro da sua rede 684 00:31:30,373 --> 00:31:30,940 parece. 685 00:31:30,940 --> 00:31:32,520 E assim ele só tem um endereço IP. 686 00:31:32,520 --> 00:31:34,660 >> Mas, em seguida, um terceiro router aqui na rede da Yale 687 00:31:34,660 --> 00:31:36,700 isso é provavelmente um pouco mais longe ainda 688 00:31:36,700 --> 00:31:41,330 tudo o que é chamado cen10g que é asr.net.yale.internal. 689 00:31:41,330 --> 00:31:43,040 E ele também tem um endereço IP. 690 00:31:43,040 --> 00:31:44,990 >> Agora, por que são esses números tipo de flutuação? 691 00:31:44,990 --> 00:31:47,890 2,9, 1,4, 36? 692 00:31:47,890 --> 00:31:48,840 Routers ficar ocupado. 693 00:31:48,840 --> 00:31:50,420 E eles ficam congestionadas e backup. 694 00:31:50,420 --> 00:31:53,200 Há milhares de pessoas neste campus usando a internet no momento. 695 00:31:53,200 --> 00:31:56,050 Há uma centena de pessoas neste sala usando a internet no momento. 696 00:31:56,050 --> 00:31:59,030 >> E então o que está acontecendo é que os roteadores pode ficar congestionado. 697 00:31:59,030 --> 00:32:01,350 E assim esses tempos pode flutuar um pouco. 698 00:32:01,350 --> 00:32:04,620 É por isso que eles não necessariamente aumentar diretamente. 699 00:32:04,620 --> 00:32:07,510 >> Mas as coisas ficam meio interessante na etapa quatro. 700 00:32:07,510 --> 00:32:13,040 Aparentemente, entre Yale e etapa quatro é outro hop. 701 00:32:13,040 --> 00:32:16,480 E onde está o roteador na etapa quatro provavelmente? 702 00:32:16,480 --> 00:32:17,410 >> AUDIÊNCIA: [inaudível] 703 00:32:17,410 --> 00:32:19,410 >> DAVID J. MALAN: JFK talvez, talvez no aeroporto. 704 00:32:19,410 --> 00:32:21,950 Mas por alguma razão, administradores de sistema, de modo 705 00:32:21,950 --> 00:32:24,140 totós que rodam servidores para anos têm chamado routers 706 00:32:24,140 --> 00:32:25,600 após o código do aeroporto mais próximo. 707 00:32:25,600 --> 00:32:27,420 Então provavelmente significa JFK é apenas um lugar 708 00:32:27,420 --> 00:32:29,970 em Nova York, talvez em Manhattan ou um dos bairros. 709 00:32:29,970 --> 00:32:34,460 nyc2 indica, presumivelmente, outro roteador que está em algum lugar em Nova York. 710 00:32:34,460 --> 00:32:37,140 >> Eu não sei bem onde fileira seis é aqui, router número seis. 711 00:32:37,140 --> 00:32:40,110 quest.net um grande ISP, provedor de internet, 712 00:32:40,110 --> 00:32:43,240 que fornece conectividade à Internet para grandes lugares como Yale e outros. 713 00:32:43,240 --> 00:32:47,110 E, em seguida, esta última, parece que o MIT não faz mesmo 714 00:32:47,110 --> 00:32:50,180 têm seu próprio site em Cambridge, necessariamente, 715 00:32:50,180 --> 00:32:52,090 mas eles têm terceirizou seu site, 716 00:32:52,090 --> 00:32:55,150 ou, pelo menos, os servidores físicos, para uma empresa chamada Akamai. 717 00:32:55,150 --> 00:32:57,940 E Akamai realmente está à direita a estrada do MIT em Cambridge 718 00:32:57,940 --> 00:32:58,790 ele sair. 719 00:32:58,790 --> 00:33:02,360 >> Mas percebo também que até pensei você vai www.mit.edu, 720 00:33:02,360 --> 00:33:05,200 poderíamos realmente ser enviado em qualquer lugar no mundo. 721 00:33:05,200 --> 00:33:06,960 >> E vamos ver algum lugar outra parte do mundo. 722 00:33:06,960 --> 00:33:09,240 Deixe-me ir em frente e limpar Nesta tela e, em vez 723 00:33:09,240 --> 00:33:15,240 traçar a rota, só uma vez, de modo consultar um, para www.cnn.co.jp, 724 00:33:15,240 --> 00:33:18,390 a home page japonês para a CNN, o site de notícias. 725 00:33:18,390 --> 00:33:20,660 E se eu acertar Entre agora, vamos ver o que acontece. 726 00:33:20,660 --> 00:33:23,610 Estamos de novo a partir de arubacentral. 727 00:33:23,610 --> 00:33:26,510 Estamos em seguida, indo para o router sem nome, um pouco mais. 728 00:33:26,510 --> 00:33:29,527 Por isso, levou 12 ao lúpulo chegar ao Japão neste momento. 729 00:33:29,527 --> 00:33:30,860 E vamos ver o que podemos recolher. 730 00:33:30,860 --> 00:33:32,450 >> Assim mesmo hop, mesmo hop. 731 00:33:32,450 --> 00:33:35,170 Ligeiramente diferente agora. 732 00:33:35,170 --> 00:33:36,380 Isto é interessante uma. 733 00:33:36,380 --> 00:33:40,870 Então, eu estou supondo aqui, é um stamford1 algumas cidades de distância em Connecticut também. 734 00:33:40,870 --> 00:33:43,810 Esses roteadores na fileira de seis e sete não têm nomes. 735 00:33:43,810 --> 00:33:46,370 Mas este é tipo de surpreendente. 736 00:33:46,370 --> 00:33:53,310 >> Então, o que parece ser entre a roteadores no passo sete e oito? 737 00:33:53,310 --> 00:33:54,760 E por que você diz tanto? 738 00:33:54,760 --> 00:33:55,260 Sim? 739 00:33:55,260 --> 00:33:56,060 >> AUDIÊNCIA: Oceano. 740 00:33:56,060 --> 00:33:57,640 >> DAVID J. MALAN: Provavelmente um oceano. 741 00:33:57,640 --> 00:34:01,366 Sabemos que é verdade como, intuitivamente, certo? 742 00:34:01,366 --> 00:34:04,790 Mas podemos confirmar tanto tipo do tipo de empiricamente por quê? 743 00:34:04,790 --> 00:34:06,860 O que mudou entre linhas sete e oito? 744 00:34:06,860 --> 00:34:09,429 745 00:34:09,429 --> 00:34:14,739 >> Foi preciso muito mais tempo para ir ao o que quer que esse roteador sem nome sete é, 746 00:34:14,739 --> 00:34:18,670 provavelmente em algum lugar no continental dos Estados Unidos, ao passo oito, 747 00:34:18,670 --> 00:34:22,639 que é, provavelmente, algures no Japão com base no nome de domínio de .jp lá. 748 00:34:22,639 --> 00:34:25,719 E assim aqueles adicional cem algo milissegundos 749 00:34:25,719 --> 00:34:28,960 ou 90 ou mais milissegundos é o resultado dos nossos dados vai 750 00:34:28,960 --> 00:34:31,100 ao longo de um muito grande massa de água. 751 00:34:31,100 --> 00:34:34,570 >> Agora, curiosamente, parece que talvez que o cabo passa por todo os EUA. 752 00:34:34,570 --> 00:34:37,070 Se nós estamos indo realmente sobre a Costa Oeste para chegar ao Japão, 753 00:34:37,070 --> 00:34:39,111 é uma espécie do longo caminho se formos para o outro lado. 754 00:34:39,111 --> 00:34:41,400 Portanto, não é totalmente claro o que está acontecendo fisicamente. 755 00:34:41,400 --> 00:34:43,830 Mas o facto de que todos os hop adicional de fato 756 00:34:43,830 --> 00:34:46,020 tomou marcadamente mais do que qualquer outro, é 757 00:34:46,020 --> 00:34:50,440 confirmação muito bom que a CNN de Servidor web japonesa é provavelmente de fato 758 00:34:50,440 --> 00:34:51,310 no Japão. 759 00:34:51,310 --> 00:34:54,089 E é certamente mais longe longe do que o MIT tem sido. 760 00:34:54,089 --> 00:34:56,380 E vale a pena notar também, seus dados não é necessariamente 761 00:34:56,380 --> 00:34:58,794 indo viajar a distância mais curta possível. 762 00:34:58,794 --> 00:35:00,960 Na verdade, se você brincar com rastreamento de rota em casa 763 00:35:00,960 --> 00:35:04,170 apenas escolher sites aleatórios, você pode achar que apenas enviar um email 764 00:35:04,170 --> 00:35:06,490 ou a visitar um site que está aqui em New Haven, 765 00:35:06,490 --> 00:35:09,200 às vezes, seus dados podem primeiro fazer um desvio, vá até a DC, 766 00:35:09,200 --> 00:35:10,450 e depois voltar para cima. 767 00:35:10,450 --> 00:35:12,860 E isso é só por causa de as decisões de roteamento dinâmico 768 00:35:12,860 --> 00:35:14,650 que esses computadores estão fazendo. 769 00:35:14,650 --> 00:35:18,930 >> Agora apenas por diversão, a equipe de produção aparado um desses vídeos para nós 770 00:35:18,930 --> 00:35:20,807 para ser apenas um pouco mais sucinto. 771 00:35:20,807 --> 00:35:23,640 Mas, para nos dar uma sensação rápida aqui-- e nós podemos deixar as luzes on-- 772 00:35:23,640 --> 00:35:32,363 como para o quanto é cabeamento na verdade, levando todos os nossos dados. 773 00:35:32,363 --> 00:35:33,029 [REPRODUÇÃO DE VÍDEO] 774 00:35:33,029 --> 00:35:36,023 [Música tocando] 775 00:35:36,023 --> 00:36:31,911 776 00:36:31,911 --> 00:36:32,777 [FIM DE REPRODUÇÃO] 777 00:36:32,777 --> 00:36:35,860 DAVID J. MALAN: Todos os vídeos de rede tem música legal sonoridade aparentemente. 778 00:36:35,860 --> 00:36:38,084 Então, isso é para obter apenas um sentido de quanto tem 779 00:36:38,084 --> 00:36:39,500 vem acontecendo debaixo do capô. 780 00:36:39,500 --> 00:36:41,355 >> Mas vamos olhar para um nível ligeiramente mais baixo agora 781 00:36:41,355 --> 00:36:44,150 o que é realmente dados atravessando essas linhas, 782 00:36:44,150 --> 00:36:46,720 e mesmo indo sem fio em uma sala como esta. 783 00:36:46,720 --> 00:36:49,580 >> Então não é que quando você pedir uma página web, ou envie um e-mail, 784 00:36:49,580 --> 00:36:53,670 ou receber uma página web, ou um e-mail, ou uma mensagem Gchat, ou uma mensagem de Facebook, 785 00:36:53,670 --> 00:36:57,800 ou semelhante, que não é apenas um grande pedaço de bits que fluem sem fio 786 00:36:57,800 --> 00:37:00,600 através do ar ou eletronicamente em um fio. 787 00:37:00,600 --> 00:37:03,680 Em vez disso, esse pedido ou resposta é geralmente 788 00:37:03,680 --> 00:37:05,810 fragmentada em pedaços separados. 789 00:37:05,810 --> 00:37:08,880 >> Portanto, em outras palavras, quando você tem um solicitar para fazer de outro computador, 790 00:37:08,880 --> 00:37:10,980 ou você recebe de volta uma resposta de outro Computador-- 791 00:37:10,980 --> 00:37:15,800 como supor, por exemplo, se unfamiliar-- como muitas pessoas 792 00:37:15,800 --> 00:37:18,400 parecem ser estes dias-- se não familiarizados com isto-- 793 00:37:18,400 --> 00:37:20,200 não esta fellow-- este companheiro. 794 00:37:20,200 --> 00:37:23,950 Então suponho que esta é uma mensagem que Eu quero enviar a alguém em volta. 795 00:37:23,950 --> 00:37:28,930 Quem no muito back gostaria de receber uma foto de Rick Astley hoje? 796 00:37:28,930 --> 00:37:29,805 OK, qual é o seu nome? 797 00:37:29,805 --> 00:37:30,590 >> AUDIÊNCIA: Cole. 798 00:37:30,590 --> 00:37:31,306 >> DAVID J. MALAN: O que é? 799 00:37:31,306 --> 00:37:31,672 >> AUDIÊNCIA: 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 AUDIÊNCIA: C-O-L-E. 803 00:37:33,711 --> 00:37:34,960 David J. MALAN: C-O-G-E, Cole. 804 00:37:34,960 --> 00:37:35,520 Desculpe. 805 00:37:35,520 --> 00:37:36,430 C-O-G-E. 806 00:37:36,430 --> 00:37:36,930 Tudo certo. 807 00:37:36,930 --> 00:37:40,990 Então, se eu quiser enviar esta Cole imagem aqui, você sabe disso 808 00:37:40,990 --> 00:37:42,410 é uma espécie de retrato grande, certo? 809 00:37:42,410 --> 00:37:44,472 Isto poderia ser um pouco kilobytes, alguns megabytes, 810 00:37:44,472 --> 00:37:45,930 especialmente se for alta resolução. 811 00:37:45,930 --> 00:37:48,660 E eu realmente não quero parar todos os outros de usar a internet 812 00:37:48,660 --> 00:37:50,680 apenas enquanto eu enviar esta realmente grande, imagem de alta qualidade 813 00:37:50,680 --> 00:37:52,138 de Rick Astley por toda a sala. 814 00:37:52,138 --> 00:37:55,310 Eu gostaria que seus dados para continuar a atravessam a rede e Wi-Fi 815 00:37:55,310 --> 00:37:56,100 também. 816 00:37:56,100 --> 00:38:00,100 >> E por isso faz sense-- e este é recuperável por via electrónica, 817 00:38:00,100 --> 00:38:01,780 não tanto no mundo real. 818 00:38:01,780 --> 00:38:04,904 Na verdade, isso vai ter múltiplos significados se você pegar minha saída de áudio. 819 00:38:04,904 --> 00:38:08,360 Então, se eu rasgo isto em a metade como este aqui, 820 00:38:08,360 --> 00:38:11,912 isso agora pode viajar o internet de forma mais eficiente, 821 00:38:11,912 --> 00:38:13,120 porque é um pedaço menor. 822 00:38:13,120 --> 00:38:16,780 Assim, com menor probabilidade é que vai a colidir com o tráfego de outra pessoa 823 00:38:16,780 --> 00:38:17,650 na internet. 824 00:38:17,650 --> 00:38:21,240 >> E então o que, aliás, faz seu computador quando você quer enviar uma mensagem para Cole 825 00:38:21,240 --> 00:38:24,917 é segmenta-se uma mensagem como esta em pequenos pedaços, fragmentos por assim dizer. 826 00:38:24,917 --> 00:38:28,000 E, em seguida, ele coloca-los dentro do que vamos chamá tipo de envelopes virtuais. 827 00:38:28,000 --> 00:38:29,620 >> Então, eu tenho quatro envelopes de papel aqui. 828 00:38:29,620 --> 00:38:32,690 E eu tenho pré-contados deles, um, dois, três, quatro e. 829 00:38:32,690 --> 00:38:35,800 E o que eu vou fazer na parte da frente deste, assim como uma discussão normal, 830 00:38:35,800 --> 00:38:38,000 é que eu vou colocar o nome de Cole lá. 831 00:38:38,000 --> 00:38:41,270 E, em seguida, na parte superior, eu sou vai colocar o meu nome lá, 832 00:38:41,270 --> 00:38:44,995 David, de modo que o primeiro pacote, tais Estou enviando lá fora, na internet 833 00:38:44,995 --> 00:38:47,620 parece um pouco algo como isto, as características mais salientes 834 00:38:47,620 --> 00:38:50,830 dos quais são de que ele tem uma a abordar, a partir de um endereço, 835 00:38:50,830 --> 00:38:52,670 e também um número, assim que esperamos que 836 00:38:52,670 --> 00:38:55,680 é informação suficiente para Cole para reconstruir esta mensagem. 837 00:38:55,680 --> 00:38:58,820 >> Então deixe-me fazer o mesmo aqui, a mesmo aqui, eo mesmo aqui, 838 00:38:58,820 --> 00:39:01,310 escrever seu nome na Para campo em todos eles. 839 00:39:01,310 --> 00:39:04,240 E então vamos em frente e colocar essas fotos dentro. 840 00:39:04,240 --> 00:39:06,540 >> Então aqui está um pacote que está pronto para ir. 841 00:39:06,540 --> 00:39:09,780 Aqui está outro pacote que está pronto para ir. 842 00:39:09,780 --> 00:39:14,100 Aqui está um terceiro pacote que está pronto para ir. 843 00:39:14,100 --> 00:39:16,870 E aqui está uma quarta pacote que está pronto para ir. 844 00:39:16,870 --> 00:39:19,849 >> E agora o que é interessante sobre como a internet, na realidade, obras 845 00:39:19,849 --> 00:39:22,140 é que mesmo que eu tenho quatro pacotes, os quais 846 00:39:22,140 --> 00:39:24,730 são destinados para o mesmo localização, eles não são necessariamente 847 00:39:24,730 --> 00:39:26,870 vai percorrer o mesmo percurso. 848 00:39:26,870 --> 00:39:32,070 E por isso mesmo que eu poderia entregar estes pacotes fora para o roteador mais próximo 849 00:39:32,070 --> 00:39:36,660 vamos dizer, se você gostaria de enviá-los de todas as maneiras, vamos ver 850 00:39:36,660 --> 00:39:40,706 o que realmente acontece, o objetivo da que é para obtê-los, finalmente, para Cole. 851 00:39:40,706 --> 00:39:44,850 852 00:39:44,850 --> 00:39:48,770 E, de fato, eles já não são necessariamente tomar a mesma direção. 853 00:39:48,770 --> 00:39:50,510 E isso é bom. 854 00:39:50,510 --> 00:39:52,480 Isto é um pouco estranho e estilo Oprah hoje. 855 00:39:52,480 --> 00:39:56,540 >> E agora deixe-me deliberadamente tomar que uma volta. 856 00:39:56,540 --> 00:40:00,196 E agora Cole, se você gostaria de remontá-lo da melhor maneira possível. 857 00:40:00,196 --> 00:40:06,610 858 00:40:06,610 --> 00:40:10,180 Claro, todos nós podemos adivinhar o que a conclusão aqui é que vai ser. 859 00:40:10,180 --> 00:40:12,600 Você vai ter 3/4 de Rick Astley em apenas um momento. 860 00:40:12,600 --> 00:40:15,920 861 00:40:15,920 --> 00:40:19,291 E o que é a implicação de que? 862 00:40:19,291 --> 00:40:20,540 Você quer tentar segurá-la? 863 00:40:20,540 --> 00:40:23,540 Nós temos uma câmera apontada para você, se você quiser 864 00:40:23,540 --> 00:40:26,226 para posar com Rick Astley aqui. 865 00:40:26,226 --> 00:40:28,610 866 00:40:28,610 --> 00:40:29,510 Aí vamos nós. 867 00:40:29,510 --> 00:40:30,410 Adorável. 868 00:40:30,410 --> 00:40:33,230 >> Mas você parece estar faltando um fragmento de Rick Astley. 869 00:40:33,230 --> 00:40:37,015 Assim, verifica-se que a internet é geralmente accionado por não apenas IP, 870 00:40:37,015 --> 00:40:39,890 mas na verdade nós ouvimos muito no início da palestra em que video-- 871 00:40:39,890 --> 00:40:42,473 e você provavelmente já viu este acrônimo mais often-- o que realmente 872 00:40:42,473 --> 00:40:44,360 é o protocolo que tendem a ouvir falar? 873 00:40:44,360 --> 00:40:45,120 >> AUDIÊNCIA: TCP / IP. 874 00:40:45,120 --> 00:40:48,090 >> DAVID J. MALAN: TCP / IP, que é apenas uma combinação 875 00:40:48,090 --> 00:40:49,940 de dois protocolos, um chamado IP. 876 00:40:49,940 --> 00:40:52,640 Que mais uma vez, é apenas o set através de convenções que nós 877 00:40:52,640 --> 00:40:54,740 abordar cada computador na internet. 878 00:40:54,740 --> 00:40:56,930 E, em seguida, TCP, que serve a um propósito. 879 00:40:56,930 --> 00:41:00,110 >> TCP é um protocolo que você tipicamente utilizada em conjunto 880 00:41:00,110 --> 00:41:04,410 com IP, que, entre outros coisas, garantias de entrega. 881 00:41:04,410 --> 00:41:08,860 Na verdade, o TCP é o protocolo iria notar que um dos pacotes 882 00:41:08,860 --> 00:41:10,930 aparentemente não chegou a Cole, porque ele parece 883 00:41:10,930 --> 00:41:12,830 estar faltando número quatro em quatro. 884 00:41:12,830 --> 00:41:16,530 E assim o TCP, um protocolo faz, é ele diz Cole, 885 00:41:16,530 --> 00:41:19,850 hey Cole, se você só recebe três dos quatro pacotes, 886 00:41:19,850 --> 00:41:22,600 me dizer qual deles você estão faltando, essencialmente, 887 00:41:22,600 --> 00:41:25,570 e depois o meu propósito na vida deve ser a que retransmitir. 888 00:41:25,570 --> 00:41:28,580 >> E assim se eu também, o remetente, estão usando TCP, 889 00:41:28,580 --> 00:41:31,810 Eu deveria, em seguida, criar uma nova packet-- não esta enrugada uma aqui-- 890 00:41:31,810 --> 00:41:35,980 retransmitir apenas este pedaço de -lo, de modo que, em última análise Cole tem 891 00:41:35,980 --> 00:41:38,280 uma lembrança completa, se nada mais. 892 00:41:38,280 --> 00:41:43,000 Mas em última análise, de modo que os dados realmente chega ao seu destino correto. 893 00:41:43,000 --> 00:41:48,020 >> Mas, infelizmente, escrevendo o nome de Cole na parte dianteira não é suficiente, por si só. 894 00:41:48,020 --> 00:41:50,270 E realmente, eu não iria escrever O nome de Cole, mas provavelmente 895 00:41:50,270 --> 00:41:51,655 seu endereço de IP no envelope. 896 00:41:51,655 --> 00:41:52,780 E eu não iria escrever David. 897 00:41:52,780 --> 00:41:56,550 Eu ia escrever meu endereço IP no envelope de modo que os computadores podem realmente 898 00:41:56,550 --> 00:41:57,999 comunicar e para trás. 899 00:41:57,999 --> 00:42:00,540 Mas acontece que os computadores pode fazer muito mais do que servir-se 900 00:42:00,540 --> 00:42:01,900 imagens de Rick Astley. 901 00:42:01,900 --> 00:42:05,340 Eles também pode reenviar e receber e-mails, mensagens de chat. 902 00:42:05,340 --> 00:42:09,780 Eles podem fazer coisas como transferências de arquivos, e qualquer número de outras ferramentas 903 00:42:09,780 --> 00:42:12,330 você usa na internet, servidores podem fazer nestes dias. 904 00:42:12,330 --> 00:42:15,300 >> E só porque uma empresa, ou uma escola, ou uma pessoa 905 00:42:15,300 --> 00:42:19,420 quer ter um servidor web, e um servidor de e-mail, e um servidor de bate-papo, 906 00:42:19,420 --> 00:42:21,420 não significa que você precisa de três computadores. 907 00:42:21,420 --> 00:42:26,200 Você pode ter apenas um computador de corrida vários serviços, por assim dizer. 908 00:42:26,200 --> 00:42:29,190 >> E assim, quando Cole recebe uma mensagem como essa, como 909 00:42:29,190 --> 00:42:32,940 O seu computador para saber se mostram que a imagem em seu navegador, 910 00:42:32,940 --> 00:42:37,730 ou em Gchat, ou no Facebook Messenger, ou em qualquer número de outras ferramentas? 911 00:42:37,730 --> 00:42:40,430 >> Assim, verifica-se também no que como envelope é peça adicional 912 00:42:40,430 --> 00:42:43,070 de informação conhecido como um número de porta. 913 00:42:43,070 --> 00:42:45,240 E um número de porta é apenas um número, de facto, 914 00:42:45,240 --> 00:42:48,342 mas não identifica exclusivamente o computador, mas o serviço. 915 00:42:48,342 --> 00:42:49,550 E não há cachos destes. 916 00:42:49,550 --> 00:42:51,258 Assim, verifica-se que no mundo, seres humanos 917 00:42:51,258 --> 00:42:57,095 ter decidido sobre alguns tais convenções, alguns dos quais são estes. 918 00:42:57,095 --> 00:42:59,220 Portanto, há algo chamado File Transfer Protocol. 919 00:42:59,220 --> 00:42:59,870 É bastante datada. 920 00:42:59,870 --> 00:43:00,970 É completamente inseguro. 921 00:43:00,970 --> 00:43:02,320 Um monte de pessoas ainda o usam. 922 00:43:02,320 --> 00:43:04,240 E ele usa o número da porta 21. 923 00:43:04,240 --> 00:43:07,250 Em outras palavras, se enviar um arquivo via FTP, 924 00:43:07,250 --> 00:43:10,570 o envelope teria não só o remetente e endereço IP do receptor, 925 00:43:10,570 --> 00:43:14,020 É também teria o número 21, de modo que o computador receptor sabe oh, este 926 00:43:14,020 --> 00:43:17,280 é um arquivo, não um e-mail ou uma mensagem de bate-papo. 927 00:43:17,280 --> 00:43:19,016 >> 25 é SMTP. 928 00:43:19,016 --> 00:43:20,516 Como muitos de vocês já usou SMTP? 929 00:43:20,516 --> 00:43:22,850 930 00:43:22,850 --> 00:43:23,380 Errado. 931 00:43:23,380 --> 00:43:24,490 Quase todos vocês têm. 932 00:43:24,490 --> 00:43:28,730 Se você já usou e-mail, você já usou SMTP, Simple Mail Transfer Protocol, 933 00:43:28,730 --> 00:43:32,300 que é apenas uma maneira elegante de dizer, este é o tipo de computador ou serviço 934 00:43:32,300 --> 00:43:34,600 que envia o seu e-mail de saída. 935 00:43:34,600 --> 00:43:38,780 >> E se você já viu como siglas POP, IMAP ou, e há alguns outros, 936 00:43:38,780 --> 00:43:40,670 são aqueles para receber e-mail, tipicamente. 937 00:43:40,670 --> 00:43:42,650 Isso apenas significa que é um serviço diferente. 938 00:43:42,650 --> 00:43:45,850 É software que alguém escreveu que envia ou escuta 939 00:43:45,850 --> 00:43:48,880 em um número de porta específico para que não confundir-mails 940 00:43:48,880 --> 00:43:50,360 com algum outro tipo de dados. 941 00:43:50,360 --> 00:43:55,500 >> Agora, a web é HTTP, que é número 80, e também a porta 443. 942 00:43:55,500 --> 00:43:57,590 E, de fato, apesar de Nós, seres humanos, felizmente, 943 00:43:57,590 --> 00:43:59,610 não tem que fazer isso, qualquer momento que você visita 944 00:43:59,610 --> 00:44:05,810 um site como http://www.yale.edu, o navegador 945 00:44:05,810 --> 00:44:07,790 é apenas a ser tipo de útil na medida em que é 946 00:44:07,790 --> 00:44:10,970 supondo que você deseja porta numérico 80. 947 00:44:10,970 --> 00:44:15,710 Nós já sabemos que o DNS pode descobrir qual é o endereço IP é de www.yale.edu. 948 00:44:15,710 --> 00:44:17,970 Mas o computador é apenas vai inferir que você 949 00:44:17,970 --> 00:44:21,560 quer a porta 80 porque você está usando Chrome ou IE, ou algum outro navegador. 950 00:44:21,560 --> 00:44:24,930 Mas eu poderia fazer tecnicamente cólon 80. 951 00:44:24,930 --> 00:44:28,520 E então eu posso dizer explicitamente meu navegador, enviar um pacote ou mais 952 00:44:28,520 --> 00:44:32,080 de informações para www.yale.edu solicitando home page de hoje. 953 00:44:32,080 --> 00:44:36,070 Mas especificamente, o endereço -lo para IP de Yale na porta 80 954 00:44:36,070 --> 00:44:39,190 de modo que eu realmente começar cópia de servidor web de Yale. 955 00:44:39,190 --> 00:44:42,229 >> Agora ele desaparece imediatamente porque os navegadores apenas 956 00:44:42,229 --> 00:44:44,020 decidir que nós não precisa confundir os seres humanos 957 00:44:44,020 --> 00:44:46,810 por ter ainda mais arcano informações como cólon 80. 958 00:44:46,810 --> 00:44:50,640 E, francamente, navegadores como o Chrome não fazer ainda 959 00:44:50,640 --> 00:44:55,464 mostrar-lhe HTTP mais, ou o cólon, ou a barra barra, ou o arrasto, 960 00:44:55,464 --> 00:44:58,380 em certo sentido, porque eles estão tentando para tornar as coisas mais simples para os usuários. 961 00:44:58,380 --> 00:45:01,080 Em outro sentido, é apenas um tipo de uma experiência de usuário coisa-- 962 00:45:01,080 --> 00:45:02,720 Vamos nos livrar de alguns dos desordem. 963 00:45:02,720 --> 00:45:05,405 Mas ele está escondendo alguns dos esses detalhes subjacentes. 964 00:45:05,405 --> 00:45:09,360 >> E, de fato, nenhum de nós provavelmente nunca digite http anymore. 965 00:45:09,360 --> 00:45:12,060 Você só digitar algo como www.harvard.edu. 966 00:45:12,060 --> 00:45:15,310 E, novamente, infere Chrome que pretende HTTP. 967 00:45:15,310 --> 00:45:18,970 Mas existem outros protocolos que certamente poderíamos estar usando. 968 00:45:18,970 --> 00:45:24,480 >> Assim, dado tudo isso, se você agora sorte de colocar a chamada chapéu engenharia, 969 00:45:24,480 --> 00:45:27,417 como é que as coisas chamados firewalls trabalhar? 970 00:45:27,417 --> 00:45:29,750 Então, provavelmente você está geralmente familiarizado com o firewall, 971 00:45:29,750 --> 00:45:30,990 não tanto no sentido físico. 972 00:45:30,990 --> 00:45:32,470 Então, de volta ao dia, e ainda para este dia, 973 00:45:32,470 --> 00:45:35,430 se você tem como shoppings para instância que tem um monte de lojas, 974 00:45:35,430 --> 00:45:38,500 geralmente as paredes entre lojas individuais ou lojas 975 00:45:38,500 --> 00:45:43,180 firewalls são no sentido de que eles têm isolamento especial 976 00:45:43,180 --> 00:45:45,310 de modo que em caso de incêndio irrompe em uma loja, 977 00:45:45,310 --> 00:45:48,210 Isso não significa necessariamente se espalhou para a loja ao lado. 978 00:45:48,210 --> 00:45:51,710 >> O mundo dos computadores também tem firewalls que fazer algo diferente. 979 00:45:51,710 --> 00:45:52,798 O que faz uma bola de fogo fazer? 980 00:45:52,798 --> 00:45:53,298 Sim? 981 00:45:53,298 --> 00:45:55,290 >> AUDIÊNCIA: Basicamente eles cortaram conexão 982 00:45:55,290 --> 00:45:59,493 se eles encontram algo como, por exemplo, 983 00:45:59,493 --> 00:46:01,361 eles têm número de declarações id. 984 00:46:01,361 --> 00:46:04,340 E se algo acontecer, eles cortaram a conexão. 985 00:46:04,340 --> 00:46:07,570 Como se este ataque malicioso [Inaudível] o seu computador, ou-- 986 00:46:07,570 --> 00:46:08,630 >> DAVID J. MALAN: bom OK. 987 00:46:08,630 --> 00:46:11,220 Sim, e na verdade você está mesmo indo um pouco mais longe 988 00:46:11,220 --> 00:46:14,590 na descrição de algo que poderia ser chamado de um sistema de detecção de intrusão, 989 00:46:14,590 --> 00:46:18,305 ou IDS para breve, através do qual você realmente têm regras definidas. 990 00:46:18,305 --> 00:46:22,140 E se você começar a ver suspeito comportamento, você tenta colocar um fim a isso. 991 00:46:22,140 --> 00:46:24,250 >> E um firewall, francamente, a um nível de rede, 992 00:46:24,250 --> 00:46:26,821 é ainda mais burro e mais simples que, geralmente. 993 00:46:26,821 --> 00:46:29,070 E há diferentes tipos de firewalls no mundo. 994 00:46:29,070 --> 00:46:31,569 Mas os que operam em o nível que estamos falando today-- 995 00:46:31,569 --> 00:46:35,330 IP e TCP-- trabalhar ainda mais diretamente. 996 00:46:35,330 --> 00:46:39,180 >> Por exemplo, se você estivesse sistema de Yale administradores, ou sistema de Harvard 997 00:46:39,180 --> 00:46:42,020 administradores, ou algum grande Irmão em alguma empresa, 998 00:46:42,020 --> 00:46:45,040 e você queria evitar todo o seu alunos ou todos os seus funcionários 999 00:46:45,040 --> 00:46:47,619 de ir à facebook.com, tudo que você tem a fazer 1000 00:46:47,619 --> 00:46:50,160 é ter certeza de que todo o seu tráfego da rede, antes de tudo, 1001 00:46:50,160 --> 00:46:51,850 passa através de um dispositivo especial. 1002 00:46:51,850 --> 00:46:53,030 Vamos chamá-lo de um firewall. 1003 00:46:53,030 --> 00:46:54,910 >> E isso é bom, porque você pode fazer o seu router 1004 00:46:54,910 --> 00:46:57,618 a mesma coisa que um firewall se você colocar o mesmo tipo de software 1005 00:46:57,618 --> 00:46:58,940 na mesma máquina. 1006 00:46:58,940 --> 00:47:01,780 Portanto, se todos os seus alunos ou tráfego de funcionários 1007 00:47:01,780 --> 00:47:04,450 está passando por isso firewall central, como 1008 00:47:04,450 --> 00:47:08,540 iríamos bloquear as pessoas de ir para facebook.com, por exemplo? 1009 00:47:08,540 --> 00:47:10,780 Qual seria o sistema administrador tem que fazer? 1010 00:47:10,780 --> 00:47:11,370 Alguém mais? 1011 00:47:11,370 --> 00:47:12,911 Vamos tentar ir ao redor. 1012 00:47:12,911 --> 00:47:15,074 >> AUDIÊNCIA: [inaudível] 1013 00:47:15,074 --> 00:47:16,365 DAVID J. MALAN: Diga isso de novo? 1014 00:47:16,365 --> 00:47:19,215 AUDIÊNCIA: Deve apenas se apanhados dentro do sistema. 1015 00:47:19,215 --> 00:47:22,487 Então, basta colocar Facebook em 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 Então você pode realmente, em seguida, hackear seu sistema DNS. 1018 00:47:27,290 --> 00:47:31,180 Esta é certamente uma maneira que você poderia fazer isso através do qual qualquer momento um estudante de Yale puxa 1019 00:47:31,180 --> 00:47:34,670 up www.facebook.com, todos nós aqui hoje no campus 1020 00:47:34,670 --> 00:47:38,590 está usando o servidor DNS do Yale, porque o servidor DHCP de Yale nos deu 1021 00:47:38,590 --> 00:47:39,580 esse endereço. 1022 00:47:39,580 --> 00:47:42,490 Então, sim, você poderia tipo de quebrar coisas ou convenção pausa 1023 00:47:42,490 --> 00:47:49,190 apenas dizendo, sim, endereço de facebook.com é falso, 1024 00:47:49,190 --> 00:47:52,530 é 1.2.3.4, que é não realmente legítimo. 1025 00:47:52,530 --> 00:47:53,930 Ou talvez seja 278. 1026 00:47:53,930 --> 00:47:57,460 tudo o que estava no programa de TV de uma há pouco, de modo que nenhum de nós 1027 00:47:57,460 --> 00:47:59,176 pode realmente visitar facebook.com. 1028 00:47:59,176 --> 00:48:00,590 >> Então suponho que Yale fez isso. 1029 00:48:00,590 --> 00:48:03,336 Suponha Yale queria manter você fora do facebook.com. 1030 00:48:03,336 --> 00:48:05,700 E, por conseguinte, eles mudou as configurações de DNS 1031 00:48:05,700 --> 00:48:08,812 para dar-lhe um IP falso endereço para facebook.com. 1032 00:48:08,812 --> 00:48:10,616 Como você responde? 1033 00:48:10,616 --> 00:48:12,990 Tecnicamente, não-- oh, agora todo mundo quer participar. 1034 00:48:12,990 --> 00:48:13,490 OK, sim. 1035 00:48:13,490 --> 00:48:16,190 AUDIÊNCIA: Você só digitar o endereço IP real do Facebook. 1036 00:48:16,190 --> 00:48:16,710 >> DAVID J. MALAN: OK, bom. 1037 00:48:16,710 --> 00:48:19,350 Então, nós poderíamos apenas digitar o endereço IP real do Facebook, 1038 00:48:19,350 --> 00:48:21,090 tanto como eu fiz com o site da Yale. 1039 00:48:21,090 --> 00:48:24,636 E se o servidor está configurado Facebook para apoiar isso, ele deve realmente funcionar. 1040 00:48:24,636 --> 00:48:26,510 É uma dor menor na o pescoço, porque agora nós 1041 00:48:26,510 --> 00:48:30,220 tem que lembrar alguns aleatória Valor de 32 bits, mas que poderia trabalhar. 1042 00:48:30,220 --> 00:48:31,622 O que mais você poderia fazer? 1043 00:48:31,622 --> 00:48:32,121 Sim. 1044 00:48:32,121 --> 00:48:35,117 >> AUDIÊNCIA: Você poderia mudar essas configurações [inaudível]. 1045 00:48:35,117 --> 00:48:37,700 DAVID J. MALAN: Sim, você poderia até mudar suas configurações de DNS. 1046 00:48:37,700 --> 00:48:40,480 Então, na verdade isso é realmente bastante útil, francamente, 1047 00:48:40,480 --> 00:48:45,590 se você estiver em um aeroporto, ou se você está em um café, ou algo que 1048 00:48:45,590 --> 00:48:48,834 tem internet esquisito em que, por vezes, o servidor DNS apenas pára de funcionar. 1049 00:48:48,834 --> 00:48:51,000 Assim, mesmo que eu, ocasionalmente, fazer este, não por mal-intencionado, I 1050 00:48:51,000 --> 00:48:52,750 quer usar Facebook propósitos, mas realmente 1051 00:48:52,750 --> 00:48:56,344 porque me parece ter uma rede ligação, mas nada está funcionando. 1052 00:48:56,344 --> 00:48:58,260 E assim um dos primeiros coisas que eu e você try-- 1053 00:48:58,260 --> 00:49:01,710 pode fazer isso no Windows, mas demasiado-- no meu Mac, se eu ir para Rede. 1054 00:49:01,710 --> 00:49:03,330 E eu escolho minha conexão Wi-Fi. 1055 00:49:03,330 --> 00:49:04,750 E eu ir para Avançado. 1056 00:49:04,750 --> 00:49:06,080 E eu ir para DNS. 1057 00:49:06,080 --> 00:49:08,260 Estes são os três Endereços IP que Yale 1058 00:49:08,260 --> 00:49:10,290 é dar-me por três servidores DNS. 1059 00:49:10,290 --> 00:49:14,110 O objetivo é, então, para mim tentar qualquer um deles para resolver endereços. 1060 00:49:14,110 --> 00:49:15,946 >> Mas eu posso substituir estes fazendo um plus. 1061 00:49:15,946 --> 00:49:18,333 E ninguém quer propor um servidor DNS? 1062 00:49:18,333 --> 00:49:19,120 >> AUDIÊNCIA: 8.8.8.8? 1063 00:49:19,120 --> 00:49:20,578 >> DAVID J. MALAN: Oh, você é incrível. 1064 00:49:20,578 --> 00:49:21,650 Sim, 8.8.8.8. 1065 00:49:21,650 --> 00:49:26,170 Então, o Google, abençoe seus corações, comprou o endereço IP 8.8.8.8, 1066 00:49:26,170 --> 00:49:29,560 porque ele meio que parece Gs provavelmente, e é fácil de lembrar. 1067 00:49:29,560 --> 00:49:34,820 Mas na verdade, agora eu configurei meu computador para usar o servidor DNS do Google. 1068 00:49:34,820 --> 00:49:38,050 >> Portanto, agora se eu for para yale.edu, ele ainda está indo para o trabalho. 1069 00:49:38,050 --> 00:49:40,100 Mas eu não estou usando Yale de Servidores DNS mais. 1070 00:49:40,100 --> 00:49:44,430 E se eu for para facebook.com, todos aqueles olhar ups 1071 00:49:44,430 --> 00:49:45,960 vão passar por Google. 1072 00:49:45,960 --> 00:49:49,120 >> Assim, por um lado, eu tenho inteligente contornado o sistema local 1073 00:49:49,120 --> 00:49:51,810 administradores apenas por compreender como funciona a rede. 1074 00:49:51,810 --> 00:49:53,360 Mas eu estou pagando um preço. 1075 00:49:53,360 --> 00:49:54,740 Nada é gratuito. 1076 00:49:54,740 --> 00:49:56,096 O que eu simplesmente desistido? 1077 00:49:56,096 --> 00:50:00,180 1078 00:50:00,180 --> 00:50:02,250 O que eu simplesmente desistido? 1079 00:50:02,250 --> 00:50:06,090 Todos vocês pessoas inteligentes que têm vindo a utilizar 8.8.8.8, porque é legal 1080 00:50:06,090 --> 00:50:10,440 ou resolve os problemas, o que você tem feito todo esse tempo? 1081 00:50:10,440 --> 00:50:11,910 >> AUDIÊNCIA: Viajar mais longe? 1082 00:50:11,910 --> 00:50:15,201 >> DAVID J. MALAN: Talvez viajar mais longe, porque o Google provavelmente não tão 1083 00:50:15,201 --> 00:50:16,770 perto como o servidor no final da rua. 1084 00:50:16,770 --> 00:50:18,420 Mas mais worrisomely. 1085 00:50:18,420 --> 00:50:18,920 Sim? 1086 00:50:18,920 --> 00:50:20,940 >> AUDIÊNCIA: Então agora o Google sabe onde você está indo. 1087 00:50:20,940 --> 00:50:23,856 >> DAVID J. MALAN: Google sabe literalmente cada site que você está visitando, 1088 00:50:23,856 --> 00:50:26,080 porque você está literalmente pedindo-lhes, hey Google, 1089 00:50:26,080 --> 00:50:28,360 você pode traduzir yale.edu para mim? 1090 00:50:28,360 --> 00:50:32,430 Ou hey Google, você pode traduzir este outro endereço do site para mim 1091 00:50:32,430 --> 00:50:33,334 em um endereço IP. 1092 00:50:33,334 --> 00:50:35,750 E assim they're-- Eu não tenho nenhuma ideia do que está falando. 1093 00:50:35,750 --> 00:50:38,080 E assim eles sabem tudo sobre você. 1094 00:50:38,080 --> 00:50:42,180 Então, percebe que este é um serviço gratuito com um propósito de sua perspectiva 1095 00:50:42,180 --> 00:50:42,680 também. 1096 00:50:42,680 --> 00:50:44,420 Mas certamente pode tirá-lo de um ligamento. 1097 00:50:44,420 --> 00:50:46,380 >> Agora é só para abordar um outro problema que muitas vezes surge 1098 00:50:46,380 --> 00:50:48,640 entre os estudantes, especialmente em viagens ao estrangeiro 1099 00:50:48,640 --> 00:50:50,765 em certos países como a China, onde há de fato 1100 00:50:50,765 --> 00:50:54,559 é um Grande Firewall da China em que o governo de lá bastante blocos 1101 00:50:54,559 --> 00:50:56,100 um pouco de tráfego em diferentes níveis. 1102 00:50:56,100 --> 00:50:58,141 Você não tem que apenas bloquear o tráfego no nível 1103 00:50:58,141 --> 00:51:01,240 nós estamos falando aqui, DNS ou de outra forma, você pode bloqueá-lo a outros níveis. 1104 00:51:01,240 --> 00:51:04,030 >> E, de fato, apenas para ser claro, um firewall 1105 00:51:04,030 --> 00:51:08,400 pode operar ainda mais simples do que apenas tendo os administradores de sistema mudar 1106 00:51:08,400 --> 00:51:09,500 Configurações de DNS. 1107 00:51:09,500 --> 00:51:12,920 Um firewall, um dispositivo entre nós eo resto do mundo, 1108 00:51:12,920 --> 00:51:16,850 só poderia bloquear qualquer saída solicitações para o endereço IP 1109 00:51:16,850 --> 00:51:21,240 para Facebook na porta 80, ou o endereço IP para harvard.edu, 1110 00:51:21,240 --> 00:51:22,580 ou o endereço IP de qualquer coisa. 1111 00:51:22,580 --> 00:51:26,280 Assim, um firewall pode olhar para o seu envelopes 'endereços IP e até mesmo porta 1112 00:51:26,280 --> 00:51:29,384 números e, se Yale queria, ele poderia simplesmente parar todos nós 1113 00:51:29,384 --> 00:51:32,550 do mesmo utilizando FTP mais, o que faria provavelmente ser uma coisa boa, porque 1114 00:51:32,550 --> 00:51:34,320 é de fato um protocolo inseguro. 1115 00:51:34,320 --> 00:51:37,620 Yale poderia até mesmo impedir-nos de visitar a totalidade da teia 1116 00:51:37,620 --> 00:51:42,632 apenas através do bloqueio de todas as portas tráfego no número 80, bem. 1117 00:51:42,632 --> 00:51:43,840 Para que possa ser de outra maneira. 1118 00:51:43,840 --> 00:51:45,740 E há maneiras ainda mais extravagantes também. 1119 00:51:45,740 --> 00:51:47,770 >> Mas quando você está viajando no exterior, por exemplo, 1120 00:51:47,770 --> 00:51:50,740 ou se você estiver em um internet café, ou se você estiver em qualquer lugar onde há 1121 00:51:50,740 --> 00:51:53,179 bloqueios ou ameaças, o que você pode fazer? 1122 00:51:53,179 --> 00:51:56,220 Bem, se você descer a rua para Starbucks ou você viajar em um aeroporto, 1123 00:51:56,220 --> 00:51:58,780 geralmente você pode apenas hop sobre o Wi-Fi, escolhendo 1124 00:51:58,780 --> 00:52:04,631 como, JFK Wi-Fi de LaGuardia Wi-Fi, ou Logan Airport Wi-Fi, ou que não. 1125 00:52:04,631 --> 00:52:05,880 E não é criptografada, certo? 1126 00:52:05,880 --> 00:52:06,949 Não há nenhum ícone de cadeado. 1127 00:52:06,949 --> 00:52:09,490 E você provavelmente não solicitado um nome de usuário e senha. 1128 00:52:09,490 --> 00:52:11,240 Você está apenas solicitado com alguma forma estúpida 1129 00:52:11,240 --> 00:52:15,260 para dizer como, concordo em usar isso só por 30 minutos, ou algo parecido. 1130 00:52:15,260 --> 00:52:18,761 >> Mas não há criptografia entre você e Starbucks acesso Wi-Fi 1131 00:52:18,761 --> 00:52:20,760 ponto, as coisas com as antenas na parede. 1132 00:52:20,760 --> 00:52:24,840 Não há criptografia entre você e os sinais de Wi-Fi do aeroporto. 1133 00:52:24,840 --> 00:52:29,060 >> E então, tecnicamente, essa pessoa assustador sentando-se alguns assentos para baixo de você 1134 00:52:29,060 --> 00:52:31,970 no Starbucks ou no aeroporto poderia ser, com o software certo, 1135 00:52:31,970 --> 00:52:35,164 observando todo o seu wireless tráfego em seu laptop. 1136 00:52:35,164 --> 00:52:37,080 Não é que difícil colocar um laptop em que é 1137 00:52:37,080 --> 00:52:39,880 chamado modo promíscuo, que como o nome sugere, 1138 00:52:39,880 --> 00:52:41,760 Significa que você é o tipo de solto com as regras. 1139 00:52:41,760 --> 00:52:44,740 E ele só escuta não só para o tráfego significava para ele, 1140 00:52:44,740 --> 00:52:47,700 mas também para toda a gente é tráfego dentro do alcance. 1141 00:52:47,700 --> 00:52:50,550 >> E por essa lógica, ele pode ver todos os pacotes de informação 1142 00:52:50,550 --> 00:52:51,360 você está recebendo. 1143 00:52:51,360 --> 00:52:53,510 E se esses pacotes não são criptografados, você 1144 00:52:53,510 --> 00:52:56,680 está se colocando em risco de seus e-mails, ou suas mensagens, 1145 00:52:56,680 --> 00:52:58,620 ou qualquer outra coisa ficar exposto. 1146 00:52:58,620 --> 00:53:01,220 >> Assim, mesmo se você não estiver no exterior mas você está apenas na Starbucks, 1147 00:53:01,220 --> 00:53:03,800 ou você está em alguma pessoa aleatória de Wi-Fi que não é criptografado, 1148 00:53:03,800 --> 00:53:05,410 uma VPN é uma coisa boa. 1149 00:53:05,410 --> 00:53:07,410 Uma VPN é uma rede privada virtual. 1150 00:53:07,410 --> 00:53:09,480 E é uma tecnologia que permite que você tenha 1151 00:53:09,480 --> 00:53:14,560 um, um connection-- mexidos criptografado amador de César ou Vigenere-- 1152 00:53:14,560 --> 00:53:17,420 entre o seu laptop, ou o telefone ou o seu desktop, 1153 00:53:17,420 --> 00:53:22,460 e um servidor em outras posições, tal como um servidor no campus de Yale. 1154 00:53:22,460 --> 00:53:25,840 >> E se você estiver viajando abroad-- e, de fato, vai encontrar este em hotéis 1155 00:53:25,840 --> 00:53:26,560 o tempo todo. 1156 00:53:26,560 --> 00:53:28,580 E, especialmente, como aspirante cientistas da computação 1157 00:53:28,580 --> 00:53:32,090 onde vocês podem, como os geeks, quer usar outros de 80 portos, 1158 00:53:32,090 --> 00:53:35,770 e outras do que as portas e 443-- na verdade para o problema de definir seis, 1159 00:53:35,770 --> 00:53:39,280 vamos jogar com múltiplos Portas TCP apenas por um monte choice-- 1160 00:53:39,280 --> 00:53:42,940 de hotéis, e lojas e redes apenas bloquear esse tipo de coisa 1161 00:53:42,940 --> 00:53:45,970 porque tanto ingenuamente, ou ignorantemente, basta pensar 1162 00:53:45,970 --> 00:53:48,010 que ninguém precisa desses outros portos. 1163 00:53:48,010 --> 00:53:51,150 >> E isso usando uma VPN pode você contornar esses tipos de restrições, 1164 00:53:51,150 --> 00:53:54,050 porque o que uma VPN faz é ele permite que você na Starbucks, 1165 00:53:54,050 --> 00:53:58,630 ou do aeroporto, ou qualquer lugar do mundo para se conectar ao encryptedly yale.edu, 1166 00:53:58,630 --> 00:54:02,950 a algum servidor aqui no campus, e, em seguida, túnel, por assim dizer, 1167 00:54:02,950 --> 00:54:06,570 todo o seu tráfego de onde quer você é através de Yale, em que ponto 1168 00:54:06,570 --> 00:54:08,720 em seguida, vai para o seu destino final. 1169 00:54:08,720 --> 00:54:11,150 >> Mas, criptografando-lo, você evitar qualquer destes tipos 1170 00:54:11,150 --> 00:54:15,380 de filtros ou a imposição que impôs alguma rede local. 1171 00:54:15,380 --> 00:54:17,980 E mais, você tem um defesa muito mais robusto 1172 00:54:17,980 --> 00:54:19,730 contra as pessoas assustador em torno de você que pode 1173 00:54:19,730 --> 00:54:21,300 estar tentando ouvir em seu tráfego. 1174 00:54:21,300 --> 00:54:24,591 Poderia ainda haver pessoas assustadores aqui de volta para casa em Yale vendo seu tráfego 1175 00:54:24,591 --> 00:54:28,440 como ele sai da VPN, mas pelo menos você empurrou a ameaça mais longe. 1176 00:54:28,440 --> 00:54:30,490 E é também aqui, um trade-off. 1177 00:54:30,490 --> 00:54:33,645 >> Agora, é claro, se você estiver em China ou até mesmo no café, 1178 00:54:33,645 --> 00:54:35,770 e você está tunelamento tudo seu tráfego através de Yale, 1179 00:54:35,770 --> 00:54:37,590 qual o preço que estamos pagando talvez? 1180 00:54:37,590 --> 00:54:38,272 >> AUDIÊNCIA: Speed. 1181 00:54:38,272 --> 00:54:39,480 DAVID J. MALAN: velocidade, certo? 1182 00:54:39,480 --> 00:54:41,430 Tem que ser um pouco de matemática ou alguns fanciness envolvido 1183 00:54:41,430 --> 00:54:42,574 na criptografia real. 1184 00:54:42,574 --> 00:54:44,990 Não poderia haver milhares de milhas de distância ou milhares 1185 00:54:44,990 --> 00:54:47,250 de milhas de cabos entre você e Yale. 1186 00:54:47,250 --> 00:54:49,800 E é muito ruim se você estiver na China, por exemplo, 1187 00:54:49,800 --> 00:54:51,650 e você quer visitar um site na China. 1188 00:54:51,650 --> 00:54:54,230 E assim seus dados estão indo para os EUA, e, em seguida, volta para a China 1189 00:54:54,230 --> 00:54:56,620 só porque você está criptografando -lo através deste túnel. 1190 00:54:56,620 --> 00:54:59,960 >> Mas ele resolve técnico e trabalhar problemas parecidos. 1191 00:54:59,960 --> 00:55:02,050 Mas tudo se resume a essas idéias muito simples. 1192 00:55:02,050 --> 00:55:06,530 E Harvard, para os curiosos, tem um aqui, bem como, em vpn.harvard.edu, 1193 00:55:06,530 --> 00:55:09,150 que atua apenas como Yale. 1194 00:55:09,150 --> 00:55:12,580 >> Assim, com tudo o que disse, por que É toda esta rede é útil? 1195 00:55:12,580 --> 00:55:14,080 E o que podemos começar a fazer com ele? 1196 00:55:14,080 --> 00:55:15,630 Bem, vamos fazer isso agora mais real. 1197 00:55:15,630 --> 00:55:17,610 Esta é a sigla com a qual a maioria de nós 1198 00:55:17,610 --> 00:55:22,140 são provavelmente super-familiar-- HTTP-- que representa a transferência de hiper texto 1199 00:55:22,140 --> 00:55:22,950 Protocolo. 1200 00:55:22,950 --> 00:55:26,460 E isso apenas significa que esta é a língua, o protocolo 1201 00:55:26,460 --> 00:55:29,140 que os navegadores web e servidor web falar. 1202 00:55:29,140 --> 00:55:31,437 >> A P em HTTP é de fato um protocolo. 1203 00:55:31,437 --> 00:55:33,270 E um protocolo é apenas um conjunto de convenções. 1204 00:55:33,270 --> 00:55:36,690 Nós vimos IP-- protocol-- internet Controle de transmissão TCP-- 1205 00:55:36,690 --> 00:55:38,290 protocol-- e HTTP. 1206 00:55:38,290 --> 00:55:40,570 Mas o que é esse estúpido coisa de um protocolo? 1207 00:55:40,570 --> 00:55:41,930 É apenas um conjunto de convenções. 1208 00:55:41,930 --> 00:55:43,760 >> Então, se eu espécie de vir para baixo aqui, e quero cumprimentá-lo. 1209 00:55:43,760 --> 00:55:44,930 Gostaria de dizer oi, meu nome é David. 1210 00:55:44,930 --> 00:55:45,600 >> AUDIÊNCIA: Luis. 1211 00:55:45,600 --> 00:55:46,475 >> DAVID J. MALAN: Luis. 1212 00:55:46,475 --> 00:55:49,360 Temos este humano estúpido convenção de apertar as mãos aqui. 1213 00:55:49,360 --> 00:55:50,570 Mas isso é um protocolo, certo? 1214 00:55:50,570 --> 00:55:51,470 Eu estendi minha mão. 1215 00:55:51,470 --> 00:55:52,530 Luis estendeu a mão. 1216 00:55:52,530 --> 00:55:53,070 Nós fizemos isso. 1217 00:55:53,070 --> 00:55:54,790 E, então, completo, feito. 1218 00:55:54,790 --> 00:55:58,100 >> E isso é exatamente o mesmo espírito de um protocolo de computador 1219 00:55:58,100 --> 00:56:02,770 quando, como no HTTP, o que acontece é o seguinte. 1220 00:56:02,770 --> 00:56:05,520 Se você é o computador no deixou aqui, e há alguns web 1221 00:56:05,520 --> 00:56:07,230 servidor lá na direita. 1222 00:56:07,230 --> 00:56:11,130 E o computador à esquerda quer solicitar informações a partir desse servidor. 1223 00:56:11,130 --> 00:56:13,140 É uma espécie de uma operação bi-direcional. 1224 00:56:13,140 --> 00:56:15,800 O navegador do lado esquerdo pede alguma página web. 1225 00:56:15,800 --> 00:56:18,404 O servidor à direita responde com alguma página web. 1226 00:56:18,404 --> 00:56:20,570 E vamos ver o que forma aqueles tomar em apenas um momento. 1227 00:56:20,570 --> 00:56:24,311 >> E verifica-se que esses computers-- que o navegador eo servidor ou cliente 1228 00:56:24,311 --> 00:56:25,310 e do servidor, por assim dizer. 1229 00:56:25,310 --> 00:56:28,120 Muito parecido com um restaurante onde o cliente está pedindo alguma coisa, 1230 00:56:28,120 --> 00:56:31,670 eo servidor está trazendo ele ou ela ficar algo-- 1231 00:56:31,670 --> 00:56:33,170 é o tipo de palavra-chave. 1232 00:56:33,170 --> 00:56:38,560 Literalmente dentro do envelope que meu navegador envia daqui para a web 1233 00:56:38,560 --> 00:56:40,880 servidor é a palavra get. 1234 00:56:40,880 --> 00:56:42,700 Como eu quiser obter as notícias de hoje. 1235 00:56:42,700 --> 00:56:45,370 Eu quero pegar o meu Feed de notícias do Facebook, ou eu 1236 00:56:45,370 --> 00:56:47,330 deseja obter alguma página do servidor. 1237 00:56:47,330 --> 00:56:50,760 >> Especificamente, isso é o que é acontecendo dentro desse envelope. 1238 00:56:50,760 --> 00:56:53,810 Então, eu, com Cole, essencialmente Cole enviada uma resposta. 1239 00:56:53,810 --> 00:56:56,750 Se você imaginar que, na verdade, Cole queria uma imagem de Rick Astley, 1240 00:56:56,750 --> 00:57:00,700 ele poderia ter me enviado um pedido semelhantes em espírito à presente. 1241 00:57:00,700 --> 00:57:04,670 Dentro de seu envelope para mim, onde Agora estou fazendo o papel de Google, 1242 00:57:04,670 --> 00:57:08,270 seria um pedido que, literalmente, diz, obter, em seguida, um slash-- frente 1243 00:57:08,270 --> 00:57:10,636 e você provavelmente já viu barras em URLs antes. 1244 00:57:10,636 --> 00:57:13,260 Significa apenas que me dê o padrão página, o padrão Rick Astley 1245 00:57:13,260 --> 00:57:14,560 imagem, neste caso. 1246 00:57:14,560 --> 00:57:20,100 >> E, a propósito, Cole fala a língua HTTP versão 1.1, ou o protocolo 1.1. 1247 00:57:20,100 --> 00:57:22,090 E acontece que há uma versão mais antiga 1,0. 1248 00:57:22,090 --> 00:57:23,910 Mas os computadores tendem a usar 1.1. 1249 00:57:23,910 --> 00:57:27,840 >> A segunda linha é uma coisa útil que vai voltar para, talvez, antes do tempo. 1250 00:57:27,840 --> 00:57:31,900 Mas é apenas uma especificação para mim, o destinatário, que a coisa que eu quero 1251 00:57:31,900 --> 00:57:33,586 é www.google.com. 1252 00:57:33,586 --> 00:57:36,340 Porque é muito possível estes dias para dezenas, 1253 00:57:36,340 --> 00:57:39,510 centenas de sites com diferentes nomes de domínio para todos 1254 00:57:39,510 --> 00:57:40,735 viver no mesmo servidor. 1255 00:57:40,735 --> 00:57:42,860 Não está indo para ser verdade tanto no caso do Google. 1256 00:57:42,860 --> 00:57:45,261 Mas em uma pequena empresa de caso, poderia ser absolutamente. 1257 00:57:45,261 --> 00:57:47,260 Então Cole é apenas uma espécie de colocando no envelope, 1258 00:57:47,260 --> 00:57:50,840 a propósito, quando este atinge seu endereço de IP na porta 80, 1259 00:57:50,840 --> 00:57:54,450 apenas a certeza de que você sabe Eu www.google.com, não quero 1260 00:57:54,450 --> 00:57:56,740 algum outro site aleatório no mesmo servidor. 1261 00:57:56,740 --> 00:58:00,360 >> O que eu, em seguida, responder a Cole com, no fim do dia, é uma imagem. 1262 00:58:00,360 --> 00:58:02,920 Mas em cima de que a imagem dentro do envelope 1263 00:58:02,920 --> 00:58:05,600 é, na verdade, algum texto, onde eu digo, OK. 1264 00:58:05,600 --> 00:58:07,970 Falo HTTP versão 1.1 também. 1265 00:58:07,970 --> 00:58:09,200 200. 1266 00:58:09,200 --> 00:58:11,730 Que é um código de status que a maioria de nós provavelmente já 1267 00:58:11,730 --> 00:58:14,185 nunca vi, porque significa OK. 1268 00:58:14,185 --> 00:58:16,810 E isso é bom, porque significa que estou a responder com êxito 1269 00:58:16,810 --> 00:58:18,040 a pedido de Cole. 1270 00:58:18,040 --> 00:58:21,930 >> O que os números têm provavelmente você visto na web que não são OK? 1271 00:58:21,930 --> 00:58:22,780 >> AUDIÊNCIA: 404. 1272 00:58:22,780 --> 00:58:24,830 >> DAVID J. MALAN: 404-- arquivo não encontrado. 1273 00:58:24,830 --> 00:58:27,520 Então, na verdade, a qualquer hora que você já viu um desses arquivos não irritante 1274 00:58:27,520 --> 00:58:31,010 erros encontrados, porque a página web está morta, 1275 00:58:31,010 --> 00:58:34,190 ou porque você digitado incorretamente uma URL, que significa apenas 1276 00:58:34,190 --> 00:58:37,600 que o pequeno envelope que seu computador recebido do servidor 1277 00:58:37,600 --> 00:58:42,670 continha uma mensagem HTTP 1.1, 404-- não encontrado. 1278 00:58:42,670 --> 00:58:44,930 Esse arquivo ou esse pedido você fez não foi encontrado. 1279 00:58:44,930 --> 00:58:48,660 >> Além disso, no interior do envelope normalmente é esta linha, tipo de conteúdo. 1280 00:58:48,660 --> 00:58:51,080 Às vezes é HTML, algo que vamos ver em breve. 1281 00:58:51,080 --> 00:58:52,225 Às vezes é um JPEG. 1282 00:58:52,225 --> 00:58:53,100 Às vezes é um GIF. 1283 00:58:53,100 --> 00:58:56,060 Às vezes é um arquivo de filme, um arquivo de áudio, uma série de coisas. 1284 00:58:56,060 --> 00:59:00,059 Então, dentro do envelope é apenas um pequena dica sobre o que eu estou recebendo. 1285 00:59:00,059 --> 00:59:03,100 Há outros códigos de status também, alguns de que vamos explorar em P ajustou seis, 1286 00:59:03,100 --> 00:59:05,890 e você vai tropeçar em em P ajustou sete e / ou oito. 1287 00:59:05,890 --> 00:59:08,580 Mas alguns aqui, como 404 que já vimos. 1288 00:59:08,580 --> 00:59:11,700 Proibida, 403, significa como as permissões estão erradas, 1289 00:59:11,700 --> 00:59:14,740 como você não tem tipo de configurados corretamente. 1290 00:59:14,740 --> 00:59:17,830 301 e 302, raramente vemos visualmente. 1291 00:59:17,830 --> 00:59:19,150 Mas eles significam redirecionar. 1292 00:59:19,150 --> 00:59:21,650 Toda vez que você tenha ido para um URL e você foi magicamente 1293 00:59:21,650 --> 00:59:24,410 enviada em outro lugar, que é porque o navegador enviou de volta 1294 00:59:24,410 --> 00:59:27,210 um envelope contendo o número 301 ou 302, 1295 00:59:27,210 --> 00:59:30,790 e o URL que quer seu browser para ir para seu lugar. 1296 00:59:30,790 --> 00:59:32,010 >> 500 é horrível. 1297 00:59:32,010 --> 00:59:34,842 Você vai vê-lo em pouco tempo, provavelmente em P ajustou seis ou sete P definido. 1298 00:59:34,842 --> 00:59:37,050 E isso geralmente significa há algum bug em seu código, 1299 00:59:37,050 --> 00:59:40,000 porque na verdade nós vamos estar escrevendo código que responde a solicitações da Web. 1300 00:59:40,000 --> 00:59:42,110 E você só tem alguns erro de lógica ou de sintaxe, 1301 00:59:42,110 --> 00:59:43,820 eo servidor não pode lidar com isso. 1302 00:59:43,820 --> 00:59:47,460 >> Então vamos ver como podemos alavancar e agora entender essas solicitações da seguinte forma. 1303 00:59:47,460 --> 00:59:50,716 Se eu for para, digamos, google.com. 1304 00:59:50,716 --> 00:59:55,240 Deixe-me ir para www.google.com. 1305 00:59:55,240 --> 01:00:01,220 E pelo amor de demonstração, vamos ver, eu preciso ir para definições aqui. 1306 01:00:01,220 --> 01:00:03,180 Eu estou indo para ir à busca Configurações. 1307 01:00:03,180 --> 01:00:08,236 E o Google tem cada vez mais irritante recursos, mas características úteis. 1308 01:00:08,236 --> 01:00:11,110 Então, o Google tem essa coisa como instantâneas resultados onde você começa a digitar, 1309 01:00:11,110 --> 01:00:12,889 e automaticamente as coisas começam a aparecer. 1310 01:00:12,889 --> 01:00:14,680 E isso é tudo bem e tecnicamente útil, 1311 01:00:14,680 --> 01:00:16,420 e nós vamos entender em pouco tempo como isso funciona. 1312 01:00:16,420 --> 01:00:18,429 Mas, por agora, eu estou girando off resultados imediatos, 1313 01:00:18,429 --> 01:00:20,720 porque eu quero o meu navegador para tipo de trabalho tão velha escola 1314 01:00:20,720 --> 01:00:22,940 que eu possa ver o que está acontecendo. 1315 01:00:22,940 --> 01:00:23,840 >> Então agora eu estou de volta aqui. 1316 01:00:23,840 --> 01:00:25,090 E eu quero procurar gatos. 1317 01:00:25,090 --> 01:00:30,351 E notem que eu estou vendo algumas sugestões, algumas sugestões muito benignos 1318 01:00:30,351 --> 01:00:30,850 agradecidamente. 1319 01:00:30,850 --> 01:00:34,730 E agora, se eu pressionar Enter, vamos ver o que acontece. 1320 01:00:34,730 --> 01:00:35,850 >> Portanto, há alguns gatos. 1321 01:00:35,850 --> 01:00:37,540 E o top hit é na Wikipedia. 1322 01:00:37,540 --> 01:00:39,820 Mas hoje nós nos preocupamos a tecnologia aqui em cima. 1323 01:00:39,820 --> 01:00:42,479 Assim, a URL para o qual eu tenho foram enviados é este aqui. 1324 01:00:42,479 --> 01:00:44,520 E há algumas coisas que eu realmente não entendo. 1325 01:00:44,520 --> 01:00:47,430 >> Então, eu estou indo para ir em frente, porque Eu meio que sei como funciona o Google, 1326 01:00:47,430 --> 01:00:50,700 e eu estou indo para destilar esta URL em sua forma mais simples. 1327 01:00:50,700 --> 01:00:52,510 E agora eu vou bater Enter novamente. 1328 01:00:52,510 --> 01:00:53,360 E ele ainda funciona. 1329 01:00:53,360 --> 01:00:55,800 Eu tenho uma página de resultados de tudo sobre gatos. 1330 01:00:55,800 --> 01:00:58,460 >> Mas note a simplicidade da minha URL. 1331 01:00:58,460 --> 01:01:00,820 Acontece que esta é a forma como grande parte das obras da web. 1332 01:01:00,820 --> 01:01:03,500 A web é apenas um todo bando de computadores 1333 01:01:03,500 --> 01:01:05,320 executando um software que tomar entrada. 1334 01:01:05,320 --> 01:01:07,480 Não é obter a entrada estilo string. 1335 01:01:07,480 --> 01:01:09,670 Não é linha de comando argumentos como estamos acostumados. 1336 01:01:09,670 --> 01:01:13,449 Eles levam de entrada, esses servidores web, por meio das URLs com bastante frequência. 1337 01:01:13,449 --> 01:01:15,240 E qualquer hora que você tem procurou alguma coisa, 1338 01:01:15,240 --> 01:01:17,448 qualquer momento que você entrou em Facebook, a qualquer hora que você tem 1339 01:01:17,448 --> 01:01:20,090 fez nada interativa com uma página web, o que você está fazendo 1340 01:01:20,090 --> 01:01:24,340 é efetivamente submeter um formulário, de modo para speak-- caixas de texto, caixas de seleção, 1341 01:01:24,340 --> 01:01:27,880 pequenos círculos, e outros enfeites que enviam informações sobre você para o servidor. 1342 01:01:27,880 --> 01:01:31,960 >> E verifica-se que a web servidor sabe de olhar para esse URL 1343 01:01:31,960 --> 01:01:36,040 e analisá-lo, como olhar para ele de caráter por caráter procura de qualquer coisa 1344 01:01:36,040 --> 01:01:38,000 interessante depois de um ponto de interrogação. 1345 01:01:38,000 --> 01:01:40,910 Porque depois de um ponto de interrogação, ao que parece, vai vir 1346 01:01:40,910 --> 01:01:42,730 um monte de pares de valores-chave. 1347 01:01:42,730 --> 01:01:44,570 Quero dizer-chave = valor. 1348 01:01:44,570 --> 01:01:48,130 E, em seguida, se há multiple-- talvez um e comercial, alguma outra chave = valor, 1349 01:01:48,130 --> 01:01:50,200 E comercial, chave = valor. 1350 01:01:50,200 --> 01:01:54,560 >> Então, nós tipo de visto essa idéia antes que algo tem um valor. 1351 01:01:54,560 --> 01:01:55,880 É apenas um novo formato aqui. 1352 01:01:55,880 --> 01:01:59,040 E eu só sei, por convenção, Google usa q para consulta. 1353 01:01:59,040 --> 01:02:02,670 E então se eu quiser procurar cães, I pode procurar manualmente cães assim. 1354 01:02:02,670 --> 01:02:06,360 E então eu estou ficando aparentemente alguns resultados de pesquisa envolvendo cães. 1355 01:02:06,360 --> 01:02:07,727 >> De modo que parece ser interessante. 1356 01:02:07,727 --> 01:02:10,060 E, de fato, o que está acontecendo debaixo do capô é este. 1357 01:02:10,060 --> 01:02:11,460 Deixe-me fazer isso. 1358 01:02:11,460 --> 01:02:13,620 Esta é um-- vamos ver. 1359 01:02:13,620 --> 01:02:16,320 Deixe-me voltar mais aqui só por um momento. 1360 01:02:16,320 --> 01:02:19,810 >> Vamos ver que não há outro maneiras de enviar informações. 1361 01:02:19,810 --> 01:02:25,340 Então, se eu estou entrando em Facebook, ou Gmail, ou qualquer outro site popular, 1362 01:02:25,340 --> 01:02:30,720 parece tipo de mau se o que eu digitei na caixa de pesquisa acaba em minha URL, 1363 01:02:30,720 --> 01:02:32,850 na barra de endereços do navegador. 1364 01:02:32,850 --> 01:02:33,690 Por quê? 1365 01:02:33,690 --> 01:02:35,395 Por que é que levemente preocupante? 1366 01:02:35,395 --> 01:02:39,567 1367 01:02:39,567 --> 01:02:40,067 Sim? 1368 01:02:40,067 --> 01:02:41,380 AUDIÊNCIA: Digite uma senha. 1369 01:02:41,380 --> 01:02:41,720 DAVID J. MALAN: Yeah. 1370 01:02:41,720 --> 01:02:44,000 Então, o que, se o que eu tenho digitado é a minha senha? 1371 01:02:44,000 --> 01:02:47,881 Eu meio que não quer que ele tão obviamente visível na barra de endereços do navegador. 1372 01:02:47,881 --> 01:02:50,630 Um, porque o meu companheiro de quarto irritante tende a olhar sobre meu ombro, 1373 01:02:50,630 --> 01:02:53,980 e ele ou ela agora pode ver, mesmo que foi balas quando eu estou digitando-o, 1374 01:02:53,980 --> 01:02:54,810 pequenos círculos. 1375 01:02:54,810 --> 01:02:56,010 Agora é na minha barra de endereço. 1376 01:02:56,010 --> 01:02:59,270 >> Além disso, o que é verdade sobre as coisas você tende a digitar na barra de endereços. 1377 01:02:59,270 --> 01:03:00,230 >> AUDIÊNCIA: [inaudível] 1378 01:03:00,230 --> 01:03:01,505 >> DAVID J. MALAN: O que é isso? 1379 01:03:01,505 --> 01:03:02,630 AUDIÊNCIA: É é enviada para fora. 1380 01:03:02,630 --> 01:03:03,510 DAVID J. MALAN: Ele é enviada para fora. 1381 01:03:03,510 --> 01:03:05,102 E também, ele é lembrado. 1382 01:03:05,102 --> 01:03:07,060 Uma vez que a próxima vez você digita coisas lá em cima, 1383 01:03:07,060 --> 01:03:10,440 muitas vezes, e autocompletes lembra o que você digitou antes. 1384 01:03:10,440 --> 01:03:13,850 E então não há verdadeira história deste que seu irmão ou seu companheiro de quarto, 1385 01:03:13,850 --> 01:03:16,830 ou quem quer que pode percorrer para praticamente ver cada site 1386 01:03:16,830 --> 01:03:19,760 você visitou porque é logado que barra de endereços. 1387 01:03:19,760 --> 01:03:22,790 >> Além disso, suponha que você queira carregar uma foto no Facebook. 1388 01:03:22,790 --> 01:03:26,520 Como no mundo você está vai colocar uma foto em um URL? 1389 01:03:26,520 --> 01:03:30,217 >> Bem, acontece que você pode fazê-lo em algum maneira, mas certamente não óbvio. 1390 01:03:30,217 --> 01:03:33,050 E assim há essa outra forma de envio de informações em um envelope, 1391 01:03:33,050 --> 01:03:35,680 não através de um GET, mas via algo chamado POST. 1392 01:03:35,680 --> 01:03:38,060 E, em teoria, parece basicamente o mesmo. 1393 01:03:38,060 --> 01:03:41,270 Em vez de a palavra GET, dizemos POST, e, em seguida, o mesmo tipo de formato. 1394 01:03:41,270 --> 01:03:43,310 >> Por exemplo, este é o um screenshot do que 1395 01:03:43,310 --> 01:03:46,920 pôde olhar como se eu tentar logging no Facebook, que me envia para um arquivo 1396 01:03:46,920 --> 01:03:51,230 chamado login.php, que é, na verdade, ainda hoje denominado como tal. 1397 01:03:51,230 --> 01:03:53,910 É o mesmo Mark filename deu a ele muitos anos atrás. 1398 01:03:53,910 --> 01:03:58,520 É o programa que ele escreveu em PHP via que os usuários podem acessar o site. 1399 01:03:58,520 --> 01:04:00,370 >> Mas você precisa enviar alguma entrada adicional. 1400 01:04:00,370 --> 01:04:05,170 E ao invés de ele ir atrás do o nome do arquivo como fez antes com cats-- 1401 01:04:05,170 --> 01:04:09,720 q = cats-- ele pode ir mais baixo no pedido, no interior mais profundo do envelope se você 1402 01:04:09,720 --> 01:04:12,440 vontade, onde ninguém possa vê-lo, e onde ele não acabe 1403 01:04:12,440 --> 01:04:15,670 na barra do navegador do usuário e, portanto, não me lembro de pessoas para bisbilhotar 1404 01:04:15,670 --> 01:04:16,290 por aí. 1405 01:04:16,290 --> 01:04:21,260 >> E aqui o meu endereço de e-mail e minha senha falso realmente ir. 1406 01:04:21,260 --> 01:04:27,400 E se o Facebook está usando não HTTP, HTTPS, mas, 1407 01:04:27,400 --> 01:04:30,710 tudo isto será criptografada, mexidos, ala César ou Vigenere, 1408 01:04:30,710 --> 01:04:34,960 mas mais fancily para que ninguém pode realmente ver este pedido. 1409 01:04:34,960 --> 01:04:38,120 >> E assim, de fato, qualquer tempo que você tem um URL que começa com HTTPS, 1410 01:04:38,120 --> 01:04:39,560 significa apenas que ele está criptografado. 1411 01:04:39,560 --> 01:04:42,710 Mas no final do dia, o que é na verdade, dentro destes envelopes? 1412 01:04:42,710 --> 01:04:44,070 Este foi super baixo nível. 1413 01:04:44,070 --> 01:04:46,240 E, felizmente, não estamos vai ter necessariamente 1414 01:04:46,240 --> 01:04:49,310 ir tão baixo nível de cada vez para começar a escrever software interessante. 1415 01:04:49,310 --> 01:04:51,060 Nós podemos começar a tomar as idéias de uma semana 1416 01:04:51,060 --> 01:04:54,020 a cinco, assumir que não agora é que esta infra-estrutura 1417 01:04:54,020 --> 01:04:57,160 nos permite escrever software que opera na web, 1418 01:04:57,160 --> 01:05:00,120 e vai permitir-nos esta próxima semana para começar 1419 01:05:00,120 --> 01:05:01,840 olhando para algo chamado HTML. 1420 01:05:01,840 --> 01:05:04,750 Este é o material que é ainda mais profunda no interior do envelope, 1421 01:05:04,750 --> 01:05:06,150 mas é o material que estamos vai começar a escrever. 1422 01:05:06,150 --> 01:05:08,020 E é o material mais curiosamente, estamos 1423 01:05:08,020 --> 01:05:11,420 indo para escrever programas que começa a gerar automaticamente 1424 01:05:11,420 --> 01:05:15,410 para que os nossos sites não são codificado, mas tirar a entrada e saída de produzir. 1425 01:05:15,410 --> 01:05:18,810 >> Este é talvez o mais simples web A página que você pode fazer no mundo. 1426 01:05:18,810 --> 01:05:23,000 Eu posso realmente abrir algo estúpido como TextEdit 1427 01:05:23,000 --> 01:05:26,160 no meu Mac, que só me dá uma janela de texto simples como este. 1428 01:05:26,160 --> 01:05:29,510 Usuários de PC têm Notepad.ext, que é muito semelhante em espírito. 1429 01:05:29,510 --> 01:05:33,212 >> E eu posso literalmente digite fora isto-- DOCTYPE HTML, 1430 01:05:33,212 --> 01:05:34,420 que parece um pouco enigmática. 1431 01:05:34,420 --> 01:05:35,850 Mas vamos voltar a isso. 1432 01:05:35,850 --> 01:05:38,730 HTML, com estes estranho suportes angulares e barras, 1433 01:05:38,730 --> 01:05:42,240 dentro do qual agora eu vou dizer aqui vem a cabeça de minha página web. 1434 01:05:42,240 --> 01:05:45,220 Dentro disso, eu apenas sabe, e em breve você vai saber, 1435 01:05:45,220 --> 01:05:47,850 que eu possa colocar o título de minha página web. 1436 01:05:47,850 --> 01:05:49,720 E, em seguida, abaixo da cabeçalho da página web é 1437 01:05:49,720 --> 01:05:51,972 a ir para a chamada corpo da página web. 1438 01:05:51,972 --> 01:05:54,180 E eu só estou recuando apenas como em C para tipo de manter 1439 01:05:54,180 --> 01:05:57,620 coisas bem legível estilisticamente. 1440 01:05:57,620 --> 01:06:04,745 E agora eu estou indo para salvar isto como um arquivo no meu desktop, chamado hello.html. 1441 01:06:04,745 --> 01:06:06,770 >> E eu vou dizer que sim, usar HTML. 1442 01:06:06,770 --> 01:06:09,690 Não alterá-lo para .txt, mesmo embora tudo isso é um arquivo de texto, 1443 01:06:09,690 --> 01:06:12,130 assim como um programa C escrito com um editor de texto. 1444 01:06:12,130 --> 01:06:15,080 Embora não no CS50 IDE ao momento, só aqui no meu Mac. 1445 01:06:15,080 --> 01:06:18,490 >> E se eu agora ir para o meu desktop, você verá hello.html. 1446 01:06:18,490 --> 01:06:20,720 Se eu clicar duas vezes este, ele vai abrir Chrome. 1447 01:06:20,720 --> 01:06:23,260 E mesmo que esse arquivo acontece a viver no meu desktop, 1448 01:06:23,260 --> 01:06:26,550 que é talvez a mais simples A página web que eu poderia fazer. 1449 01:06:26,550 --> 01:06:30,080 >> Observe que o título do guia caminho até superior é Olá mundo. 1450 01:06:30,080 --> 01:06:32,470 O corpo da página web é de fato Olá mundo. 1451 01:06:32,470 --> 01:06:35,830 E tudo que eu fiz para chegar a este ponto é implementar, 1452 01:06:35,830 --> 01:06:38,342 ou é escrever uma nova linguagem, chamada HTML. 1453 01:06:38,342 --> 01:06:40,300 Não é uma programação linguagem como C. Há 1454 01:06:40,300 --> 01:06:42,508 não vai ser condições, e loops e funções. 1455 01:06:42,508 --> 01:06:46,560 É uma linguagem de marcação, em que caso você acabou de dizer o recebimento 1456 01:06:46,560 --> 01:06:48,410 programa que você quer fazer. 1457 01:06:48,410 --> 01:06:51,195 Isto significa hey navegador, aqui vem uma página HTML. 1458 01:06:51,195 --> 01:06:53,040 Hey navegador, vem aqui o chefe da minha página. 1459 01:06:53,040 --> 01:06:55,130 Hey navegador, vem aqui o corpo de minha página. 1460 01:06:55,130 --> 01:06:57,100 Hey navegador, é isso para o corpo. 1461 01:06:57,100 --> 01:06:59,350 Isso é tudo para a página HTML. 1462 01:06:59,350 --> 01:07:03,560 >> E com essas definições simples sozinho, veremos em breve que um, 1463 01:07:03,560 --> 01:07:05,122 podemos representar isso como uma árvore. 1464 01:07:05,122 --> 01:07:06,080 Mas mais sobre isso mais tarde. 1465 01:07:06,080 --> 01:07:08,788 Então, isso tudo vai interligar a nossas estruturas de dados mais recentes. 1466 01:07:08,788 --> 01:07:12,460 Dois, vamos apresentar essa piada estúpida. 1467 01:07:12,460 --> 01:07:15,680 Este é um real que tatuagem esse cara tinha no pescoço. 1468 01:07:15,680 --> 01:07:19,660 Provavelmente é engraçado a primeira semana ou dois, e depois disso, talvez não tanto. 1469 01:07:19,660 --> 01:07:22,960 >> Mas HTML, e até mesmo a web página eu fiz apenas, mente super- 1470 01:07:22,960 --> 01:07:25,670 numbingly disappointing-- apenas dizendo Olá mundo 1471 01:07:25,670 --> 01:07:27,210 no texto preto em um fundo branco. 1472 01:07:27,210 --> 01:07:28,680 Certamente nós podemos fazer muito melhor. 1473 01:07:28,680 --> 01:07:31,552 E nós vamos fazê-lo através da introdução de outra linguagem chamada CSS. 1474 01:07:31,552 --> 01:07:34,760 Isso também não é uma language-- programação sem loops e condições, ou para loops, 1475 01:07:34,760 --> 01:07:38,470 mas realmente, apenas sintaxe pelo qual podemos dizer, fazem deste texto grande. 1476 01:07:38,470 --> 01:07:39,415 Faça este texto pequeno. 1477 01:07:39,415 --> 01:07:40,040 Direito alinhá-lo. 1478 01:07:40,040 --> 01:07:40,650 Esquerda alinhá-lo. 1479 01:07:40,650 --> 01:07:41,195 Faz o rosa. 1480 01:07:41,195 --> 01:07:41,820 Torná-lo roxo. 1481 01:07:41,820 --> 01:07:42,650 Faça-o azul. 1482 01:07:42,650 --> 01:07:44,860 Ou fazer qualquer número de outros efeitos visuais. 1483 01:07:44,860 --> 01:07:48,590 E por isso vamos ver como começar stylizing páginas web de modo que eles olham de uma forma 1484 01:07:48,590 --> 01:07:50,480 mais perto do que queremos. 1485 01:07:50,480 --> 01:07:56,930 >> E, por último, temos de fato arruinada talvez muito de TV e filme para você. 1486 01:07:56,930 --> 01:07:58,930 Eu pensei que ia acabar aqui com nossos segundos finais 1487 01:07:58,930 --> 01:08:03,700 em um clipe final que você mostra como hackear a internet funciona. 1488 01:08:03,700 --> 01:08:06,250 Se pudéssemos diminuir a intensidade da acende uma última vez. 1489 01:08:06,250 --> 01:08:07,250 >> [REPRODUÇÃO DE VÍDEO] 1490 01:08:07,250 --> 01:08:09,520 >> -De jeito nenhum. 1491 01:08:09,520 --> 01:08:10,650 Estou hackeadas. 1492 01:08:10,650 --> 01:08:11,770 >> -Okorsky? 1493 01:08:11,770 --> 01:08:14,230 >> -No-- Não, isso é importante. 1494 01:08:14,230 --> 01:08:17,074 Eles já queimou o firewall pública NCIS. 1495 01:08:17,074 --> 01:08:19,990 -Bem, Isolar o nó e despejo los, do outro lado do router. 1496 01:08:19,990 --> 01:08:20,990 -Estou tentando. 1497 01:08:20,990 --> 01:08:23,990 Ele está se movendo muito rápido. 1498 01:08:23,990 --> 01:08:25,179 >> Ah, isso não é bom. 1499 01:08:25,179 --> 01:08:27,470 Eles estão usando a nossa ligação [Inaudível] esta base de dados. 1500 01:08:27,470 --> 01:08:28,458 Cortá-la. 1501 01:08:28,458 --> 01:08:28,958 -Eu Não posso. 1502 01:08:28,958 --> 01:08:29,454 É um ponto de ataque. 1503 01:08:29,454 --> 01:08:31,438 Ele ou ela só é indo atrás de minha máquina. 1504 01:08:31,438 --> 01:08:32,430 >> -Não é possível. 1505 01:08:32,430 --> 01:08:33,847 Há criptografia meu nível DOD. 1506 01:08:33,847 --> 01:08:35,055 Levaria meses para get-- 1507 01:08:35,055 --> 01:08:35,857 Ei, o que é isso? 1508 01:08:35,857 --> 01:08:36,398 Um jogo de vídeo? 1509 01:08:36,398 --> 01:08:37,886 >> -No Tony, estamos hackeadas. 1510 01:08:37,886 --> 01:08:40,795 >> -Se Eles ficam no computador de Abby, toda a rede de NCIS é o próximo. 1511 01:08:40,795 --> 01:08:42,050 >> -Eu Não pode pará-lo. 1512 01:08:42,050 --> 01:08:43,050 Faça algo McGee. 1513 01:08:43,050 --> 01:08:44,550 >> -Eu Nunca vi um código como este. 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 -Onde Está o ir? 1517 01:08:49,196 --> 01:08:50,604 Abby? 1518 01:08:50,604 --> 01:08:51,520 -Eu Não fiz nada. 1519 01:08:51,520 --> 01:08:53,020 Eu pensei que você fez. 1520 01:08:53,020 --> 01:08:54,520 >> -Não. 1521 01:08:54,520 --> 01:08:57,232 >> -Eu fiz. 1522 01:08:57,232 --> 01:08:58,307 >> [FIM DE REPRODUÇÃO] 1523 01:08:58,307 --> 01:09:00,390 DAVID J. MALAN: O melhor parte é duas pessoas digitando 1524 01:09:00,390 --> 01:09:02,170 no teclado, ao mesmo tempo. 1525 01:09:02,170 --> 01:09:03,200 >> Então é isso para CS50. 1526 01:09:03,200 --> 01:09:04,700 Vamos ficar por aqui para o horário de expediente. 1527 01:09:04,700 --> 01:09:06,344 E vamos ver você na próxima vez. 1528 01:09:06,344 --> 01:09:07,760 [Música tocando - "TEMA Seinfeld"] 1529 01:09:07,760 --> 01:09:11,139 1530 01:09:11,139 --> 01:09:11,680 Este é CS50. 1531 01:09:11,680 --> 01:09:17,960 1532 01:09:17,960 --> 01:09:20,854 Eu não quero ser um pirata. 1533 01:09:20,854 --> 01:09:21,770 COLUNA 2: Yarr David. 1534 01:09:21,770 --> 01:09:23,700 É um belo gibão você estar vestindo. 1535 01:09:23,700 --> 01:09:26,450 Lote de orçar em que puff. 1536 01:09:26,450 --> 01:09:29,327