830 likes | 972 Views
Nível Aplicação - Objetivo. Estudar aspectos conceituais e de implementação de aplicações de rede – a razão de ser das redes, o interesse final do usuário. Nível Aplicação - Roteiro. Introdução DNS Correio Eletrônico WWW Multimídia: Streaming de Audio e Vídeo, Teleconferência
E N D
Nível Aplicação - Objetivo Estudar aspectos conceituais e de implementação de aplicações de rede – a razão de ser das redes, o interesse final do usuário. Nível Aplicação
Nível Aplicação - Roteiro • Introdução • DNS • Correio Eletrônico • WWW • Multimídia: Streaming de Audio e Vídeo, Teleconferência • Entrega de conteúdo: CDN, P2P Nível Aplicação
Introdução • Novas aplicações não param de surgir: • Correio eletrônico, mensagem instantânea, FTP, WWW (Navegação Web), Compartilhamento de arquivo P2P, Telefonia (VoIP), video-conferência, Redes Sociais, e-commerce, m-commerce, Redes Espaciais, Jogos .... • Cite a aplicação mais recente que você conhece: Shazam, 99Taxis, Moovit, GoogleTV.... • Caminhamos em direção à Computação Ubíqua: “A interação homem-máquina será “invisível” no sentido de não ser notada, ainda que seja perceptível, através de um dispositivo qualquer.” Nível Aplicação
Papel da Aplicação • O Nível Aplicaçãoalém de conter o trabalho final de interesse do usuário, também define protocolos para suporte às aplicações finais. • Questões típicas: • Como realizar com eficiência a tarefa que se propõe? • Que protocolo será utilizado para realizar esta tarefa? • Como simplificar para o usuário a interface? • Protocolos de suporte no nível de aplicação não são um fim em si mesmos, mas suportam trabalhos finais. • Exemplo de protocolos de suporte: DNS, Protocolos de Segurança, Protocolos de Gerência de Redes. Nível Aplicação
O que é necessário definir ? • Um protocolo do nível Aplicação define: • Tipos de mensagens trocadas: requisição e resposta; • Sintaxe dos vários tipos de mensagens; • Semântica dos campos; • Regras: quando e como um processo envia mensagens e responde mensagens (sincronização). Nível Aplicação
DNS - DomainName System Porque um Sistema de Nomes? • As pessoas trabalham melhor com nomes do que com números; os computadores trabalham melhor com números, assim é necessário fazer a tradução nome-número. • NA ARPANET havia o arquivo hosts.txt. (Ainda tem no Linux). Estratégia que não seria possível hoje... Que tal um controle centralizado? • Já em 84 nascia uma especificação para resolver este problema (RFC 882). Nível Aplicação
O que é DNS? • DNSé um banco de dados distribuído. Cada segmento local controla sua porção e disponibiliza um banco para toda a rede num esquema cliente-servidor. • Servidor: Torna disponível informação local de nomes. • Cliente: contém os resolvedores – enviam perguntas pela rede aos servidores de nome. • A estrutura deste banco de dados é hierárquica. Nível Aplicação
Estrutura hierárquica - 1 Cada domínio é particionado em sub-domínios, que também são particionados, e assim por diante. As folhas não contêm sub-domínios (contém uma ou várias máquinas). Há dois tipos de domínio de nível superior: Genéricos e Países. (Há ~ 250). Nível Aplicação
Estrutura hierárquica - 2 Servidores de nomes Raiz são replicados: controlado pelo ICANN (Internet Coporation for Assigned Names and Numbers); Há 13 servidores raíz no mundo. Nível Aplicação
Zonas- Divisão do Espaço de Nomes • Teoricamente um mesmo servidor de nomes poderia servir toda a Internet, ou um domínio de primeiro nível. Problemas: • Se este servidor parasse, a Internet pararia... • Sobrecarga neste servidor; • Banco de dados centralizado distante; • - Manutenção; • O espaço de nomes foi dividido em zonas. Cada zona tem uma parte da árvore e servidores de nomes com informação (autoridade) sobre aquela zona; A zona é a parte do domínio que não foi delegada a outros. Nível Aplicação
Ilustrando Divisão em Zonas Na figura nota-se que há um servidor para washington.edu que cuida de eng.washington.edu mas não de cs.washington.edu que é uma zona separada com seus próprios servidores de nome. Nível Aplicação
Processo de pesquisa DNS 1) Cliente pergunta endereço para seu servidor de nomes. 2) Se o servidor de nomes do cliente sabe responder (cache), o faz imediatamente; 3) Caso contrário, pergunta ao servidor raíz. 4) O servidor raíz, indica o servidor de 1o. Nível adequado (Referral) 5) O servidor local recebe o referral, e pergunta ao servidor de 1o. Nível. Este indica o servidor de 2o. Nível (referral). 6) Assim sucessivamente, até chegar ao servidor da máquina pesquisada. Este último dá a resposta final ao servidor de nomes do cliente, que finalmente responde ao cliente. Nível Aplicação
Ilustração de pesquisa DNS Vide slide 11 com os servidores selecionados Nível Aplicação
Caching Os servidores de nome armazenam a informação obtida em caches; em uma próxima consulta não precisam mais ir à luta na Internet, recuperando localmente a informação; Resposta Non-Authoritative: vem do cache local; Resposta Authoritative: recuperada de servidor-autoridade. O tempo de vida de uma informação no cache, TTL (Time to live), controla o momento em que o servidor deve buscar novamente na Internet. TTL curto: vantagem - pegar sempre dados corretos na Internet; desvantagem - gasta banda, sobrecarrega servidores e degrada o desempenho. Nível Aplicação
Registros de Recursos O DNS mapeia nomes de domínios em registros de recursos. Contém informações relativas ao domínio. Um registro de recurso é representado por 5 campos: Nome_DomínioTempo_de Vida Classe TipoValor Nome_Domínio: domínio ao qual o registro se aplica Tempo_de Vida: tempo que indica estabilidade do registro. Alto (Ex:86400-segundos do dia) ou baixo (60-segundos). Neste ultimo caso muito volátil. Classe: IN – Informações relacionadas a Internet Tipo: Tipo do registro (descritos nas próximas telas) Valor: Semântica depende do tipo de registro Nível Aplicação
Tipos de Registros de Recursos Existem os seguintes diferentes tipos de registros: Nível Aplicação
Registros NS e A • NS – Name Server • Especifica o servidor de nomes para o domínio. Cada servidor primário ou secundário deve ser declarado por este registro. • O domínio comp.ita.br tem como registro NS: • comp.ita.br. IN NSita-r.ita.br. • Se houvesse um secundário, haveria um registro como • comp.ita.br.IN NS nome2.ita.br. • A – Address • É o registro que relaciona IP-Nome. • ita-r.ita.br. IN A 161.24.23.2 • comp.ita.br. IN A 161.24.13.161 • joanaIN A 161.24.2.34 Nível Aplicação
Correio Eletrônico A maior força da comunicação na Internet. O Sistema de Correio iniciado na ARPANET, por um grupo de estudantes de Ciência da Computação, que tornou-se a RFC 822, sobrepujou um Sistema Internacional aprovado por empresas de telecomunicações, governo e setores da informática, o padrão X.400. O número de mensagens enviadas eletronicamente por dia superou o correio convencional há muitos anos. Symantec Report Finds Spam Accounts for 73 Percent of June-2011 Email 2013: ... “Spam volume continued to decrease, with 69% of all email being spam.” Nível Aplicação
Arquitetura e Serviços • Sistemas de mensagem eletrônica compõem-se de 2 sub-sistemas: • Agente usuário: Permite interação com sistema de correio, cria o ambiente para que o usuário envie e recebe e-mail. • Agente de transferência de mensagem: Move a mensagem da origem ao destino; normalmente rodando em background (os chamados daemons), são processos do sistema que estão sempre disponíveis. Utilizam o protocolo • SMTP (SimpleMailTransferProtocol). Nível Aplicação
Agente Usuário • Leitor de e-mail: Thunderbird, Outlook, Gmail, etc... • Manipulamcaixas de correio dos usuários, oferecendoopçõesamigáveisparafacilitar o gerenciamento de msgs: • Disposição de mensagens; • Respostasautomáticas; • Agente de férias; • Bloco de assinatura. • SPAMs: o agente pode separar o que provavelmente é lixo; • Botnet: coleção de computadoresinfectadoscapazes de gerarSpamsmaisdifíceis de seremdetectados; Nível Aplicação
Agentes de Transferência de Msg • Utilizam o protocolo SimpleMailTransferProtocol. O protocolo de e-mail da Internet. • Simples de fato: • Cliente solicita conexão TCP na porta 25 do destino; • Servidor ouve esta porta, aceita conexão, copia as mensagens, coloca nas mailboxes (Caixas de Correio) apropriadas; • Se o servidor não estiver preparado para aceitar conexões, o cliente tenta mais tarde. • Agentes de usuário apresentam aos usuários uma visão do conteúdo de suas mailboxes. Nível Aplicação
Arquitetura do sistema de e-mail Há distinção entre o envelope e o conteúdo. O envelope tem a informação suficiente para transportar a mensagem. O conteúdo é separado entre cabeçalho e corpo. Nível Aplicação
Formato de Mensagens Inicialmente só se permitia texto no corpo, depois houve demanda por outros formatos, até se definir um padrão: MIME (Multipurpose Internet MailExtensions) que permite enquadrar as diferentes informações transportadas. Tipos de conteúdo MIME e subtipos Nível Aplicação
Entrega Final Normalmente, o agente de usuário não está na mesma máquina que o agente de transferência, que está on-line o tempo todo. Há protocolos para a remessa final: IMAP ou POP3. Webmail: O agente de usuário é uma interface do usuário fornecida por páginas Web. Quando o usuário acessa a página do servidor web de e-mail do provedor, se loga e o servidor encontra a caixa de correio daquele usuário, montando uma página web com o conteúdo da caixa e a envia ao navegador (provavelmente incluem JavaScripts) Nível Aplicação
World Wide Web - www • Estrutura arquitetônica que permite acessar documentos em milhões de máquinas pela Internet. Para muitos é sinônimo de Internet. • A idéia de “teia” de documentos ligados (Berners-Lee) teve a primeira demonstração pública em 1991. • A idéia ganhou interface gráfica (Andreessen em 1993 com o Mosaico), que em 1994 criou a Netscape; • Criou-se o W3C – World Wide Web Consortium em 1994, padronizaram-se protocolos e ... explodiu! • A era ponto com: período onde empresas de web passaram a valer milhões (ou bilhões) – Google, Facebook, Amazon... Nível Aplicação
Modelo cliente-servidor • Cliente: solicita pedido de conexão TCP com a máquina onde está a página e envia mensagem solicitando a página. • Servidor: Ouve a porta TCP 80 aguardando pedidos de conexão. A conexão é estabelecida, o servidor manda a resposta com a página solicitada. A seguir libera a conexão. Protocolo para solicitação-resposta para buscar páginas: HTTP (HyperTextTransferProtocol). • É necessário um mecanismo para nomear e localizar páginas de forma única => URL. Nível Aplicação
URL URL – Uniforme Resource Locator – Traz a identificação da página da seguinte maneira: http://www.comp.ita.br/institucional/departamentos.htm Que deve ser interpretado: • http-> protocolo • www.comp.ita.br-> nome DNS da máquina onde está o documento • institucional/departamentos.htm-> nome do caminho: subdiretório e arquivo com a página de interesse. HTML – HyperText Markup Language– Linguagem padronizada com a qual são escritas as páginas de maneira a serem interpretadas pelos navegadores. Nível Aplicação
Passos do Browser Quando o usuário clica em uma página desejada: • O browser determina a URL; • O browser pede ao DNS o IP da máquina desejada (www.ita.br); • DNS responde com o IP (161.24.23.160); • O browser solicita conexão TCP na porta 80 da máquina encontrada; • O browser envia um GET do arquivo desejado; • A máquina responde enviando o arquivo desejado; • Se houver outras URLs na página, busca todas. • O browser exibe o texto e a seguir as imagens do arquivo. • A conexão TCP é liberada se não houver outras solicitações em curto período.; Nível Aplicação
Navegador no cliente Se HTML, exibiçãodiretapelointerpretador do browser. O servidorretorna o tipodapágina, se for um tipointerno, sabecomoexibir a página: associatipo a visualizador. Plug-in: módulo de códigoquenavegadorbusca e instalacomoextensão do navegador; Aplicaçãoauxiliar: programacompletoexecutadocomoprocessoseparado; ex: powerPoint Nível Aplicação
Páginas dinâmicas (1) O modelo era estático: solicita-se um arquivo, servidor o retorna. Atualmente deseja-se que o conteúdo seja gerado por demanda ao invés de armazenado em disco e/ou gerado ao rodarem aplicações e serviços. Tem acontecido que grande parte dos dados importantes está no servidor, podendo ser acessado de qualquer parte, sem precisar aplicações específicas no cliente => É necessário apenas acesso Web - apoiando a idéia de computação em nuvem. Nível Aplicação
Páginas dinâmicas (2) • Ex: Serviço de exibição de mapa • Usuário pede mapa dado endereço do local; • Programa no servidoracessa BD, gerapáginasolicitada; • Retornapáginaaocliente; • Clientequer zoom: programa no clienteinterage c/ user; • Para atender as solicitaçõespodem ser necessáriosmais dados; • Capturam-se dados adicionais do BD; • Retorna resposta. Nível Aplicação
Páginas dinâmicas (3) • Possíveis implementações no Servidor: • CGI (Common Gateway Interface) – API com interface para que servidores Web falem com scripts (RFC 3875); • PHP (HypertexPreprocessor) – Linguagem embute scripts na página HTML; mais fácil e simples que CGI; • JSP (JavaServerPages) – escrito em Java semelhante a PHP • ASP.NET (Activer Server Pages.NET) versão da Microsoft. • NoCliente: quando é necessário interagir diretamente c/ user: • JavaScript –linguagem de nível muito alto, a mais popular; • VBScript – baseado em Visual Basic p/ plataforma Windows; • Applets – miniaplicativos compilados para JVM (Java Virtual Machine), rápidos e portáveis (Sun); • ActiveX – Microsoft, os mais rápidos. Nível Aplicação
HTTP • HTTP: HypertexTransferProtocol: protocolo que define pedidos e respostas entre cliente/servidor. Pela simplicidade lembra o SMTP. • Protocolo consistindo de: • Conjunto de solicitações dos browsers para os servidores • Conjunto de respostas no sentido contrário. Cabeçalhos em ASCII e conteúdo em formato MIME. • Protocolo em expansão, utilizado cada vez mais indiscriminadamente: players usam HTTP para solicitar informações dos albúns, antivírus usam HTTP para baixar atualizações, etc. Nível Aplicação
Streaming de Áudio e Vídeo • A partir de 2000 áudio e vídeo na Internet cresceram, pois: • Computadores mais poderosos; • Grande largura de banda na Internet e em sua borda. • A maior parte do tráfegoda Internet já é vídeo – ¼ dos usuáriosda Internet visitam o YouTube diariamente. • Como largura de bandaestásuficiente, o desafioainda reside no atraso e jitter . • Serãoabordados 3 casos de crescentedificuldade: • Streaming de mídiaarmazenada (ex: youtube); • Streaming de mídiaao vivo (radio via Internet e IPTV); • ConferênciaInterativa de áudio e vídeo (ex: skype). Nível Aplicação
Streaming de Mídia Armazenada (1) Assistir vídeos na Internet: VoD (VideoonDemand) Na resposta é enviado o arquivo do tipo MIME video/mp4 O navegador salva o filme em um arquivo auxiliar e passa o nome do arquivo ao player. Problema: grande demora inicial para exibição do filme. Nível Aplicação
Streaming de Mídia Armazenada (2) A página vinculada ao filme não é o arquivo do filme real. O Meta-arquivo contém descritores do arquivo, como ex:rtps://joes-movie/movie-0025.mp4 Player pede o filme à URL indicada: pode mostrar o filme antes de totalmente baixado (navegador não mais no loop). Nível Aplicação
Streaming de Mídia ao Vivo (1) • Técnicas utilizadas: • Gravar programas em disco (ex: meia hora depois) – idem streaming de mídia armazenada (quase ao vivo); • Enviar conteúdo ao vivo – streaming de mídia contínuo. Manter no cliente um buffer grande o suficiente, servidor envia em velocidade maior que da reprodução. atraso inicial de uns 10s, mas suaviza o jitter, . • Multicasting: 1 só stream para N clientes- problema: nem todos os roteadores da Internet usam multicast. Dentro de um provedor que garanta, assim por ex, IPTV dentro do escopo de uma empresa pode usar multicasting com seus clientes. Nível Aplicação
Streaming de Mídia ao Vivo (2) Com poucos clientes e áudio, unicast pode ser tolerado. Se há banda razoável, qualquer um pode montar uma estação de rádio: Nível Aplicação
Teleconferência em Tempo Real (1) Início: voz na rede pública comutada 1999: voz e dados, meio a meio; 2002: dados – uma grandeza a mais que voz. Então, porque a rede de dados não absorve a rede telefônica? Voz consome pouca banda =>VoIP – Voz sobre IP. Pehr Anderson, em projeto de aula no curso do MIT criou protótipo de voz sobre a rede de dados, tirou B na matéria mas criou a empresa NBX e em 1999 a vendeu por US$90 milhões. Teleconferência em T Real acrescenta o requisito latência baixa aos casos anteriores. Buffer de 10s não resolve... Nível Aplicação
Teleconferência em Tempo Real (2) • Escolhas devem ser feitas para garantir a latência (em muitos casos não resolvem, devido a atrasos de propagação fixo) • UDP; • Codificadores e Decodificadores rápidos; • Mecanismos de QoS na camada de rede: • Serviços Diferenciados; pacotes VoIP passam na frente; • Aumentar largura de banda: impedir criação de filas. • Tamanho de pacotes curtos: Não obstante maior overhead dos cabeçalhos, VoIP usa pacotes curtos.
Teleconferência em Tempo Real (3) • Why real-time data can not use TCP? • TCP forces the receiver application to wait for retransmission in case of packet loss, which causes large delays.; • TCP cannot support multicast; • TCP congestion control mechanisms decreases the congestion window when packet losses are detected ("slow start"). Audio and video, on the other hand, have "natural" rates that cannot be suddenly decreased; • TCP headers are larger than a UDP header (40 bytes for TCP compared to 8 bytes for UDP); • TCP doesn’t contain the necessary timestamp and encoding information needed by the receiving application; • TCP doesn’t allow packet loss. In A/V however loss of 1-20% is tolerable;
Entrega de conteúdo • A Internet hoje, além de meio de comunicação, é distribuidora de conteúdo, o que traz requisitos específicos: • O local ondeestá o conteúdonão é importante (diferente de umachamada de voz); • Alguns sites sãoextremamentepopulares: Youtube é responsávelporaté 10% do tráfegoda Internet – precisamontarumarede de distribuição; • Além de bandalarga no núcleo e bordas, desenvolverarquiteturasparareduzirosatrasos: • CDN – Content Distribution Network: coleçãodistribuída de máquinas de um provedor; • P2P – coleção de computadorescompartilharecursos. Nível Aplicação
Redes de Entrega de Conteúdo • Sites muito grandes precisam outras técnicas para entregar conteúdo em escala global. Vantagens da hierarquia: • A árvore pode ser estendida em largura e profundidade; • Consulta feita próxima ao cliente: menor delay, menos congestionamento; • Carga total da rede é minimizada; Nível Aplicação
Redirecionamento de DNS Clientequer a páginawww.cdn.com/page.html. Consulta DNS, obtém IP do servidor de nomesdestedomínio (da CDN), quequandoconsultadoinspeciona o IP de quempergunta e devolve naresposta o IP do servidormaispróximo do cliente. Para isto tem mapa de IPs. Podeincorporarpolítica: esteservidor é o maispróximo, masestásobrecarregado, váàquele. Nível Aplicação
Redes Peer-to-peer • Saída simples paradistribuirmuitoconteúdo: dápoderaospequenos. • 1999: Napster primeiraaplicaçãofechadapelostribunais • Hoje: grandetráfegoda Internet. • Computadoressão peers (pares) quepodem ser oracliente, oraservidores. • Redesformadassãoescaláveispois, emboraestejaentrandomais um cliente, e portantoaumentandoos downloads, tambémestãoaumentandoos uploads. • ProtocoloBitTorrent (mais popular de P2P) e algoritmosDHT (Distributed Hash Table) cuidam de descentralizar a pesquisa Nível Aplicação
BitTorrent Animação da transferência do arquivo a 7 clientes ligados a um seed. Nível Aplicação
Segurança de Redes As redes do governo federal são alvos de uma média de 2.100 incidentes por hora, cerca de 60 são considerados mais sérios. A maioria dos ataques às redes do governo federal está relacionada à desconfiguração, vulnerabilidade de códigos e de servidores, "phishing"(fraude eletrônica para "pescar" dados como senhas) e "malwares“. Na área de segurança é fundamental desenvolver soluções proprietárias, segundo Otávio Cunha da Silva, coordenador geral do CEPESC (Centro de Pesquisas e Desenvolvimento para a Segurança das Comunicações) da Abin (Agência Brasileira de Inteligência), evitando assim a inserção de backdoors - maneira de ganhar acesso a serviços e sistemas. Segurança
Segurança de Redes Os problemas dividem-se nas seguintes areas interligadas: • Sigilo; • Autenticação; • Não-repúdio; • Integridade Segurança
Que nível deve cuidar da segurança? Todos os níveis podem contribuir • Físico: evitar grampos, ex. manter cabo em tubos com gás com pressão controlada; • Enlace: criptografar cada quadro (abrir em cada roteador? ineficiente); • Rede: firewalls controlando IPs; • Transporte: criptografar conexões fim-a-fim; • Aplicação: autenticação de usuário e não-repúdio. Segurança
Criptografia (1) Criptografia: escrita secreta. Arte historicamente usada por militares, diplomatas, amantes... Governos adotam seus algoritmos, muitos utilizam o Princípio de Kerckhoff: Todososalgoritmosdevem ser públicos, apenas as chavessãosecretas. Ao tornar o algoritmo público, inúmeros criptólogos tentam decodificar o algoritmo; se durante cinco anos após sua publicação ninguém conseguiu ele é considerado sólido. Manter o algoritmo secreto (segurança por obscuridade) não funciona. Segurança