Você está na página 1de 36

21/05/16

Camada de Aplicação
Mário Meireles Teixeira
UFMA – DEINF
2016

“Redes de Computadores e a Internet”, 6a ed, Kurose & Ross

Protocolos
•  Protocolo:
•  Conjunto de regras e formatos usados para comunicação
entre entidades, a fim de permitir a realização de uma tarefa

•  Um protocolo define:
•  Os tipos de mensagens trocadas (p.ex., de requisição e
resposta)
•  A sequência das mensagens trocadas (regras que definem
quando e como um processo envia/responde a mensagens)
•  A sintaxe e semântica do conteúdo das mensagens

•  A existência de protocolos permite que as aplicações de


rede sejam desenvolvidas de modo independente 2

1
21/05/16

Camadas de Protocolos
•  O software de rede geralmente é organizado em um
conjunto de camadas
•  Cada camada é responsável por certos serviços, oferecendo
à camada superior uma interface bem definida de acesso a
suas operações

Modelo de Referência OSI

2
21/05/16

Modelo OSI
•  Camada Física
•  Definição das características físicas do meio de transmissão:
sinalização, cabeamento, etc.
•  Ex. de protocolos: X.21, Ethernet banda básica
•  Camada de Enlace
•  Transmissão de frames de dados livres de erros entre
computadores diretamente conectados
•  Ex: CSMA/CD (Ethernet), PPP, Wi-Fi, HDLC
•  Camada de Rede
•  Responsável pelo roteamento dos pacotes entre os nós da
rede
•  Ex: IP, X.25, IPX
5

Modelo OSI
•  Camada de Transporte
•  Estabelece um enlace entre duas máquinas para transmissão
de mensagens, não necessariamente na mesma rede
•  Serviço orientado ou não a conexão
•  Ex: TCP, UDP, SPX

•  Camada de Sessão
•  Estabelece a comunicação entre processos em máquinas
diferentes
•  Interações cliente-servidor: RPC, RMI

3
21/05/16

Modelo OSI
•  Camada de Apresentação
•  Permite apresentar os dados em um formato independente
dos utilizados por cada sistema individualmente
•  Criptografia
•  Ex: XDR, ASN.1, NCP

•  Camada de Aplicação
•  Nesta camada são executadas as aplicações dos usuários e
alguns protocolos utilitários de uso geral
•  Ex: ftp, telnet, ICQ, SMTP, X.400, X.500

Protocolos TCP/IP
•  Surgiram com a Internet, para a interligação dos seus
computadores
•  Padrão de fato, em LANs e WANs
•  Funcionam sobre diversas tecnologias de rede (cabos
coaxiais, fibras óticas, linhas telefônicas, redes sem fio...)

•  Características especiais:
•  Uso de padrões abertos
•  Independência de tecnologia de rede
•  Protocolos padronizados – RFCs (rede, transporte e aplicação)
•  Interconexão total – identificação única por dispositivo
(endereço IP)
•  Confirmações (ACK) fim-a-fim
8

4
21/05/16

Arquitetura TCP/IP

Aplicação
(Telnet, FTP, SMTP,
DNS, NFS, SNMP,
HTTP ...)

Transporte
(TCP, UDP)

Internet (IP)

Acesso à rede

Aplicações e Protocolos de Aplicação

Aplicações: processos distribuídos


comunicando-se aplicação

–  executam nos computadores da transporte


rede
rede (hosts) como programas de enlace
física
usuário
–  trocam mensagens para realização
da aplicação
–  vários componentes relacionados
–  ex: email, ftp, Web

Protocolos de aplicação:
–  definem os tipos e sintaxe das aplicação
aplicação
mensagens trocadas transporte
transporte
rede
rede
–  definem a semântica das mensagens enlace
enlace
física
física
–  definem as ações tomadas
–  usam serviços de comunicação das 10
camadas inferiores

5
21/05/16

Aplicações de Rede

Processo: programa execu- Agente usuário: software que


