Nível Aplicação - Objetivo

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Curso de ADMINISTRAÇÃO
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
Treinamento GP3 USP – GEFIM Abril de 2004 Alcides Pietro, PMP.
Sistemas Operacionais
Exemplos de 3 posições relativas de prédio fronteiro
Boa tarde, pessoal!!.
COMPRESSÃO DE FILMES GRUPO: Alessandra Antunes Vargas Anderson Konzen
Criptografia Quântica : Um Estudo
Compressão por Hardware
Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 Serviço Worb Treinamento no GRADEp Serviço Worb WorbDemo.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Publicidade e Propaganda – Conceitos e Categoria
Servidores e Programação Web Redes de Computadores.
Snap Together Visualization. Introdução - Exploração Visual de Dados Aplicada em conjuntos de dados abstratos. Facilitar a percepção de padrões, tendências,
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
1 Oi BlackBerry. 2 Índice 1Configurando o seu aparelho BlackBerry 2Formatando o seu aparelho BlackBerry 3Solicitando senha de ativação empresarial 4Indicador.
O Fluxo de Testes © Alexandre Vasconcelos
Serviços Integrados na Arquitetura da Internet Apresentação: Fernando Nadal.
Introdução Software para Laboratórios de Análises Clínicas
Arquitetura da informação Por Luiz Siqueira. O nome é imponente e a técnica está na moda. Contudo, o importante é o seguinte: a Arquitetura de Informação.
Planejando seu site Objetivos Abordagem Sílvia Dota.
Metodologias de Construção de Sites
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
Informática Instrumental
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
CES-11 LAB 03 Bitmap Quadtree
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
Tema I TEMA DE DISCUSSÃO I Prof. Dr. Marcio Lobo Netto 1 o. Período / 2004 Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018.
I – Informação Digital – Tema de Discussão Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
I – Descrição da Infraestrutura Tecnológica Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
I – Informação Digital – Trabalho Grupo Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP-018 – O Produto Internet e suas Aplicações.
FUNDAÇÃO CARLOS CHAGAS
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Introdução à Codificação de Canal Evelio M. G. Fernández
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Listas Lineares.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Sistema de Planejamento da Produção
Comandos básicos do MS-DOS
Marco Antonio Montebello Júnior
Tecnologia para Web Enrique Pimentel Leite de Oliveira
The Data Warehouse Toolkit
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Baseado no documento do Prof. Ronaldo Martins da Costa
Conceitos Básicos de Redes de Computadores e acesso a Internet
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Comunicação CLP através do Driver OPC
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
Renda até 2 SM.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
Olhe fixamente para a Bruxa Nariguda
Transcrição da apresentação:

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, RFID, Redes Espaciais, Jogos .... Cite a aplicação mais recente que você conhece: Shazam, 99Taxis, Moovit, Urbbox.... 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

Exemplos de novas aplicãções Google TV dará acesso aos novos canais Youtube, facilitando as buscas de conteúdos e oferecendo maior controle para os usuários... “Se você está procurando um vídeo desopilante, uma receita de cozinha com tutorial em vídeo ou as últimas atualidades, existem canais para qualquer tema que você estiver interessado”. Objetivo: integrar o vídeo na internet com a televisão ao vivo. Google se associou com diversos fabricantes de Smart TVs dos quais Sony, LG e Samsung, para criar televisores conectados à internet. RFID - Air Canada is saving millions of dollars each year by tracking food carts used at airports around the world. It not only loses fewer carts and spends less time and money taking inventory, it also is able to better manage the movement of carts so there are always carts at the airport catering stations that need them. Nível Aplicação

Papel da Aplicação O Nível Aplicação alé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 - 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 – Domain Name System – é 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

Criação de Novo Domínio Solicitar um nome com a autoridade competente, mediante taxa anual (No Brasil está sob administração do Comitê Gestor da Internet no Brasil – CGI.br). Cybersquatting: prática de registrar um domínio para vendê-lo a uma parte interessada por preço muito mais alto. Para criar um sub-domínio é necessária a permissão do domínio no qual ele está incluído. Exemplo: Para criar o domínio lrede que quer ser conhecido como lrede.comp.ita.br, é necessária a autorização de quem gerencia comp.ita.br. A atribuição de nomes leva em consideração as fronteiras organizacionais e não as redes físicas. Assim, é possível estar na mesma LAN e pertencer a domínios distintos. 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

