2: Camada de Aplicação 1
Capítulo 2: Camada de AplicaçãoMetas do capítulo: aspectos conceituais e
de implementação de protocolos de aplicação em redes paradigma cliente
servidor modelos de serviço
Mais metas do capítulo protocolos específicos:
dns
2: Camada de Aplicação 2
Aplicações e protocolos da camada de aplicaçãoAplicaçã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, WWWProtocolos 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çãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
2: Camada de Aplicação 3
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 4
Paradigma cliente-servidor (C-S)Apl. de rede típica tem duas
partes: cliente and servidoraplicaçãotransport
erede
enlacefísica
aplicaçãotransporte
redeenlacefísica
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
pedido
resposta
2: Camada de Aplicação 5
Protocolos da camada de aplicação (cont).API: interface de
programação de aplicações
define interface entre aplicação e camada de transporte
socket (= tomada) : API da Internet 2 processos se
comunicam enviando dados para um socket ou lendo dados de um socket
P: como um processo pode “identificar”o outro processo com o qual quer se comunicar? endereço IP do
hospedeiro do outro processo
“número de porta” - permite que o hospedeiro receptor determine a qual processo deve ser entregue a mensagem… voltamos mais tarde a este assunto.
2: Camada de Aplicação 6
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
Temporização algumas apls (p.ex.,
telefonia Internet, jogos interativos) requerem baixo retardo para serem “viáveis”
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
2: Camada de Aplicação 7
Requisitos do serviço de transporte de apls comuns
Aplicação
transferência de arqscorreio
documentos WWWáudio/vídeo de
tempo realáudio/vídeo gravado
jogos interativosapls financeiras
Perdas
sem perdassem perdassem perdastolerante
tolerantetolerantesem perdas
Banda
elásticaelásticaelásticaáudio: 5Kb-1Mbvídeo:10Kb-5Mbcomo anterior> alguns Kbpselástica
Sensibilidade temporal
nãonãonãosim, 100’s mseg
sim, alguns segssim, 100’s msegsim e não
2: Camada de Aplicação 8
Serviços providos por protocolos de transporte Internet
serviço TCP: orientado a conexão: setup
requerido entre cliente, servidor
transporte confiável entre processos remetente e receptor
controle de fluxo: remetente não vai “afogar” receptor
controle de congestionamento: 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 9
Apls Internet: seus protocolos e seus protocolos de transporte
Aplicação
correio eletrônicoaccesso terminal remoto
WWW transferência de arquivos
streaming multimídia
servidor de arquivo remototelefonia Internet
Protocolo da camada de apl
smtp [RFC 821]telnet [RFC 854]http [RFC 2068]ftp [RFC 959]proprietário(p.ex. RealNetworks)NSFproprietário(p.ex., Vocaltec)
Protocolo de transporte usado
TCPTCPTCPTCPTCP ou UDP
TCP ou UDPtipicamente UDP
2: Camada de Aplicação 10
DNS: Domain Name SystemPessoas: muitos
identificadores: CPF, nome, no. de
Passaportehospedeiros, roteadores
Internet : 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?
Domain Name System: base de dados distribuída
implementada na hierarquia de muitos servidores de nomes
protocolo de camada de aplicação 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 11
Servidores de nomes DNS Nenhum servidor mantém
todos os mapeamento nome-para-endereço IP
servidor de nomes local: cada provedor, empresa tem
servidor de nomes local (default) pedido DNS de hospedeiro vai
primeiro ao servidor de nomes local
servidor de nomes autoritativo: p/ hospedeiro: guarda nome,
endereço IP dele pode realizar tradução
nome/endereço para este nome
Por quê não centralizar o DNS?
ponto único de falha volume de tráfego base de dados
centralizada e distante manutenção (da BD)
Não é escalável!
2: Camada de Aplicação 12
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 13
Exemplo simples do DNShospedeiro
manga.ic.uff.br requer endereço IP de www.cs.columbia.edu
1. Contata servidor DNS local, pitomba.ic.uff.br
2. pitomba.ic.uff.br contata servidor raíz, se necessário
3. Servidor raíz contata servidor autoritativo cs.columbia.edu, se necessário
solicitantemanga.ic.uff.br
www.cs.columbia.edu
servidor de nomes raíz
servidor autoritativocs.columbia.edu
servidor localpitomba.ic.uff.br
1
23
45
6
2: Camada de Aplicação 14
Exemplo de DNSServidor raíz: pode não conhecer o
servidor de nomes autoritativo
pode conhecer servidor de nomes intermediário: a quem contactar para descobrir o servidor de nomes autoritativo
solicitantemanga.ic.uff.br
www.cs.columbia.edu
servidor localpitomba.ic.uff.br
1
23
4 5
6
servidor autoritativocs.columbia.edu
servidor intermediáriosaell.cc.columbia.edu
7
8
servidor de nomes raíz
2: Camada de Aplicação 15
DNS: consultas iteratadasconsulta recursiva: transfere a
responsabilidade de reolução do nome para o servidor de nomes cntatado
carga pesada?
consulta iterada: servidor consultado
responde com o nome de um servidor de contato
“Não conheço este nome, mas pergunte para esse servidor”
1
23
4
5 6
7
8
consulta iterrada
servidor de nomes raíz
servidor localpitomba.ic.uff.br
servidor intermediáriosaell.cc.columbia.edu
servidor autoritativocs.columbia.edusolicitante
manga.ic.uff.br
www.cs.columbia.edu
2: Camada de Aplicação 16
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
Top Related