tando num host interage com o usuário, de um
•  dentro do mesmo host: lado e com a rede, de outro
interprocess communi- –  implementa um protocolo
cation (definido pelo SO) da camada de aplicação
–  Web: browser
•  processos executando em –  E-mail: leitor de correio
diferentes hosts se –  streaming audio/video:
comunicam através de
media player
passagem de mensagens,
obedecendo a um protocolo
da camada de aplicação
•  Aplicação vs. Protocolo
11

Arquitetura Cliente-Servidor

Aplicações de rede típicas têm duas


aplicação
partes: cliente e servidor transporte
rede
enlace
física

Cliente: pedido
•  inicia comunicação com o servidor
•  tipicamente solicita serviços do
servidor, resposta
•  Web: cliente implementado no
browser; e-mail: leitor de correio

Servidor: aplicação
transporte
•  fornece os serviços solicitados ao cliente rede
enlace
física
•  ex: servidor web envia a página web solicitada,
servidor de e-mail envia as mensagens, etc. 12
•  um host pode atuar como cliente ou servidor

6
21/05/16

Arquitetura Peer-to-Peer (P2P)

•  A arquitetura P2P utiliza a comunicação direta entre duplas de


hospedeiros conectados alternadamente, denominados pares.

2 - 13

Comunicação entre
processos

•  Processos de aplicação, sockets e protocolo de transporte


subjacente.

7
21/05/16

Comunicação entre
processos

•  Uma aplicação de rede consiste em pares de processos que


enviam mensagens uns para os outros por meio de uma rede.

•  Um processo envia mensagens para a rede e recebe mensagens


dela através de uma interface de software denominada socket.

•  Para identificar o processo receptor, duas informações devem


ser especificadas:

1.  o endereço do hospedeiro (end. IP)


2.  um identificador que especifica o processo receptor no
hospedeiro de destino (porta)

Serviços de transporte disponíveis


para aplicações

•  Transferência confiável de dados

•  Vazão

•  Temporização

•  Segurança

8
21/05/16

Requisitos das Aplicações

Confiabilidade Largura de Banda


•  algumas aplicações (aúdio e •  algumas aplicações (multimídia)
vídeo) podem tolerar alguma impõem um limiar inferior de
perda de dados
banda para funcionar
•  outras aplicações (aplicações inelásticas)
(transferência de arquivos,
telnet, web) exigem
transferência de dados 100% •  outras aplicações (aplicações
confiável elásticas: ftp, correio, web)
Temporização melhoram quando a banda
•  algumas aplicações disponível aumenta, mas podem
(telefonia na Internet, operar com um valor muito
jogos interati-vos) exigem baixo
baixos atraso e jitter para 17
operar

Requisições de Aplicações
comuns da Internet

•  Requisitos de aplicações de rede selecionadas:

9
21/05/16

Aplicações e seus
Protocolos de Transporte

Protocolo HTTP

WORLD WIDE WEB 20

10
21/05/16

World Wide Web


•  Permite o acesso a docu- •  Em 1995, a Web tornou-se
mentos interligados, responsável pela maior parte
espalhados pela Internet
do tráfego na Internet, porém
•  Tornou-se tão popular que
se confunde com a própria foi ultrapassada pelas redes
Internet P2P em 2004
•  1945 - Vannevar Bush: •  Sistema hipermídia em escala
conceito de hipertexto global
•  1965 - Ted Nelson: •  Sistema de nomenclatura:
cunhou o termo
URLs
•  1989 - Tim Berners-Lee:
no CERN, criou a Web e o •  Interações entre os compo-
protocolo http nentes: paradigma C/S
•  1994 – Marc Andreesen: •  A Web funciona sobre dois
desenvolveu o Mosaic; links padrões principais:
para diferentes mídias
–  Linguagem HTML 21
–  Protocolo HTTP

Sistema de Nomenclatura – URLs

•  URLs permitem que os usuários acessem páginas web e outros


serviços como FTP, telnet e notícias, a partir do próprio
navegador:
–  http - Hipertexto (HTML)
–  ftp - Transferência de arquivos
–  file - Acesso a arquivos locais
–  news - Grupos de notícias e artigos
–  gopher - recuperar informações pelo gopher
–  mailto - Enviar e-mail
–  telnet - Login remoto