Nomes no Brasil O Comitê Gestor da Internet no Brasil - CGI.br tem como atribuição coordenar e integrar todas as iniciativas de serviços Internet no Brasil. O Núcleo de Informação e Coordenação do Ponto BR - NIC.br é o braço operacional do CGI.br, assumiu a gestão do registro de Nomes de Domínio e a alocação de Endereços IP (site registro.br). Exemplos de categorias de domínios no Brasil: ART.BR – arte: música, pintura, folclore. EDU.BR – Entidades de ensino superior GOV.BR – Entidades do governo federal Há mais de 70 Domínios de Primeiro Nível no Brasil. 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 13 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

Primário e Secundário Normalmente há um servidor de nomes primário que busca informação em seus próprios arquivos; Servidor de nomes secundário, que se atualiza buscando nos arquivos do primário. A troca de dados entre eles chama-se zone transfer. Desta maneira existe uma redundância de dados para emergências. Se primário cai, secundário assume. 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ínio Tempo_de Vida Classe Tipo Valor 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

Registro SOA -1 SOA: Start of Authority – indica a autoridade para os dados deste domínio. O domínio comp.ita.br tem como registro SOA os valores: comp.ita.br. SOA ita-r.ita.br root.ita.br. (18 3600 300 3600000 86400) primary name server = ita-r.ita.br (Onde arquivo criado) responsible mail addr = root.ita.br serial = 18 - Incremente este número a cada alteração no arquivo de zona, para distribuir alteração aos secundários. refresh = 3600 (1 hour) - Tempo que o secundário espera antes de questionar o primário sobre alterações no SOA. Após este tempo consulta o número serial do primário. Nível Aplicação

Registro SOA - 2 SOA: Start of Authority – continuação comp.ita.br. SOA ita-r.ita.br root.ita.br. (18 3600 300 3600000 86400) retry = 300 (5 mins) – Tempo entre re-tentativas do secundário. expire = 3600000 (41 days 16 hours) – Tempo de expiração dos dados. Após este tempo considera-se os dados do secundário desatualizados. default TTL = 86400 (1 day) – Tempo fornecido nas respostas indicando quanto tempo os outros servidores devem manter os dados em cache. 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 NS ita-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 joana IN A 161.24.2.34 Nível Aplicação

Registro CNAME Permite a criação de nomes alternativos. O nome canônico é o nome de domínio correto, mas é possível admitir outros nomes que se referenciam ao nome canônico. Exemplo: Os nomes listados à esquerda podem ser utilizados para acessar www.ita.br: www.qui IN CNAME www.ita.br www.hum IN CNAME www.ita.br intranet IN CNAME www.ita.br Experimente pingar www.ita.br e a seguir os demais www.qui.ita.br, www.hum.ita.br, etc. O que observa? Nível Aplicação

Endereço Reverso Pode-se fazer uma pesquisa DNS fornecendo o endereço IP para obter o nome associado -> Pesquisa reversa. O estilo de escrita do nome é: o nome mais alto na hierarquia fica a direita como em tathy.comp.ita.br (anda na árvore de baixo para cima) Na pesquisa reversa também se inverte o endereço IP para ficar semelhante à pesquisa de nomes. Uma pesquisa reversa de 161.24.2.29 é indicada como 29.2.24.161.in-addr.arpa. Os números dos octetos são tratados como strings, portanto independem de netmask. Nível Aplicação

Registro PTR Permite associar IP a nome. A pergunta fornece o IP e a resposta fornece o nome da máquina – pesquisa reversa. Para realizar pesquisa reversa, o resolver transforma o IP dado, como 161.24.2.38 em 38.2.24.161.in-addr.arpa. O resolver procura registros PTR para 38.2.24.161.in-addr.arpa. A entrada correspondente no arquivo de configuração seria: 38.2.24.161.in-addr.arpa IN PTR josefina.comp.ita.br Nível Aplicação

