Redes de computadores e a Internet
2-Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico
 SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
1
Redes de computadores e a Internet
Camada de aplicação
Nossos objetivos:
 Conceitual, aspectos de implementação de protocolos de aplicação de redes
 Modelos de serviço da camada de transporte
 Paradigma cliente-servidor
 Paradigma peer-to-peer
 Aprender sobre protocolos examinando protocolos da camada de aplicação
populares:
 HTTP
 FTP
 SMTP/POP3/IMAP
 DNS
2
2-Camada de aplicação
Algumas aplicações de rede
 E-mail
 Web (início da década de 1990)
 Mensagem instantânea
 Login remoto (Telnet)
 Compartilhamento de arquivo (P2P)
 Jogos de rede multiusuário
 Rádio via Internet
 TV sobre IP (IPTV)
 Telefonia via Internet
 Videoconferência em tempo real
3
2-Camada de aplicação
Criando uma nova aplicação de rede
Escrever programas que
 Executem sobre diferentes sistemas
finais e
 Se comuniquem através de uma
rede.
 Ex.: Web – software de servidor
Web se comunicando com software
do browser
Nenhum software é escrito para
dispositivos no núcleo da rede
 Dispositivos do núcleo da rede não
trabalham na camada de aplicação
 Esta estrutura permite um rápido
desenvolvimento de aplicação
4
Redes de computadores e a Internet
Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
5
2-Camada de aplicação
Arquiteturas de aplicação
•O Desenvolvedor aproveitará uma das três arquiteturas mais
utilizadas em aplicações modernas de rede:

Cliente-servidor
 Peer-to-peer (P2P)
 Híbrida de cliente-servidor e P2P
6
2-Camada de aplicação
Arquitetura cliente-servidor
Servidor:
 Hospedeiro sempre ativo
 Endereço IP permanente
 Fornece serviços solicitados
pelo cliente
Clientes:
 Comunicam-se com o servidor
 Podem ser conectados
intermitentemente
 Podem ter endereço IP dinâmico
 Não se comunicam diretamente
uns com os outros
7
2-Camada de aplicação
Arquitetura cliente-servidor
Exemplos de aplicações que utilizam arquitetura clientesevidor:
• WEB
• Transferência de arquivos
• Login remoto
• Email
• Blogs
Muitas vezes utiliza-se conjuntos de servidores para criar um
SERVIDOR VIRTUAL.
8
2-Camada de aplicação
Arquitetura P2P pura
 Nem sempre há um servidor
 Sistemas finais arbitrários comunicamse diretamente
 Pares são intermitentemente
conectados e podem trocar seus
endereços IP cada vez que forem
ligados
 Ex.: Emule, Gnutella
9
2-Camada de aplicação
Arquitetura P2P pura
 Altamente escaláveis mas difíceis
de gerenciar :
Milhões de pares podem participar da
comunidade de compartilhamento de
arquivos, sendo que cada um deles
funciona como um servidor e contribui
com recursos para a comunidade.
Cada par adicional não apenas aumenta a demanda, mas
também aumenta a capacidade de serviço.
10
2-Camada de aplicação
Arquitetura P2P pura
 Apresentam 2 desafios:
 A quase totalidade dos ISPs
residenciais (DSL) foram
dimensionados para uso de
largura de banda assimétrica, ou
seja, para muito mais tráfego de
entrada do que de saída. As
aplicações P2P precisam ser
criadas para que sejam amigáveis
aos ISPs.
 Em razão de sua natureza
altamente distribuída e exposta, as
aplicações P2P podem ser um
desafio para proteger.
11
2-Camada de aplicação
Híbrida de cliente-servidor e P2P
Napster – Extinto – Compartilhamento de arquivos MP3
 Transferência de arquivo P2P - Arquivos eram trocados diretamente
entre pares.
 Busca centralizada de arquivos: Um par consultava um servidor central
para determinar quais pares que estavam em funcionamento tinham
um arquivo MP3 desejado.
 Conteúdo de registro dos pares no servidor central
 Consulta de pares no mesmo servidor central para localizar o conteúdo
12
2-Camada de aplicação
Híbrida de cliente-servidor e P2P
Instant messaging
 Bate-papo entre dois usuários é P2P - O texto enviado entre dois
usuários não passa pelo servidor.
 Detecção/localização centralizada de presença:
 Usuário registra seu endereço IP com o servidor central quando fica online
 Usuário contata o servidor central para encontrar endereços IP dos
amigos on-line.
13
2-Camada de aplicação
Comunicação de processos
• Programas que rodam em vários sistemas finais comunicamse por processos.
• Quando os processos comunicantes estão rodando no
mesmo sistema final, eles comunicam-se entre si usando
comunicação interprocessos, cujas regras são determinadas
pelo sistema operacional.
14
2-Camada de aplicação
Comunicação de processos
Processo: programa executando num hospedeiro
 Dentro do mesmo hospedeiro: dois processos se comunicam usando
comunicação interprocesso (definido pelo Sistema Operacional)
 Processos em diferentes hospedeiros se comunicam por meio de
troca de mensagens
 Processo cliente: processo que inicia a comunicação
 Processo servidor: processo que espera para ser contatado
15
2-Camada de aplicação
Comunicação de processos
Processo: programa executando num hospedeiro
 Por exemplo, na aplicação Web, o processo browser de um cliente
troca mensagens com o processo de um servidor Web.
 Em um sistema de compartilhamento de arquivos P2P, um arquivo é
transferido de um processo que está em um par para outro que está
em outro par.
16
Redes de computadores e a Internet
Camada de aplicação - Sockets
 Um processo envia/recebe
mensagens para/de seu
socket.
 O socket é análogo a uma
porta.
 O processo de envio empurra
a mensagem para fora da
porta.
 O processo de envio confia
na infra-estrutura de
transporte no outro lado da
porta que leva a mensagem
para o socket no processo de
recepção.
 É também denominado API (Interface de Programação da Aplicação): (1)
escolha do protocolo de transporte; (2) habilidade para fixar poucos
parâmetros (Tamanho do buffer e segmentos).
17
Redes de computadores e a Internet
Camada de aplicação - Sockets
 É também denominado API (Interface de Programação da
Aplicação):
 Os únicos controles que o desenvolvedor da aplicação tem do