22

11
21/05/16

Protocolo HTTP
HTTP: hypertext transfer
protocol htt
p req
•  protocolo da camada de PC com htt ues
p t
aplicação da Web Chrome res
pon
se
•  modelo cliente/servidor
–  cliente: browser que
solicita, recebe e st
ue
r eq Servidor
apresenta objetos da Web p nse
htt espo Web com
–  servidor: envia objetos em r
tp Apache
ht
resposta a pedidos

•  HTTP 1.0: RFC 1945 Mac com


•  HTTP 1.1: RFC 2616 Safari
23

A Web e o HTTP

•  Uma página Web é constituída de objetos

•  Um objeto é apenas um arquivo que se pode acessar com


um único URL

•  A maioria das páginas Web é constituída de um arquivo-


base HTML e diversos objetos referenciados

•  O HTTP usa o TCP como seu protocolo de transporte

12
21/05/16

Protocolo HTTP

http: protocolo de http é um protocolo


aplicação sobre TCP “sem estado”:
•  o servidor não mantém
•  cliente inicia conexão TCP informações sobre os pedidos dos
(cria socket) com o servidor clientes
na porta 80
•  servidor aceita uma conexão
Protocolos que mantêm informações
TCP do cliente de estado são complexos:
•  mensagens http são trocadas •  necessidade de organizar infor-
entre o browser (cliente mações passadas
http) e o servidor web •  se ocorrer uma falha, as infor-
(servidor http) mações podem ser perdidas ou
•  A conexão TCP é fechada gerar inconsistências entre o
cliente e o servidor 25
•  baixa escalabilidade

Exemplo de Operação HTTP (1)


Usuário digita a URL: www.deinf.ufma.br/prof/index.html
(referencia 10 imagens)

1a. cliente http inicia conexão


TCP com o servidor http 1b. servidor http no host
(processo) em www.deinf. www.deinf.ufma.br, aguardando
ufma.br, pela porta 80 pela conexão TCP na porta 80,
(default) aceita a conexão, notificando o
cliente
2. cliente http client envia http
request, contendo a URL, 3. servidor http recebe
ao servidor web mensagem de pedido, recupera o
objeto e envia uma http
response, contendo o objeto
solicitado, ao cliente
26
tempo

13
21/05/16

Exemplo (2)

4. servidor http fecha conexão


TCP (http 1.0)

5. cliente http recebe mensagem


de resposta contendo o arquivo
html e o apresenta ao usuário
tempo 5a. ao analisar o arquivo html,
cliente encontra 10 objetos jpeg
referenciados

6. cliente repete Passos 1-5 para


cada um dos 10 objetos jpeg
27

Conexões persistentes e não-


persistentes
Não-persistente Persistente
•  http/1.0: cada objeto deve ser •  modo default para http/1.1
enviado por uma conexão TCP
distinta •  na mesma conexão TCP, são
•  2 RTTs para obter um objeto: recuperados vários objetos
–  estabelecimento de conexão
TCP •  o cliente solicita todos os
–  solicitação e transferência objetos referenciados, tão
do objeto logo ele receba a página HTML
•  cada transferência sofre ainda básica (pipelining)
por causa do mecanismo de
slow-start do TCP •  poucos RTTs, menos slow
start
28

14
21/05/16

Cliente-servidor na Web
(duas camadas)

29

Cliente-servidor na Web
(três camadas)

30

15
21/05/16

Mensagens HTTP: requisição

•  Dois tipos de mensagens HTTP: request, response


•  Formato ASCII (legível para humanos)

linha de pedido
(comandos GET,
POST, … ) GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
linhas de Connection: close
cabeçalho User-agent: Mozilla/5.0
Accept-language: fr

indica fim da (linha em branco)


mensagem 31
Corpo do objeto

Formato da mensagem
HTTP

•  Formato geral de uma mensagem de requisição HTTP

16
21/05/16

Mensagens HTTP: resposta