Reverso – como funciona? Resolver pergunta diretamente ao servidor raíz; O servidor raíz encaminha para o servidor que cuida daquele intervalo (161.in-addr.arpa). O servidor raíz refere-se ao servidor responsável pela alocação de IPs naquela região de pertença do endereço. O resolver pergunta ao servidor responsável pelo registro PTR do intervalo que contém 38.2.24.161.in-addr.arpa. O servidor responsável refere-se ao servidor DNS da organização que recebeu aquele IP. O resolver pergunta ao servidor DNS da organigação pelo registro 38.2.24.161.in-addr.arpa. O servidor DNS da organização responde com o nome josefina.comp.ita.br. Nível Aplicação

Registro MX Especifica o host preparado para receber mensagens de correio eletrônico para o domínio especificado. Exemplo: O domínio comp.ita.br tem como preferência entregar e-mails para a máquina sara.ita.br, em segundo para iara.ita.br e somente se ambas estão fora do ar, entrega para mail.ita.br comp.ita.br. IN MX 0 sara.ita.br comp.ita.br. IN MX 10 iara.ita.br comp.ita.br. IN MX 20 mail.ita.br Obs: Não é conveniente uma máquina interna receber e-mails diretamente da Internet, pois se expõe a máquina (além do sendmail ter furos de segurança). Convém que só uma máquina receba e-mails para várias outras. Esta máquina checa vírus, spams e protege a instituição. Nível Aplicação

Registro SRV, SPF SRV: Generalização do registro MX de correio para determinado serviço no domínio. service._proto.name IN SRV priority weight port target priority : preferência do host; weight: valor relativo para registros com mesma prioridade; port: porta utilizada pelo serviço, e target: nome do host que fornece o serviço. Exemplo: _sip._tcp.exp. IN SRV 0 5 5060 sipserver.example.com. SPF: Sender Policy Framework - p/ validar informação de e-mail (contra spams): informa quais comps podem enviar e-mail do domínio especificado (versão corrente chamada spf1) example.com. IN SPF "v=spf1 a mx” No domínio example.com podem enviar e-mails as maquinas deste domínio com registro do tipo A ou MX. Nível Aplicação

BIND A DNS server for Unix machines, the Berkeley Internet Name Domain (BIND) package, was written in 1984 by a group of graduate students at the University of California at Berkeley under a grant from the US Defense Advanced Research Projects Administration (DARPA). The latest version is BIND 9.8.1 (August,2011) Daniel J. Bernstein desenvolveu a versão que surgiu como a mais segura:djbdns. Um prêmio de $1000 para a primeira pessoa que encontrasse um furo na segurança no djbdns foi ganho em 2009 por Matthew Dempsky. Autor também do qmail, o mais seguro software para e-mail. Também hoje há o DNSSEC que assina os registros. 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 (Simple Mail Transfer Protocol). Nível Aplicação

Agente Usuário Leitor de e-mail: Thunderbird, Outlook, Gmail, etc... Manipulam caixas de correio dos usuários, oferecendo opções amigáveis para facilitar o gerenciamento de msgs: Disposição de mensagens; Respostas automáticas; Agente de férias; Bloco de assinatura. SPAMs: o agente pode separar o que provavelmente é lixo; Botnet: coleção de computadores infectados capazes de gerar Spams mais difíceis de serem detectados; Nível Aplicação

Agentes de Transferência de Msg Utilizam o protocolo Simple Mail Transfer Protocol. 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

Diálogo cliente-servidor - 1 elinor@abcd.com quer mandar mensagem para carolyn@xyz.com Inicialmente, cliente contacta porta 25 do servidor (por exemplo através do comando: telnet smtp.ita.br 25), que responde: S - 220 xyz.com SMTP Service Ready C – Helo abcd.com S – 250 xyz.com says hello to abcd.com C – MAIL from: elinor@abc.com S – 250 sender ok C – RCPT to: carolyn@xyz.com S – 250 recipient ok C – DATA Nível Aplicação

Diálogo cliente-servidor - 2 S – 354 Send mail: end with “.” on a line by itself C - ..... Cabeçalho e texto da mensagem ..... C - . S 250 Message accepted C:QUIT S – 221 xyz.com closing connection Clientes enviam comandos de quatro letras; Servidores enviam códigos numéricos: 220 – Pronto p/ receber 250 – Tudo bem! 354 – Comece 221 – ok, terminemos. 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

Envelopes e Mensagens Correio convencional Correio eletrônico RFC 5322 define formato e conteúdo das msgs. Nível Aplicação

