Capítulo 2: Camada de Aplicação
Metas do capítulo:

Mais metas do capítulo
aspectos conceituais e de  protocolos específicos:
implementação de
protocolos de aplicação
em redes
 paradigma cliente
servidor
 modelos de serviço

dns
2: Camada de Aplicação
1
Aplicações e protocolos da camada de aplicação
Aplicação: processos distribuídos
em comunicação
 executem em hospedeiros
no “espaço de usuário”
 trocam mensagens para
implementar aplicação
 p.ex., correio, transf. de
arquivo, WWW
Protocolos da camada de apl.
 uma “parte” da aplicação
 define mensagens trocadas
por apls e ações tomadas
 usam serviços providos por
protocolos de camadas
inferiores
aplicação
transporte
rede
enlace
física
aplicação
transporte
rede
enlace
física
aplicação
transporte
rede
enlace
física
2: Camada de Aplicação
2
Aplicações de rede: algum jargão
 Um processo é um
programa que executa num
hospedeiro.
 2 processos no mesmo
hospedeiro se comunicam
usando communicação entre
processos definida pelo
sistema operacional (SO).
 2 processos em
hospedeiros distintos se
comunicam usando um
protocolo da camada de
apalicação.
 Um agente de usuário
(UA) é uma interface
entre o usuário e a
aplicação de rede.



WWW: browser
Correio:
leitor/compositor de
mensagens
streaming audio/video:
tocador de mídia
2: Camada de Aplicação
3
Paradigma cliente-servidor (C-S)
Apl. de rede típica tem duas
partes: cliente and servidor
Cliente:
 inicia contato com o servidor
(“fala primeiro”)
 tipicamente solicita serviço do
servidor
 para WWW, cliente
implementado no browser; para
correio no leitor de mensagens
Servidor:
 provê ao cliente o serviço
requisitado
 p.ex., servidor WWW envia
página solicitada; servidor de
correio entrega mensagens
aplicação
transporte
rede
enlace
física
pedido
resposta
aplicação
transporte
rede
enlace
física
2: Camada de Aplicação
4
Protocolos da camada de aplicação (cont).
API: interface de
P: como um processo pode
programação de
“identificar”o outro
aplicações
processo com o qual
quer se comunicar?
 define interface entre
 endereço IP do
aplicação e camada de
hospedeiro do outro
transporte
processo
 socket (= tomada) : API
 “número de porta” da Internet
permite que o hospedeiro

2 processos se comunicam
enviando dados para um
socket ou lendo dados de
um socket
receptor determine a
qual processo deve ser
entregue a mensagem
… voltamos mais tarde a este assunto.
2: Camada de Aplicação
5
De que serviço de transporte uma
aplicação precisa?
Perda de dados
 algumas apls (p.ex. áudio)
podem tolerar algumas
perdas
 outras (p.ex., transf. de
arquivos, telnet) requerem
transferência 100%
confiável
Largura de banda
 algumas apls (p.ex.,
multimídia) requerem
quantia mínima de banda
para serem “viáveis”
 outras apls (“apls elásticas”)
conseguem usar qq quantia
de banda disponível
Temporização
 algumas apls (p.ex.,
telefonia Internet, jogos
interativos) requerem
baixo retardo para serem
“viáveis”
2: Camada de Aplicação
6
Requisitos do serviço de transporte de apls comuns
Aplicação
transferência de arqs
correio
documentos WWW
áudio/vídeo de
tempo real
áudio/vídeo gravado
jogos interativos
apls financeiras
Sensibilidade
temporal
Perdas
Banda
sem perdas
sem perdas
sem perdas
tolerante
elástica
elástica
elástica
áudio: 5Kb-1Mb
vídeo:10Kb-5Mb
como anterior
> alguns Kbps
elástica
tolerante
tolerante
sem perdas
não
não
não
sim, 100’s mseg
sim, alguns segs
sim, 100’s mseg
sim e não
2: Camada de Aplicação
7
Serviços providos por protocolos de
transporte Internet
serviço TCP:

orientado a conexão: setup

controle de
congestionamento:
requerido entre cliente,
servidor
 transporte confiável entre
processos remetente e
receptor
 controle de fluxo: remetente
não vai “afogar” receptor
estrangular remetente quando
a rede carregada
 não provê: garantias
temporais ou de banda mínima
serviço UDP:
 transferência de dados não
confiável entre processos
remetente e receptor
 não provê: setup da conexão,