linha de status
(protocolo
código de status HTTP/1.1 200 OK
frase de status) Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
linhas de Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
cabeçalho Content-Length: 6821
Content-Type: text/html

dados dados dados dados ...


dados, p.ex.,
arquivo html
33

Formato da mensagem
HTTP

•  Formato geral de uma mensagem de resposta HTTP

17
21/05/16

Métodos HTTP

•  GET – Solicita o objeto identificado pela URL


•  HEAD – Obtém informações sobre o objeto sem que o mesmo
seja retornado ao cliente (depuração)
•  POST – Envia informações adicionais ao servidor web (p.ex.,
dados de formulários)
•  OPTIONS – Obtém opções de comunicação disponíveis ou os
requisitos associados ao objeto solicitado
•  PUT – Cria ou modifica um objeto no servidor web
•  DELETE – Remove um objeto do servidor web
•  TRACE – Envia mensagem de teste (loopback) ao servidor
•  CONNECT – Reservado para comunicação com servidores
35
proxy

Códigos de Status
•  1xx – Informational •  4xx – Client Error
–  400 Bad Request
•  2xx – Success –  401 Unauthorized
–  200 OK –  404 Not Found

•  3xx – Redirection •  5xx – Server Error


–  301 Moved Permanently –  503 Service Unavailable
–  304 Not Modified
–  505 HTTP Version Not
–  307 Temporary Redirect Supported

36

18
21/05/16

Cookies

•  Gerados e lembrados pelo servidor (RFC 6265), usados mais


tarde para:
–  Autenticação de usuários
–  Monitoração de suas preferências e/ou escolhas prévias

•  Necessita de quatro componentes:


•  uma linha de cabeçalho de cookie na mensagem de resposta HTTP;
•  uma linha de cabeçalho de cookie na mensagem de requisição
HTTP;
•  um arquivo de cookie mantido no sistema final do usuário e
gerenciado pelo navegador do usuário;
•  um banco de dados de apoio no site. 37

Cookies

38

19
21/05/16

GET Condicional: caches no


cliente
cliente servidor
•  servidor: só envia o objeto
solicitado se sua versão for http request
mais atual que a do cliente If-Modified-Since:
objeto
<date>
não
•  cliente: especifica, na requi- http response modificado
sição HTTP, a data da versão HTTP/1.0
304 Not Modified
armazenada no cache local:
If-Modified-Since: <date>
http request
If-Modified-Since:
•  servidor: resposta não contém <date> objeto
o objeto se a cópia do cliente modificado
estiver atualizada: http response
304 Not Modified HTTP/1.1 200 OK 39
<data>

Caches Web (Servidor Proxy)


Objetivo: atender o cliente sem envolver o servidor Web,
detentor da informação original

•  usuário configura o
browser:
–  acesso à Web é feito
através de um servidor
proxy
•  cliente envia todos os
pedidos http para o proxy:
–  se o objeto existe no
cache, o proxy retorna o
objeto
–  senão, o proxy solicita o
40
objeto ao servidor original
e o envia ao cliente

20
21/05/16

Por que Web Caching?


servidores
•  armazenamento fica “perto” originais
do cliente (p.ex., na mesma Internet
rede) pública
•  menor tempo de resposta
•  reduz o tráfego para
/media/dados/documentos/Disciplinas/
servidores distantes: enlace de acesso
Grad/Redes II/aulas/05_aplicacao.ppt
–  links externos podem ser 1,5 Mbps
caros e facilmente rede
congestionáveis institucional
10 Mbps LAN
•  caches hierárquicos e
cooperativos (NLANR)
•  ICP (RFC 2186)
–  Internet Caching Protocol, cache
suportado pelo Squid institucional 41

Protocolo FTP

TRANSFERÊNCIA DE ARQUIVOS 42

21
21/05/16

FTP – Protocolo de Transferência de


Arquivos

FTP transferência de arquivos


FTP FTP
interface cliente
servidor
de usuário
usuário sistema de
sistema de arquivos remoto
arquivos
local

•  transferência de arquivos de/para um host remoto


