DNS: Domain Name System Pessoas: muitos identificadores: • RG, nome, passaporte Internet hospedeiros, roteadores: • Endereços IP (32 bits) - usados para endereçar datagramas • “nome”, ex.: gaia.cs.umass.edu - usados por humanos P.: Como relacionar nomes com endereços IP? Domain Name System: • Base de dados distribuída implementada numa hierarquia de muitos servidores de nomes • Protocolo de camada de aplicação hospedeiro, roteadores se comunicam com servidores de nomes para resolver nomes (translação nome/endereço) • Nota: função interna da Internet, implementada como protocolo da camada de aplicação • Complexidade na “borda” da rede DNS DNS service • Nome do hospedeiro para tradução de endereço IP Por que não centralizar o DNS? • Ponto único de falha • Volume de tráfego • Base centralizada de dados distante • Manutenção Não é escalável! 1 Base de dados distribuída, hierárquica Cliente quer o IP para www.amazon.com; 1a aprox.: • Cliente consulta um servidor de raiz para encontrar o servidor DNS com • Cliente consulta o servidor DNS com para obter o servidor DNS amazon.com • Cliente consulta o servidor DNS amazon.com para obter o endereço IP para www.amazon.com DNS: servidores de nomes raiz • São contatados pelos servidores de nomes locais que não podem resolver um nome • Servidores de nomes raiz: • Buscam servidores de nomes autorizados se o mapeamento do nome não for conhecido • Conseguem o mapeamento • Retornam o mapeamento para o servidor de nomes local Existem 13 servidores de nomes raiz no mundo 2 Servidores TLD e autoritários Servidores top-level domain (TLD): responsáveis pelos domínios com, org, net, edu etc. e todos os domínios top-level nacionais br, uk, fr, ca, jp. Servidores DNS autorizados: servidores DNS de organizações, provêem nome de hospedeiro autorizado para mapeamentos IP para servidores de organizações (ex.: Web e mail). • Podem ser mantidos por uma organização ou provedor de serviços Servidor de nomes local • Não pertence estritamente a uma hierarquia • Cada ISP (ISP residencial, companhia, universidade) possui um • Também chamado de “servidor de nomes default” • Quando um hospedeiro faz uma pergunta a um DNS, a pergunta é enviada para seu servidor DNS local • Age como um proxy, encaminhando as perguntas para dentro da hierarquia 3 Exemplo • O hospedeiro em cis.poly.edu quer o endereço IP para gaia.cs.umass.edu Consultas recursivas Consulta recursiva: • Transfere a tarefa de resolução do nome para o servidor de nomes consultado Consulta encadeada: • Servidor contatado responde com o nome de outro servidor de nomes para contato • “Eu não sei isto, mas pergunte a este servidor” 4 DNS: armazenando e atualizando registros Uma vez que um servidor de nomes apreende um mapeamento, ele armazena o mapeamento num registro do tipo cache • Registros do cache tornam-se obsoletos (desaparecem) depois de um certo tempo • Servidores TLD são tipicamente armazenados em cache nos servidores de nome locais Mecanismos de atualização e notificação estão sendo projetados pelo IETF • RFC 2136 • http://www.ietf.org/html.charters/dnsind-charter.html Registros do DNS DNS: base de dados distribuída que armazena registros de recursos (RR) formato dos RR: (name, value, type,ttl) • Type = A • name é o nome do computador • value é o endereço IP • Type = NS • name é um domínio (ex.: foo.com) • value é o endereço IP do servidor de nomes autorizados para este domínio • Type = CNAME • name é um “apelido” para algum nome “canônico” (o nome real) www.ibm.com é realmente servereast.backup2.ibm.com • value é o nome canônico • Type = MX • value é o nome do servidor de correio associado com name 5 Camada de aplicação • Exemplo: empresa recém-criada “Network Utopia” • Registrar o nome networkutopia.com num “registrar” (ex.: Network Solutions) • É necessário fornecer ao registrar os nomes e endereços IP do seu servidor nomes autorizados (primário e secundário) • Registrar insere dois RRs no servidor TLD do domínio com: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) • No servidor autorizado, inserir um registro Tipo A para www.networkutopia.com e um registro Tipo MX para networkutopia.com • Como as pessoas obtêm o endereço IP do seu site Web? Inserindo registros no DNS Arquitetura P2P pura • sem servidor sempre ligado • sistemas finais arbitrários se comunicam diretamente • pares estão conectados intermitentemente e mudam de endereços IP Peer-peer • Três tópicos: ▫ distribuição de arquivos ▫ procura de informações ▫ estudo de caso: Skype 6 Distribuição de arquivo: cliente-servidor versus P2P Pergunta: Quanto tempo para distribuir arquivo de um servidor para N pares? us: largura de banda de upload do servidor servidor us arquivo, tamanho F dN uN u1 d1 u2 ui: largura de banda de upload do par i d2 di: largura de banda de download do par i rede (com largura de banda abundante) Tempo de distribuição de arquivo: cliente-servidor servidor • servidor envia N cópias sequencialmente: ▫ tempo NF/us F us dN • cliente i leva um tempo F/di para o download u1 d1 u2 d2 rede (com largura de banda abundante) uN tempo para distribuir F bits a N clientes usando técnica cliente/servidor = dcs = max { NF/u , F/min(d ) } s i aumenta linearmente em N (para N grande) 7 Tempo de distribuição de arquivo: P2P Server • servidor deve enviar F u1 d1 u2 d2 uma cópia: tempo F/us us • cliente i leva tempo F/di rede (com largura de dN para o download banda abundante) u N • NF bits devem ser baixados (agregados) taxa de upload mais rápida possível: us + Σui dP2P = max { F/u , F/min(d ) , NF/(u s i s + Σui) } Cliente-servidor versus P2P: exemplo Taxa de upload cliente = u, F/u = 1 hora, us = 10u, dmin ≥ us 8 Distribuição de arquivos: BitTorrent distribuição de arquivos P2P torrent: grupo de pares trocando pedaços de um arquivo rastreador: verifica pares que participam do torrent obtém lista de pares trocando pedaços par BitTorrent • arquivo dividido em pedaços de 256 KB. • torrent de ajuntamento de pares: ▫ não tem pedaços, mas os acumulará com o tempo ▫ registra com rastreador para obter lista de pares, conecta a subconjunto de pares (“vizinhos”) • ao fazer download, par faz upload de pedaços para outros pares • pares podem ir e vir • quando par tem arquivo inteiro, ele pode (de forma egoísta) sair ou (de forma altruísta) permanecer 9 Enviando pedaços: olho por olho Empurrando pedaços Alice envia pedaços a quatro vizinhos • a qualquer momento, atualmente enviando seus pedaços na velocidade mais alta diferentes pares têm diferentes subconjuntos reavalia 4 maiores a cada 10 s a cada 30 s: seleciona outro par de pedaços de arquivo aleatoriamente, começa a enviar pedaços • periodicamente, um par par recém-escolhido pode se (Alice) pede a cada juntar aos 4 maiores vizinho a lista de pedaços “desafoga” de forma otimista que eles têm • Alice envia requisições para seus pedaços que faltam ▫ mais raros primeiro BitTorrent: (1) Alice “desafoga” Bob de forma otimista (2) Alice um dos quatro maiores provedores de Bob; Bob recíproco (3) Bob torna-se um dos quatro maiores provedores de Alice Com taxa de upload mais alta, pode achar parceiros com melhor negociação e obter arquivo mais rápido! 10 Estudo de caso do P2P: Skype Clientes Skype (SC) • inerentemente P2P: pares de usuários se comunicam. • protocolo proprietário da camada de aplicação (deduzido por engenharia reversa) • sobreposição hierárquica com SNs • índice compara usernames com endereços IP; distribuído por SNs servidor de login Skype supernó (SN) Pares como retransmissores • problema quando Alice e Bob estão atrás de “NATs” ▫ NAT impede que um par de fora inicie uma chamada para um par de dentro da rede • solução: ▫ usando os SNs de Alice e de Bob, o retransmissor é escolhido ▫ cada par inicia a sessão com retransmissão. ▫ pares agora podem se comunicar através de NATs com retransmissão 11 Tarefa: Aplicação P2P 87 • Escolha uma aplicação P2P • Explique em detalhes o funcionamento dessa aplicação. • Entrega: final da aula • Enviar email: [email protected] 12