lado da camada de transporte são:
 (1) escolha do protocolo de transporte;
 (2) Talvez a habilidade para fixar poucos parâmetros
(Tamanho do buffer e segmentos).
18
Redes de computadores e a Internet
Camada de aplicação-Processos de endereçamento
 Para um processo receber mensagens, ele deve ter um identificador.
 Um hospedeiro possui um único endereço IP de 32 bits (IPV-4).
 P.: O endereço IP do hospedeiro onde o processo está executando é suficiente
para identificar o processo?
 R.: Não, muitos processos podem estar em execução no mesmo
hospedeiro.
 O identificador inclui o endereço IP e o número da porta associada ao
processo no hospedeiro
 Exemplos de números de porta:
 Servidor HTTP: 80
 Servidor de Correio (SMTP) : 25
• Lista do número de portas pode ser encontrada no site www.iana.org.
19
2-Camada de aplicação
O protocolo da camada de aplicação define
É importante distinguir aplicações de rede de protocolos
de camada de aplicação. Um protocolo de camada de
aplicação é apenas um pedaço (embora grande) de
aplicação da rede.
Exemplo:
1- Aplicação WEB e o protocolo de aplicação WEB, HTTP.
Este define o formato e a seqüência das mensagens que
são passadas entre o browser e o servidor WEB.
2- Correio eletrônico e o protocolo SMTP (RFC – 5321).
20
2-Camada de aplicação
Um protocolo da camada de aplicação define:
 Tipo das mensagens trocadas, mensagens de requisição e resposta.
 Sintaxe dos tipos de mensagem: os campos nas mensagens e como são
delineados.
 Semântica dos campos, ou seja, significado da informação nos campos.
 Regras para quando e como os processos enviam e respondem às mensagens.
Protocolos de domínio público:
 Definidos nas RFCs - IETF
 Recomendados para interoperabilidade
 Ex.: HTTP (RFC 2616), SMTP (5321)
Protocolos proprietários:
 Ex.: KaZaA
21
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
TCP
UDP
22
2-Camada de aplicação
Os serviços podem ser classificados segundo quatro
dimenções:
•
•
•
•
Transferência
confiável
de
dados
(
TCP
IMPLEMENTA)
Vazão (TCP e UDP não implementam)
Temporização (TCP e UDP não implementam)
Segurança (SSL (camada de sockets seguros
implementam))
23
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
Transferência confiável de dados: Perda de dados
 Algumas aplicações (ex.: áudio) podem tolerar alguma perda.
 Outras aplicações (ex.: transferência de arquivos, telnet) exigem
transferência de dados 100% confiável.
24
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
Temporização (TCP e UDP não implementam este serviço)
 Algumas aplicações (ex.: telefonia Internet, jogos interativos) exigem
baixos atrasos fim a fim para serem “efetivos”.
 Como exemplo, se cada bit que o remetente insere no socket chega ao
socket destinatário em menos de 100 milissegundos. Esse serviço seria
atrativo para aplicações interativas em tempo real,como a telefonia por
Internet.
25
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
Vazão : Banda passante (TCP e UDP não implementam este serviço)
 Algumas aplicações (ex.: multimídia) exigem uma banda mínima para
serem “efetivas”.
 Exemplo: Se uma aplicação de telefonia por Internet codifica voz a 32
bits/s, ela precisa enviar dados para a rede e fazer com que sejam
entregues na aplicação receptora a essa mesma taxa.
 Outras aplicações (“aplicações elásticas- Correio eletrônico, transferência
de arquivos”) melhoram quando a banda disponível aumenta.
26
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
Segurança (Fornecido pela camada de aplicação)
 Codificação e decodificação de dados
 Autenticação do ponto terminal.
• Aperfeiçoamento do TCP : SSL – Camada de Sockets Seguros
• Oferece serviços de segurança processo a processo incluindo,
codificação, integridade dos dados e autenticação do ponto de
chegada.
• salientamos que o SSL não é um terceiro protocolo, no mesmo nível
do TCP e do UDP, mas um aperfeiçoamento do TCP implementado na
camada de aplicação.
27
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
TCP
Serviço Orientado à conexão
•
Apresentação
•
Envio full-duplex (simultânea)
Serviço confiável de transporte
•
Quando um lado da aplicação passa uma
cadeia de bytes para dentro de um socket, pode
contar com o TCP para entregar a mesma cadeia
de dados ao socket receptor sem falta de bytes
nem bytes duplicados.
28
2-Camada de aplicação
De qual serviço de transporte uma aplicação necessita?
TCP
• O TCP inclui um mecanismo de controle de congestionamento,voltado
ao bem-estar geral da Internet e não ao benefício direto dos processos
comunicantes. Este mecanismo limita a capacidade de transmissão de
um processo quando a rede está congestionada.
• A limitação da velocidade de transmissão pode ter um efeito muito
prejudicial sobre aplicações de áudio e vídeo em tempo real que
imponham uma limitação de largura de banda mínima.
29
2-Camada de aplicação
Requisitos de transporte de aplicação comuns
Exemplo de requisitos de algumas aplicações:
Aplicação Perdas
Sensibilidade ao
Largura de Banda atraso
Transferência de arquivos sem perdas elástica
e-mail sem perdas elástica
documentos Web tolerante
elástica
Telefonia via Internet tolerante
áudio: 5 Kbps-1 Mbps
áudio/vídeo Armazenado tolerante
jogos interativos tolerante
vídeo:10 Kbps-5 Mbps
sim,
décimos de segundo
igual à anterior
sim, segundos
Alguns kbps – 10 mbps
Mensagem Instantânea sem perda elástica
30
não
não
não
Sim,
décimos de segundo
sim
30
2-Camada de aplicação
Serviços dos protocolos de transporte da Internet
Serviço TCP:
 Orientado à conexão: conexão requerida entre processos cliente e servidor
 Apresentação
 Transporte confiável: entre os processos de envio e recepção
 Controle de congestionamento: protege a rede do excesso de tráfego
