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
Download

DNS: Domain Name System DNS