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
1
Nível Aplicação - Roteiro
1.
2.
3.
4.
5.
Introdução
DNS
Correio Eletrônico
WWW
Multimídia: Streaming de Audio e
Vídeo, Teleconferência
6. Entrega de conteúdo: CDN, P2P
Nível Aplicação
2
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, ecommerce, 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 sentido
de não ser notada, ainda que seja perceptível, através de
um dispositivo qualquer.”
Nível Aplicação
3
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
4
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
5
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 nomenú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
6
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
7
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
8
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
9
Criação de Novo Domínio
Solicitar um nome com a autoridade competente, mediante
taxa anual 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).
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
(lrede.comp.ita.br), precisaria da autorização de 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 pertencerNível
a Aplicação
domínios distintos.
10
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ãoNívelfoi
delegada a outros.
Aplicação
11
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
12
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
13
Ilustração de pesquisa DNS
Vide slide 12 com os servidores selecionados
Nível Aplicação
14
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 servidorautoridade.
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
15
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
16
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
17
Tipos de Registros de Recursos
Existem os seguintes diferentes tipos de registros:
Nível Aplicação
18
Registro SOA
SOA: Start of Authority – indica a autoridade para os dados
deste domínio.
primary name server
Responsible mail addr
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)Nível
– Aplicação
Quanto tempo os outros
19
servidores devem manter os dados em cache.
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 nsita.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.
nsita.ita.br.
IN
A
161.24.23.180
rafaela
IN
A
161.24.23.199
Nível Aplicação
20
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
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,
Nível Aplicação
portanto independem de
netmask.
21
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.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
Nível Aplicação
22
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
Nível Aplicação
comps2021.comp.ita.br.
23
Registro 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.br
ita.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.
Nível Aplicação
24
Registro 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.
Nível Aplicação
25
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.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 Nível
seguro
software para e-mail.
Aplicação
26
Também hoje há o DNSSEC que assina os registros.
Na 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?
Nível Aplicação
27
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 tornouse 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
28
Arquitetura 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).
Nível Aplicação
29
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
30
Diálogo cliente-servidor - 1
[email protected] quer mandar mensagem para
[email protected]
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 abc.com
S – 250 xyz.com says hello to abcd.com
C – MAIL from: [email protected]
S – 250 sender ok
C – RCPT to: [email protected]
S – 250 recipient ok
Nível Aplicação
31
C – DATA
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!
221 – ok, terminemos.
354 – Comece
Nível Aplicação
32
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.
Há protocolos para a remessa final: IMAP ou POP3.
Webmail: O agente de usuário
é uma interface do usuário
Nível Aplicação
fornecida por páginas Web.
33
Envelopes e Mensagens
(a) Correio
convencional
(b) Correio
eletrônico
RFC 5322 define
formato e conteúdo
das msgs.
Nível Aplicação
34
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
35
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
36
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
37
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
38
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
39
Passos do Browser
Quando 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
Nível Aplicação
40
solicitações em curto período.;
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
Aplicação
41
completo executado como Nível
processo
separado; ex: powerPoint
Servidor Web
Servidor Web multithreaded com um front end e módulos
de processamento
Nível Aplicação
42
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
Nível Aplicação
43
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-> 44
Nível Aplicação
Privacy->Content settings-> All cookies and site data.
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
45
Páginas dinâmicas (2)
Ex: Serviço de exibição de mapa
1) 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;
Nível Aplicação
46
7) Retorna resposta.
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
47
Páginas dinâmicas (4)
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
Nível Aplicação
48
conteúdo estruturado separando
conteúdo de apresentaçã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.
Nível Aplicação
49
O que é melhor rodar no cliente ou servidor? Depende...
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
50
Conexões (1)
a)
b)
c)
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
51
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.
Quando você acessa o www.ita.br que tipo de conexões
são abertas pelo navegador? Use o Wireshark. Para
estudar pode filtrar o que interessa.
No campo filter entre:
Nível Aplicação
tcp.port == <num. Porta> ou tcp.flags.fin==1
52
Métodos
Mensagens utilizados em uma solicitação HTTP
Nível Aplicação
53
Web Móvel
Dificuldades 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)
Nível Aplicação
54
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
55
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). ...
ível Aplicação
56
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
ível Aplicação
o anonimato de quem deseja.
57
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 InterativaNível
deAplicação
áudio e vídeo (ex: skype).
58
Á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
59
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
Nível Aplicação de áudio e vídeo.
padrão que oferece compressão
60
Ví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
Nível Aplicação na saída codificada.
áudio e vídeo; o tempo é incluído
61
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
62
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
Nível Aplicação
antes de totalmente baixado
(navegador não mais no loop).63
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
Nível Aplicação
entrega de dados dependentes de tempo.
64
Streaming de Mídia ao Vivo (1)
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.
Nível Aplicação
65
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
66
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
(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.NívelBuffer
de 10s não resolve...
Aplicação
67
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 120% 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
Seattle:
Taxa de
preenchimento de
áudio = 64kbps
Atraso de propagação= 40ms
meio
Taxa de transmissão = 1Mbps
Nível Aplicação
Buffer
Taxa de transmissão = 1Mbps
Amsterdã
70
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
Seattle:
Taxa de
preenchimento de
áudio = 64kbps
Atraso de propagação= 40ms
meio
Taxa de transmissão = 1Mbps
Nível Aplicação
Buffer
Taxa de transmissão = 1Mbps
Amsterdã
71
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
72
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
73
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
Nível Aplicação
74
frequentes.
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
75
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
76
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 pesquisa77
Nível Aplicação
Download

Nível 5 - Aplicação - Divisão de Ciência da Computação