Não oferece: garantias de temporização e de banda mínima. Ou seja, o TCP
garante a entrega de todos os dados, mas não dá nehuma garantia quanto à
velocidade de entrega ou aos atrasos experimentados.
Serviço UDP:
 Transferência de dados não confiável entre os processos transmissor e receptor
 Não oferece: estabelecimento de conexão, confiabilidade, controle de
congestionamento, garantia de temporização e de banda mínima.
P.: Por que ambos? Por que existe o UDP?
31
2-Camada de aplicação
Aplicação e protocolos de transporte da Internet
Aplicação
acesso de terminais remotos
Web
transferência de arquivos
telefonia Internet
Correio eletrônico
Protocolo de
aplicação
Protocolo de
transporte
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
RTP ou proprietário
(por exemplo, Skipe)
TCP
TCP
TCP
tipicamente UDP
SMTP (RFC 5321)
TCP
32
Redes de computadores e a Internet
Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
33
2-Camada de aplicação
Tecnologias de comunicação eletrônica que
provocaram enormes impactos sociais.
• TELEFONE – década de 1870.
• TELEVISÃO – 1920-1930
• WEB - Início década de 1990.
• Funciona por demanda. Usuários recebem o que
querem, quando querem.
34
2-Camada de aplicação
Web e HTTP
Primeiro alguns jargões
 Página Web consiste de objetos
 Objeto pode ser arquivo HTML, uma imagem JPEG, uma imagem
GIF, applet Java, arquivo de áudio,…
 A página Web consiste de arquivo- base HTML, que inclui vários
objetos referenciados.
 Cada objeto é endereçado por uma URL
 Exemplo de URL:
www.someschool.edu/someDept/pic.gif
Nome do hospedeiro
Nome do caminho
35
2-Camada de aplicação
Web e HTTP
• O protocolo da camada de aplicação HTTP define como
cliente WEB os browsers (navegadores – Firefox –
Microsoft Internet Explore) requisitam páginas Web aos
servidores WEB (Apache, Microsoft Internet Information
Server).
•Portanto a aplicação WEB consiste em:
• Um padrão para o formato do documento – HTML.
• Browsers Web - Firefox – Microsoft Internet Explore.
• Servidores WEB- Apache, Microsoft Internet
Information Server.
• Protocolo da Camada de Aplicação – HTTP.
36
2-Camada de aplicação
Visão geral do HTTP
HTTP: HyperText Transfer Protocol
 Protocolo da camada de aplicação da
Web. Define o formato e a
sequência das mensagens que são
passadas entre o browser e o
servidor Web.
 Modelo cliente/servidor
 Cliente: browser que solicita,
recebe e apresenta objetos da Web
 Servidor: envia objetos em resposta
a pedidos
•
HTTP define a estrutura de
menagens e o modo como o
cliente e o servidor as trocam.
 HTTP 1.0: RFC 1945 até 1997
 HTTP 1.1: RFC 2616 a partir de 1998
37
2-Camada de aplicação
Web e HTTP
HTTP utiliza TCP:
 Cliente inicia conexão TCP (cria socket) para o servidor na
porta 80.
 Servidor aceita uma conexão TCP do cliente.
 mensagens HTTP (mensagens do protocolo de camada de
aplicação) são trocadas entre o browser (cliente HTTP) e o
servidor Web (servidor HTTP).
38
2-Camada de aplicação
Web e HTTP
HTTP utiliza TCP:
 A conexão TCP é fechada.
 Vantagem da arquitetura de camadas: O HTTP não precisa se
preocupar com dados perdidos ou com detalhes de como o
TCP recupera a perda de dados ou os reordena dentro da
rede. Esta é tarefa do TCP e dos protocolos das camadas mais
inferiores da pilha de protocolos.
39
2-Camada de aplicação
Web e HTTP
HTTP é “um protocolo sem estado”
 O servidor não mantém informação sobre os pedidos passados
pelos clientes
 Se um cliente solicita o mesmo objeto duas vezes em um
intervalo de poucos segundos, o servidor não responde
dizendo que acabou de enviar o objeto; em vez
disso,envia novamente o objeto, pois não armazenou o
estado do solicitação anterior.
Protocolos que mantêm informações de “estado” são
complexos!
 Histórico do passado (estado) deve ser mantido
 Se o servidor/cliente quebra, suas visões de “estado” podem
ser inconsistentes, devendo ser reconciliadas.
40
2-Camada de aplicação
Conexões HTTP
HTTP não persistente ( A conexão não persiste para outros objetos)
 No máximo, um objeto é enviado sobre uma conexão TCP
 O HTTP/1.0 utiliza HTTP não persistente
HTTP persistente
 Múltiplos objetos podem ser enviados sobre uma conexão
 TCP entre o cliente e o servidor
 O HTTP/1.1 utiliza conexões persistentes em seu modo padrão
