14/05/2012 Redes de Computadores • Aplicação • DNS, SMTP, POP3, IMAP • FTP, Http Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Camada de Aplicação – DNS Os seres humanos podem ser identificados por diversas maneiras: •Nome. •CPF. •RG. RG •PIS Para os hosts da Internet a situação é a mesma: •www.terra.com.br •200.154.56.80 Dependendo do contexto um é mais adequado que o outro. RC 6162 1 14/05/2012 Camada de Aplicação – DNS DNS (Domain Name System) Sistemas de Nomes de Domínios •A A essência do DNS é a criação de um esquema hierárquico de atribuição de nomes baseados no domínio e de um banco de dados distribuído. •DNS é um protocolo que permite consultas a um banco de dados distribuído utilizando UDP na porta 53, para resolver nomes ASCII, fornecidos pelos usuários, em número IP. •Ao enviar o pacote um timer é dispara, se expirar outro pacote é dispara para outro servidor (espelhado) (espelhado). 3 Camada de Aplicação – DNS A obtenção do endereço IP é realizada da seguinte maneira. 1 A máquina do usuário executa o lado cliente da aplicação DNS. 1. DNS 2. O browser extrai o nome do host e passa para esta aplicação DNS. 3. O cliente DNS envia uma consulta contendo o nome para um servidor DNS. 4. O Servidor DNS envia uma resposta com o endereço IP requisitado 5. O browser recebe o endereço do cliente DNS e abre a conexão com o servidor HTTP. 4 2 14/05/2012 Camada de Aplicação – DNS C:\>nslookup Servidor PadrÒo: Address: 10.1.0.1 UnKnown > www.terra.com.br Servidor: UnKnown Address: 10.1.0.1 10 1 0 1 •É possível enviar mensagens consulta pelo programa nslookup Não é resposta de autorização: Nome: www.terra.com.br Address: 200.154.56.80 •Executar nslookup. > www.google.com Servidor: UnKnown Address: 10.1.0.1 •Envie a consulta, por exemplo: •www.terra.com.br Não é resposta de autorização: Nome: www.l.google.com Addresses: 72.14.204.104 72.14.204.147 72.14.204.99 72.14.204.103 Aliases: www.google.com > 5 Camada de Aplicação – DNS •A internet é dividida em mais de 200 domínios de nível superior (genéricos e de países). •Cada domínio é particionado em subdomínios, que também são particionados formando uma árvore particionados, árvore. •Domínios genéricos: •com Comercial •edu Instituições educacionais •gov Instituições governamentais •int Algumas organizações internacionais •mil Forças armadas •net Provedores de rede •org Organizaões O i õ sem fim fi lucrativo l ti •Países: Um para cada país. 6 3 14/05/2012 Camada de Aplicação – DNS •Em 2000 a ICANN aprovou também os domínios: •biz negócios •info informações •name Nome de pessoas •pro Profissões (médicos advogados) •aero Indústria Aeroespacial •coop Cooperativas •museum Museus 7 Camada de Aplicação – DNS int com edu sum yale l eng eng gov mil org net jp br nl vu acm ieee cs net net flits Cada domínio tem o nome definido pelo caminho ascendente entre ele e a raiz, separado por pontos: Por exemplo: •Dep. Engenharia Sun Microsystem = eng.sun.com •Dep. de Língua Inglesa da Yale University = eng.yale.edu •São consideradas as fronteiras organizacionais e não físicas. 8 4 14/05/2012 Camada de Aplicação – DNS Teoricamente um único servidor poderia conter o banco de dados DNS inteiro. Porém isso acarreta vários problemas: • ? •? •? •? 9 Camada de Aplicação – DNS Teoricamente um único servidor poderia conter o banco de dados DNS inteiro. Porém isso acarreta vários problemas: •Um U único ú i ponto t de d falha: f lh se o servidor id de d nomes quebrar, b a Internet I t t inteira i t i quebra junto. •Volume de tráfego: Este servidor teria que manipular todas as consultas DNS de centenas de milhões de hosts. •Banco de dados centralizado distante: O servidor nunca poderia estar próximo de todos os clientes. •Atualização: Teria que manter registro de todos os hosts da Internet. O banco seria enorme e teria que ser atualizado frequentemente para atender aos novos hosts. 10 5 14/05/2012 Camada de Aplicação – DNS Para evitar isso o espaço de nomes é dividido em zonas, cada qual com uma parte da árvore e servidor de nome referentes a sua área. O DNS pode d armazenar as respostas t em um cache h llocall (alguns ( l segundos d a alguns dias) para agilizar as consultas. Hierarquia de servidores - Se o servidor local não “conhecer” (cache) o nome busca no servidor superior. 11 Camada de Aplicação – DNS int com edu sum yale l eng eng gov mil org acm net net jp br nl vu ieee cs net flits Flits.cs.vu.nl quer saber o IP de eng.yale.edu. flits.cs.vu.nl cs.vu.nl .edu yale.edu Essa informação permanece por um tempo no cache de .cs 12 6 14/05/2012 Camada de Aplicação – DNS http://www.root-servers.org/ 13 Camada de Aplicação Correio Eletrônico O correio eletrônico é um meio de comunicação assíncrono, (enviam a recebem mensagens quando for conveniente). Hotmail – Marketing viral. Dez/95 – Sabeer Bhatia e Jack Smith -> Drapper Fishere (300.000). Acionista 15% da empresa (3 permanentes e 12 temporários) Lançamento em Jul/96: 100 usuários na primeira hora 1 mês = 100.000 assinantes. 18 meses = 12.000.000 12 000 000 de assinantes, assinantes e venda para Microsoft por 400.000.000 dólares. RC 626 14 7 14/05/2012 Camada de Aplicação Correio Eletrônico – Arquitetura de serviço •Agentes do usuário: Permitem que as pessoas leiam e enviem mensagens São programas locais que interagem com o sistema de mensagens. correio eletrônico. •Agentes de transferência da mensagem: Deslocam as mensagens da origem até o destino normalmente em processos executados em segundo plano. 15 Camada de Aplicação – MIME Correio Eletrônico – MIME (Multipourpose Internet Mail Extensions) g as mensagem g continham apenas p texto ASCII,, hoje j causaria •Antigamente problemas em: •Idiomas com acentos (Português, Alemão). •Alfabetos não-latinos (Hebraico, Russo). •Idiomas sem alfabeto (Chinês, Japonês). •Mensagens que não são textos (Áudio, Imagens). RC 635 16 8 14/05/2012 Camada de Aplicação – MIME Correio Eletrônico – MIME •Novos cabeçalhos adicionados: •MIME-Version: MIME V i V Versão. ã •Content-Description: String inteligível com a identificação do conteúdo da mensagem. •Content-Id: Identificador exclusivo. •Content-Transfer-Encoding: Como foi codificado. •Content-Type: Tipo e formato do conteúdo. •Detalhando o Content-Transfer-Encoding: 17 Camada de Aplicação – MIME Correio Eletrônico – MIME •Content-Transfer-Encoding: Formas de codificação •1 1 - Texto T t simples i l em ASCII d de 7 bit bits até té 1000 lilinhas. h •2 - Texto em ASCII de 8 bits (256) até 1000 linhas •3 - Codificação base64 – Mensagens binárias •Grupos de 24 bits são divididos em 4 unidades de 6 bits e enviado como um caractere ASCII. •“a” para 0, “b=1, “c”=2, etc (26 letras maiúsculas,26 letras minúsculas,10 números,“+” e “/” totalizam 64 caracteres). •Os caracteres == e = indicam que o último grupo continha apenas 8 ou 16 bits respectivamente. respectivamente 18 9 14/05/2012 Camada de Aplicação – MIME Correio Eletrônico – MIME •Content-Transfer-Encoding: Formas de codificação •4 4 - ASCII d de 7 bit bits co todos t d os caracteres t acima i de d 7 bits bit codificados difi d com um sinal de “=” seguido pelo valor do caractere em dois dígitos hexadecimal. •5 – 7 subtipos de acordo com o campo “Content-Type:” •Exemplo: •video/mpeg , audio/básic, audio/mpeg, image/jpeg, text/html, apllications/PostScript apllications/PostScript, 19 Camada de Aplicação – SMTP Correio Eletrônico – Transferência de mensagens SMTP – Simple Mail Transfer Protocol protocolo p para envio de mensagens g •É um p •Funcionamento básico do SMTP: •A máquina de origem estabelece uma conexão TCP com a máquina de destino pela porta 25. •O destino envia uma mensagem que fornece sua identidade e informa que esta preparado para receber. •A origem envia de quem é e para quem vai a mensagem. •O destino informa se existe o receptor ou não. •A origem envia a mensagem. O destino d ti confirma fi •O •Após o envio das mensagens a conexão é encerrada. RC 641 20 10 14/05/2012 Camada de Aplicação – SMTP No prompt de comando digite: telnet smtp.mail.yahoo.com.br 25 Auth login xxxxxxxxx xxxxxxxxx mail from: <[email protected]> rcpt to: <[email protected]> data subject: teste e-mail "mensagem" ". " Quit ((usuário ái b base 64) (senha base 64) (assunto e 2 [enter]) (Finalizar mensagem) (Finalizar conexão) Codificar em base64 http://www.webpan.com/Customers/Email/base64_conversion.htm 21 Camada de Aplicação Correio Eletrônico – Transferência de mensagens SMTP B A •A = Estabelece conexão •B B=A Avisa isa que q e esta p preparado epa ado •. . . 22 11 14/05/2012 Camada de Aplicação Correio Eletrônico – Transferência de mensagens SMTP B A SMTP SMTP ? 23 Camada de Aplicação – POP3 Correio Eletrônico – Transferência de mensagens POP3 – Post Office Protocol version 3 •É É um protocolo t l para recebimento bi t d de mensagens •O cliente estabelece uma conexão TCP com o servidor pela porta 110. •Estado de autorização: Login do usuário. •Estado de Translação: Transferência da mensagem e marcação para a exclusão. •Estado de atualização: exclusão das mensagens. RC 644 24 12 14/05/2012 Camada de Aplicação – POP3 No prompt de comando digite: telnet pop.mail.yahoo.com.br 110 user xxxxxxxxx (Usuário normal) pass xxxxxxxxx (Usuário normal) list (lista as mensagens) retr 1 dele 1 (recupera as mensagens) (marca para exclusão) Quit RC 647 25 Camada de Aplicação – IMAP Correio Eletrônico – Transferência de mensagens IMAP Internet Message Access Protocol •Utiliza Utili TCP na porta143. t 143 •Permite ver o assunto da mensagem ou parte dela sem fazer o download dos anexos. •É possível apagar, copiar, responder e encaminhar mensagens no servidor. •Pode-se criar pastas e mover as mensagem para elas. 26 13 14/05/2012 Camada de Aplicação – Webmail Correio Eletrônico – Transferência de mensagens Webmail •Lançado L d iinicialmente i i l t pelo l hotmail h t il •Após estabelecer a conexão TCP são enviados os comando SMTP normais. •Após fornecer e validar usuário e senha o servidor monta uma página HTML e envia ao navegador. •No navegar as mensagens podem ser lidas, excluídas e organizadas, como se fosse por IMAP. IMAP RC 650 27 Camada de Aplicação – FTP Transferência de arquivos •Em uma sessão de FTP típica, o usuário fornece: •O endereço do host, o que faz com que o processo cliente FTP uma conexão com o servidor FTP. •Uma identificação e senha. estabeleça Assim que autorizado pelo servidor o usuário pode copiar um ou mais arquivos armazenados no sistema de arquivo local para o sistema de arquivo remoto (ou vice-versa). RCI 80 28 14 14/05/2012 Camada de Aplicação – FTP Transferência de arquivos O HTTP e o FTP são protocolos de transferência de arquivos. A maior diferença entre eles é que o FTP utiliza duas conexões TCP paralelas para transferir um arquivo. •Conexão de controle: Que envia informações de controle entre os dois rosts , como Id do usuário, senha, comandos para “inserir” ou “pegar” arquivos e trocar de diretório (fora da banda). •Conexão de dados: Usada efetivamente para transferir um arquivo. 29 Camada de Aplicação – FTP Transferência de arquivos •O cliente FTP inicia uma conexão TCP na porta 21 do servidor (que permanece aberta p p por toda a sessão)) e envia ID,, senha e os comandos. •Quando o servidor FTP recebe uma requisição cria outra conexão na porta 20, envia o arquivo e fecha a conexão. •Se o usuário requisitar um outro arquivo, outra conexão será criada e após o envio do arquivo fechada. •Durante a sessão o servidor deve manter informações de estado sobre o usuário, o que limita o número de conexões simultâneas que o FTP pode manter manter. 30 15 14/05/2012 Camada de Aplicação – FTP Transferência de arquivos Os comandos são. ç do usuário,, •USER username: – envia a identificação •PASS password: – Envia a senha do usuário, •LIST: Pede ao servidor uma lista dos arquivos existentes (a lista é enviada por uma nova conexão de dados não persistente. •RETR filename: - Pegar um arquivo do servidor •STOR filename:- Armazenar um arquivo no servidor 31 WWW – World Wide Web •Estrutura arquitetônica que permite o acesso a documentos vinculados espalhados por milhões de máquinas na Internet •Teve Teve origem em1989 no CERN (Conseil Européen pour la Recherche Nucléaire) para Troca de informações entre os cientistas. •1993 foi lançado o primeiro navegador gráfico, o Mosaic e em 1994 o Netscape. •Em 1994 W3C (World Wide Web Consorcium), voltada para o desenvolvimento web, padronização de protocolo e incentivo a interoperabilidade entre sites. 32 16 14/05/2012 WWW – World Wide Web Visão geral - Hipertexto •A web é composta por uma vasta coleção de documentos, chamados de páginas, hospedadas em diversos servidores e acessadas pelos navegadores. •Cada página pode conter Hiperlinks (vínculos) para outras páginas, no mesmo servidor ou em outros. abc.com Cliente xyz.com Hiperlink Hiperlink Internet 33 WWW – World Wide Web Terminologia - www A funcionalidade da Web é baseada em três padrões: •URL URL 34 17 14/05/2012 WWW – World Wide Web Terminologia - www A funcionalidade da Web é baseada em três padrões: •URL URL (Universal Resource Locator - Localizador Universal de Recursos), Recursos) que especifica como cada página de informação recebe um “endereço” único onde pode ser encontrada. •HTTP 35 WWW – World Wide Web Terminologia - www A funcionalidade da Web é baseada em três padrões: •URL URL (Universal Resource Locator - Localizador Universal de Recursos), Recursos) que especifica como cada página de informação recebe um “endereço” único onde pode ser encontrada. •HTTP, que especifica como o navegador e servidor trocam informações entre si (protocolo). •HTML 36 18 14/05/2012 WWW – World Wide Web Terminologia - www A funcionalidade da Web é baseada em três padrões: •URL (Universal Resource Locator - Localizador Universal de Recursos), Recursos) que especifica como cada página de informação recebe um “endereço” único onde pode ser encontrada. •HTTP, que especifica como o navegador e servidor trocam informações entre si (protocolo). •HTML (HyperText Markup Language - Linguagem de Formatação de Hipertexto) , um método de codificar a informação de modo que possa ser exibida em uma g grande q quantidade de navegadores g 37 WWW – World Wide Web Lado Cliente: O navegador (NV) é basicamente um interpretador do HTML enviado pelo servidor (SV). (SV) Quando o usuário clica em um hiperlink: •NV – Resolve o nome da página (DNS) •NV – Estabelece uma conexão TCP com o endereço IP na porta 80, e solicitado o arquivo /home/index.html. •SV – Envia o arquivo index.html. •NV – Exibe todo o texto de index.html, busca e exibe todas as imagens que o arquivo contém. •NV – Encerra a conexão TCP. 38 19 14/05/2012 WWW – World Wide Web Lado Cliente: Uma página pode não conter texto HTML. Pode por exemplo ser um documento PDF uma música MP3, PDF, MP3 um arquivo ZIP... ZIP As informações retornadas pelo servidor inclui os tipos MIME da página (text/html, Application/pdf, application/msword, audio/mp3) Se o tipo MIME não puder ser interpretado pelo navegador ele consulta a tabela MIME, que associa um tipo a um visualizador, ou a uma ação (download). 39 WWW – World Wide Web Lado Cliente: Existem duas possibilidades: •Plug-in: •Por exemplo: •Aplicações auxiliares: •Por exemplo: 40 20 14/05/2012 WWW – World Wide Web Lado Cliente: Existem duas possibilidades: •Plug-in: É um módulo de código instalado, em tempo real, que funciona dentro do navegador. Quando a aplicação terminar o código é retirado da memória. •Por exemplo: leitor PDF, visualizador doc. •Aplicações auxiliares: É um programa independente executado como um processo separado. •Por exemplo: Gerenciado de downloads, player de MP3. 41 WWW – World Wide Web Lado Servidor: Em essência, as principais etapas são: •Aceitar uma conexão TCP de um cliente (navegador). •Obter o nome do arquivo solicitado. •Obter o arquivo no disco. •Retornar o arquivo ao cliente. •Encerrar a conexão TCP. 42 21 14/05/2012 WWW – World Wide Web Lado Servidor: Desempenho: Cache e multithread Um disco SCSI tem um tempo médio de acesso de 5ms, assim um servidor só pode atender a 200 requisições /s. Para minimizar o tempo de acesso os servidores buscam manter em cache uma grande quantidade de arquivos. Um servidor consiste um Frond end que aceita as conexões recebidas e entrega os a um módulo de processamento (thread), dessa forma enquanto o módulo aguarda o acesso ao disco outra requisição pode ser atendida. 43 HTTP – HyperText Transfer Protocol É o protocolo de transferência usado por toda a WEB •Especifica as mensagens ASCII que o clientes podem enviar aos servidores e quais respostas eles receberão. •HTTP 1.0 – Após a conexão uma única solicitação era enviada, uma única resposta devolvida e a conexão encerrada. Era adequado quando só existiam texto. •HTTP 1.1 – Conexões persistentes, após estabelecer a conexão, é possível enviar solicitação, receber resposta enviar nova solicitação e receber no novas as respostas respostas, todas indi individuais id ais o ou paralelas na mesma conexão. 44 22 14/05/2012 HTTP – HyperText Transfer Protocol Uma página com o texto e 10 imagens Conexão TCP Texto (conteúdo) Requisições paralelas l l Imagens Todos os objetos são enviado na mesma conexão 45 HTTP – HyperText Transfer Protocol Métodos HTTP Método GET HEAD PUT POST DELETE TRACE CONECT OPTIONS Descrição Leitura de uma página Solicita um cabeçalho de uma página Armazenamento de uma página Anexa algo a uma página Remove a página Ecoa A solicitação recebida Reservado para uso futuro Consulta opções no servidor. 46 23 14/05/2012 HTTP – HyperText Transfer Protocol Respostas HTTP Cód. Significado 1xx Informação 2xx 3xx 4 4xx Sucesso Redirecionament o Erro do Cliente 5xx Erro do Servidor Exemplos 100=O servidor concorda em atender a requisição do cliente 200=Requisição bem sucedida 301=A página for removida, 301 a página no cache ainda é válida 403 Página proibida, 403=Página proibida 404=Página não encontrada 500=Erro interno no servidor, 503=Tente de novo mais tarde 47 HTTP – HyperText Transfer Protocol Aperfeiçoamento de desempenho WWW= World Wide Web ou World Wide Wait? •Armazenamento em cache •Replicação de servidores 48 24 14/05/2012 HTTP – HyperText Transfer Protocol Aperfeiçoamento de desempenho Armazenamento em cache •Consiste em guardar as páginas visitada para um uso subsequente, caso tenham que ser usadas novamente. •Um processo, chamado proxy, armazena as páginas visitadas em uma máquina compartilhada por todas as máquinas da LAN. •O navegador é configurado para buscar primeiro no proxy local, se não encontrar busca no proxy da LAN e por fim no endereço real 49 HTTP – HyperText Transfer Protocol Aperfeiçoamento de desempenho Replicação de servidores •É É uma técnica utilizada no lado servidor. •Os servidores replicam o seu conteúdo em vários locais separados (espelhamento). •Normalmente são sites estáticos, a empresa decide onde quer colocar os espelhos e instala um servidor em cada região. 50 25 14/05/2012 Rede Multimídia Maneira mais simples para reproduzir música: •Estabelece a conexão TCP •Envia a solicitação GET de HTTP •O servidor obtém o arquivo no disco •O arquivo é enviado ao navegador •O navegador grava o arquivo no disco, abre o reprodutor e passa o nome do arquivo. •O reprodutor de acessa o arquivo e reproduz. Qual o problema? 51 Rede Multimídia Áudio de fluxo RTSP (Real Time Streaming Protocol) •O navegador recebe do site um metarquivo em ASCII, por exemplo: rtsp: joes-audio-server/song-0025.mp3. •O arquivo é gravado no disco e iniciado o reprodutor. •Ao ler o arquivo o reprodutor de conecta ao servidor e solicita o arquivo (o navegador já está fora) •O áudio e transmitido em tempo real por UDP, vai para um pequeno buffer e é reproduzido. 52 26 14/05/2012 Rede Multimídia Áudio de fluxo RTSP (Real Time Streaming Protocol) O reprodutor de mídia tem quatro tarefas importantes: •Administrar a interface com usuários. •Botões, volume, gráfico. •Tratar erros de transmissão •Fazer interpolação (amostras pares e impares). •Descompactar a música •Decodificar MP3, WMA, RA, OGG. •Eliminar a flutuação •Marcadores do buffers. 53 Rede Multimídia Radio da Internet •Assim como áudio de fluxo necessita buffer. •Só pode ser transmitido na velocidade que é gerado gerado. •Teoricamente deveria usar RTSP com multidifusão. •Na prática usa unidifusão sobre TCP porque: •Poucos ISPs aceitam multidifusão •O RTSP é bem menos conhecido que o TCP e não é aceito por todos os softwares. •Em empresas normalmente a porta para o RTSP é fechada, ficando aberta somente 80, 25 e 53 (DNS). 54 27 14/05/2012 Rede Multimídia Voz sobre IP. •Inicialmente o grande volume de trafego nas redes de telefonia era voz. •Em 1990 o número de bits de dados se igualou aos bits de Voz (PCM) •Em 2002 o volume de trafego de dados era 10 vezes o volume de voz. •A conta telefônica normalmente é maior que a conta da internet. •E assim nasce a telefonia da Internet, ou voz sobre IP. 55 Rede Multimídia PCs Gateway Gatekeeper Internet Rede de telefonia 234-5678 56 28 14/05/2012 Rede Multimídia – H-323 Terminal (PC) faz uma chamada para um telefone remoto: •PC transmite por difusão um pacote UDP na porta 1718 para encontrar o gatekeeper. •O O GK responde e o PC obtém o IP IP. •O PC envia uma mensagem de registro. •O PC solicita uma largura de banda. •Se não for possível será rejeitado. •PC estabelece uma conexão TCP com o GK •PC envia o número do telefone ou o IP se for computador •O GK encaminha a mensagem para o gateway •O GW (metade computador metade switch de telefonia) •Faz a chamada comum para o telefone desejado j •Após estabelecer a conexão os pacotes são trocados diretamente entre PC e qateway. 57 Referências Livro texto 1) FOROUZAN, Behrouz A.. Comunicação de Dados e Redes de Computadores. 4ª ed. São Paulo: McGraw - Hill, 2008. 2) TEIXEIRA, Ivair. Aulas ministradas na FAV. 29