Cabeçalho RFC 5322 Cabeçalho padronizado contém campos p/ criar envelope pelo agente de transferência As mensagens devem estar em formato-padrão para ser tratadas pelos agentes de transferência 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 Mail Extensions) que permite enquadrar as diferentes informações transportadas. Tipos de conteúdo MIME e subtipos Nível Aplicação

Formato de Mensagens Mensagem de aniversário como HTML e áudio: é preciso baixar o arquivo de som via FTP. Content-type ocorre 3 vezes para as indicações necessárias: multipart/alternative: a mesma mensagem expressa em ≠ modos. Text/html; message/external body 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 (HyperText Transfer Protocol). É 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ção direta pelo interpretador do browser. O servidor retorna o tipo MIME da página, se for um tipo interno, sabe como exibir a página: associa tipo a visualizador. Plug-in: módulo de código que navegador busca e instala como extensão do navegador; Aplicação auxiliar: programa completo executado como processo separado; ex: powerPoint Nível Aplicação

Servidor Web Servidor Web multithreaded com um front end e módulos de processamento Nível Aplicação

Cookies (1) Um cookie é um string nomeado e pequeno (~4KB) que o servidor associa a um navegador que o armazena em um diretório de cookies no disco do cliente. Permite retornar páginas diferentes para usuários diferentes, possibilitando interações personalizadas (RFC 2019). O campo conteúdo é da forma nome=valor. Campo é seguro se precisa ser enviado ao servidor com protocolo de transporte seguro como SSL/TLS. Parte da arvore de arquivos do servidor que pode usar o cookie De onde veio o cookie Nível Aplicação

Cookies (2) Controvérsias: usuários não sabem que estão sendo monitorados; estas informações podem ser reunidas para rastrear atividades do usuário. Agência de publicidade inserem seus links nas páginas dos sites contratados: recebe do anunciante e paga ao proprietário do site; ex: URL www.sneaky.com/1234.gif. Quando cliente baixa a página do site original, também se acessa a URL da agência que registra página acessada . Há um potencial para abusos... Desabilitar cookies pode impedir um acesso necessário. Para limitar um pouco, alguns navegadores impedem acesso a cookies de terceiros (ie, impede à agência e permite ao site original). 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 servidor acessa BD, gera página solicitada; Retorna página ao cliente; Cliente quer zoom: programa no cliente interage c/ user; Para atender as solicitações podem ser necessários mais 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 (Hypertex Preprocessor) – Linguagem embute scripts na página HTML; mais fácil e simples que CGI; JSP (JavaServer Pages) – escrito em Java semelhante a PHP ASP.NET (Activer Server Pages.NET) versão da Microsoft. No Cliente: 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

Diversas tecnologias usadas para gerar páginas dinâmicas. Processo do servidor Diversas tecnologias usadas para gerar páginas dinâmicas. Browser consulta tabela de tipos MIME para exibir a página; Siglas da figura não mencionadas ainda: CSS - Cascade Style Sheets: folha de estilos a serem aplicados controlando a aparência do documento; XML - eXtensible Markup Language: linguagem para especificar conteúdo estruturado separando conteúdo de apresentação. Nível Aplicação

Páginas dinâmicas (5) PHP e JavaScript são parecidas por incorporarem código em arquivos HTML. (a) Script PHP do lado servidor. (b) Script JavaScript do lado cliente. O que é melhor rodar no cliente ou servidor? Depende... Nível Aplicação

HTTP HTTP: Hypertex Transfer Protocol: 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

Conexões (1) Múltiplas conexões e solicitações sequenciais: a medida que traz a página descobre as figuras que deve buscar Uma conexão persistente e solicitações sequenciais; mais rápida: (1) sem overhead do estabelecimento (2) passou partida lenta e descobriu comportamento da rede; Uma conexão persistente e solicitações por pipeline (em sequência sem esperar a resposta anterior). Nível Aplicação

Conexões (2) Conexão persistente: Em que momento encerrar? Normalmente até ficar ocioso por um pequeno período (ex: 60 segundos) ou até ter grande número de conexões abertas e algumas tenham que ser encerradas. É possível misturar os métodos: várias conexões paralelas com uma solicitação por conexão. Problema: uma conexão compete com a outra. Conexões persistentes são superiores às paralelas. Nível Aplicação