41
2-Camada de aplicação
HTTP não persistente
(contém texto, referências a 10 imagens jpeg)
www.someSchool.edu/someDepartment/home.index
Usuário entra com a URL:
1a. Cliente HTTP inicia conexão
TCP ao servidor HTTP
(processo) em
www.someSchool.edu. Porta
80 é a default para o servidor
HTTP
2. Cliente HTTP envia HTTP request
message (contendo a URL) para
o socket da conexão TCP
Tempo
1b. Servidor HTTP no hospedeiro
www.someSchool.edu esperando
pela conexão TCP na porta 80.
“Aceita” conexão, notificando o
cliente
3. Servidor HTTP recebe mensagem
de pedido, forma response
message contendo o objeto
solicitado
(someDepartment/home.index),
envia mensagem para o socket
42
2-Camada de aplicação
HTTP não persistente
4. Servidor HTTP fecha conexão
TCP
5. Cliente HTTP recebe
mensagem de resposta
contendo o arquivo html,
apresenta o conteúdo html.
Analisando o arquivo html,
Tempo encontra 10 objetos jpeg
referenciados
6. Passos 1-5 são repetidos para
cada um dos 10 objetos jpeg
Note que cada conexão TCP transporta exatamente uma
mensagem de requisição e uma mensagem de resposta. Nesse
exemplo, quando um usuário solicita a página Web, são
geradas 11 conexões TCP.
43
2-Camada de aplicação
HTTP não persistente
Façamos um cálculo para estimar o tempo que
transcorre entre a requisição e o recebimento de um
arquivo-base HTTP por um cliente.
Definimos (Round-Trip time – RTT ) como tempo de
viagem de ida e volta.
44
2-Camada de aplicação
Modelagem do tempo de resposta
Definição de RRT (Round-Trip
Time- Tempo de viagem de
ida e volta: tempo para
enviar um pequeno pacote
que vai do cliente para o
servidor e retorna
Tempo de resposta:
 Um RTT para iniciar a
conexão TCP
 Um RTT para requisição
HTTP e primeiros bytes
da resposta HTTP para
retorno
 Tempo de transmissão de
arquivo
Total = 2RTT+ tempo de transmissão
45
2-Camada de aplicação
Características do HTTP não-persistente:
 Requer 2 RTTs por objeto
 Os browsers freqüentemente abrem conexões TCP
paralelas para buscar objetos referenciados.
HTTP persistente
 Servidor deixa a conexão aberta após enviar uma resposta
 Mensagens HTTP subseqüentes entre o mesmo
cliente/servidor são enviadas pela conexão.
46
2-Camada de aplicação
Mensagem HTTP request
 Dois tipos de mensagens HTTP: request, response
 HTTP request message:
O Browser esta dizendo ao servidor que não
quer usar conexões persistentes: quer que o
servidor feche a conexão após o envio do objeto
requisitado.
Linha de requisição (métodos)
(comandos GET, POST, GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
HEAD )
Conection: close
Linhas de User-agent: Mozilla/4.0
cabeçalho Accept-language:fr
O usuário prefere receber
uma versão em francês do
objeto,
se
existir.Caso
contrário receberá o default
47
2-Camada de aplicação
Mensagem HTTP request
 Dois tipos de mensagens HTTP: request, response
 HTTP request message:
Linha de requisição (métodos)
(comandos GET, POST, GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
HEAD )
Conection: open
Linhas de User-agent: Mozilla/4.0
cabeçalho Accept-language:fr
O usuário prefere receber
uma versão em francês do
objeto,
se
existir.Caso
contrário receberá o default
48
2-Camada de aplicação
Mensagem HTTP request: formato geral
49
2-Camada de aplicação
Entrada de formulário
Método Post:
 Página Web freqüentemente inclui entrada de formulário. O usuário
preenche um formulário.Pode-se usar o modo GET também.
 A entrada é enviada para o servidor no corpo da entidade
Método URL – Utiliza o GET:
 Inclue os dados digitados(nos campos dos formulários) no URL
requisitado.Por exemplo, se um formulário usar tiver 2 campos e as
entradas desses campos forem monkeys e bananas, então a estrutura
do URL será:
www.somesite.com/animalsearch?monkeys&banana

 Utiliza o método GET
 A entrada é enviada no campo de URL da linha de requisição:
50
2-Camada de aplicação
Tipos de métodos
HTTP/1.0
 GET
 POST
 HEAD (utilizado para depuração)
 Pede para o servidor deixar o objeto requisitado fora da
resposta
HTTP/1.1
 GET, POST, HEAD
 PUT (edição)
 O Cliente envia o arquivo no corpo da entidade para o caminho
especificado no campo de URL.
 DELETE (edição)
 O cliente apaga o arquivo especificado no campo de URL.
51
2-Camada de aplicação
Mensagem HTTP response
Linha de estado
Linhas de
cabeçalho
Dados, ex.:
arquivo html
HTTP/1.1 200 OK
Conection:close (indica que o servidor encerrará a conexão)
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
data data data data data ...
Data e hora em que foi feito o
envio do arquivo
52
2-Camada de aplicação
Códigos de status das respostas
Na primeira linha da mensagem de resposta servidor  cliente.
Alguns exemplos de códigos:
200 OK
 Requisição bem-sucedida, objeto requisitado a seguir nesta mensagem
301 Moved permanently
 Objeto requisitado foi movido, nova localização especificada a seguir nesta
mensagem (Location:)
400 Bad request
 Mensagem de requisição não compreendida pelo servidor
404 Not Found
 Documento requisitado não encontrado neste servidor
505 HTTP version not supported
• a versão do protocolo HTTP requisitada não é suportada pelo servidor.
53
2-Camada de aplicação
Estado usuário-servidor: cookies
A maioria dos grandes sites Web utiliza cookies (RFC 2965) para
identificar e monitorar usuários.
Quatro componentes:
1) Linha de cabeçalho do cookie na mensagem HTTP response
2) Linha de cabeçalho de cookie na mensagem HTTP request
3) Arquivo de cookie mantido no hospedeiro do usuário e manipulado pelo
browser do usuário
4) Banco de dados de apoio no site Web
Exemplo:
 Susan acessa a Internet sempre do mesmo PC
 Ela visita um site específico de e-commerce pela primeira vez
 Quando a requisição HTTP inicial chega ao site, este cria um ID único e
uma entrada no banco de dados de apoio para este ID
54
2-Camada de aplicação
Cookies: mantendo “estado”
Cliente
Cookie file
ebay: 8734
usual HTTP request
msg
usual HTTP response +
Set-cookie: 1678
Cookie file
amazon: 1678
ebay: 8734
usual HTTP request msg
cookie: 1678
Uma semana depois:
Cookie file
amazon: 1678
ebay: 8734
usual HTTP response
msg
usual HTTP request msg
cookie: 1678
usual HTTP response
msg
Servidor
servidor
cria o ID 1678
para o usuário
especificação
do cookie
especificação
do cookie
55
2-Camada de aplicação
Cookies
O que os cookies podem trazer:
 Autorização
 Cartões de compra
 Recomendações
Cookies e privacidade:
 Cookies permitem que sites saibam muito sobre você
 Você pode fornecer nome e e-mail para os sites
 Companhias de propaganda obtêm informações por
meio dos sites
56
2-Camada de aplicação
Caches Web (Servidor Proxy - Proxy Server)
Objetivo: atender o cliente sem envolver o servidor Web
originador da informação
 Usuário configura o browser:
acesso Web é feito por meio de
um proxy
 Cliente envia todos os pedidos
HTTP para o Cache Web
 Se o objeto existe no Web
