nível aplicação 1 estudar aspectos conceituais e de implementação de aplicações de rede – a...

77
Nível Aplicação 1 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 - Objetivo Nível Aplicação - Objetivo

Upload: david-lancastre-franca

Post on 07-Apr-2016

222 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Nível Aplicação 1 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

Nível Aplicação 1

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 - ObjetivoNível Aplicação - Objetivo

Page 2: Nível Aplicação 1 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

Nível Aplicação 2

1. Introdução2. DNS3. Correio Eletrônico4. WWW5. Multimídia: Streaming de Audio e

Vídeo, Teleconferência6. Entrega de conteúdo: CDN, P2P

Nível Aplicação - RoteiroNível Aplicação - Roteiro

Page 3: Nível Aplicação 1 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

Nível Aplicação 3

► 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, Waze.... Caminhamos em direção à Computação Ubíqua:““A interação homem-máquina será “invisível” no A interação homem-máquina será “invisível” no

sentido de não ser notada, ainda que seja sentido de não ser notada, ainda que seja perceptível, através de um dispositivo qualquer.”perceptível, através de um dispositivo qualquer.”

IntroduçãoIntrodução

Page 4: Nível Aplicação 1 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

Nível Aplicação 4

Papel da AplicaçãoPapel 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.

Page 5: Nível Aplicação 1 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

Nível Aplicação 5

O que é necessário definir ?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).

Page 6: Nível Aplicação 1 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

Nível Aplicação 6

DNS - Porque um Sistema de Nomes?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).

Page 7: Nível Aplicação 1 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

Nível Aplicação 7

O que é DNS?O que é DNS?

► DNS – Domain Name System DNS – Domain Name System – é um banco de dados – é um banco de dados distribuído. Cada segmento local controla sua porção e distribuído. Cada segmento local controla sua porção e disponibiliza um banco para toda a rede num esquema disponibiliza um banco para toda a rede num esquema cliente-servidor.cliente-servidor.

► ServidorServidor: Torna disponível informação local de nomes.: Torna disponível informação local de nomes.

► ClienteCliente: contém os resolvedores – enviam perguntas : contém os resolvedores – enviam perguntas pela rede aos servidores de nome.pela rede aos servidores de nome.

► A estrutura deste banco de dados é hierárquica.A estrutura deste banco de dados é hierárquica.

Page 8: Nível Aplicação 1 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

Nível Aplicação 8

Estrutura hierárquica - 1Estrutura hierárquica - 1

Cada domínio é particionado em sub-domínios, que também Cada domínio é particionado em sub-domínios, que também são particionados, e assim por diante. As folhas não contê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 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).de domínio de nível superior: Genéricos e Países. (Há ~ 250).

Page 9: Nível Aplicação 1 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

Nível Aplicação 9

Estrutura hierárquica - 2Estrutura hierárquica - 2Servidores de nomes Raiz são replicados: controlado pelo ICANN (Internet Coporation for Assigned Names and Numbers); Há 13 servidores raíz no mundo.

Page 10: Nível Aplicação 1 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

Nível Aplicação 10

Criação de Novo DomínioCriação de Novo Domínio

Solicitar um nome com a autoridade competente, mediante Solicitar um nome com a autoridade competente, mediante taxa anual O Comitê Gestor da Internet no Brasil - CGI.br tem taxa anual O Comitê Gestor da Internet no Brasil - CGI.br tem como atribuição coordenar e integrar todas as iniciativas de como atribuição coordenar e integrar todas as iniciativas de serviços Internet no Brasil. O Núcleo de Informação e serviços Internet no Brasil. O Núcleo de Informação e Coordenação do Ponto BR - NIC.br é o braço operacional do 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 CGI.br, assumiu a gestão do registro de Nomes de Domínio e a alocação de Endereços IP (site registro.br).alocação de Endereços IP (site registro.br).

Para criar um sub-domínio é necessária a permissão do Para criar um sub-domínio é necessária a permissão do domínio no qual ele está incluído. Ex: O domínio lrede domínio no qual ele está incluído. Ex: O domínio lrede (lrede.comp.ita.br), precisaria da autorização de comp.ita.br.(lrede.comp.ita.br), precisaria da autorização de comp.ita.br.A atribuição de nomes leva em consideração as fronteiras A atribuição de nomes leva em consideração as fronteiras organizacionais e não as redes físicas. Assim, é possível estar organizacionais e não as redes físicas. Assim, é possível estar na mesma LAN e pertencer a domínios distintos.na mesma LAN e pertencer a domínios distintos.

