160 likes | 260 Views
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. Capítulo 2: Camada de Aplicação. Aplicação: processos distribuídos em comunicação
E N D
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 Capítulo 2: Camada de Aplicação 2: 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 Aplicações e protocolos da camada de aplicação 2: Camada de Aplicaçã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 Aplicações de rede: algum jargão 2: Camada de Aplicação
Apl. de rede típica tem duas partes: cliente and servidor resposta pedido aplicação transporte rede enlace física aplicação transporte rede enlace física Paradigma cliente-servidor (C-S) 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 2: Camada de Aplicação
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 Protocolos da camada de aplicação (cont). … voltamos mais tarde a este assunto. 2: Camada de Aplicação
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” De que serviço de transporte uma aplicação precisa? 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
Requisitos do serviço de transporte de apls comuns Sensibilidade temporal não não não sim, 100’s mseg sim, alguns segs sim, 100’s mseg sim e não Aplicação transferência de arqs correio documentos WWW áudio/vídeo de tempo real áudio/vídeo gravado jogos interativos apls financeiras Perdas sem perdas sem perdas sem perdas tolerante tolerante tolerante sem perdas Banda elástica elástica elástica áudio: 5Kb-1Mb vídeo:10Kb-5Mb como anterior > alguns Kbps elástica 2: Camada de Aplicação
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? Serviços providos por protocolos de transporte Internet 2: Camada de Aplicação
Apls Internet: seus protocolos e seus protocolos de transporte Protocolo da camada de apl smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietário (p.ex. RealNetworks) NSF proprietário (p.ex., Vocaltec) Protocolo de transporte usado TCP TCP TCP TCP TCP ou UDP TCP ou UDP tipicamente UDP Aplicação correio eletrônico accesso terminal remoto WWW transferência de arquivos streaming multimídia servidor de arquivo remoto telefonia Internet 2: Camada de Aplicação
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 resolvernomes (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 DNS: Domain Name System 2: Camada de Aplicação
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! Servidores de nomes DNS 2: Camada de Aplicação
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) DNS: Servidores raíz 2: Camada de Aplicação
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 servidor local pitomba.ic.uff.br Exemplo simples do DNS servidor de nomes raíz 2 4 3 5 servidor autoritativo cs.columbia.edu 1 6 solicitante manga.ic.uff.br www.cs.columbia.edu 2: Camada de Aplicação
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 servidor local pitomba.ic.uff.br servidor intermediário saell.cc.columbia.edu Exemplo de DNS servidor de nomes raíz 6 2 3 7 5 4 1 8 servidor autoritativo cs.columbia.edu solicitante manga.ic.uff.br www.cs.columbia.edu 2: Camada de Aplicação
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” servidor local pitomba.ic.uff.br servidor intermediário saell.cc.columbia.edu DNS: consultas iteratadas servidor de nomes raíz consulta iterrada 2 3 4 7 5 6 1 8 servidor autoritativo cs.columbia.edu solicitante manga.ic.uff.br www.cs.columbia.edu 2: Camada de Aplicação
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 DNS: uso de cache, atualização de dados 2: Camada de Aplicação