•  modelo cliente servidor:
–  cliente: lado que inicia a transferência (em qualquer sentido)
–  servidor: host remoto
•  FTP: RFC 959 (de 1971)
43
•  servidor ftp: porta 21

ftp: controle separado, conexões


de dados
•  cliente ftp contacta o servidor
ftp na porta 21, especificando
TCP como protocolo de
transporte TCP conexão de controle
•  duas conexões TCP paralelas são porta 21
abertas:
–  controle: troca de comandos
e respostas entre cliente e TCP conexão de dados
cliente porta 20 servidor
servidor (controle “out of
FTP FTP
band”)
–  dados: dados trocados com o
servidor (porta 20); não
persistente
•  servidor ftp mantém o estado:
diretório corrente, autenticação 44
anterior

22
21/05/16

ftp: comandos, respostas

Exemplos de comandos: Códigos de retorno:


•  envio de um texto ASCII •  código de status e
sobre canal de controle explicação (como no http)
•  USER username •  331 Username OK,
•  PASS password password required

•  LIST retorna lista de •  125 data connection


already open; transfer
arquivos no diretório
starting
corrente
•  425 Can’t open data
•  RETR filename recupera connection
(obtém) o arquivo
•  452 Error writing file
•  STOR filename armazena
45
o arquivo no host remoto

Correio Eletrônico fila de


saída de mensagem
caixa postal
Três componentes agente
usuário
principais:
servidor
•  agentes de usuário de correio
agente
usuário
•  servidores de correio
•  simple mail transfer SMTP mail
protocol: smtp server agente
usuário
Agente de usuário
SMTP
•  leitor de correio SMTP
•  composição, edição, leitura agente
servidor
usuário
de mensagens de correio

•  ex: Mail, Thunderbird,


Outlook, pine, … agente
usuário
•  mensagens de entrada e de agente
saída são armazenadas no 46
usuário
servidor de correio (smtp)

23
21/05/16

Correio eletrônico: servidores de


correio
agente
Servidores de Correio usuário
•  caixa postal: contém servidor
agente
mensagens que chegaram de correio
usuário
(ainda não lidas) para o
usuário SMTP mail
•  fila de mensagens: contém as server agente
mensagens de correio a ser SMTP usuário
enviadas
•  protocolo smtp: permite aos SMTP
servidores de correio trocar agente
servidor
usuário
mensagens entre eles de correio

–  cliente: servidor de
correio que envia agente
usuário
–  servidor: servidor de agente 47
correio que recebe usuário
•  tratamento de erros

Correio Eletrônico: SMTP [RFC 5321]


•  SMTP usa TCP para transferência confiável de mensagens de
correio do cliente ao servidor, pela porta 25
•  transferência direta: servidor de origem envia para o servidor
de destino; não usa servidores intermediários
•  na sua forma padrão, as mensagens SMTP devem ser forma-
tadas em código ASCII de 7 bits (legado dos primórdios da
Internet) --> codificação/decodificação
•  três fases de transferência:
–  apresentação: troca de endereços de origem/destino
–  transferência de mensagens (via TCP); conexões
persistentes
–  encerramento
•  interação comando/resposta
–  comandos: texto ASCII
–  resposta: código de status e frase de explicação 48

24
21/05/16

SMTP

•  O SMTP transfere mensagens de servidores de correio


remetentes para servidores de correio destinatários:

Exemplo de interação SMTP

S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection 50

25
21/05/16

SMTP: comentários

•  SMTP usa conexões persis- Comparação com http:


tentes
•  http: pull (recuperação)
•  SMTP exige que as mensagens
(cabeçalho e corpo) estejam •  smtp: push (envio)
em ASCII de 7 bits
•  smtp exige que cada msg
esteja em formato ASCII,
•  Algumas seqüências de inclusive o corpo
caracteres não são permi- •  Dados http mantêm formato
tidas nas mensagens (ex., original
CRLF.CRLF). Dados binários
têm que ser codificados em •  http: cada objeto encap-
ASCII sulado na sua própria
mensagem de resposta
•  CRLF.CRLF indica o final da •  smtp: múltiplos objetos são
enviados numa única msg 51
mensagem