Page 11: Nível Aplicação 1 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

Nível Aplicação 11

Zonas- Divisão do Espaço de NomesZonas- Divisão do Espaço de Nomes

• Teoricamente um mesmo servidor de nomes poderia Teoricamente um mesmo servidor de nomes poderia

servir toda a Internet, ou um domínio de primeiro nível. servir toda a Internet, ou um domínio de primeiro nível. Problemas:Problemas:

- Se este servidor parasse, a Internet pararia...Se este servidor parasse, a Internet pararia...

- Sobrecarga neste servidor;Sobrecarga neste servidor;

- Banco de dados centralizado distante;Banco de dados centralizado distante;

- Manutenção;- Manutenção;

• O espaço de nomes foi dividido em O espaço de nomes foi dividido em zonaszonas. Cada zona . Cada zona tem uma parte da árvore e servidores de nomes com tem uma parte da árvore e servidores de nomes com informação (autoridade) sobre aquela zona; A zona é a informação (autoridade) sobre aquela zona; A zona é a parte do domínio que não foi delegada a outros.parte do domínio que não foi delegada a outros.

Page 12: Nível Aplicação 1 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

Nível Aplicação 12

Ilustrando Divisão em ZonasIlustrando 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.

Page 13: Nível Aplicação 1 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

Nível Aplicação 13

Processo de pesquisa DNSProcesso 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.

Page 14: Nível Aplicação 1 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

Nível Aplicação 14

Ilustração de pesquisa DNSIlustração de pesquisa DNS

Vide slide 12 com os servidores selecionados

Page 15: Nível Aplicação 1 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

Nível Aplicação 15

CachingCaching

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.

Page 16: Nível Aplicação 1 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

Nível Aplicação 16

Primário e SecundárioPrimá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.

Page 17: Nível Aplicação 1 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

Nível Aplicação 17

Registros de RecursosRegistros 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 aplicaTempo_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 InternetTipo: Tipo do registro (descritos nas próximas telas)Valor: Semântica depende do tipo de registro

Page 18: Nível Aplicação 1 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

Nível Aplicação 18

Tipos de Registros de RecursosTipos de Registros de Recursos

Existem os seguintes diferentes tipos de registros:

Page 19: Nível Aplicação 1 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

Nível Aplicação 19

Registro SOA Registro SOA

SOA: Start of Authority – indica a autoridade para os dados deste domínio.

comp.ita.br. SOA ita-r.ita.br root.ita.br. (18 3600 300 3600000 86400)

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) - Após este tempo secundário consulta o número serial do primário.retry = 300 (5 mins) – Tempo entre re-tentativas do secund.expire = 3600000 (41 days 16 hours) – Após este tempo considera-se os dados do secundário desatualizados.default TTL = 86400 (1 day) – Quanto tempo os outros servidores devem manter os dados em cache.

primary name server Responsible mail addr

Page 20: Nível Aplicação 1 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

Nível Aplicação 20

Registros NS e ARegistros 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 nsita.ita.br.Se houvesse um secundário, haveria um registro comocomp.ita.br. IN NS nome2.ita.br.

A – AddressÉ o registro que relaciona IP-Nome. nsita.ita.br. IN A 161.24.23.180rafaela IN A 161.24.23.199

Page 21: Nível Aplicação 1 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

Nível Aplicação 21

Endereço ReversoEndereç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 comps2021.comp.ita.cta.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 122.2.24.161.in-addr.arpa.

Os números dos octetos são tratados como strings, portanto independem de netmask.

Page 22: Nível Aplicação 1 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

Nível Aplicação 22

Registro PTRRegistro 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.122 em 122.2.24.161.in-addr.arpa. e procura registros do tipo PTR.

► A entrada correspondente no arquivo de configuração seria: 122.2.24.161.in-addr.arpa IN PTR comps2021.comp.ita.br

Page 23: Nível Aplicação 1 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

Nível Aplicação 23

Reverso – como funciona?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 122.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 122.2.24.161.in-addr.arpa.

► O servidor DNS da organização responde com o nome comps2021.comp.ita.br.