cache: Web cache retorna o
objeto
 Ou o Cache Web solicita
objeto do servidor original
e então envia o objeto ao
cliente
57
2-Camada de aplicação
Web caches (proxy server)
 O cache atua tanto no servidor como no cliente
 Tipicamente, o cache é instalado pelo ISP
(universidade, empresa, ISP residencial).
Por que Caching Web?
 Reduz o tempo de resposta para a requisição do
cliente
 Reduz o tráfego num enlace de acesso de uma
instituição.
 Reduz o custo e o tráfego de dados de uma
instituição à Intenet.
58
2-Camada de aplicação
Exemplo de caching
Suponha:
 Tamanho médio objeto = 100.000 bits
= 100 kb.
 Taxa média de requisições dos
browsers da instituição para os
servidores de origem = 15/s.
 Atraso do roteador da Internet para
ir a qualquer servidor de origem e
retornar ao roteador = 2 s.
59
2-Camada de aplicação
Exemplo de caching
Conseqüências:
 Utilização da LAN = 15%
 (15 (requisições/segundo )* 100
kbps)/10 Mbps = 0,15
 Utilização do link de acesso = 100%
 (15 (requisições/segundo )* 100
kbps)/1,5 Mbps =1
 Atraso total = atraso da Internet +
atraso de acesso + atraso da LAN =
2 segundos + minutos +
milissegundos
60
2-Camada de aplicação
Exemplo de caching
Solução possível
 Aumentar a largura de
banda do enlace de
acesso, para, 10 Mbps.
Conseqüências
 Utilização da LAN = 15%
 Utilização do enlace de acesso =
15%
 Atraso total = atraso da Internet +
atraso de acesso + atraso da LAN =
2 segundos + msegs + msegs
 Freqüentemente é um upgrade
caro
61
2-Camada de aplicação
Exemplo de caching
Instalação do cache
 Suponha que a taxa de
atendimento às requisições seja
0.4 ou 40%. Em geral ficam de 20
a 70%.
62
2-Camada de aplicação
Exemplo de caching
Conseqüências:
 40% das requisições serão satisfeitas
quase que imediatamente.
 60%
das
requisições
serão
satisfeitas pelos servidores de
origem.
 Diminui o tráfego no enlace que
conecta à Internet.
Embora possa reduzir os tempos de
repostas do ponto de vista do usuário,
fazer cache introduz um novo problema
A cópia de um objeto existente no
cache pode estar desatualizada.
63
2-Camada de aplicação
GET condicional
• O GET condicional permite que um cache verifique se
seus objetos estão atualizados.
• Suponha que um cliente peça um objeto do cache. Se
uma semana depois este mesmo objeto for solicitado, o
cache envia um GET condicional ao servidor de origem.
64
5
2-Camada de aplicação
GET condicional
Cliente- Servidor cache
 Razão: não enviar objeto se
a versão que o cliente já
possui está atualizada
 Cliente: especifica data da
versão armazenada no
pedido HTTP
 If-modified-since: <date>
 Servidor: resposta não
contém objeto se a cópia é
atualizada:
HTTP/1.1 304 Not Modified
HTTP request msg
If-modified-since:
<date>
HTTP response
HTTP/1.1
304 Not Modified
HTTP request msg
If-modified-since:
<date>
Servidor de
origem
Objeto
não
modificado
Objeto
modificado
HTTP response
HTTP/1.1
<data>
65
Redes de computadores e a Internet
Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
66
2-Camada de aplicação
FTP: o protocolo de transferência de arquivos
 Transferência de arquivos de e para o computador remoto
 Modelo cliente servidor
 Cliente: lado que inicia a transferência (seja de ou para o lado remoto)
 Servidor: hospedeiro remoto
 FTP: RFC 959
 FTP servidor: porta 21
67
2-Camada de aplicação
FTP: controle separado, conexões de dados
 Os protocolos FTP e HTTP utilizam o TCP. No entanto, o FTP usa duas
conexões TCP paralelas para transferir um arquivo:
 Uma Conexão de Controle
 Uma Conexão de Dados
68
2-Camada de aplicação
FTP: controle separado, conexões de dados
 Cliente FTP contata o servidor FTP na porta 21 especificando o TCP como
protocolo de transporte.
 Cliente obtém autorização pela conexão de controle.
 Cliente procura o diretório remoto enviando comandos pela conexão de
controle.
69
2-Camada de aplicação
FTP: controle separado, conexões de dados
 Quando o servidor recebe um comando para uma
transferência de arquivo, ele abre uma conexão de dados
TCP para o cliente.
 Após a transferência de um arquivo, o servidor fecha a
conexão.
 Servidor abre uma segunda conexão de dados TCP para
transferir outro arquivo.
 Conexão de controle: “fora da banda”.
 Servidor FTP mantém “estado”: diretório atual,
autenticação anterior.
70
2-Camada de aplicação
FTP: controle separado, conexões de dados
 Assim, com o FTP, a conexão de controle permanece
aberta durante toda a sessão do usuário, mas uma nova
conexão de dados é criada para cada arquivo tranferido
dentro de uma sessão.
71
2-Camada de aplicação
FTP comandos, respostas
Exemplos de comandos na conexão de controle:
 Envie um texto ASCII sobre canal de controle
 USER username
 PASS password
 LIST retorna listagem do arquivo no diretório atual do servidor
 RETR filename extrai o arquivo do servidor.Ativa o servidor para que
abra uma conexão de dados e envie o arquivo requisitado por esta
conexão.
 STOR filename armazena o arquivo no hospedeiro remoto
72
2-Camada de aplicação
FTP comandos, respostas
Cada comando é seguido de uma resposta,
que é enviada do servidor ao cliente
Exemplos de códigos de retorno
 Código de status e frase (como no HTTP)
 331 Username OK, password required
 125 Conexão de dados já aberta; iniciando transferência
 425 Não é possível abrir a conexão de dados
 452 Erro ao escrever o arquivo
73
Redes de computadores e a Internet
Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
74
2-Camada de aplicação
Correio eletrônico
SMTP Transfere mensagens de servidores de correio remetentes para servidores
de correio destinatários.
Três componentes principais:
 Agentes de usuário
 Servidores de correio
 Simple mail transfer protocol: SMTP
