REC- Redes de Computadores Capítulo 5 Camada de Aplicação Capítulo 5: Camada de aplicação Princípios de aplicações de rede A Web e o HTTP FTP Correio eletrônico SMTP, POP3, IMAP DNS Programação de sockets com UDP Programação de sockets com TCP Camada de aplicação Objetivos do capítulo: aspectos conceituais, de implementação de protocolos de aplicação de rede modelos de serviço da camada de transporte paradigma clienteservidor paradigma peer-to-peer protocolos populares em nível de aplicação: HTTP FTP SMTP/POP3/IMAP DNS programando aplicações de rede API socket Camada de aplicação Algumas aplicações de rede e-mail web mensagem instantânea login remoto compartilhamento de arquivos P2P jogos em rede multiusuários clipes de vídeo armazenados em fluxo contínuo redes sociais voice over IP vídeoconferência em tempo real computação em grade Camada de aplicação Conexão lógica da camada de aplicação Escreva programas que executem em (diferentes) sistemas finais se comuniquem pela rede p. e., software de servidor Web se comunica com software de navegador Web Não é preciso escrever software para dispositivos do núcleo da rede dispositivos do núcleo da rede não executam aplicações do usuário as aplicações nos sistemas finais permitem rápido desenvolvimento e propagação Camada de aplicação Arquiteturas de aplicação Paradigma Cliente-servidor Paradigma Peer-to-peer (P2P) Paradigma Híbrida de cliente-servidor e P2P Camada de aplicação Arquitetura cliente-servidor servidor: hospedeiro sempre ligado c/ end IP permanente server farms por expansão clientes: comunicam-se com o servidor e podem estar conectados intermitentemente podem ter endereços IP dinâmicos não se comunicam diretamente entre si Camada de aplicação Arquitetura cliente-servidor servidor: Carga de comunicação concentra-se no lado do servidor; Necessidade de uma infra “melhor” do lado do servidor Vários serviços tradicionais: protocolo HTTP de acesso ao conteúdo web; Protocolo FTP de transferência de dados; E-mail, dentre outros... Camada de aplicação Arquitetura P2P pura nenhum servidor sempre ligado sistemas finais arbitrários se comunicam diretamente pares são conectados intermitentemente e mudam endereços IP altamente escalável, mas difícil de administrar Peer 2 peer Camada de aplicação Híbrido de cliente-servidor e P2P Skype aplicação P2P voice-over-IP P2P servidor centralizado: achando endereço da parte remota: conexão cliente-cliente: direta (não através de servidor) Mensagem instantânea bate-papo entre dois usuários é P2P serviço centralizado: detecção/localização da presença do cliente usuário registra seu endereço IP com servidor central quando entra on-line usuário contacta servidor central para descobrir endereços Camada de aplicação Processo de comunicação A comunicação na camada de aplicação se dá entre dois aplicativos em execução denominados processos: um cliente e um servidor. Um cliente é um programa em execução que inicia a comunicação enviando um pedido (ou solicitação); um servidor é outro programa que aguarda pedidos de clientes. Camada de aplicação Processos se comunicando processo: programa rodando dentro de um hospedeiro no mesmo hospedeiro, dois processos se comunicam usando a comunicação entre processos (definida pelo SO). processos em hospedeiros diferentes se comunicam trocando mensagens processo cliente: processo que inicia a comunicação processo servidor: processo que espera para ser contactado Camada de aplicação Arquitetura cliente-servidor Um processo é capaz de se comunicar com outro, através de conjunto de instruções para dizer às quatro camadas mais baixas da pilha de protocolos TCP/IP que abram a conexão, enviem os dados à outra estação, recebam os dados dela e fechem a conexão. Este conjunto de instruções desse tipo é normalmente chamado Interface de Programação de Aplicativos (API – Application Programming Interface). Camada de aplicação Camada de aplicação Sockets processo envia/recebe mensagens de/para seu socket socket semelhante à porta processo enviando empurra mensagem pela porta processo enviando conta com infraestrutura de transporte no outro lado da porta, que leva a mensagem ao socket no processo receptor hospedeiro ou servidor processo hospedeiro ou servidor controlado pelo desenvolvedor da aplicação processo socket socket TCP com buffers, variáveis Internet controlado pelo OS TCP com buffers, variáveis Camada de aplicação Endereçando processos para receber mensagens, processo deve ter identificador dispositivo hospedeiro tem endereço IP exclusivo de 32 bits Identificador inclui endereço IP e números de porta associados ao processo no hospedeiro. Exemplos de número de porta: servidor HTTP: 80 servidor de correio: 25 Camada de aplicação Definições de protocolo da camada de aplicação tipos de mensagens trocadas, sintaxe da mensagem: que campos nas mensagens & como os campos são delineados semântica da mensagem p. e., requisição, resposta significado da informação nos campos regras de quando e como processos enviam & respondem a mensagens protocolos de domínio público: definidos em RFCs provê interoperabilidade p. e., HTTP, SMTP, BitTorrent protocolos proprietários: p. e., Skype, ppstream Camada de aplicação Aplicações da Internet: aplicação, protocolos de transporte Aplicação Protocolo da camada de aplicação Protocolo de transporte básico e-mail acesso remoto Web transf. arquivos multimídia com fluxo contínuo telefonia da Internet SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (p. e., Youtube), RTP [RFC 1889] SIP, RTP, proprietário (p. e., Skype) TCP TCP TCP TCP TCP ou UDP normalmente UDP Camada de aplicação Aplicações da Internet: protocolos de transporte e porta Porta Serviço ou Aplicação 21 FTP 23 Telnet 25 SMTP 53 Domain Name System 63 Whois 70 Gopher 79 Finger 80 HTTP 110 POP3 119 NNTP Camada de aplicação Web e HTTP página Web consiste em objetos objeto pode ser arquivo HTML, imagem JPEG, applet Java, arquivo de áudio,… página Web consiste em arquivo HTML básico que inclui vários objetos referenciados cada objeto é endereçável por um URL exemplo de URL: http:// www.someschool.edu/someDept/pic.gif nome do hospedeiro nome do caminho Camada de aplicação Web e HTTP http:// www.someschool.edu/someDept/pic.gif nome do hospedeiro nome do caminho Abreviação do protocolo: http, ftp,... Identificador do host: pode ser o IP do servidor ou o nome dado ao servidor ( a ser explicado depois ) Caminho: identifica o local e o nome do arquivo no sistemas Nível de aplicação Arquitetura cliente servidor Camada de aplicação Visão geral do HTTP HTTP: HyperText Transfer Protocol protocolo da camada de aplicação da Web modelo cliente/servidor cliente: navegador que requisita, recebe, “exibe” objetos Web servidor: servidor Web envia objetos em resposta a requisições PC rodando Explorer Servidor rodando servidor Web Apache Mac rodando Navigator Camada de aplicação Cliente (Navegador): Camada de aplicação HTTP usa o TCP: cliente inicia conexão TCP (cria socket) com servidor, porta 80 servidor aceita conexão TCP do cliente mensagens HTTP (do protocolo da camada de aplicação) trocadas entre navegador (cliente HTTP) e servidor Web (servidor HTTP) conexão TCP fechada HTTP é “sem estado” servidor não guarda informações sobre requisições passadas do cliente aparte Protocolos que mantêm “estado” são complexos! história passada (estado) deve ser mantida se servidor/cliente falhar, suas visões do “estado” podem ser incoerentes, devem ser reconciliadas Camada de aplicação Conexões HTTP HTTP não persistente no máximo um objeto é enviado por uma conexão TCP. HTTP persistente múltiplos objetos podem ser enviados por uma única conexão TCP entre cliente e servidor. Camada de aplicação Exercício prático Utilizando a ferramenta Wireshark: Obtenha páginas web utilizando o protocolo HTTP; Capture e análise o conteúdos dos pacotes HTTP. Identifique o HTTP request e o response Identifique o protocolo de nível de transporte, e as portas que estão sendo utilizadas. Identifique os endereços origem/destino do nível de rede Camada de aplicação HTTP não persistente Suponha que o usuário digite o URL www.someSchool.edu/someDepartment/home.index 1a. Cliente HTTP inicia conexão TCP com servidor HTTP (processo) em www.someSchool.edu na porta 80. (contém texto, referências a 10 imagens JPEG) 1b. Servidor HTTP no hospedeiro www.someSchool.edu esperando conexão TCP na porta 80. “aceita” conexão, notificando cliente 2. Cliente HTTP envia mensagem de requisição HTTP (contendo URL) pelo socket de conexão TCP. Mensagem indica que cliente deseja o objeto someDepartment/home.index. tempo 3. Servidor HTTP recebe mensagem de requisição, forma mensagem de resposta contendo objeto requisitado e envia mensagem para seu socket Camada de aplicação 4. Servidor HTTP fecha conexão TCP. 5. Cliente HTTP recebe mensagem de resposta contendo arquivo html, exibe html. Analisando arquivo html, acha 10 objetos JPEG referenciados. tempo 6. Etapas 1-5 repetidas para cada um dos 10 objetos JPEG. Camada de aplicação HTTP não persistente: Demanda uma alta carga computacional ! Camada de aplicação HTTP não persistente: tempo de resposta definição de RTT: tempo para um pequeno pacote trafegar do cliente ao servidor e retornar. inicia tempo de resposta: conexão TCP RTT um RTT para iniciar a conexão requisita TCP arquivo um RTT para a requisição HTTP e RTT primeiros bytes da resposta HTTP retornarem arquivo recebido tempo de transmissão de arquivo total = 2RTT + tempo de transmissão tempo tempo para transmitir arquivo tempo Camada de aplicação HTTP persistente problemas do HTTP não persistente: requer 2 RTTs por objeto overhead do SO para cada conexão TCP navegadores geralmente abrem conexões TCP paralelas para buscar objetos referenciados HTTP persistente: servidor deixa a conexão aberta depois de enviar a resposta mensagens HTTP seguintes entre cliente/servidor enviadas pela conexão aberta cliente envia requisições assim que encontra um objeto referenciado no mínimo um RTT para todos os objetos referenciados Camada de aplicação HTTP persistente Camada de aplicação Mensagem de requisição HTTP: formato geral origem mensagem segmento M Ht M datagrama Hn Ht quadro Hl Hn Ht M M aplicação transporte rede enlace física enlace física comutador Encapsulamento destino M Ht M Hn Ht M Hl Hn Ht M aplicação transporte rede enlace física Hn Ht M Hl Hn Ht M rede enlace física Hn Ht M roteador Camada de aplicação Formato das mensagens HTTP Camada de aplicação Tipos de métodos Camada de aplicação Nomes de cabeçalhos de solicitação Camada de aplicação Nomes de cabeçalhos de resposta Camada de aplicação Recupera uma imagem com o método get Enviar página web para ser publicada Camada de aplicação Versões do HTTP HTTP/1.0 GET POST HEAD pede ao servidor para deixar objeto requisitado fora da resposta HTTP/1.1 GET, POST, HEAD PUT envia arquivo no corpo da entidade ao caminho especificado no campo de URL DELETE exclui arquivo especificado no campo de URL Camada de aplicação Mensagem de resposta HTTP linha de status (protocolo código de estado frase de estado) linhas de cabeçalho dados, p. e., arquivo HTML requisitado HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html dados dados dados dados dados ... Camada de aplicação Códigos de estado da resposta HTTP 200 OK requisição bem-sucedida, objeto requisitado mais adiante 301 Moved Permanently objeto requisitado movido, novo local especificado mais adiante na mensagem (Location:) 400 Bad Request mensagem de requisição não entendida pelo servidor 404 Not Found documento requisitado não localizado neste servidor 505 HTTP Version Not Supported Camada de aplicação Exercício Alice tem um clipe de vídeo que Bob gostaria de receber e Bob tem um outro clipe de vídeo que Alice gostaria de receber. Bob cria uma página Web e executa um servidor HTTP. Como Alice pode obter o clipe de Bob ? Como Bob pode obter o clipe de Alice ? Quando um servidor HTTP recebe uma mensagem de solicitação de um cliente HTTP, como o servidor sabe o instante em que todos os cabeçalhos chegaram e que o corpo das mensagens virá a seguir ? Em uma conexão HTTP não persistente como o HTTP pode informar ao protocolo TCP que o final da mensagem foi atingido ? Camada de aplicação Exemplo Suponha que haja um servidor com o nome de domínio www.comum.com A.) Construa uma solicitação http para recuperar o documento /usr/users/doc. O cliente aceita MIME versão 1, imagens GIF e JPEG, mas o documento não pode ser mais antigo do que quatro dias. B.) Mostre a resposta HTTP para o ítem a.) no caso de um pedido bem sucedido. Cliente: GET /usr/users/doc HTTP /1.1 Date: Fri, 26-Nov-04 16:46:23 GMT MIME-version: 1.0 Accept: image/gif Accept: image/jpeg Last modified: Mon, 22-Nov-04 Servidor: HTTP/1.1 200 OK Date: Fri, 26-Nov-04 16:46:26 GMT Server: Challenger MIME-version: 1.0 Content-length: 4623 (Corpo do documento) Camada de aplicação Cookies WWW foi originalmente concebida como uma entidade sem estado. Ou seja, cliente envia pedido e cliente responde ! Porém outras necessidades surgiram: Sites usados como lojas virtuais; Sites precisam permitir acesso apenas à clientes registrados; Sites são usados como portais ( paginas são selecionadas pelos clientes); Como resolver estas situações: utilizando cookies. Camada de aplicação Cookies O navegador do comprador (cliente) envia um pedido p/ o servidor MelhoresBrinquedos. O servidor cria um carrinho de compras vazio (uma lista) para o cliente e atribui um ID para o carrinho de compras (por exemplo, 12343). O servidor, então, envia uma mensagem de resposta, que contém as imagens de todos os brinquedos disponíveis e um link associado a cada brinquedo; quando clicado, o link seleciona o brinquedo. Se o cliente acessar a loja no futuro, enviará o cookie novamente. Camada de aplicação Cookies Muitos sites importantes usam cookies Quatro componentes: 1) linha de cabeçalho de cookie da mensagem de resposta HTTP 2) linha de cabeçalho de cookie na mensagem de requisição HTTP 3) arquivo de cookie na máquina do usuário, controlado pelo navegador do usuário 4) banco de dados de apoio no site Web Camada de aplicação O que os cookies podem ter: autorização carrinhos de compras recomendações estado da sessão do usuário (email da Web) Como manter o “estado”: extremidades do protocolo: mantêm estado no emissor/receptor por múltiplas transações cookies: mensagens HTTP transportam estado aparte Cookies e privacidade: cookies permitem que os sites descubram muito sobre você você pode fornecer nome e e-mail aos sites Camada de aplicação Exercício: No HTTP, desenhe uma figura que mostre a aplicação de cookies em um cenário no qual o servidor permite acesso apenas à clientes cadastrados No HTTP, desenhe uma figura que mostre a aplicação de cookies em um cenário em um portal web que usa dois sites. Camada de aplicação Caches Web (servidor proxy) Servidor origem Atender a requisição do cliente sem envolver servidor de origem O navegador envia todas as requisições HTTP ao cache, que normalmente fica na rede do cliente; objeto no cache: cache retorna objeto ou cache requisita objeto do servidor de origem, depois retorna objeto ao cliente servidor proxy cliente cliente Camada de aplicação Caches Web cache atua como cliente e servidor normalmente, cache é instalado por ISP (da universidade, empresa, residencial) Por que caching Web? reduz tempo de resposta à requisição do cliente reduz tráfego no enlace de acesso de uma instituição Internet densa com caches: permite que provedores de conteúdo “fracos” remetam conteúdo efetivamente (mas o mesmo ocorre com compartilhamento de arquivos P2P) Camada de aplicação Exemplo de caching suposições tamanho médio do objeto = 1.000.000 bits taxa de requisição média dos navegadores da instituição aos servidores de origem = 15/s atraso do roteador institucional a qualquer servidor de origem e de volta ao roteador =2s consequências utilização na LAN = 15% utilização no enlace de acesso = 100% atraso total = atraso da Internet + atraso do acesso + atraso da LAN = 2 s + x minutos + y milissegundos servidores de origem Internet pública rede institucional enlace de acesso a 15 Mbps LAN de 100 Mbps cache institucional Camada de aplicação solução possível aumentar largura de banda do enlace de acesso para, digamos, 100 Mbps consequência utilização na LAN = 15% utilização no enlace de acesso = 15% atraso total = atraso da Internet + atraso do acesso + atraso da LAN = 2 s + x ms + y ms normalmente, uma atualização dispendiosa servidores de origem Internet pública rede institucional enlace de acesso a 100 Mbps LAN de 100 Mbps cache institucional Camada de aplicação possível solução: instalar cache suponha que índice de acerto é 0,4 consequência 40% de requisições serão satisfeitas imediatamente 60% de requisições satisfeitas pelo servidor de origem utilização do enlace de acesso reduzida para 60%, resultando em atrasos insignificantes (digamos, 10 ms) atraso médio total = atraso da Internet + atraso de acesso + atraso da LAN = 0,6*(2,01) s + 0,4*milissegundos < 1,4 s servidores de origem Internet pública rede institucional enlace de acesso a 15 Mbps LAN de 100 Mbps cache institucional Camada de aplicação GET condicional objetivo: não enviar objeto se o cache tiver versão atualizada cache: especifica data da cópia em cache na requisição HTTP If-modified-since: <data> 304 msg requisição HTTP If-modified-since: <data> resposta HTTP servidor: resposta não contém objeto se a cópia em cache estiver atualizada: HTTP/1.0 Modified servidor cache Not objeto não modificado HTTP/1.0 304 Not Modified msg requisição HTTP If-modified-since: <data> resposta HTTP HTTP/1.0 200 OK <dados> objeto modificado Camada de aplicação FTP: o protocolo de transferência de arquivos interface de cliente usuário FTP FTP usuário no hospedeiro transf. de arquivos servidor FTP sistema de arquivo local transfere arquivo de/para hospedeiro remoto modelo cliente/servidor cliente: lado que inicia transferência (de/para remoto) servidor: hospedeiro remoto ftp: RFC 959 servidor ftp: porta 21 sistema de arquivo remoto Camada de aplicação FTP: conexões separadas p/ controle e dados conexão de controle TCP porta 21 cliente FTP contacta servidor FTP na porta 21. O TCP é o protocolo de transporte conexão de dados TCP cliente autorizado por conexão de cliente servidor porta 20 controle FTP FTP cliente navega por diretório remoto enviando comandos por conexão de servidor abre outra conexão de controle dados TCP para transferir outro quando servidor recebe comando de arquivo a transferência de arquivo, abre 2 conexão de controle: “fora da conexão TCP (para arquivo) com banda” cliente servidor FTP mantém “estado”: após transferir um arquivo, servidor diretório atual, autenticação fecha conexão de dados anterior Camada de aplicação Comandos e respostas FTP Camada de aplicação Alguns comandos FTP Camada de aplicação Alguns comandos e respostas FTP Camada de aplicação Comandos e respostas FTP Camada de aplicação Correio eletrônico Três componentes principais: agentes do usuário servidores de correio Simple Mail Transfer Protocol: SMTP O envio de um e-mail envolve nove passos distintos. Camada de aplicação Correio eletrônico: servidores de correio servidores de correio caixa de correio contém mensagens que chegam para o usuário fila de mensagens com mensagens de correio a serem enviadas protocolo SMTP entre servidores de correio para enviar mensagens de email cliente: servidor de envio de correio “servidor”: servidor de recepção de correio agente usuário serv. correio agente usuário SMTP SMTP serv. correio agente usuário SMTP agente usuário serv. correio agente usuário agente usuário Camada de aplicação Cenário: Alice envia mensagem a Bob 1) Alice usa AU para redigir mensagem “para” [email protected] 2) O AU de Alice envia mensagem ao seu servidor de correio, que é colocada na fila de mensagens 3) Lado cliente do SMTP abre conexão TCP com servidor de correio de Bob 4) Cliente SMTP envia mensagem de Alice pela conexão TCP 5) Servidor de correio de Bob coloca mensagem na caixa de correio de Bob 6) Bob chama seu agente do usuário para ler mensagem Camada de aplicação Protocolos utilizados no e-mail Camada de aplicação SMTP [RFC 2821] O cliente usa TCP para transferir de modo confiável a mensagem de e-mail ao servidor através da porta 25 transferência direta: servidor de envio ao servidor de recepção três fases da transferência: handshaking ( estabelecimento da conexão) transferência de mensagens fechamento interação comando/resposta comandos: texto ASCII resposta: código e frase de estado mensagens devem estar em ASCII de 7 bits Camada de aplicação Comandos SMTP Camada de aplicação Comandos SMTP Camada de aplicação Comandos SMTP Exemplo_01 de interação SMTP Cliente envia msg. HELO p/ se identificar O servidor de e-mail após receber a mensagem pode colocá-la na fila e enviá-la ao servidor remoto em outro momento Camada de aplicação Exemplo_2 de interação SMTP S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <[email protected]> 250 [email protected]... Sender ok RCPT TO: <[email protected]> 250 [email protected] ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Você gosta de ketchup? Que tal picles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection C: são as linhas que o cliente envia para dentro de seu socket TCP S: são as linhas que o servidor envia para dentro de seu socket TCP Camada de aplicação Formato da mensagem de correio SMTP: protocolo para trocar mensagens de e-mail RFC 822: padrão para formato de mensagem de texto: linhas de cabeçalho, p. e., Para: De: Assunto: diferente dos comandos SMTP! corpo a “mensagem”, apenas em caracteres ASCII cabeçalho corpo linha em branco Camada de aplicação SMTP: resumo SMTP usa conexões persistentes SMTP requer que a mensagem (cabeçalho e corpo) esteja em ASCII de 7 bits servidor SMTP usa CRLF.CRLF para determinar fim da mensagem Comparação com HTTP: HTTP: puxa SMTP: empurra ambos têm interação de comando/resposta em ASCII, códigos de estado HTTP: cada objeto encapsulado em sua própria mensagem de resposta SMTP: múltiplos objetos enviados na mensagem multiparte Camada de aplicação Protocolos de acesso de correio POP3: Post Office Protocol [RFC 1939] autorização (agente <--> servidor) e download IMAP4: Internet Mail Access Protocol [RFC 1730] mais recursos (mais complexo) manipulação de msgs armazenadas no servidor HTTP: gmail, Hotmail, Yahoo! Mail etc. Camada de aplicação Protocolos de acesso de correio O POP3 é simples e pode operar em dois modos: Excluir: o email é removido da caixa de correio após ter sido obtido; Manter: normalmente utilizado quando o usuário acessa a caixa de correio de um lugar diferente de seu computador; Não permite que o usuário organize seus emails no servidor, pois o usuário não pode ter diferentes pastas; Não permite que o usuário verifique parcialmente o conteúdo do e-mail antes de obtê-lo. Camada de aplicação POP3 Camada de aplicação Protocolos de acesso de correio IMAP4: O usuário pode verificar o cabeçalho do emial antes de obtê-lo; O usuário pode procurar por uma sequencia específica de caracteres antes de obtê-lo; O usuário pode obter um email parcialmente; O usuário pode criara, remover ou renomear caixas de correio no servidor de email; O usuário pode criar hierarquias de caixas de correio em uma pasta; Camada de aplicação Protocolo POP3 fase de autorização comandos do cliente: user: declare “username” pass: senha respostas do servidor +OK -ERR fase de transação, cliente: list: lista números de msg. retr: recupera mensagem por número dele: exclui quit S: C: S: C: S: +OK POP3 server ready user bob +OK pass hungry +OK usuário logado com sucesso C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK serv. POP3 desconectando Camada de aplicação Protocolos de acesso de correio MIME ( Multifunção para mensagens de internet): Correio eletrônico eniva mensagens no formato: NVT ASCII de 7 bits O MIME transforma dados não ASCII em dados NVT ASCII e entrega ao MTA. Camada de aplicação E-mail baseado na Web HTTP: dois cenários Camada de aplicação DNS: Domain Name System Os usuários da internet preferem utilizar nomes ao invés de endereços IP. Como mapeamos nomes para endereços IP ? Através de um sistema de diretório formado de banco de dados distribuído, implementado de forma hierarquica através de um conjunto de servidores de nomes. O DNS é um protocolo do nível de aplicação, em que hospedeiro, roteadores, servidores de nomes se comunicam para resolver nomes (tradução endereço/nome). Considerando que o usuário conhece apenas o nome de um servidor de arquivos (xxx.yyy.xom) , qual procedimento para que utilizando o serviço DNS mapeia o nome para um endereço IP ? Camada de aplicação DNS: Domain Name System 1.O usuário fornece o nome do host para o cliente de transf. de arquivo; 2. O cliente de transf. De arquivo passa o nome do host par o cliente DNS; 3. Cada computador depois de iniciado conhece o endereço de server DNS; 4. O server DNS responde com o endereço IP; 5. o cliente DNS para o end. IP para o cliente de transf. de arquivo. Camada de aplicação DNS Espaço de nome de domínios: Cada nó da árvore tem um rótulo ( 63 caracteres). O DNS exige que os filhos de um nó tenham rótulos diferentes o que garante a unicidade dos nomes de domínio. Cada nó da árvore tem um nome de domínio. Um nome de domínio completo é uma sequencia de rótulos separados por (.) Domínio: corresponde a uma subárvore do espaço de nomes de domínio Camada de aplicação Banco de dados distribuído e hierárquico Se um servidor dividir seu domínio em subdomínios e delegar parte de sua autoridade a outros servidores, o domínio e a zona se referem a coisas distintas As informações osbre os nós dos subdomínios são armazenadas nos servidores em níveis mais baixos. Como a hierarquia completa de nomes não pode ser armazenada em um único servidor, ela é dividida entre vários servidores. Aquilo sobre o qual um servidor tem autoridade é chamado de zona Camada de aplicação Classes e hierarquia de servidores DNS São poucos Responsáveis por domínios de alto nível (com, edu , gov, org), e pelos domínios de alto nível de países, tais como uk, fr, ca, jp, br... Servidores DNS raiz servs. DNS com servs. DNS yahoo.com servs. DNS amazon.com servs. DNS org servs. DNS pbs.org servs. DNS edu servs. DNS servs. DNS poly.edu umass.edu Toda organização que tiver hospedeiros que possam ser acessados publicamente na internet deve fornecer registros DNS também acessíveis publicamente. Um server com autoridade abriga estes registros. Uma organização pode preferir implementar seu próprio servidor DNS com autoridade, ou como alternativa, pode pagar para armazená-los em um servidor DNS com autoridade de algum provedor de serviço Servidor DNS Local: não pertence a hierarquia de servidores. Cada ISP possui um servidor de nomes. Camada de aplicação DNS: Domínio genérico Camada de aplicação DNS: Domínio país Camada de aplicação DNS: Servidores de nomes raiz contactados por servidores de nomes locais que não conseguem traduzir nome servidores de nomes raiz: contacta servidor de nomes com autoridade se o mapeamento não for conhecido obtém mapeamento retorna mapeamento ao servidor de nomes local 13 servidores de nomes raiz no mundo Camada de aplicação Servidores de alto nível e com autoridade servidores de domínio de alto nível: responsáveis por com, org, net, edu etc. e todos os domínios de país de alto nível: br, uk, fr, ca, jp. servidores DNS com autoridade: servidores DNS da organização, provendo nome de hospedeiro com autoridade a mapeamentos IP para os servidores da organização (p. e., Web, correio). podem ser mantidos pela organização ou provedor de serviços Servidor de nomes local não pertence estritamente à hierarquia cada ISP (ISP residencial, empresa, universidade) tem um. também chamado “servidor de nomes default” quando hospedeiro faz consulta ao DNS, consulta é enviada ao seu servidor DNS local atua como proxy, encaminha consulta para hierarquia