Page 24: Nível Aplicação 1 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

Nível Aplicação 24

Registro MXRegistro MX► Especifica o host preparado para receber mensagens de

correio eletrônico para o domínio especificado.► Exemplo: O domínio ita.br tem como preferência entregar

e-mails para a máquina vmail.ita.br, em segundo para iara.ita.br

ita.br. IN MX 0 vmail.ita.brita.br. IN MX 10 iara.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.

Page 25: Nível Aplicação 1 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

Nível Aplicação 25

Registro SRVRegistro SRV► 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.

Page 26: Nível Aplicação 1 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

Nível Aplicação 26

BINDBIND► 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.10.1 (Sept, 2014)

► 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.

Page 27: Nível Aplicação 1 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

Nível Aplicação 27

Na práticaNa prática► Digite nslookup (ou dig)► > www.ita.br► Qual o IP desta máquina? Quem respondeu?► Entre no wireshark e pergunte no nslookup o ip de

www.uol.com.br► Que pacotes foram trocados entre você e seu servidor

para saber o IP?► Qual é o nome do associado ao IP 143.108.10.6? ► (No nslookup set type=ptr)► Você conseguiria fazer com que o servidor de nomes da

Google fosse o seu servidor de nomes?

Page 28: Nível Aplicação 1 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

Nível Aplicação 28

Correio EletrônicoCorreio 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.”

Page 29: Nível Aplicação 1 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

Nível Aplicação 29

Arquitetura e ServiçosArquitetura e Serviços

Sistemas de mensagem eletrônica compõem-se de 2 sub-sistemas:

1) Agente usuário: Permite interação com sistema de correio, cria o ambiente para que o usuário envie e recebe e-mail: Thunderbird, Outlook, Gmail...

2) 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).

Page 30: Nível Aplicação 1 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

Nível Aplicação 30

Agentes de Transferência de MsgAgentes 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.

Page 31: Nível Aplicação 1 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

Nível Aplicação 31

Diálogo cliente-servidor - 1Diálogo cliente-servidor - 1

[email protected]@abc.com quer mandar mensagem para [email protected]@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 ReadyC – Helo abc.com

S – 250 xyz.com says hello to abcd.comC – MAIL from: [email protected]@abc.com

S – 250 sender okC – RCPT to: [email protected]@xyz.com

S – 250 recipient okC – DATA

Page 32: Nível Aplicação 1 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

Nível Aplicação 32

Diálogo cliente-servidor - 2Diá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.

Page 33: Nível Aplicação 1 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

Nível Aplicação 33

Arquitetura do sistema de e-mailArquitetura 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.

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.

Page 34: Nível Aplicação 1 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

Nível Aplicação 34

Envelopes e MensagensEnvelopes e Mensagens

(a) Correio

convencional

(b) Correio

eletrônico

RFC 5322 define

formato e

conteúdo das

msgs.

Page 35: Nível Aplicação 1 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

Nível Aplicação 35

Formato de MensagensFormato 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

Page 36: Nível Aplicação 1 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

Nível Aplicação 36

Formato de Formato de MensagensMensagens

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

Page 37: Nível Aplicação 1 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

Nível Aplicação 37

World Wide Web - wwwWorld 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...

Page 38: Nível Aplicação 1 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

Nível Aplicação 38

Modelo cliente-servidorModelo 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.

Page 39: Nível Aplicação 1 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

Nível Aplicação 39

URLURLURL – 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.

Page 40: Nível Aplicação 1 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

Nível Aplicação 40

Passos do BrowserPassos do BrowserQuando o usuário clica em uma página desejada:1. O browser determina a URL;2. O browser pede ao DNS o IP da máquina desejada

(www.ita.br);3. DNS responde com o IP (161.24.23.160);4. O browser solicita conexão TCP na porta 80 da máquina

encontrada;5. O browser envia um GET do arquivo desejado;6. A máquina responde enviando o arquivo desejado;7. Se houver outras URLs na página, busca todas.8. O browser exibe o texto e a seguir as imagens do arquivo.9. A conexão TCP é liberada se não houver outras

solicitações em curto período.;

Page 41: Nível Aplicação 1 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

Nível Aplicação 41

Navegador no clienteNavegador 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

Page 42: Nível Aplicação 1 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

Nível Aplicação 42

Servidor WebServidor Web