RFC 5321
Agente de usuário
“leitor de correio”
 Composição, edição, leitura de
mensagens de correio
 Ex.: gmail
75
2-Camada de aplicação
Correio eletrônico: servidores de correio
Servidores de correio
 Caixa postal contém mensagens
que chegaram (ainda não lidas)
para o usuário
 Fila de mensagens contém as
mensagens de correio a serem
enviadas
Protocolo SMTP permite aos
servidores de correio trocarem
mensagens entre si
 Cliente: servidor de correio
que envia
 “Servidor”: servidor de
correio que recebe
76
2-Camada de aplicação
Cenário: Alice envia mensagem para Bob
HTTP
1) Alice usa o agente de usuário (UA) para compor a mensagem e enviar “para”
[email protected]
2) O agente de usuário dela envia a mensagem para o seu servidor de correio; a
mensagem é colocada na fila de mensagens.
3) O lado cliente do SMTP abre uma conexão TCP com o servidor de correio do Bob.
4) O cliente SMTP envia a mensagem de Alice pela conexão TCP.
5) O servidor de correio de Bob coloca a mensagem na caixa de correio de Bob.
6) Bob invoca seu agente de usuário para ler a mensagem.
77
2-Camada de aplicação
Cenário: Alice envia mensagem para Bob
HTTP
É importante observar que o STMP não usa servidores de
correios intermediários para enviar a mensagem.
78
2-Camada de aplicação
Correio eletrônico: SMTP [RFC 2821]
 Usa TCP para transferência confiável de mensagens de correio do
cliente ao servidor, porta 25
 Transferência direta: servidor que envia para o servidor que recebe
 Três fases de transferência
 Handshaking (apresentação)
 Transferência de mensagens
 Fechamento
 Interação comando/resposta
 Comandos: texto ASCII
 Resposta: código de status e frase
 Mensagens devem ser formatadas em código ASCII de 7 bits
SMTP é um protocolo de envio de informação (push), não servindo para
obter dados.
79
2-Camada de aplicação
Exemplo de interação SMTP
“C”: linhas que o cliente envia para dentro de seu socket TCP.
“S”: linhas que o servidor envia para dentro de seu socket TCP.
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:
220 hamburger.edu
HELO crepes.fr
250 Hello crepes.fr, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected] Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Voce gosta de ketchup?
Que tal pickles?
.
250 Message accepted for delivery
QUIT
221 hamburger.edu closing connection
80
2-Camada de aplicação
Exemplo de interação SMTP
Quando uma mensagem de email é enviada, um cabeçalho contendo
informações periféricas pode ser anexado.
Essas informações periféricas estão contidas em uma série de linhas
cabeçalho definidas na RFC 5322-------Comandos MINE.
Um cabeçalho típico é semelhante a:
From: [email protected]
To: [email protected]
Subject: envio de dados.
É importante notar que essas linhas de cabeçalho são diferentes dos
comandos SMTP, ainda que contenham algumas palavras em comum.
Os comandos SMTP fazem parte do protocolo; as linhas de cabeçalho
examinadas nesta seção fazem parte da própria mensagem.
81
2-Camada de aplicação
Protocolos de acesso ao correio
HTTP
 SMTP: entrega e armazena no servidor do destino
 Protocolos de acesso: TRANSFEREM MENSAGENS DO SERVIDOR DE
CORREIO PARA O PC LOCAL
 POP3: Post Office Protocol [RFC 1939]
 Autorização (agente <-->servidor) e download
 Porta 110
 IMAP: Internet Mail Access Protocol [RFC 3501]
 Mais recursos (mais complexo)
 Manipulação de mensagens armazenadas no servidor
 HTTP: Hotmail, Yahoo! Mail etc.
82
2-Camada de aplicação
POP3 e IMAP
POP3
 Usa o modo “ler e apgar” e “ler e guardar”
 Não permite manipular pastas no servidor de correio.
IMAP
 Mantém todas as mensagens em um lugar: o servidor
Permite que o usuário organize as mensagens em pastas
HTTP
• Meio de enviar e acessar email mais utilizado.
• Lançado pelo Hotmail em meados da década de 1990.
83
Redes de computadores e a Internet
Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
84
2-Camada de aplicação
DNS: Dominain Name System
Pessoas: muitos identificadores:
 RG, nome, passaporte
Internet hospedeiros, roteadores:
 Endereços IP (32 bits – 4 bytes) - usados para endereçar
datagramas
 “nome”, ex.: sel.eesc.usp.br - usados por humanos
P.: Relacionar nomes com endereços IP?
Domain Name System:
• RFC 1034 e RFC 1035 e atualizados em RFCs adicionais
85
2-Camada de aplicação
DNS: Dominain Name System
Domain Name System:
 É uma “Base de dados Distribuída” implementada
numa hierarquia de muitos servidores de nomes.
• É um “Protocolo de camada de aplicação” que
permite que hospedeiros consultem o banco de dados
distribuídos.
 Servidores de nomes são frequentemente máquinas
UNIX que executam o software BIND (Berkeley
Internet Name Domain).
86
2-Camada de aplicação
DNS: Dominain Name System
Domain Name System:
 O Protocolo DNS utiliza UDP e a porta 53.
 Nota: função interna da Internet, implementada
