[Música tocando] COLUNA 1: Tudo bem, bem-vindo voltar para CS50. Este é o fim da semana oito, e quase Halloween. O horário de expediente amanhã à noite a vontade de ser os ainda mais assustadores, e não porque de Halloween. Mas, nessa nota, percebem que problema de definir seis, a verificação ortográfica conjunto de problemas, é reconhecida a ser, para muitos estudantes, os mais desafiadores, certamente entre os conjuntos de problemas C, e realmente, em geral. E Digo isto apenas porque este é da semana, onde um monte de pessoas se particularmente estressado com apenas tentando para obter o corretor ortográfico mínima para o trabalho. E a única coisa que eu encorajá-lo é que, como você vai ver hoje, e na segunda-feira, começamos a bater este pico esta semana, onde, agora, as coisas tornam-se um pouco mais familiar, um pouco mais acessível, medida que a transição de um ambiente de linha de comando em C para um ambiente baseado na web em PHP. E assim, eu encorajá-lo, mesmo se você estiver realmente no final da sua sagacidade em tentando obter o conjunto p trabalhar, se isso é de fato o lugar que você está, ou encontrar-se, tente fazer ao poder através dele. Porque eu acho que você vai ser bastante satisfeito, e muito orgulhoso de si mesmo, se você realmente acabar com essa parte do Naturalmente, a parte C, em que a alta, se estressante, nota. Então, isso não é para assustar. Isso é apenas destinado a incentivá-lo a ficar até que a hora extra, a fim de se a verificação ortográfica de trabalho. E se você fizer isso, perceber que esta é opcional, inteiramente. Mas temos a chamada grande placa que foi ao ar esta manhã. A partir de hoje de manhã, eu estava em cima da grande placa, que é uma medida de quanto quantidade de RAM e quanto tempo de corrida seu speller programa exige. Mas eu tenho desde que foram deslocadas. Sou agora o número de azar 13. E o que você vai ver aqui é, David Kaufman, e Lauren, e Adam, e Jason, e outros estão agora em cima da grande mesa. Se você olhar lá na direita, todos nós temos realmente bom implementações de tamanho pelo menos - retornando o número de palavras no dicionário. E em cada uma dessas colunas, você vai ver quanta memória RAM cada um dos nossos implementações está a utilizar, a quantidade tempo de execução está demorando para executar carga, contra cheque, versus tamanho e descarga e, em seguida, o tempo total de execução. Então, só para tranquilizar Elmer, e Patrick, e Linda, e todos os outros que vem atrás de você, não há absolutamente nenhuma vergonha em estar na direção a parte inferior da placa grande. Se alguma coisa, isso significa que você tem de trabalho, e ele está correto, mas é não é necessariamente tão eficiente, o espaço ou em termos de tempo, como poderia ser. Assim, totalmente opcional. Mas para ser uma espécie de cenoura para que quando você está trabalhando em seu p definido, você está tão orgulhoso de si mesmo, você tenho que trabalhar, você postar no grande placa, você tem um bom número, você vai para jantar, você vem para trás, e seus companheiros de quarto tem arestas lo no grande tabuleiro. Bem, é hora, naquele momento, para ir de volta à prancheta de desenho, de modo a re-desafiar o grande conselho. Se você olhar para a especificação, o instruções para a interface com o placa grande agora estão postados. Assim, um par de cabeças ups - um, a pré-proposta para a final projeto é devido esta próxima segunda-feira. Veja esta especificação no curso de site para o que isso significa. É realmente apenas um casual, mas pensei email provocando entre você e seu TF, na verdade, apenas para iniciar as coisas, iniciar a conversa, embora a maioria de vocês nunca sequer escreveu um página web antes, não sei mesmo o que você pode, como você pode, implementar seu projeto final. Vai na fé que você vai saber como fazer um pouco mais bem coisas em poucas semanas. Então, basta começar este processo de acordo com a especificação de explorar possíveis idéias. Além disso, o que nós convidamos você a fazer é - temos um tractor, por muitos anos agora, no curso, de hospedagem isso - store.cs50.net. Tudo é vendido pelo custo. E é realmente apenas uma oportunidade para usar CS50, se você gostaria de fazer que, e do curso. Por exemplo, existem coisas como as camisetas que você pode ter visto indo ao redor do campus, camisolas. E então, nós também convidar os alunos a apresentar projetos para ser imortalizado em a loja CS50. Por exemplo, um dos do ano passado favoritos que será, talvez, agora ressoam com você é esta aqui. Item muito popular. Então, se você gostaria de participar isso, vamos colocar uma forma breve, a cs50.net/design, para o qual você pode fazer o upload uma imagem que você fez em Illustrator ou no Photoshop, ou algum programa similar. E se você estiver familiarizado com esses tipos de especificações, nós queremos que ele ser uma imagem PNG, pelo menos, 200 pontos por polegadas e menos de que muitos pixels, e menos de 10 megabytes. Para mais detalhes, basta enviar e-mail a cabeças do curso de heads@cs50.net se você gostaria de participar desta. Tudo bem, por isso hoje, não mais C. Assim, começam a puxar as camadas da internet, a web, e como você pode realmente começar a escrever software para Neste ambiente diferente. Assim, em particular, vamos perguntar: em primeiro lugar, a questão de - deixe-me ir para nossa familiarizado desenho aplicativo aqui. Deixe-me colocar a questão de, como funciona o internet. [? ESTUDANTE: Magic. ?] COLUNA 1: Magic. OK. Boa resposta. Então, vamos começar lá hoje, e ver se não podemos torná-lo um pouco menos mágico dentro de uma hora. Vamos tentar contá-la no contexto de uma história. Então você é fãs de ir a facebook.com, ou reddit.com, ou o que nos dias de hoje. E então o que está realmente acontecendo quando você digitar algo como facebook.com, e pressione Enter, no Chrome, ou Firefox ou IE ou Safari, ou qualquer navegador que você está realmente fazendo? Será que podemos contar essa história, talvez frase por frase? Qual é uma das primeiras coisas que acontece quando você pressionar Enter, depois de digitando facebook.com? [? ALUNO: Seu] computador? faz uma solicitação HTTP. COLUNA 1: OK. Assim, o computador faz - vamos chamá-lo - uma solicitação HTTP. Agora, o que isso significa? Bem, todos nós provavelmente já viu ou digitado, há anos, H-T-T-P muitas vezes seguido de dois pontos, corte, corte. Então o que é isso? Bem, é HTTP HyperText Transfer Protocol. E isso é apenas uma maneira elegante de dizer: é a linguagem que os navegadores da web, como Chrome e outros, e servidores web, como facebook.com, falar com um do outro. E é bastante simples, Inglês linguagem orientada. É quase como pseudo-código. E é uma forma de um cliente, como vamos chamá-lo - um browser - comunicação com o servidor. E, assim como em um restaurante, quando você, o cliente, sentar em uma mesa e, em seguida, pedir algo fora do Menu do servidor, esse servidor é vai te trazer de volta alguma coisa, seja o que for solicitado. Mesmo no mundo da informática. Um navegador - um cliente - vai fazer um pedido, e então, espero voltar algo do servidor. E isso é uma coisa, em um alto nível, a página da web. Em um nível ligeiramente mais baixo, é um arquivo escrito em outra linguagem chamada HTML - HyperText Markup Language. Mas mais sobre isso daqui a pouco. Então HyperText Transfer Protocol - HTTP - que é o protocolo que browser e uso do servidor. Bem, o que é um protocolo, exatamente? Bem, você pode pensar como uma linguagem. Mas se eu chegar ao nosso público aqui, uma coisa normal para nós seres humanos para não é, quando cumprimentar alguém, Eu digo, oi, meu nome é David. [? ESTUDANTE: Oi,] meu nome é Dipty?. COLUNA 1: "Oi, meu nome é Dipty ", ela responde. E então nós tivemos este bastante arbitrária interação de mãos trêmulas, como é muitas vezes a convenção humana na maioria dos países. E isso é um protocolo, certo? Eu meio que iniciou estendendo meu lado, meio desajeitadamente, no palco de Sanders aqui. Ela percebeu, oh, eu comecei a solicitar uma mão aparentemente. E ela respondeu a esse pedido pelo fato de reconhecer isso. Um reconhecimento, ACK, é na verdade um frase muito comum no mundo do rede, para um servidor para reconhecer o cliente. Então, nós meio que completou que transação e constrangimento acabou. Então, isso é realmente o que está acontecendo por baixo do capuz também. Deixe-me fazer isso um pouco mais tecnicamente sob o capô. Eu vou passar por cima aqui a uma janela de terminal. Esta janela de terminal passa a ser em minha Mac, mas você pode fazer o mesmo tipo de coisa em CS50 Appliance. E eu estou indo realmente para usar um programa que não vamos realmente usado para muito em tudo o semestre. Mas ele é chamado Telnet. Voltar no dia, Telnet foi o programa que você usou para se conectar a um servidor remoto, para verificar seu e-mail ou para fazer algo assim. Por enquanto, vamos usar esse velho programa escolar, Telnet, para fingir ser um browser. E eu estou indo para ir em frente e fazer o seguinte: - deixe-me aumentar o meu tamanho da fonte. E eu vou dizer, Telnet para o servidor chamado www.facebook.com, mas especificamente, Telnet para a porta 80. Voltaremos a isso. Mas, por agora, saiba que a maioria dos serviços na internet são identificados unicamente por um número. Neste caso, é de 80. Agora, a maioria de vocês provavelmente nunca digitou 80 antes. Mas, na realidade, se eu for para um navegador e puxe para cima, por exemplo, http://www.facebook.com/-- isso é auto-complete, que é não a minha história - tudo bem, agora, vamos de cólon 80 barra. Então, eu afirmo que mesmo que você tenha provavelmente nunca escreveu isso antes, com do cólon 80, após facebook.com, Esperamos que ele ainda vai funcionar. E, de fato, ele vai para facebook.com. Assim, verifica-se que 80 esteve implícita. Nenhum de nós, os seres humanos tiveram para digitar isso há anos. Como os navegadores, por padrão, apenas supor que o número que você deseja usar ao chamar um servidor para falar é, na verdade, 80. Porque curtos longo da história, servidores pode fazer muito mais do que apenas servir páginas web. Eles podem responder a mensagens instantâneas. Eles podem enviar e-mails. Há muitos serviços que pode ser executado em um único servidor. Então esses números - neste caso, 80 - identifica um daqueles serviços, o que é HTTP, o protocolo web de um servidor realmente pode suportar. Mas eu posso simular este pedido agora, textualmente, usando esta velha escola Programa Telnet. Então eu vou para, essencialmente, agora fingir para ser um navegador e falar HTTP enviando, com o meu teclado, exatamente os comandos que Chrome só souberam para enviar para mim magicamente. Então, eu estou indo para ir em frente e pressione Enter. Observe que ele está tentando 31.13.69.32. 13 O que é isso? Portanto, é um endereço IP. Agora, mesmo se você não está muito familiarizado com os meandros das pessoas, você provavelmente tem um sentido geral que essas coisas existem. E um endereço de IP - Endereço de Protocolo de Internet - é apenas um identificador único para um computador na internet. Isto é um pouco de uma simplificação para o momento. Mas cada computador na internet tem um único endereço IP, bem como todos os casa em, por exemplo, os EUA têm um único endereço postal, algo como 123 Main Street, em Anytown, EUA. Então, alguma coisa assim. E que, também, é simplismo. Mas esses endereços que temos no mundo postal e esses endereços que temos no mundo da informática identificar servidores para que, quando você envia uma mensagem a eles sobre o internet, ou quando você coloca uma carta na uma velha caixa de correio da escola - correio - o serviço sabe como conseguir que pedido, ou carta, para o destinatário pretendido. Agora meu computador, de alguma forma, tem apenas descobri que o Facebook IP exclusivo é 31.13.69.32. Na verdade, o que provavelmente pode mudar. Facebook provavelmente tem vários IP endereços, pois absolutamente ter mais de um servidor. Mas o que aconteceu para nós magicamente. Na verdade, o nome secreto interna do servidor que eu, aparentemente ligado a é chamado star.c10r.facebook.com, seja o que for. É apenas o que o sistema administrador no Facebook decidiu chamar isso de servidor em particular que eu foi um pouco enviados aleatoriamente para. Portanto, agora se minha conexão não tem expirou, eu vou fingir ser esse navegador. Eu vou dizer se o espaço barra de espaço. E eu vou fingir estar falando HTTP versão 1.1, que é o que a maioria dos navegadores usam. E eu estou indo para mencionar especificamente para o servidor, por sinal, eu quero o site conhecido para o mundo como facebook.com. Enter, Enter. E agora, observe o que aconteceu. O servidor, o garçom, tem respondido a meu pedido, ou o meu pedido, outra mensagem textual. Agora, novamente, no mundo dos navegadores como Chrome e Safari, você não faria ver isso, como ser humano. Microsoft e Google apenas esconder esses detalhes de nós. Mas o Facebook respondeu com uma resposta, também no HTTP linguagem. Observe que há um código aqui, 302, que na verdade, tem um significado especial por convenção. Encontrados, de modo que é, no mínimo, promissor. Mas, aparentemente, o Facebook está dizendo me, mm-mm, você não quer o que você pediu. Você deseja, em vez de hoje especial, que é facebook.com / unsupportedbrowser. Então, em um nível elevado, o que faz Facebook parecem estar fazendo aqui? Isso está me redirecionando. Assim, o Facebook não gosta do fato de que eu estou fingindo ser este outro navegador. E por isso é redirecionar me para algum site. Estou realmente curioso, agora, o que essa coisa parece. Deixai-me passar para que no Chrome para que pode ver o que eles querem me ver. Então, agora eles realmente me mandou de volta para Facebook, porque eles perceberam, oh, você tem um navegador compatível. Nós não estamos indo para mostrar-lhe essa página. Então, vamos em frente e ver o se não podemos consertar isso. Eu vou ter que enganar um pouco. E mais sobre isso nas próximas semanas. Mas eu vou fazer uma coisa aqui. E eu vou explicar isso em pouco tempo. Dê-me apenas um momento para enganar, e admirá-lo. Então deixe-me ver se entendi. OK. Vou explicar o que eu estou fazendo em apenas um momento. Eu estou indo para ir em frente e cancelar esta de conexão e tentar de novo. Obter cortar HTTP 1.1 www.facebook.com anfitrião user-agent. OK. Agora eu fingia ser Chrome. Assim, verifica-se que quando um navegador envia uma solicitação para um servidor, é apenas o sistema de honra. Se eu disser que sou Chrome, Facebook assumirá Estou Chrome. E os meios pelos quais me identifiquei me como Chrome é por este atrozmente cadeia longa. Essencialmente, todo o navegador fabricantes no mundo têm decidiu, assim, esta versão deste navegador no sistema operacional tem uma string user-agent que parece como essa bagunça louco lá. E Mozilla está lá para razões históricas. Mas observe a quantidade de informações que eu sou vazamento facebook.com, mesmo sem log in Eu estou dizendo a Mark que é um Mac que eu estou usando. Estou a dizer-lhe que é um Intel com base Mac rodando Mac OS 10.8.5. Como um aparte, esta informação vai para cada site que você visita com seu navegador. Bastante inócuo até agora, mas fica um pouco mais suculento. Observe que, se lermos o suficiente, Eu estou usando a versão Chrome 30.0.1599.101. Mas agora, perceber que a resposta não é tão ruim como era antes. Onde está dizendo Facebook me ir agora? Ele está me dizendo, mais uma vez, o site - ele está me dizendo que é movido permanentemente. Bem, onde diabos Facebook ir? Sim, por isso é uma diferença sutil. Mas note, aqui, que o site tem realmente mudou-se para HTTPS. Assim, longa história curta, esta é uma forma que o Facebook está impondo que eu realmente acabar na versão segura do seu site, o que está usando criptografia - mais complexa do que a encriptação falou para p conjunto de dois, mas criptografia, no entanto. Agora, neste momento torna-se difícil para mim falsificar sua web solicitar usando Telnet. Porque se eles estão dizendo me usar SSL - o prefixo é o HTTPS que implica - se eles estão me dizendo para usar criptografia, não há nenhuma maneira que eu vou para criptografar manualmente minha mensagem na frente de todos vocês aqui, e tentar descobrir como fazer isso. Ele só vai começar muito mais complexa. Mas isso é o que o navegador está fazendo para você. Vamos ver se não podemos fazer isso um pouco de forma mais simples e, em seguida, com um site que não está esperando nos a ser tão seguro. Vamos para, digamos, harvard.edu na porta 80. Enter. Tudo bem, de modo a obter barra HTTP 1.1. E o que esta primeira barra significa? Só para ficar claro, por que Eu continuo escrevendo isso? Bem, normalmente, quando você digita uma URL - e, infelizmente, os navegadores normalmente esconder isso nos dias de hoje - Normalmente, quando você vai para harvard.edu, URL que oficialmente acaba em uma barra. Porque uma única barra denota que parte do disco rígido? A raiz do disco rígido. Nós no aparelho realmente não tinha para pensar sobre isso, porque estamos sempre na pasta de John Harvard. Mas a sua pasta está em outra pasta. E essa pasta está na raiz da Disco rígido do aparelho, por assim dizer, mesmo que seja virtual. Assim, uma única barra como isso significa a raiz do disco rígido. É como C invertida cólon, ou é a raiz do seu volume no Mac OS. Mas Chrome e outros navegadores estes dias, ficaram user-friendly, e eles escondem que cortar completamente. Mas isso é tudo o que isso significa na minha mensagem textual - dar-me a raiz de harvard.edu 's página inicial, isto é, o página padrão em si. Então deixe-me ir em frente e pressione Enter. Deixe-me lembrar o host que eu quero www.harvard.edu, apenas no caso de haver outros sites que vivem na mesmo servidor físico. OK. Harvard tem um pouco impaciente comigo. Então, vamos fazer isso de novo, mais rápido. Obter cortar HTTP 1.1 www.harvard.edu anfitrião user-agent - Eu estou supondo que nossos servidores não cuidado tanto sobre isso - Enter, Enter. Ufa. Oh droga, ruim pedido. OK. Então, o que está acontecendo aqui - Olá, harvard.edu. Por que ele está fazendo o - interessante. Oh, OK. Então, o que Harvard está fazendo agora - e estamos vai virar rapidamente fora de este caminho, porque vai para obter rapidamente fastidioso - notar que Harvard é realmente comprimindo a sua resposta para mim, que não é o ideal. Porque, aparentemente, como um ser humano, não sabe como descomprimir bits que foram enviados para me compactado. E eles estão sendo mostrado é um lixo lá, porque eles são zeros e uns, mas eles não são caracteres ASCII. São padrões de zeros e uns que ter sido comprimido para ocupar menos espaço. Então, muito rapidamente, deixe-me ver se eu posso recuperar aqui. Vamos tentar, talvez, um outro campus completamente. mit.edu get barra barra HTTP 1.1 anfitrião www.mit.edu cólon user-agent lá. Obrigado, MIT. OK. Portanto, temos aqui uma página web. Portanto, esta é a língua conhecido como HTML - HyperText Markup Language. Estou simplesmente rolar de volta no tempo para chegar ao muito ponta superior da página. E perceba como MIT respondeu ao meu pedido. 200 é bom. 200 significa que tudo está literalmente OK. E isso é um código de status que nós seres humanos realmente nunca ver, em um bom caminho. Porque isso significa que está tudo bem. Observe que o MIT está me informando, hey, o servidor que está executando é chamado Apache, que é muito popular open source servidor web livre. Eles estão correndo, aparentemente, UNIX, que é um sistema operacional como o Linux. Note-se que, aparentemente, atualizada sua página web em 04:00, Greenwich Mean Time. Observe alguns outros detalhes. Eles estão voltando, para mim, text / html. Então, vamos ver o que isso significa em apenas um momento. Eles aparentemente me deu 14.717 bytes no valor de HTML. E alguns outros, mais esotérico informação está lá. Mas é aí que fica interessante. Isto é como você fazer uma página web. Isto é como você fazer uma página web cujo título da guia, no navegador, é Hífen MIT Massachusetts Institute of Technology. E, de fato, se voltarmos para Chrome e visite www.mit.edu, observe que, de fato, o título aqui em cima, é traço MIT Massachusetts Instituto ponto, ponto, ponto. E agora observar, também, se eu clicar a direita ou controlar clique na área de trabalho aqui, e vá em Exibir código fonte da página - pelo menos no Chrome, porém cada navegador faz isso através de alguns meios - aqui é que mesmo arquivo. Acontece a ser codificados por cores, ou sintaxe destacada. Mas, assim como com o seu código C que não foi colorizado por você, foi colorizado por gedit, da mesma forma Chrome é apenas fazer esta mais bonito de ler. Mas esse é o material que logo estaremos escrevendo. Então, isso é o fim do jogo. O servidor respondeu com que informação, assim como você respondeu com a mão para o nosso aperto de mão. Mas o que mais tem de estar indo em entre esses passos? Bem, quando eu digitar, neste último caso, www.mit.edu e pressione Enter, nós sabe que está a falar à porta 80 automaticamente, porto apenas sendo esse número. Mas onde é que o endereço IP ir? Como é que o meu computador para descobrir o que o endereço IP do mit.edu é? Bem, acontece que, neste mundo, há são coisas chamados de servidores DNS. E deixe-me ir em frente e desenhar uma foto rápida aqui. E isso só vai esboçar, em Grosso modo, o que está acontecendo. Então, vamos fingir que este é meu laptop aqui, Sanders. E tem Wi-Fi, então ele está conectado sem fios a alguma coisa. O que está realmente conectado? Bem, em algum lugar aqui, há algo sobre o parede com algumas antenas. E isso é chamado de ponto de acesso - AP. Ponto de acesso sem fios, router sem fios - chame-o como quiser. Mas eles estão em todo campus, com essas pequenas antenas. Ours são feitos pela Cisco, normalmente. E assim, de alguma forma, o meu computador está falando ao ponto de acesso sem fio, em algum lugar aqui em Sanders, ou embaixo, ou no exterior. Enquanto isso, essa coisa tem um monte de fios físicos vai, provavelmente, o Science Center, que vamos chamar assim. Na verdade, não parece isso. Isso realmente parece muito melhor. Assim, o Centro de Ciências tem um grupo inteiro de computadores dentro do que estão de alguma forma ligados fisicamente a todos destes pontos de acesso no campus. E esses computadores físicos, vamos chamar routers ou gateways. Um roteador, como o próprio nome sugere, é propósito na vida é a rota informação. Leva alguns pedaços, a partir de um computador, como entrada, e descobre para onde os bits devem ser enviados. Assim, no caso do meu pedido mit.edu, é realmente muito fácil. O meu pedido vem do meu navegador, através de Wi-Fi, para o ponto de acesso e, em seguida, através de algum cabo, em um roteador no Centro de Ciências. E de alguma forma, o roteador no Centro de Ciência descobre que o MIT é assim. E eu vou avançar aqueles pedaços, eu vou encaminhar esses bits, no caminho, descendo Mass Ave., para o MIT. Mas como é que o meu computador sabe o que o endereço IP ainda era? Bem, acontece que em algum lugar aqui há servidores - e eu vou desenhá-lo bastante abstrata - como um servidor de DNS - Domain Name System. Estes não são os roteadores. Estes são os diferentes tipos de servidores cujo propósito na vida é traduzir nomes de host, como www.mit.edu, a IP endereços, como 1.2.3.4 Assim servidores DNS fazer exatamente isso. Você pode pensar neles como tendo uma grande banco de dados, ou, na verdade, como um grande Excel arquivo com duas colunas. Um deles é os nomes de host, um é endereços IP. E eles simplesmente converter um para o outro, em qualquer direção. Agora, na realidade, é um pouco mais complexo do que isso. Mas é assim que o meu computador, o meu aleatória Mac ou PC nesta mesa aqui, sabe que é o identificador único para www.mit.edu ou Facebook, ou harvard.edu, para essa matéria. Mas, claro, há a totalidade de Mass Ave aqui. E então, chegamos ao MIT, que este é realmente mais atraente. Isso vai ser MIT. E assim, também, ter alguns servidores. E que de alguma forma têm um fio, ou sem fio, conexão com Harvard. E, claro, nós podemos ir muito mais longe pela estrada de MIT, e falar com mais de qualquer computador no mundo. Mas vamos ver se não podemos ver isso. Deixe-me voltar para a minha Terminal janela por um momento. E vamos supor que eu descobri qual é o endereço IP é para mit.edu como Telnet percebi isso antes, e meu navegador pode claramente descobrir isso para mim. E eu estou indo para executar outro programa, Nesta janela de terminal, denominada traceroute, traçando a rota a partir daqui - literalmente, esta tabela - para www.mit.edu. Vamos ver o que acontece. Permitam-me, na verdade, diminuir o tamanho da fonte. POO. Não, eu queria fazer uma surpresa. OK. Então, vamos lá. Deixe-me ir em frente e executar este aqui. E o que eu estava vendo um momento atrás, e estamos vendo novamente agora, é este saída - www.mit.edu traceroute. Observe, na primeira linha, este programa na verdade descobri que o MIT Endereço IP é esse número aqui. E agora, o que está acontecendo entre nós e eles? Portanto, esta linha aqui, na linha, e este linha aqui, na linha dois, e em seguida, linha de três - o que cada um deles linhas provavelmente representam? Locais, pontos, com certeza. Eles são chamados de saltos, conceitualmente. Mas fisicamente, quais são eles? Eles são roteadores. Nós só temos, na verdade, um pedaço de hardware aqui para falar até agora. Eles são roteadores. Então, essa coisa aqui - nome louco - mas este é, provavelmente, casa de máquinas, MR, no Centro de Ciências. É um gateway, router aka. Este é apenas um número único que alguém veio por ele. E é dentro harvard.edu. E esse é o endereço IP do roteador que isto é, mais uma vez, provavelmente, na Science Center, baseado em seu nome. Esta segunda linha representa outro router que não tem um apelido aparentemente - um nome de host - é só tem um endereço IP. Assim, longa história curta, para obter dados a partir de pontos de A a B, não há mais do que apenas Router de Harvard, e router do MIT, e router do Google, e router do Facebook. Há dezenas, centenas, milhares de routers entre qualquer ponto A e qualquer ponto B na internet. Mas, normalmente, você pode obter dados a partir de um ponto para outro menos de 30 saltos. Em outras palavras, você só tem que entregar os dados para 30 ou menos esses roteadores. E é tipicamente muitos menos do que isso. Bem, vamos ver o que acontece aqui. Na linha de três, nós batemos um roteador chamado núcleo Science Center portal uma coisa ou outra. Na linha 4, temos fronteira gateway - estes são apenas siglas enigmáticas - também dentro harvard.edu. Aqui está uma outra passagem de fronteira. E então, de repente, ei, parece que estamos em New York City. Assim, verifica-se - e eu estou em inferir somente a partir do nome do host. Isso pode ser enganosa. Poderia ser na estrada. É difícil dizer - , mas este pode ser usado como uma revelação que a menor distância entre dois pontos sobre a internet não é necessariamente uma linha reta. Se pensarmos mais curto como o mais rápido caminho, a menos congestionado percurso, é bastante possível - embora não possamos ter certeza - que os dados estão viajando decente distância entre as linhas cinco e seis. Agora, infelizmente, o MIT, ou alguém, tem um pouco de auto-defesa, e eles começou a ignorar nossos pedidos. Esses roteadores foram configurados para ignorar os pedidos da forma que estão você, quem é você, quem é você. Então, vamos ver se a gente não pode fazer isso com alguém mais cooperativa. Então Stanford tem uma boa tradição de ter um pouco mais de abertura. Então, vamos ver o que acontece aqui. Mais uma vez, muito enigmática. Mas nós começamos, de novo, na máquina quarto na Ciência Center, na linha um. Então, isso é bom. A maioria dos servidores fez resposta incluindo Stanford. Então, observe que passou de sala de máquinas no Centro de Ciências, de certa router anônimo em outro lugar, para outro Science Center gateway, a uma fronteira gateway, e, em seguida, para algo aqui - nox.org. Esta é a encruzilhada do norte, muito ponto de peering popular, onde muitos de cabos, os lotes de ISPs - provedores de internet - conectar em. Aqui está um outro IP sem nome aqui. Aqui está outro exemplo de servidor. Mas isso é interessante. Onde está o roteador em linha oito, provavelmente? Então, é, provavelmente, em Washington, DC. E eu posso tipo de corroborar essa hipótese neste momento. Porque quanto tempo ele nos levar para ir do Centro de Ciência para este router na linha sete? Bem, essas medidas milissegundos no lado direito, aqui estão As estimativas da época. Há três deles, porque o programa, traceroute, tenta por todos os roteador três vezes, só assim você pode obter uma média visual dos números. Mas, aparentemente, leva seis milissegundos para obter remar router de sete. Mas o quão rápido pode, aparentemente, você viajar, se você for um pouco, entre Boston e Washington DC? 14 milissegundos é o tempo que leva para que a mensagem instantânea, para esse e-mail, para que a solicitação de página web para viajar entre aqui e Washington DC. Se eu ir mais longe, ao roteador número 10, que cidade eu sou aparentemente agora? Então, Houston. E isso é corroborado por o salto de tempo. É muito lento para chegar a Houston. Ele leva 47 milissegundos para obter a partir de Boston para Houston neste caso. E se olharmos ainda mais, LAX - Parece que estamos começando a Stanford tipo de Desta forma, passando por LA. Mas eu estou inferindo que a partir de Los Angeles. Os nerds tendem a usar códigos de aeroporto para nomes de roteadores aqui. E este é o tipo de consistente com essa suposição. 82 milissegundos. Então, nós aparentemente ir para outro LAX, outro roteador LA e depois, alguns sem nome, e então, finalmente, uma nome enigmática em rede de Stanford, ou perto da mesma, stanford.edu, é 90 milésimos de segundo de distância, ou 6 mais horas de avião. Portanto, esta é a forma como os dados rápidos viaja na internet. E é coisas que absolutamente tomamos para concedido nestes dias. Quando você está tendo algum Gchat com alguém, e as mensagens são apenas aparecendo, considere quão rápido que está acontecendo. E visualmente, é de fato a acontecer a esse tipo de taxa. Assim, entre um e 18 pontos, neste caso, existem coisas além de roteadores. Quais são as máquinas na internet que pode bloquear o tráfego de obter através? ALUNO: Firewalls. COLUNA 1: Então, firewalls. E nós temos firewalls pessoais, tais que o seu próprio Mac ou PC pode manter tráfego dentro ou fora. Harvard tem firewalls. MIT presumivelmente tem firewalls. E Stanford que, assim como toda a provedores de internet que possuem esses roteadores entre os pontos A e B. Mas você já parou para pensar, ou cuidado, como um firewall funciona. Bem, já temos o básico de construção blocos com os quais o engenheiro essa resposta. Se você fosse um firewall - e vamos supor que você está em algum lugar entre o ponto A eo ponto B. Um cabo está chegando em você, e sair de você. Então você tem a capacidade tecnológica a olhar para todos os envelopes de informações que estão a fluir entre você ea outra pessoa. Em outras palavras, essas mensagens são eu era digitando manualmente, você pode pensar los como escrever uma nota rápida para alguém, colocar o endereço IP do destinatário eo número da porta do destinatário, sobre este invólucro, então, escrever seu próprio endereço IP e sua própria número da porta no lado superior esquerdo canto como se fosse uma carta. Em seguida, enviá-lo sem fio. E de alguma forma viaja, através de roteadores, através de fios, sem fios, no caminho para MIT. Então, se você é um firewall, como fazer você impedir que isso aconteça? O que você faria se o seu próximo p conjunto foi implementar um firewall? Como faço para parar todas as pessoas a partir de Harvard sempre conversando com o MIT pessoas novamente? [? ALUNO: Você] reverter a carta?. COLUNA 1: Você o quê? [? ALUNO:? Reverso] a letra inicial. COLUNA 1: Reverter a carta - o que você quer dizer? [? ALUNO:? Enviar] ele volta para o remetente. COLUNA 1: Envie-lo de volta. OK. Então, você poderia rejeitar o virtual envelope, fazendo uma espécie de retorno à remetente de alguma forma. Então, com certeza, é o que queremos alcançar. Mas vamos mergulhar um pouco mais fundo. Como posso fazer isso? Se a entrada para este problema - se eu sou o firewall, e eu sou efetivamente estando entre os pontos A e B, e Eu sou um homem de meia que chega a parecer dentro deste envelope, e então decidir a possibilidade de enviá-lo de volta para Harvard ou para permitir que ele continue, o é que eu, o firewall, vou querer olhar? Acho que ouvi-lo aqui. [? ALUNO: Onde é] vindo?. COLUNA 1: Onde ele está vindo. Portanto, se o endereço IP de origem - o pequeno número até aqui - é um endereço IP pertencente de Harvard - e eu posso realmente saber que com elevada probabilidade. A maioria dos endereços IP de Harvard começar com 140,247 dot dot algo alguma coisa, ou 128,103 dot algo dot algo. Harvard possui os pedaços de endereços IP. Bem, se eu ver que os endereços IP como remetente, eu só posso enviá-lo de volta. Na realidade, a internet não se preocupe em perder tempo enviando os bits de volta. Ele só literalmente descarta o pacote por excluí-lo, de forma eficaz. Então, o que mais eu poderia olhar embora? Suponha que eu quero que as pessoas em Harvard visita mit.edu, e puxe para cima sites e assistir a vídeos no MIT, e semelhantes. Mas eu não quero que os seres humanos em Harvard e-mail para alguém no MIT. Como eu poderia permitir o tráfego de Harvard para o MIT, através da web, mas não permitir algo como um e-mail? [? ALUNO:? The] número da porta. COLUNA 1: Um número de porta - que é o único outro ingrediente que tem. Eu tenho um endereço IP, que apenas alavancada, ou temos o número da porta 80 onde, como dissemos, unicamente identifica o tráfego web. Agora, eu não esperaria que você sabe disso - alguns de vocês já deve saber de familiaridade - o que é um número que é usado por e-mail, geralmente? É muitas vezes 25. 25 refere-se ao SMTP, que é um e-mail protocolo de transferência que você pode ter tive que configurar em algum momento, se você estiver usando o Eudora ou Outlook, ou algo parecido. É apenas mais um número - 25. Telnet, que estavam usando antes, utiliza 23. FTP - protocolo de transferência de arquivos, se você já ouviu falar de que um - usa 21. HTTPS, a versão segura do HTTP, que vamos voltar a em pouco tempo, usa 443. Assim, o mundo tem um monte de Números que se correlacionam pacotes - em vez disso, se correlacionam serviços a esses números reais. Então, isso é tudo que um firewall está fazendo. É dar uma olhada no interior desta virtuais envelope e, em seguida, decidir sim ou não de transmitir ao longo, baseados nesses ingredientes. Agora, o que poderia Harvard claramente fazer Para superar esta firewall, então? Se você quer ser capaz de enviar uma mensagem para o MIT, mas não ser detectado, bem, você pode falsificar o endereço IP, e apenas de alguma forma ser chique o suficiente, sabe como escrever código C, e escrever seu próprio programa de rede que altera o endereço da empresa. O problema é que você pode enviar absolutamente dados anonimamente, mas se você quiser obter qualquer tipo de resposta, gostaria de ver MIT homepage, obviamente, isso resolve necessidades a ser corretas. Caso contrário, você pode dizer qualquer coisa você quer, você não vai ouvir de volta deles. Mas estes são apenas um dos tipos de ataques que podemos enviar. Mas acontece que quando enviamos estes mensagens - e vamos fazer um exemplo disto. Acontece que, se eu tenho uma mensagem que Eu quero enviar, não é apenas enviado um envelope. Por uma questão de eficiência, especialmente quando os arquivos que você está solicitando ou os respostas que você está recebendo são particularmente grande, o que TCP/IP-- Transmission Control Protocol / Internet Protocolo - é apenas uma fantasia maneira de dizer o que a rede software e computadores fazem - é que eles levar uma mensagem como esta, e eles cortá-la em pedaços - digamos quatro fragmentos. E se eu agora cortar isso para aqui, cortar isso para aqui, o meu computador é, então, vamos fazer é que é vai levar um fragmento e colocá-lo num envelope. Tudo bem, e deixe-me ver a - vamos ver. Vai levar um. Vai ter um outro envelope, e ele vai colocar a segunda parte desta mensagem aqui. Tudo bem. Ele vai tomar a terceira parte, coloque-o aqui. Talvez da próxima vez vamos apenas fazer duas partes. E nós vamos tomar a quarta parte, e colocá-lo aqui. E que, agora, tem de ser escrito sobre esses envelopes - que nós vamos fingir que fazer, pois o tempo de bem, e não realmente escrever. O que precisa ser escrito em cada um dos estes quatro envelopes, com a minha mensagem com alguém? [? ALUNO: A] ordem?. COLUNA 1: Então, a ordem. Eu preciso não apenas o endereço IP eo números de porta, como acabamos de discutir, eu agora precisa de um número de seqüência de algum tipo quer dizer, este é um pacote, isto é dois, isto é três, isto é quatro. E isso é realmente útil. Porque a internet, ao que parece, é realmente muito confiável. Os roteadores podem ficar congestionado. Os cabos podem ficar sobrecarregado - uma simplificação - mas, com os bits de tal forma que o routers tem a fazer é simplesmente descartar pacotes. Em outras palavras, se a internet é realmente congestionado, você pode obter três desses quatro pacotes. Mas se você tem um identificador único em cada um deles, você vai saber que você é faltando número do pacote de quatro de quatro. Assim, você pode perguntar ao cara no outra extremidade reenviá-la. Mas supondo que isso não aconteça, vamos ver o que pode acontecer. Então, se eu quiser enviar uma mensagem para - quem gostaria de receber a minha mensagem a partir da internet? Que tal alguém mais na frente. Brian, não é? Tudo bem. Você fica lá. Vou enviá-lo para você. E a coisa sobre a internet é que eles podem nem mesmo seguir o mesmo caminho. Então, aqui vou eu. Estou enviando uma mensagem, fragmento de um dos quatro. Seja um roteador. Apenas deixe que outras pessoas lidam com ele. Lá você vai. Nós vamos dar isso para você, e nós vamos dar isso a você. E vamos ver o quão rapidamente - quantos milissegundos leva para obter essa mensagem para Brian. Todo mundo começa a participar hoje. Tudo bem. Brian tem um, e dois. Se alguém quer ser - [? ALUNO: Todos os quatro. ?] COLUNA 1: Ele tem todos os quatro. Assim, ninguém escolheu a cair um pacote. Isso é legal. Isso é bom. Então, Brian tem agora todos os quatro. Se você quiser ir em frente e remontar os para nós. Eu sei, nós estamos fingindo. Então, por causa do tempo - temos quatro. Então, OK, abra um deles. OK. Esse é um quarto de a minha mensagem para você. Agora, abra o segundo. Isso pode ser engraçado, no final, só para mim e Brian. Tudo bem, você tem dois. Então, nesse meio tempo, fizemos fisicamente isso com a tesoura, mas tudo o que leva a fragmentar essas coisas em uma computador é apenas para enviar alguns dos bits de um pacote, em uma virtuais envelope, alguns dos bits da outros, alguns em outro, e alguns em um quarto, e então, deixar o computador decidir, com base nesses números, em que ordem você tem concatenar eles. E Brian, talvez, a única aquele que pode ver isso. A mensagem que enviei ao cérebro - por causa de Naturalmente, a Internet é enchido com Destes, é - Sim. Então essa é a mensagem. E Brian pode ficar com isso agora. Então levou, obviamente, um tempo para fazer isso. Mas isso é o que realmente acontece, como roteamento de dados através da audiência desta maneira. Mas há, outra vez, uma série de pontos, routers, firewalls e outros tais coisas entre os pontos A e B. E ao invés de apenas contar a história verbalmente, eu pensei em puxar para cima este vídeo que alguns amigos nossos, a partir de Erikson, anos atrás, na verdade, juntos que explica como tudo isso funciona. E é de cerca de 10 minutos ou mais longo. Então, vamos dar-lhe, agora, Guerreiros da rede. [Música tocando] NARRATOR: Pela primeira vez na história pessoas e máquinas são trabalhando juntos, realizando um sonho - uma força de união que não conhece fronteiras geográficas, sem independentemente de raça, credo ou cor - uma nova era onde a comunicação verdadeiramente une as pessoas. Este é o amanhecer da net. Quer saber como funciona? Clique aqui para começar a sua jornada na rede. Agora, exatamente o que aconteceu quando você clicou no link? Você começou um fluxo de informações. Esta informação viaja para baixo em sua própria sala de e-mail pessoal, quando o Sr. Pacotes IP-lo, rotula-lo, e envia-lo em seu caminho. Cada pacote é limitada no seu tamanho. A sala de correio tem de decidir como dividir a informação, e como empacotá-lo. Agora, o pacote precisa de uma etiqueta contendo informações importantes, tais como o endereço do remetente, o endereço do destinatário, e do tipo de pacote é. Porque este pacote específico vai para a Internet, também obtém um endereço para o servidor proxy, que possui uma função especial, como veremos mais tarde. O pacote é agora lançado para o seu rede de área local, ou LAN. Essa rede é usada para conectar todos os computadores locais, roteadores, impressoras, etc para obter informações troca dentro das paredes físicas de o edifício. A LAN é um lugar muito descontrolada, E, infelizmente, os acidentes pode acontecer. A auto-estrada da LAN é embalado com todos os tipos de informações. Estes são os pacotes IP, pacotes Novell, AppleTalk pacotes - eles estão indo contra tráfego, como de costume. O router local lê para enfrentar e, se necessário, para levantar o pacote outra rede. Ah, o roteador - um símbolo de controle em uma aparentemente mundo desorganizado. ROUTER: Opa, desculpe por isso. Vamos colocar isso aqui, este aqui. Este move-se aqui. Isso se move aqui. Eu não gosto deste. Vamos passar este. Este vai aqui. [Inaudível] Dito de outra jangle aqui. Vamos colocar isso aqui. Nah, eu vou com isso. Vamos colocar isso aqui. Narrador: Lá está ele - sistemático, insensível, metódico, conservadora e, por vezes, não é bem até a velocidade. Mas pelo menos ele é exata, na sua maior parte. ROUTER: Coloque aquele ali. Que se vai lá, que se vai lá, e este vai lá. Bem, outro vai lá. Isso vale aqui. [Inaudível] NARRATOR: Como os pacotes deixar o router, eles fazem o seu caminho para o intranet corporativa e cabeça para o switch router. Um pouco mais eficiente do que o router, o roteador switch desempenha rápido e solto com pacotes IP, roteamento habilmente -los em seu caminho - um assistente de pinball digital, se você quiser. ROUTER CHAVE: Aqui vamos nós. Aí vem outro. E é outra. Assista isso, mãe. Aqui vai. Whoop, em torno da volta. Ei, lá, lá. Mais para a esquerda. Para a direita. Mais para a esquerda. Para a direita. É isso aí. Aqui vem. Ele atira, ele marca. Vai. Hey Wayne, cuidado, aqui vem outra. Oh, aqui vamos nós. Narrador: Como os pacotes chegam ao seu destino, eles são apanhados pelo interface de rede, pronto para ser enviou para o próximo nível - neste caso, o proxy. O proxy é utilizado por muitas empresas como uma espécie de homem de meia, a fim de diminuir a carga na sua internet ligação e, para razões de segurança, bem. Como você pode ver, os pacotes são todas de diferentes tamanhos, dependendo de seu conteúdo. O proxy abre o pacote e procura para o endereço web ou URL. Dependendo se o endereço é aceitável, o pacote é enviado para a internet. Há, no entanto, alguns endereços que não cumprir com a aprovação do o proxy - isto é, incorporado ou orientações de gestão. Estes são sumariamente tratados. Nós vamos ter nada disso. Para aqueles que fazem isso, é na estrada novamente. Em seguida, o firewall. O firewall corporativo serve a dois propósitos. Ela impede que algumas coisas bastante desagradáveis da internet de vir para o intranet, e que também pode impedir informações confidenciais da empresa sendo enviados para a internet. Depois de atravessar o firewall, um roteador recolhe o pacote e coloca-lo em um caminho mais estreito, ou largura de banda, como costumamos dizer. Obviamente, a estrada não é larga o suficiente para levá-los todos. Agora você pode se perguntar o que acontece com todos os pacotes que não fazem ao longo do caminho. Bem, quando o Sr. IP não recebe uma reconhecimento de que um pacote foi recebeu, no devido tempo, ele simplesmente envia um pacote para o substituir. Agora estamos prontos para entrar no mundo da internet, uma teia de aranha de redes interligadas que abrangem todo o nosso globo. Aqui, roteadores e switches estabelecem ligações entre redes. Agora, a rede é uma totalmente diferente ambiente do que você vai encontrar dentro os muros de proteção da sua LAN. Aqui, é o Velho Oeste - muito espaço, muita oportunidades, muitas coisas para explorar, e lugares para ir. Graças a muito pouco controle e regulação, novas ideias encontrar fértil solo para empurrar o envelope de suas possibilidades. Mas por causa dessa liberdade, também alguns perigos se escondem. Você nunca sabe quando você vai encontrar o temido ping da morte, uma especial versão de um pedido normal de ping algum idiota pensou até bagunçar hospedeiros inocentes. O caminho de nossos pacotes tomar pode ser via satélite, linhas telefônicas, sem fio, ou até mesmo cabo transoceânico. Nem sempre ter o mais rápido, ou menores, rotas possíveis. Mas eles vão chegar lá um dia. Talvez seja por isso que às vezes é chamado a world wide espera. Mas quando tudo está funcionando sem problemas, você pode contornar o globo cinco vezes mais na queda de um chapéu, literalmente - e tudo para o custo de uma chamada local, ou menos. Perto do fim do nosso destino, vamos encontrar outro firewall. Dependendo da sua perspectiva como um pacote de dados, a firewall pode ser um bastião de segurança ou um adversário temido. Tudo depende de que lado você está? e quais são suas intenções. O firewall é projetado para deixar entrar apenas os pacotes que respeitem os critérios. Este firewall está funcionando nas portas 80 e 25. Todas as tentativas de entrar através de outro portas estão fechadas para o negócio. A porta 25 é utilizada para pacotes de correio, enquanto a porta 80 é a porta de entrada para pacotes do Internet para o servidor web. Dentro do firewall, os pacotes são selecionados mais profundamente. Alguns pacotes de torná-lo facilmente através de alfandegárias, enquanto outros olhar um pouco duvidosa. O oficial firewall não é facilmente enganado, como quando este ping pacote morte tenta se disfarçar como um pacote de toque normal. FIREWALL: Next. OK. Vá em frente. Isso é OK. Sem problemas. Tenha um bom dia. Seja aqui. Bye. Narrador: Para aqueles pacotes de sorte suficiente para torná-lo tão longe, o viagem está quase no fim. É apenas uma programação na interface para ser levado para o servidor web. Hoje em dia, um servidor web pode ser executado em muitos as coisas, a partir de um mainframe, a uma webcam, para o computador em sua mesa. Ou por que não a sua geladeira? Com a configuração adequada, você pode encontrar se você tem os ingredientes para frango Cacciatore, ou se você tem que ir às compras. Lembre-se, este é o alvorecer da net. Quase tudo é possível. Um por um, os pacotes são recebidos, aberto, e descompactado. A informação que eles contêm - isto é, o seu pedido para obter informações - é enviado para a web Application Server. O pacote em si é reciclado, pronto para ser usado de novo, e cheio com o seu informações solicitadas, dirigida e enviar, em seu caminho de volta para você, de volta além do firewall, routers, e em através da internet, de volta através seu firewall corporativo, e em seu interface, pronto para fornecer seu navegador com as informações solicitadas - isto é, neste filme. Satisfeitos com seus esforços e confiando em um mundo melhor, a nossa fiel pacotes de dados cavalgam alegremente em o pôr do sol do outro dia, sabendo inteiramente, serviram seus mestres também. Agora, não é um final feliz? COLUNA 1: Isso, então, é como funciona a internet. Através do conjunto de problemas de sete você vai entender melhor isso e você vai aprender um pouco de HTML, PHP, e muito mais. Mais em que na especificação que vai sair na sexta-feira. E vamos vê-lo na segunda-feira.