Servidor Web multithreaded com um front end e módulos de

processamento

Page 43: Nível Aplicação 1 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

Nível Aplicação 43

Cookies (1)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.

De onde veio o cookie

Parte da arvore de arquivos do servidor que pode usar o cookie

Page 44: Nível Aplicação 1 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

Nível Aplicação 44

Cookies (2)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).

Veja seus cookies! Chrome->Settings->Advanced Settings-> Privacy->Content settings-> All cookies and site data.

Page 45: Nível Aplicação 1 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

Nível Aplicação 45

Páginas dinâmicas (1)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.

Page 46: Nível Aplicação 1 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

Nível Aplicação 46

Páginas dinâmicas (2)Páginas dinâmicas (2)

Ex: Serviço de exibição de mapa1)Usuário pede mapa dado endereço do local;2) Programa no servidor acessa BD, gera página solicitada;3) Retorna página ao cliente;4)Cliente quer zoom: programa no cliente interage c/ user;5)Para atender as solicitações podem ser necessários mais dados;6)Capturam-se dados adicionais do BD;7)Retorna resposta.

Page 47: Nível Aplicação 1 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

Nível Aplicação 47

Páginas dinâmicas (3)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.

Page 48: Nível Aplicação 1 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

Nível Aplicação 48

Páginas dinâmicas (4)Páginas dinâmicas (4)

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.

Processo do servidor

Page 49: Nível Aplicação 1 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

Nível Aplicação 49

Páginas dinâmicas (5)Páginas dinâmicas (5)

PHPPHP e e JavaScriptJavaScript são parecidas por incorporarem código em são parecidas por incorporarem código em arquivos HTML. arquivos HTML.

(a) Script PHP do lado servidor.(a) Script PHP do lado servidor.(b) Script JavaScript do lado cliente.(b) Script JavaScript do lado cliente.

O que é melhor rodar no cliente ou servidor? Depende...O que é melhor rodar no cliente ou servidor? Depende...

Page 50: Nível Aplicação 1 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

Nível Aplicação 50

HTTPHTTP► 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.

Page 51: Nível Aplicação 1 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

Nível Aplicação 51

Conexões (1)Conexões (1)

a)a) Múltiplas conexões e solicitações sequenciais: a medida Múltiplas conexões e solicitações sequenciais: a medida que traz a página descobre as figuras que deve buscarque traz a página descobre as figuras que deve buscar

b)b) Uma conexão persistente e solicitações sequenciais; mais Uma conexão persistente e solicitações sequenciais; mais rápida: (1) sem overhead do estabelecimento (2) passou rápida: (1) sem overhead do estabelecimento (2) passou partida lenta e descobriu comportamento da rede; partida lenta e descobriu comportamento da rede;

c)c) Uma conexão persistente e solicitações por pipeline (em Uma conexão persistente e solicitações por pipeline (em sequência sem esperar a resposta anterior).sequência sem esperar a resposta anterior).

Page 52: Nível Aplicação 1 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

Nível Aplicação 52

Conexões (2)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 uma conexão compete com a outra.conexão compete com a outra.

Conexões persistentes são superiores às paralelas.Conexões persistentes são superiores às paralelas.

Quando você acessa o Quando você acessa o www.ita.br que tipo de conexões que tipo de conexões são abertas pelo navegador? Use o são abertas pelo navegador? Use o WiresharkWireshark. Para . Para estudar pode filtrar o que interessa. No campo filter estudar pode filtrar o que interessa. No campo filter entre:entre:

tcp.port == <num. Porta> tcp.port == <num. Porta> ouou tcp.flags.fin==1 tcp.flags.fin==1

Page 53: Nível Aplicação 1 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

Nível Aplicação 53

MétodosMétodosMensagens utilizados em uma solicitação HTTP

Page 54: Nível Aplicação 1 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

Nível Aplicação 54

Web MóvelWeb MóvelDificuldades para a navegação:1. Telas pequenas (pg e imagens grandes);2. Capacidade de entrada limitada (teclado irritante);3. Largura de banda limitada;4. Conectividade intermitente;5. 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)

Page 55: Nível Aplicação 1 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

ível Aplicação 55

Web MóvelWeb MóvelXHTML: 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.

Page 56: Nível Aplicação 1 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

ível Aplicação 56

Busca na Web Busca na Web

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). ...