Mensagens utilizados em uma solicitação HTTP Métodos Mensagens utilizados em uma solicitação HTTP Nível Aplicação

Web Móvel Dificuldades para a navegação: Telas pequenas (pg e imagens grandes); Capacidade de entrada limitada (teclado irritante); Largura de banda limitada; Conectividade intermitente; Potência de computação limitada. Em todos os quesitos houve melhorias, embora permaneça a lacuna. Inicialmente: outra pilha de protocolos (WAP); Hoje: mesmos protocolos, sites entregam conteúdo adaptado (técnicas para redução das páginas) Nível Aplicação

Web Móvel XHTML: As páginas XHTML precisam estar em conformidade estrita com as regras da XML ou não serão aceitas pelo navegador. XHTML Basic: subconjunto do XHTML para dispositivos móveis. Tem módulos obrigatórios e opcionais. Técnica complementar: um computador anterior a entrega, transforma o conteúdo usando heurísticas (transcodificação). Ex: diminuir resolução de imagem. O conteúdo é problema maior para WebMóvel do que os protocolos. Para diminuir cabeçalhos usar compactação. ível Aplicação

Busca na Web Deep Web: se refere ao conteúdo da World Wide Web que não é indexada pelos mecanismos de busca padrão. O conteúdo pode ser classificado em uma ou mais das seguintes categorias: Conteúdo dinâmico: páginas dinâmicas retornadas em resposta a uma requisição ou através de um formulário. Conteúdo isolado: páginas que não possuem referências ou ligações vindas de outras páginas, o que impede o acesso através de web crawlers (travessia de páginas e links pelos mecanismos de busca) . Web privada: sites que exigem um registro e um login (conteúdo protegido por senha). Web contextual: páginas cujo conteúdo varia de acordo com o contexto de acesso (por exemplo, IP do cliente ou sequência de navegação anterior). ... ível Aplicação

Busca na Web O conteúdo oculto está sendo explorado pelo submundo. A ideia inicial não era criminosa, surgiu na China: navegar em sites cuja entrada no país era bloqueada pelo governo => solução: software de Proxy com tunelamento, mantém o anonimato de quem deseja. í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áfego da Internet já é vídeo – ¼ dos usuários da Internet visitam o YouTube diariamente. Como largura de banda está suficiente, o desafio ainda reside no atraso e jitter . Serão abordados 3 casos de crescente dificuldade: Streaming de mídia armazenada (ex: youtube); Streaming de mídia ao vivo (radio via Internet e IPTV); Conferência Interativa de áudio e vídeo (ex: skype). Nível Aplicação