confiabilidade, controle de
fluxo, controle de
congestionamento, garantias
temporais ou de banda
mínima
P: Qual é o interesse em ter um
UDP?
2: Camada de Aplicação
8
Apls Internet: seus protocolos e seus
protocolos de transporte
Aplicação
correio eletrônico
accesso terminal remoto
WWW
transferência de arquivos
streaming multimídia
servidor de arquivo remoto
telefonia Internet
Protocolo da
camada de apl
Protocolo de
transporte usado
smtp [RFC 821]
telnet [RFC 854]
http [RFC 2068]
ftp [RFC 959]
proprietário
(p.ex. RealNetworks)
NSF
proprietário
(p.ex., Vocaltec)
TCP
TCP
TCP
TCP
TCP ou UDP
TCP ou UDP
tipicamente UDP
2: Camada de Aplicação
9
DNS: Domain Name System
Pessoas: muitos
identificadores:



base de dados distribuída

protocolo de camada de aplicação
CPF, nome, no. de
Passaporte
hospedeiros, roteadores
Internet :

Domain Name System:
endereço IP (32 bit) usado p/ endereçar
datagramas
“nome”, e.g.,
jambo.ic.uff.br - usado
por gente
P: como mapear entre
nome e endereço IP?
implementada na hierarquia de
muitos servidores de nomes
permite hospedeiros, roteadores,
servidores de nomes
communicarem para resolver
nomes (tradução endereço/nome)
 note: função imprescindível da
Internet implementada como
protocolo de camada de
aplicação
 complexidade na borda da rede
2: Camada de Aplicação
10
Servidores de nomes DNS
Por quê não centralizar o  Nenhum servidor mantém
todos os mapeamento nomeDNS?
para-endereço IP
 ponto único de falha
servidor de nomes local:
 volume de tráfego
 cada provedor, empresa tem
 base de dados
servidor de nomes local (default)
centralizada e distante
 pedido DNS de hospedeiro vai
primeiro ao servidor de nomes
 manutenção (da BD)
local
Não é escalável!
servidor de nomes autoritativo:


p/ hospedeiro: guarda nome,
endereço IP dele
pode realizar tradução
nome/endereço para este nome
2: Camada de Aplicação
11
DNS: Servidores raíz
 procurado por servidor
local que não consegue
resolver o nome
 servidor raíz:
 procura servidor
autoritativo se
mapeamento
desconhecido
 obtém tradução
 devolve
mapeamento ao
servidor local
 ~ uma dúzia de
servidores raíz no
mundo (+ espelhos)
2: Camada de Aplicação
12
Exemplo simples do DNS
hospedeiro
manga.ic.uff.br requer
endereço IP de
www.cs.columbia.edu
2
3
5
1. Contata servidor DNS local,
pitomba.ic.uff.br
servidor local
2. pitomba.ic.uff.br
pitomba.ic.uff.br
contata servidor raíz, se
necessário
1 6
3. Servidor raíz contata
servidor autoritativo
cs.columbia.edu, se
solicitante
necessário
manga.ic.uff.br
servidor de
nomes raíz
4
servidor autoritativo
cs.columbia.edu
www.cs.columbia.edu
2: Camada de Aplicação
13
Exemplo de DNS
Servidor raíz:
2
 pode não conhecer o
7
servidor de nomes
autoritativo
 pode conhecer
servidor de nomes
intermediário: a quem
contactar para
descobrir o servidor
de nomes autoritativo
servidor de
nomes raíz
6
servidor local
pitomba.ic.uff.br
1
8
3
servidor intermediário
saell.cc.columbia.edu
4
5
servidor autoritativo
solicitante
cs.columbia.edu
manga.ic.uff.br
www.cs.columbia.edu
2: Camada de Aplicação
14
DNS: consultas iteratadas
consulta recursiva:
 transfere a
responsabilidade de
reolução do nome para
o servidor de nomes
cntatado
 carga pesada?
consulta iterada:
2
3
4
7
servidor intermediário
servidor local
pitomba.ic.uff.br
saell.cc.columbia.e
5
6
1 8
 servidor consultado
responde com o nome
de um servidor de
contato
 “Não conheço este
nome, mas pergunte
para esse servidor”
servidor de
nomes raíz
consulta
iterrada
servidor autoritativo
cs.columbia.edu
solicitante
manga.ic.uff.br
www.cs.columbia.edu
2: Camada de Aplicação
15
DNS: uso de cache, atualização de dados
 uma vez um servidor qualquer aprende um
mapeamento, ele o coloca numa cache local
 futuras consultas são resolvidas usando dados
da cache
 entradas no cache são sujeitas a temporização
(desaparecem depois de certo tempo)
ttl = time to live (sobrevida)
 estão sendo projetados pela IETF mecanismos
de atualização/notificação dos dados

RFC 2136

http://www.ietf.org/html.charters/dnsind-charter.html
2: Camada de Aplicação
16
Download

Document