Page 57: Nível Aplicação 1 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

ível Aplicação 57

Busca na Web 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 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.

Page 58: Nível Aplicação 1 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

Nível Aplicação 58

Streaming de Áudio e VídeoStreaming de Áudio e VídeoA 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).

Page 59: Nível Aplicação 1 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

Nível Aplicação 59

Áudio DigitalÁudio DigitalSinal 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

Page 60: Nível Aplicação 1 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

Nível Aplicação 60

Compressão de Áudio Compressão de Áudio

Áudio é comprimido para economizar banda.

Codificação: Algoritmos para compressão na origemDecodificaçã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.

Page 61: Nível Aplicação 1 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

Nível Aplicação 61

Vídeo DigitalVídeo Digital

Quando a imagem aparece na retina, é retida por alguns milissegundos antes que desapareça. Assim, se uma sequencia de imagens for apresentada a 50 imagens/s o olho não nota que está vendo 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.

Page 62: Nível Aplicação 1 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

Nível Aplicação 62

Streaming de Mídia Armazenada (1)Streaming de Mídia Armazenada (1)

Assistir vídeos na Internet: VoD (Video on Demand)

Na resposta é enviado o arquivo do tipo MIME video/mp4O 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.

Page 63: Nível Aplicação 1 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

Nível Aplicação 63

Streaming de Mídia Armazenada (2)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).

Page 64: Nível Aplicação 1 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

Nível Aplicação 64

RTSPRTSPReal 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.

Page 65: Nível Aplicação 1 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

Nível Aplicação 65

Técnicas utilizadas:

1) Gravar programas em disco (ex: meia hora depois) – idem streaming de mídia armazenada (quase ao vivo);

2) 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, .

3) 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.

Streaming de Mídia ao Vivo (1)Streaming de Mídia ao Vivo (1)

Page 66: Nível Aplicação 1 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

Nível Aplicação 66

Com poucos clientes e áudio, unicast pode ser tolerado.

Se há banda razoável, qualquer um pode montar uma estação de rádio:

Streaming de Mídia ao Vivo (2)Streaming de Mídia ao Vivo (2)

Page 67: Nível Aplicação 1 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

Nível Aplicação 67

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 (trancou) mas criou a empresa NBX e em 1999 a vendeu para a 3COM por US$90 milhões, quando retornou ao MIT.

Teleconferência em T Real acrescenta o requisito latência baixa aos casos anteriores. Buffer de 10s não resolve...

Teleconferência em Tempo Real (1)Teleconferência em Tempo Real (1)

Page 68: Nível Aplicação 1 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

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)Teleconferência em Tempo Real (2)

Page 69: Nível Aplicação 1 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

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 (2)Teleconferência em Tempo Real (2)

Page 70: Nível Aplicação 1 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

Nível Aplicação 70

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

Teleconferência em Tempo Real (3)Teleconferência em Tempo Real (3)

Seattle:Taxa de preenchimento de áudio = 64kbps Amsterdã

meio

Buffer

Atraso de propagação= 40ms

Taxa de transmissão = 1Mbps

Taxa de transmissão = 1Mbps

Page 71: Nível Aplicação 1 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

Nível Aplicação 71

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

Teleconferência em Tempo Real (2)Teleconferência em Tempo Real (2)

Seattle:Taxa de preenchimento de áudio = 64kbps Amsterdã

meio

Buffer

Atraso de propagação= 40ms

Taxa de transmissão = 1Mbps

Taxa de transmissão = 1Mbps

Page 72: Nível Aplicação 1 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

Nível Aplicação 72

Entrega de conteúdoEntrega de conteúdoA 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.

Page 73: Nível Aplicação 1 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

Nível Aplicação 73

Parque de Servidores (lado servidor)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?)

Page 74: Nível Aplicação 1 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

Nível Aplicação 74

Proxies Web (lado cliente)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.

Page 75: Nível Aplicação 1 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

Nível Aplicação 75

Redes de Entrega de ConteúdoRedes de Entrega de ConteúdoSites 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;

Page 76: Nível Aplicação 1 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

Nível Aplicação 76

Redirecionamento de DNSRedirecionamento de DNSCliente 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.

Page 77: Nível Aplicação 1 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

Nível Aplicação 77

Redes Peer-to-peerRedes Peer-to-peerSaí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