Formato das Mensagens


SMTP: protocolo para troca de
mensagens header
linha
RFC 5322: define formato das em branco
linhas de cabeçalho das
mensagens
body
•  linhas de cabeçalho:
–  From: alice@deinf.ufma.br
–  To: bob@icmc.usp.br
–  Subject: Slides de Redes
•  corpo:
–  a mensagem em ASCII,
somente com caracteres 52

26
21/05/16

Formato das Mensagens: extensões multimídia


•  MIME: Multipurpose Internet Mail Extensions – para trans-
mitir textos que não estão no padrão ASCII. Ex: imagens,
outro idioma que não o Inglês
•  linhas adicionais no cabeçalho declaram o tipo de conteúdo

From: alice@crepes.fr
versão MIME To: bob@hamburger.edu
Subject: Picture of yummy crepe.
método usado para MIME-Version: 1.0
codificação (RFC 2045) Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados multimídia:
tipo, subtipo,
base64 encoded data .....
parâmetro
.........................
......base64 encoded data
dados codificados . 53
terminador

Tipos MIME (RFC 2046)


Content-Type: type/subtype; parameters

Text Video
•  text/plain, text/html •  video/mpeg, video/
•  text/plain; quicktime
charset=“ISO-8859-1”
(línguas latinas)
Application
•  dados que precisam ser
Image processados por uma aplicação
•  image/jpeg, image/gif antes de serem apresentados
•  application/msword,
Audio application/octet-stream
(dados binários genéricos)
•  audio/basic (8 bits),
audio/32kadpcm (32 Kbps)
54

27
21/05/16

Tipo Multipart
From: alice@crepes.fr
To: bob@hamburger.edu delimitador
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789

--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain

Dear Bob,
Please find a picture of a crepe.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

base64 encoded data .....


.........................
......base64 encoded data 55
--98766789--

Protocolos de acesso a correio


SMTP, POP3,
HTTP SMTP IMAP, HTTP
agente
agente usuário
usuário

servidor de servidor de
correio de origem correio de destino

•  SMTP: envia emails do servidor de origem para o de destino; e do


agente de usário para o servidor de origem
•  Protocolo de acesso: recupera mensagens do servidor de correio
–  POP: Post Office Protocol [RFC 1939]
•  autorização (agente <--> servidor), download, atualização
–  IMAP: Internet Mail Access Protocol [RFC 3501]
•  maiores recursos (mais complexo)
•  manipulação de caixas postais remotas (criação de pastas, 56
leitura parcial de mensagens, busca, etc.)
–  HTTP: Hotmail, Yahoo, Gmail (http: browser <--> servidor)

28
21/05/16

Protocolo POP3 S: +OK POP3 server ready


C: user alice
fase de autorização S: +OK
•  comandos do cliente: C: pass hungry
–  user: nome do usuário S: +OK user successfully logged on
–  pass: senha
•  respostas possíveis do servidor: C: list
–  +OK S: 1 498
–  -ERR S: 2 912
S: .
fase de transação, cliente: C: retr 1
•  list: lista mensagens e tamanhos S: <message 1 contents>
•  retr: recupera mensagem pelo S: .
número C: dele 1
•  dele: apaga C: retr 2
•  quit S: <message 1 contents>
S: .
•  POP3 não mantém estado entre C: dele 2
sessões dos clientes C: quit 57
S: +OK POP3 server signing off

DNS

SERVIÇO DE NOMES 58

29
21/05/16

DNS: Domain Name System


Domain Name System:
Pessoas: muitos •  base de dados distribuída:
identificadores implementado numa hierarquia de
–  RG, nome, passporte vários servidores de nomes

Hosts da Internet, roteadores: •  protocolo da camada de aplicação:


hosts, roteadores comunicam-se com
–  endereços IP (32 bits) -
servidores de nomes para resolver
usados para endereçar
nomes (tradução nome/endereço)
datagramas
–  função interna da Internet,
–  nomes - usados por
implementada como um protocolo
humanos
da camada de aplicação
–  complexidade na “borda” da rede
•  Como relacionar nomes de –  outros serviços: aliases de host e
hosts com endereços IP? servidor de email, load balancing 59
•  máquinas Unix: Bind, porta 53, udp
•  RFCs 1034, 1035

DNS: Arquitetura
Por que não usar um DNS
centralizado?
•  ponto único de falha servidor de nomes local:
•  volume de tráfego –  cada empresa/instituição tem um
servidor de nomes local (default)
•  base de dados distante –  Consultas dos computadores
•  manutenção locais ao DNS vão primeiro para o
servidor de nomes local
Não tem escalabilidade!
servidor de nomes com autoridade:
–  para um computador: sempre
Solução distribuída, hierárquica: contém o nome e o endereço IP
nenhum servidor tem todos os daquele computador
mapeamentos de nomes para –  muitos servidores de nomes locais
endereços IP também são authoritative 60

30
21/05/16

DNS: uma base de dados distribuída e


hierárquica
Root DNS Servers

… …

.com DNS servers .org DNS servers .edu DNS servers

pbs.org poly.edu umass.edu


yahoo.com amazon.com
DNS servers DNS servers DNS servers
DNS servers DNS servers

Cliente necessita do end. IP para www.amazon.com


1a aproximação:
•  cliente pesquisa no servidor raiz (root) sobre servidor DNS de ‘.com’
•  cliente pesquisa no servidor DNS ‘.com’ sobre servidor DNS de amazon.com
•  cliente pesquisa no servidor DNS de amazon.com sobre endereço IP de
www.amazon.com

Servidores de Nomes Raiz


•  Contactados pelos servidores de nomes locais quando estes não
conseguem resolver um nome
•  Funcionalidades:
–  buscam servidores de nomes com autoridade se o
mapeamento do nome não for conhecido;
–  Obtêm o mapeamento nome à IP;
–  retornam o mapeamento para o servidor de nomes local.

c. Cogent, Herndon, VA (5 other sites)


d. U Maryland College Park, MD k. RIPE London (17 other sites)
h. ARL Aberdeen, MD
j. Verisign, Dulles VA (69 other sites ) i. Netnod, Stockholm (37 other sites)

e. NASA Mt View, CA m. WIDE Tokyo


f. Internet Software C. (5 other sites)
Palo Alto, CA (and 48 other sites)

a. Verisign, Los Angeles CA


(5 other sites)
b. USC-ISI Marina del Rey, CA
l. ICANN Los Angeles, CA
(41 other sites)
g. US DoD Columbus,
62
OH (5 other sites)

31
21/05/16

Servidores TLD e Authoritative

Servidores Top-level domain (TLD):


•  respondem pelos domínios com, org, net, edu, aero, jobs, museums e todos
os domínios top-level de países: br, uk, fr, cn, jp
•  Empresa Network Solutions mantém servidores TLD para domínio .com
•  Instituição Educause mantém servidores TLD para .edu
•  no Brasil, a RNP mantém servidores TLD para Universidades e instituições
de pesquisa: edu.br, br

Servidores DNS com Autoridade (Authoritative):


•  fornecem mapeamentos ‘com autoridade’ dos nomes de hosts da
organização para endereços IP
•  administrados pelas próprias organizações ou por um provedor de
63
serviços (ISP)

Servidores de Nomes Locais

•  Oficialmente, não pertecem à hierarquia do DNS


•  Cada provedor (residencial, empresarial, universidades) possui
um servidor DNS local
•  também chamado de ‘default name server’

•  Sempre que um host faz uma pesquisa de nomes, esta é


enviada primeiramente ao servidor DNS local:
•  este possui uma cache com pares de traduções [nome, endereço]
recentes (pode estar desatualizada!)
•  DNS local funciona como um proxy, repassando a pesquisa para cima, na
hierarquia, caso não possua a resposta
64

32
21/05/16

DNS: exemplo de servidor de nomes


TLD: br
resolução de nomes
Host pc01.deinf.ufma.br quer o 2 4
endereço IP de xingu.icmc.usp. 5 3
br