como protocolo da camada de aplicação
• Utilizado por HTTP, FTP, SMTP para traduzir nomes
de hospedeiros em endereçoes IP.
87
Redes de computadores e a Internet
DNS: Dominain Name System
Procedimentos de consulta DNS
• A própria máquina do usuário executa o lado cliente da aplicação
DNS.
• O browser extrai o nome de hospedeiro, www.uol.com.br, do URL e
passa o nome para o lado do cliente da aplicação DNS.
• O cliente DNS envia uma consulta contendo o nome do hospedeiro
para um servidor DNS.
Complexidade da Internet esta localizada na
periferia da rede.
88
Redes de computadores e a Internet
DNS: Dominain Name System
• O cliente DNS finalmente recebe uma resposta, que inclui o
endereço IP para o nome do hospedeiro.
• Tão logo o browser receba o endereço do DNS, pode abrir uma
conexão TCP com o processo servidor HTTP localizado naquele
endereço IP.
Complexidade da Internet esta localizada na
periferia da rede
89
Redes de computadores e a Internet
Atraso provocado pelo DNS
• O DNS adiciona mais um atraso – às vezes substancial –
às aplicações de Internet que o usam. Felizmente, como
discutiremos mais adiante, o endereço IP procura
frequentemente está no cache de um servidor DNS
“próximo”, o que ajuda a reduzir o tráfego DNS na rede,
bem como o atraso médio do DNS.
90
Redes de computadores e a Internet
Serviços DNS
O DNS provê outros serviços importantes além
da tradução de nomes de hospedeiros para endereços
IP.
•Obter o nome canônico para apelidos e finalmente o
endereço IP.
• Ex: relayl.west-coast.enterprise.com é o nome
canônico.
• enterprise.com é o apelido
• Permite o servidor de email e o servidor de web de uma
empresa tenham nomes idênticos.
• Ex: enterprise.com
91
Redes de computadores e a Internet
Camada de aplicação
• Distribuição de carga
• Sites como cnn.com podem ser replicados em vários
servidores com endereços IPs diferentes.
• Um conjunto de endereços IPs fica associado ao nome
canônico e contido no banco de dados do DNS.
• Quando clientes consultam um nome mapeado para
um conjunto de endereços, o DNS responde com um
conjunto inteiro de endereços IP, mas faz um rodízio da
ordem dos endereços dentro de cada resposta.
• Como o HTTP envia sempre para o primeiro endereço
IP há um balanceamento de carga.
92
Redes de computadores e a Internet
Base de dados distribuída, hierárquica
Por que não centralizar o DNS?
 Ponto único de falha
 Volume de tráfego
 Base centralizada de dados distante
 Um único servidor de nomes não poderia estar
“próximo” de todos os clientes que fazerm
consultas.
 Manutenção
 Banco de dados enorme e de difícil
atualização.
Não é escalável!
93
Redes de computadores e a Internet
Base de dados distribuída, hierárquica
Servidores Raiz
Servidores de alto-nível
Servidores com
autoridade
Servidores de alto-nível
top-level domain (TLP)
94
Redes de computadores e a Internet
DNS: servidores de nomes raiz
 São contatados pelos servidores de nomes locais que não podem resolver
um nome.
 Em 2006 haviam 13 Servidores de nomes raiz (A a M):
 ver www.root-servers.org
 Buscam servidores de nomes autorizados se o mapeamento do nome não
for conhecido
 Conseguem o mapeamento
95
 Retornam o mapeamento para o servidor de nomes local
Redes de computadores e a Internet
Servidores TLD e autoritários
Servidores top-level domain (TLD): responsáveis pelos domínios com, org,
net, edu, gov etc. e todos os domínios de alto nível de países uk, fr, br,
jp.
Servidores DNS autorizados: servidores DNS de organizações, provêem
nome de hospedeiro autorizado para mapeamentos IP para servidores de
organizações (ex.: Web e mail).
 Podem ser mantidos por uma organização ou provedor de serviços.
96
Redes de computadores e a Internet
Servidor de nomes local
 Não pertence estritamente a uma hierarquia
 Cada ISP (ISP residencial, companhia, universidade) possui um
 Também chamado de “servidor de nomes default”
 Quando um hospedeiro faz uma pergunta a um DNS, a pergunta é
enviada para seu servidor DNS local
 Age como um proxy, encaminhando as perguntas para dentro da
hierarquia
97
Redes de computadores e a Internet
Exemplo
 O hospedeiro em cis.poly.edu quer o endereço IP para gaia.cs.umass.edu
Envia uma lista
de servidores edu
Reconhece o
sufixo umass.edu
98
Redes de computadores e a Internet
Consultas recursivas
Consulta recursiva:
 Transfere a tarefa de
resolução do nome para o
servidor de nomes
consultado
 Carga pesada?
Consulta encadeada:
 Servidor contatado
responde com o nome de
outro servidor de nomes
para contato
 “Eu não sei isto, mas
pergunte a este servidor”
99
Redes de computadores e a Internet
DNS: armazenando e atualizando registros
Uma vez que um servidor de nomes apreende um mapeamento, ele
armazena o mapeamento num registro do tipo cache.
Registros do cache tornam-se obsoletos (desaparecem) depois de um
certo tempo (frequentemente 2 dias).
 Servidores TLD são tipicamente armazenados em cache nos servidores
de nome locais.
100
Redes de computadores e a Internet
Registros do DNS
Servidores de DNS armazenam registros de recursos (RR)
que fornecem mapeamentos de nomes de hospedeiros para
endereços IP.
Um registro de recurso apresenta 4 elementos
(Name, Value, Type, TTL)
•TTL é o tempo de vida útil do registro, determinando
quando um recurso deve ser removido de um cache.
101
Redes de computadores e a Internet
Registros do DNS
DNS: base de dados distribuída que armazena registros de recursos (RR)
formato dos RR: (Name, Value, Type, TTl)
Os significados de Name e Value depende de Type
102
Redes de computadores e a Internet
Registros do DNS
formato dos RR: (Name, Value, Type,TTl)
 Type = A
 name é o nome do computador
 value é o endereço IP
Um registro Type A fornece o mapeamento padrão de nomes hospedeiros para
endereços IP.Como exemplo, (relayl.bar.foo.com, 145.37.93.126), A,TTL)
103
Redes de computadores e a Internet
Registros do DNS
formato dos RR: (Name, Value, Type,TTL)
 Type = NS
 name é um domínio (ex.: foo.com)
 value é o endereço IP do servidor de nomes
autorizados que sabe como obter os
endereços para este domínio
Exemplo
(foo.com, dns.foo.com, NS,TTL)
O servido DNS enviará também um registro Type A que mapeia o servidor de
nome dns.foo.com para um endereço IP.
(dns.foo.com, 128.119.40.111, A, TTL)
104
Redes de computadores e a Internet
Registros do DNS
formato dos RR: (Name, Value, Type,TTL)
 Type = CNAME
 name é um “apelido” para algum
