16
2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas 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 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

Embed Size (px)

Citation preview

Page 1: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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

Page 2: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

2: Camada de Aplicação 2

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, 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

Page 3: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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

Page 4: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

2: Camada de Aplicação 4

Paradigma cliente-servidor (C-S)

Apl. de rede típica tem duas partes: cliente and servidor

aplicaçã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

Page 5: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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.

Page 6: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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

Page 7: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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

Page 8: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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?

Page 9: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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

Page 10: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

2: Camada de Aplicação 10

DNS: Domain Name System

Pessoas: muitos identificadores: CPF, nome, no. de

Passaporte

hospedeiros, 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

Page 11: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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!

Page 12: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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)

Page 13: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

2: Camada de Aplicação 13

Exemplo simples do DNS

hospedeiro 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

Page 14: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

2: Camada de Aplicação 14

Exemplo de DNS

Servidor 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

Page 15: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

2: Camada de Aplicação 15

DNS: consultas iteratadas

consulta 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

Page 16: 2: Camada de Aplicação 1 Capítulo 2: Camada de Aplicação Metas do capítulo: r aspectos conceituais e de implementação de protocolos de aplicação em redes

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