Áudio Digital Sinal de Áudio é uma onda acústica; ao entrar no ouvido, com a vibração do tímpano, geram-se impulsos nervosos (Sinal elétrico) para o cérebro Áudio Digital é a representação digital da onda de áudio; conversor ADC (Analog to Digital Converter Amostras não são exatas: 9 valores precisam de 4 bits para representar Nível Aplicação

Compressão de Áudio Áudio é comprimido para economizar banda. Codificação: Algoritmos para compressão na origem Decodificação: Algoritmos para descompressão no destino. Codificação lenta e decodificação rápida: Aceitável para aplicações que armazenam um áudio que será distribuído para muitos clientes; inaceitável para VoIP. MP3 - Parte referente a compressão de áudio do padrão MPEG-1. MPEG-4 ou MP4 é a versão mais nova do padrão que oferece compressão de áudio e vídeo. Nível Aplicação

Vídeo Digital Quando a imagem aparece na retina, é retida por alguns milissegundos antes que desapareça. Assim, uma sequencia de imagens apresentada a 50 imagens/s o olho não nota que são imagens diferentes. Sistemas de vídeo exploram esta característica. Vídeo Digital: sequência de quadros, cada um com uma grade retangular de pixels – cada um com certo número de bits para representá-lo. Quadros mais largos exigem mais banda. (Vídeos HDTV usam 1080 por 720 pixels). Compressão é fundamental! MPEG – padrão aberto que codifica independentemente áudio e vídeo; o tempo é incluído na saída codificada. Nível Aplicação

Streaming de Mídia Armazenada (1) Assistir vídeos na Internet: VoD (Video on Demand) 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

RTSP Real Time Streaming Protocol : permite ao player interagir com o servidor,sobre TCP ou UDP. RFC 2326: Comandos permitem ao player ter “controle remoto”. Comandos RTSP do player ao servidor: ASCII Real Time Protocol : utilizado junto com RTSP permite entrega de dados dependentes de tempo. 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 (2) 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;

Teleconferência em Tempo Real (3) Uso de Pacotes pequenos. Cenário: Transmissão entre Seattle e Amsterdã Caso 1 – pacotes de tamanho 1KB: Atraso de áudio: 1KB/64kbps=8kb/64kbps=125ms Atraso de transmissão: 1KB/1Mbps=8kb/1Mbps=8ms Total= 125+8+40+8 = 181ms Atraso de propagação= 40ms Seattle: Taxa de preenchimento de áudio = 64kbps meio Taxa de transmissão = 1Mbps Amsterdã Taxa de transmissão = 1Mbps Nível Aplicação Buffer

Teleconferência em Tempo Real (2) Caso 2 – pacotes de tamanho 160 Bytes: Atraso de áudio: 160B/64kbps=1280kb/64kbps=20ms Atraso de transmissão: 160B/1Mbps=1280b/1Mbps=1,3ms Total= 20+1,3+40+1,3 = 62,6ms Atraso de propagação= 40ms Seattle: Taxa de preenchimento de áudio = 64kbps meio Taxa de transmissão = 1Mbps Amsterdã Taxa de transmissão = 1Mbps Nível Aplicação Buffer

SIP (1) Além de resolver o problema da latência, é preciso projetar protocolos para estabelecer/encerrar chamadas: H.323 : da ITU - International Telecommunication Unit; SIP – Session Initiation Protocol : projetado pelo IETF – RFC 3261- interopera com aplicações da Internet; ex: Números de telefones são URLs: clique em um link inicia ligação telefônica; Protocolos proprietário: ex:Skype lançado em 2003. Alguns dos problemas a resolver: Como determinar IP corrente do receptor? A pessoa está disponível? Que codificação será usada neste stream? É possível convidar novos participantes durante a chamada? Nível Aplicação

SIP (1) Características do SIP: Descreve como preparar chamadas telefônicas via Internet, videoconfêrencias e conexões de multimídia; Cuida da configuração, gerenciamento e encerramento de sessões; integra-se com outros protocolos, como RTP para transferência dos dados; Apoio do MIME para interoperar com aplicações da Internet; Utiliza proxies que realizam as operações de busca, localização e redirecionamento . Nível Aplicação

SIP (2) Um cenário simples: chamador e chamado localizados e ativos Seta 9: RTP Nível Aplicação

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 onde está o conteúdo não é importante (diferente de uma chamada de voz); Alguns sites são extremamente populares: Youtube é responsável por até 10% do tráfego da Internet – precisa montar uma rede de distribuição; Além de banda larga no núcleo e bordas, desenvolver arquiteturas para reduzir os atrasos: CDN – Content Distribution Network: coleção distribuída de máquinas de um provedor; P2P – coleção de computadores compartilha recursos. Nível Aplicação

Parque de Servidores (lado servidor) Técnica: conjunto de servidores que parece ser um único site: DNS espalha solicitações: a cada request dá uma lista, e o cliente usa o primeiro da lista; ≠ clientes usam ≠ servidores; Front End inspeciona cabeçalhos e mapeia para um servidor de acordo com política de balanceamento; (que cabeçalhos inspecionar e que decisão tomar?) Nível Aplicação

Proxies Web (lado cliente) Técnicas utilizadas: Caching no navegador: nenhum tráfego ou tráfego curto para verificar validade da página; Caching compartilhado entre usuários: ineficaz para páginas dinâmicas; Proxy cache: as solicitações dos navegadores são feitas ao proxy, não ao servidor real. Benefícios: filtros e anonimato: Servidor não conhece cliente; Problema: com muitos usuários, solicitações impopulares são mais frequentes. 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 Cliente quer a página www.cdn.com/page.html. Consulta DNS, obtém IP do servidor de nomes deste domínio (da CDN), que quando consultado inspeciona o IP de quem pergunta e devolve na resposta o IP do servidor mais próximo do cliente. Para isto tem mapa de IPs. Pode incorporar política: este servidor é o mais próximo, mas está sobrecarregado, vá àquele. Nível Aplicação

Redes Peer-to-peer Saída simples para distribuir muito conteúdo: dá poder aos pequenos. 1999: Napster primeira aplicação fechada pelos tribunais Hoje: grande tráfego da Internet. Computadores são peers (pares) que podem ser ora cliente, ora servidores. Redes formadas são escaláveis pois, embora esteja entrando mais um cliente, e portanto aumentando os downloads, também estão aumentando os uploads. Protocolo BitTorrent (mais popular de P2P) e algoritmos DHT (Distributed Hash Table) cuidam de descentralizar a pesquisa Nível Aplicação

BitTorrent (1) Padrão aberto. Problemas a resolver: Como encontrar outros peers que tem o conteúdo? Cada peer tem uma descrição de conteúdo: a torrent – arquivo com dois tipos de informações: O nome de um tracker: servidor que tem a lista dos peers que estão colaborando (os swarms - enxames). Lista de partes (chunks ) que compõem o conteúdo. Capturar uma torrent e entrar em contato com o tracker. Como compartilhar conteúdo de modo que os downloads sejam rápidos? Quando o swarm é formado alguns peers precisam ter todos os chuncks que compõem o conteúdo (os seeders). Um peer participando do swarm faz download dos chunks que não tem e upload para outros peers. Nível Aplicação

BitTorrent (3) Animação da transferência do arquivo a 7 clientes ligados a um seed. Nível Aplicação

BitTorrent (2) Como encorajar peers a fazer uploads e não só downloads? Free-riders ou leechers capturam recursos e não contribuem. BitTorrent: compensar peers com bom comportamento de upload. Quanto mais ele contribui com os outros, mais pode esperar. Chocked: nó cortado da rede. Nível Aplicação

DHT DHT (Distributed Hash Table) aparece como solução para descentralizar o tracker. Como saber que usuários tem o conteúdo que está sendo procurado sem centralização? Criar um índice de quem tem o que, com os objetivos: Cada nó tenha uma pequena quantidade de informação sobre outros nós. (nem todos terão tudo). Cada nó pode pesquisar entradas no índice rapidamente. Cada nó pode usar o índice ao mesmo tempo – o desempenho aumenta com o número de nós. Índices mapeiam chave a valor: usar tabelas hash. DHT são chamadas redes P2P estruturadas. Diferentes algoritmos, diferentes maneira de estruturar. Nível Aplicação

Chord (1) Uma Chord DHT tem n participantes. Cada nó armazena pedaços do índice geral para uso por outros. O índice tem identificadores mapeados em números de m bits usando uma função hash. Ex: se m=5, poderíamos ter 32 identificadores correspondentes a nós que podem ou não estar na rede. No ex os nós escuros são reais. Sucessor(k): o identificador de nó do primeiro nó real após k ao redor do anel. Sucessor(6)=7, sucessor(7)=12, sucessor(8)=12. Chave = hash(torrent) Nível Aplicação

Chord (2) Iniciando um swarm, o nó insere seu IP no sucessor(hash(torrent)). O par chave-valor é (torrent,IP). Um nó que quer se juntar ao swarm, calcula a hash do torrent, acha o nó sucessor(hash(torrent)), ou, acha o IP do nó que cuida da chave, que tem a lista dos IPs do swarm . Como achar o sucessor(hash(torrent)? Manter tabela com info. Tabela de fingers: m entradas. i-esima entrada no nó k contém 2 campos: Início=K+2i (módulo 2m) IP do sucessor(inicio[i]) Pesquisa de chave no nó k: Se chave entre k e sucessor(k), sucessor(k) tem a informação. Senão busca o nó predecessor mais próximo da chave. Número médio de pesquisas: log2n Nível Aplicação

Chord (3) Ex1: Pesquise chave=3 no nó1: sucessor(3)=4 e está na tabela: obtem direto IP do nó 4; Ex2: Pesquise chave=16 no nó 1: não está na tabela, então, o predecessor de 16 mais próximo é 9. Envia busca no IP da entrada do nó 9, ou seja no IP do nó 12. No nó 12 há o IP do sucessor(16) e o nó 12 pode responder diretamente a quem perguntou. Artigo do Chord (Stoica et al., 2001) o mais citado de todos os tempos na área de redes! DHT muito usado na nuvem para distribuir conteúdo. Nível Aplicação