nome “canônico” (o nome real)
www.ibm.com é realmente
servereast.backup2.ibm.com
 value é o nome canônico
(ibm.com, servereast.backup2.ibm.com, CNAME,TTL)
105
2 - 105
Redes de computadores e a Internet
Registros do DNS
formato dos RR: (Name, Value, Type,TTL)
 Type = MX
 value é o nome do servidor de
correio associado com name
(foo.com, mail.bar.foo.com, MX, TTL)
Usando MX uma empresa pode ter o mesmo apelido para seu servidor
de arquivo e para um de seus outros servidores (tal como seu servidor
WEB).
Para obter o nome canônico do servidor de correio, um cliente DNS
consultaria um registro MX; para obter o nome canônico do outro
servidor, o cliente DNS consultaria o registro CNAME.
106
2 - 106
Redes de computadores e a Internet
Inserindo registro no banco de dados do DNS
 Exemplo: empresa recém-criada “Network Utopia”
 Registrar o nome networkutopia.com em uma entidade registradora =
FAPESP
 Ver lista em www.internic.net
 É necessário fornecer ao registrar os nomes e endereços IP do seu servidor
nomes autorizados (DNS primário e secundário - 212.212.212.1 e
212.212.212.2 )
 Registrar insere dois RRs no servidor TLD do domínio com, para cada
servidor de DNS:
Exemplo do servidor primário
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
107
Redes de computadores e a Internet
Inserindo registro no banco de dados do DNS
 No servidor autorizado, inserir um registro Tipo A para seu servidor de e WEB
www.networkutopia.com e um registro Tipo MX para seu servidor de email
mail.networkutopia.com
108
Redes de computadores e a Internet
Camada de aplicação
 2.1 Princípios de aplicações de rede
 2.2 Web e HTTP
 2.3 FTP
 2.4 Correio eletrônico SMTP, POP3, IMAP
 2.5 DNS
 2.6 Compartilhamento de arquivos P2P
109
Redes de computadores e a Internet
Compartilhamento de arquivos P2P
Exemplo
 Alice executa a aplicação cliente P2P em seu notebook.
 Intermitentemente, conecta-se à Internet; obtém novos endereços IP para
cada conexão.
 Pede por “Raça de Milton Nascimento”.
 A aplicação exibe outros pares que possuem uma cópia de Raça.
 Alice escolhe um dos pares, Bob.
 O arquivo é copiado do PC de Bob para o notebook de Alice: HTTP.
 Enquanto Alice faz o download, outros usuários fazem upload de Alice.
 O par de Alice é tanto um cliente Web como um servidor Web transiente.
Todos os pares são servidores = altamente escaláveis!
110
Redes de computadores e a Internet
P2P: diretório centralizado
Projeto original “Napster”
1) Quando um par se conecta, ele
informa ao servidor central:
 Endereço IP
 Conteúdo
2)Servidor envia mensagens
periódicas para verificar a
conectividade.
3) Alice procura por “Raça”
4) Alice requisita o arquivo de Bob
111
Redes de computadores e a Internet
P2P: problemas com diretório centralizado
 Ponto único de falhas: Servidor não pode falhar.
 Gargalo de desempenho: Manutenção de Banco de Dados com muitas
informações.
 Infração de copyright
Transferência de arquivo é descentralizada, mas a localização de
conteúdo é altamente centralizada
112
Redes de computadores e a Internet
Inundação de Consultas: Gnutella
 Totalmente distribuído
 Sem servidor central
 Protocolo de domínio público
 Os pares formam uma rede abstrata, lógica, denominada rede de
sobreposição.
• REDE DE SOBREPOSIÇÃO.
Rede de cobertura: grafo
 Aresta entre o par X e o Y se há uma conexão TCP entre eles.
 Todos os pares ativos e arestas estão na rede de sobreposição
 Aresta não é um enlace físico
 Um determinado par será tipicamente conectado a <10 vizinhos na
rede de sobreposição
113
Redes de computadores e a Internet
Gnutella: protocolo
Requisição HTTP direta para
BOB, isto é, sem passar pela
rede.
 Mensagem de consulta
(query) é enviada pelas
conexões TCP existentes
 Os pares encaminham
a mensagem de consulta
 QueryHit (encontro)
é enviado pelo
caminho reverso
114
Redes de computadores e a Internet
Gnutella: protocolo
Como evitar a inundação da rede com pedidos de consultas?
Escalabilidade: inundação de alcance limitado
Quando Alice envia seu pedido de
consulta inicial, um campo de
contagem de pares contido na
mensagem é configurado para um
certo limite (digamos 7). Toda vez
que a mensagem de consulta
chega a um novo par, este
decrementa o campo de contagem
de pares antes de retransmiti-la
para seus vizinhos. QUANDO UM
PAR RECEBE UMA CONSULTA
CUJO CAMPO DE CONTAGEM DE
PARES É IGUAL A 0, ELE PÁRA
DE RETRANSMITI-LA.
115
Redes de computadores e a Internet
Gnutella: conectando pares
1. Para conectar o par X, ele precisa encontrar algum outro par na
rede Gnutella: utiliza a lista de pares candidatos
2. X, seqüencialmente, tenta fazer conexão TCP com os pares da
lista até estabelecer conexão com Y
3. X envia mensagem de Ping para Y; Y encaminha a mensagem de
Ping
4. Todos os pares que recebem a mensagem de Ping respondem com
mensagens de Pong
5. X recebe várias mensagens de Pong. Ele pode então estabelecer
conexões TCP adicionais
116
Redes de computadores e a Internet
Explorando heterogeneidade: KaZaA
 Cada par é ou um líder de grupo
ou está atribuído a um líder de
grupo
 Conexão TCP entre o par e
seu líder de grupo
 Conexões TCP entre alguns
pares de líderes de grupo
 O líder de grupo acompanha o
conteúdo em todos os seus
“discípulos”
Cada líder de grupo transforma-se em um hub (distribuídor)
Em comparação com Gnutela, com a sobreposição plana a inundação de
escopo limitado (só entre hubs), o projeto hierárquico permite a verificação
de consultas em um número significativamente maior de pares sem criar
tráfego de consultas excessivos.
117
Download

Protocolo de aplicação