1. contacta seu servidor DNS local,


caetano.deinf. ufma.br servidor DNS local: servidor de nomes
caetano.deinf.ufma.br com autoridade:
2. caetano.deinf.ufma.br contacta o
usp.br
servidor top-level do domínio
br, se necessário 1 6

3. o servidor TLD br contacta o


servidor de nomes com autori-
dade do domínio usp.br, se
necessário solicitante: alvo: 65
pc01.deinf.ufma.br xingu.icmc.usp.br

DNS: exemplo servidor de nomes


TLD: br

4. o servidor de nomes usp.br 2 6


contacta o servidor de 7 3
nomes local do domínio
icmc.usp.br, se necessário

servidor DNS local:


O Servidor top-level: caetano.deinf.ufma.br servidor com autoridade:
•  pode não conhecer o servidor usp.br
4 5
de nomes local para um certo
1 8
nome
•  neste caso, pesquisa no servidor
de nomes com autoridade do Servidor DNS local:
domínio superior icmc.usp.br

solicitante:
pc01.deinf.ufma.br 66

alvo:
xingu.icmc.usp.br

33
21/05/16

DNS: consultas iterativas e


recursivas servidor de nomes
TLD br
consulta recursiva:
2 consulta
•  transfere a tarefa de iterativa
resolução do nome para o 3
servidor de nomes 4
consultado
•  mais mensagens 7

servidor de nomes local servidor de nomes autoritativo


consulta iterativa: caetano.deinf.ufma.br usp.br

•  servidor contactado 5 6
1 8
responde com o nome de
outro servidor de nomes
para contato servidor de nomes local
icmc.usp.br
•  diminui a carga na rede e computador solicitante
nos servidores pc01.deinf.ufma.br

67
xingu.icmc.usp.br

DNS: caching
•  Quando um servidor de nomes aprende um mapeamento,
ele o guarda em sua cache
•  entradas na cache são apagadas depois de um tempo (TTL)
•  tipicamente, servidores TLD são guardados na cache dos DNS’s
locais
•  evita visitar os servidores Raiz com frequência

•  Entradas na cache podem ficar desatualizadas


•  tradução nomeàendereço é best effort
•  se um host muda seu endereço, pode levar um tempo até que
toda a Internet fique sabendo (TTLs expirem)

•  RFC 2136 define os mecanismos de update/notificação do


DNS 68

34
21/05/16

Registros DNS
DNS: base de dados distribuída que armazena registros de recursos (RR)

RR format: (name, value, type, ttl)

type=A type=CNAME
§  name é o nome do host §  name é um “apelido”
§  value é o endereço IP §  value é o nome “canônico” (real)
§  www.deinf.ufma.br é de fato
type=NS www.caetano.deinf.ufma.br
•  name é um domínio (p.ex.,
deinf.ufma.br)
•  value é o hostname do type=MX
servidor de nomes com §  value é o nome de um
autoridade para este domínio 69
servidor de nomes associado
com name

DNS: protocolo e mensagens


Protocolo DNS: mensagens de consulta e resposta , ambas com o mesmo formato

2 bytes 2 bytes

Cabeçalho:
identification flags
•  identificação: número de 16 bits
identifica consulta; resposta usa o # questions # answer RRs
mesmo número
# authority RRs # additional RRs

•  flags: questions (variable # of questions)


–  consulta ou resposta
–  recursão desejada
answers (variable # of RRs)
–  recursão disponível
–  resposta é autoritativa
authority (variable # of RRs)

70
additional info (variable # of RRs)

35
21/05/16

DNS: protocolo e mensagens


2 bytes 2 bytes

identification flags

# questions # answer RRs

Campos name e type # authority RRs # additional RRs


a ser consultados
questions (variable # of questions)

RRs de resposta
a uma consulta answers (variable # of RRs)

registros para authority (variable # of RRs)


servidores autoritativos
additional info (variable # of RRs)
informação adicional
que pode ser útil 71

P2P

PEER-TO-PEER 72

36

Você também pode gostar