UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Curso de
Redes de Computadores
Adriano Mauro Cansian
[email protected]
Capítulo 2
Camada de Aplicação
1
unesp - IBILCE - SJRP
Capítulo 2: Camada de Aplicação
Metas do capítulo:
q  O que?
• 
Aspectos conceituais e de
implementação de
protocolos de aplicação.
Conhecer...
q  Protocolos específicos:
• 
HTTP
FTP
SMTP & POP3
DNS
P2P
• 
Programação usando sockets.
• 
• 
Modelo cliente
• 
servidor.
• 
•  Modelos de serviço. q  Como é feita a programação
de aplicações de rede.
q  Como?
• 
• 
Estudo de protocolos
populares da camada da
aplicação.
2
Prof. Dr. Adriano Mauro Cansian
1
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Conceitos
Clientes, servidores, processos, portas,
sockets e outros bichos…
3
unesp - IBILCE - SJRP
Aplicações e protocolos da camada de aplicação
q  Aplicações: são processos
distribuídos que se
comunicam.
•  Rodam em hosts.
aplicação
transporte
rede
enlace
física
Cliente
•  Sistemas finais.
• 
• 
Trocam mensagens para
implementar a aplicação.
Exemplos:
•  Muitos!
•  Correio eletrônico,
transferência de
arquivos, WWW, login
remoto, VoIP, etc...
q  Internet cresceu muito
Servidor
aplicação
transporte
rede
enlace
física
aplicação
transporte
rede
enlace
física
Cliente
em complexidade.
4
Prof. Dr. Adriano Mauro Cansian
2
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Protocolos de aplicação
q  Protocolo da camada de aplicação:
•  Não é a aplicação.
–  É APENAS uma parte da aplicação.
•  O protocolo de aplicação: define mensagens trocadas por
aplicações, e ações as tomadas em sua resposta.
•  Usam serviços providos por protocolos de camadas inferiores.
Ou seja: os processos, em dois sistemas de de borda diferentes,
se comunicam logicamente trocando mensagens.
q  Um processo emissor cria e emite mensagens na rede;
q  Um processo receptor recebe estas mensagens.
e responde possivelmente emitindo mensagens de volta.
• 
5
unesp - IBILCE - SJRP
O que faz um protocolo de aplicação:
q  Um protocolo da camada de aplicação define como os processos de
aplicação trocam mensagens.
q 
Como já dito: funcionando em sistemas de extremidade diferentes,
q  Um protocolo da camada de aplicação define:
• 
Os tipos de mensagens trocadas.
• 
A sintaxe dos vários tipos de mensagem.
• 
• 
• 
Os campos na mensagem, e como os campos são delimitados.
• 
Definem campos do header e do corpo da mensagem.
A semântica dos campos.
• 
• 
Por exemplo, mensagens do requisição e mensagens de resposta.
Isto é, o significado da informação nos campos.
As regras.
• 
Determinar quando e como um processo envia e responde mensagens.
6
Prof. Dr. Adriano Mauro Cansian
3
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Como os processos trocam mensagens
Cliente
Servidor
7
unesp - IBILCE - SJRP
Aplicações de rede: DEFINIÇÕES
q  Um processo é um
programa que roda num host.
q  Dois processos no mesmo
host se comunicam usando
comunicação entre
processos no SO.
q  Um agente de usuário
(UA) é uma interface
entre o usuário e a
aplicação de rede.
q  Exemplos:
• 
• 
Interprocess comunnication.
• 
• 
Definida pelo sistema
operacional (SO).
• 
q  Dois processos em hosts
distintos se comunicam
usando um protocolo da
camada de transporte.
WWW: browser.
Correio: leitor/compositor
de mensagens.
Streaming: player de mídia.
q  Não é o protocolo de
aplicação, apesar de
conter o protocolo.
8
Prof. Dr. Adriano Mauro Cansian
4
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Paradigma cliente-servidor
Aplicação de rede típica tem duas
partes: cliente e servidor
Cliente:
•  Inicia contato com o
servidor
•  Aquele que “chama”.
•  Solicita serviço do
servidor.
Servidor:
•  Provê o serviço
requisitado ao cliente.
•  Fica “ouvindo” à espera
de pedidos de conexão.
•  Isso é uma convenção.
aplicação
transporte
rede
enlace
física
pedido
resposta
aplicação
transporte
rede
enlace
física
9
unesp - IBILCE - SJRP
Protocolos da camada de aplicação
API - Aplication Program Interface:
• 
Interface de programação de aplicações.
q  Define a interface entre a aplicação e camada
de transporte.
q  APIs à definidas pelos RFCs.
q  Socket (= tomada).
•  Dois processos se comunicam enviando
dados para um socket , ou lendo dados
de um socket.
10
Prof. Dr. Adriano Mauro Cansian
5
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Comunicação pelos sockets (1)
q  O socket pode ser entendido como a porta de saída e
entrada do processo:
• 
• 
• 
• 
Um processo emite e recebe mensagens
da rede, através de seus sockets.
Quando um processo quer emitir uma
mensagem a um outro processo em um
outro host, entrega a mensagem para o
socket.
O processo supõe que há um infra-estrutura de
transporte no outro lado, a qual transportará a
mensagem até a porta do processo do destino.
O processo não precisa se preocupar como a
mensagem será transportada.
11
unesp - IBILCE - SJRP
Comunicação pelos sockets (2)
12
Prof. Dr. Adriano Mauro Cansian
6
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Comunicação pelos sockets (3)
− Pergunta:
• Como um processo identifica outro?
• Veremos adiante.
13
unesp - IBILCE - SJRP
Comunicação lógica client-server
14
Prof. Dr. Adriano Mauro Cansian
7
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Exemplo de comunicação
lógica de um processo com
conexão TCP, por
intermédio dos sockets.
buffering
buffering
15
unesp - IBILCE - SJRP
Como um processo identifica outro ?
Pergunta: Como um processo pode “identificar” o outro
processo com o qual quer se comunicar?
q  Endereço IP do host do outro processo.
• 
• 
Por enquanto: o IP ADDRESS é um valor de 32-bits que identifica
unicamente o sistema de extremidade.
Mais precisamente: identifica unicamente a interface (placa) que
conecta esse host à Internet.
Ex. 200.145.9.9!
q  “Número de porta” : permite que o hospedeiro
receptor determine para qual processo deve ser
entregue a mensagem. Exemplo: Porta 80.
Ex. 200.145.9.9:80
!
(RFC 1700 - Portas well-known ou WKS)
16
Prof. Dr. Adriano Mauro Cansian
8
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
De que tipo de transporte uma aplicação precisa?
q  Quando se desenvolve uma aplicação:
• 
Escolher um dos protocolos disponíveis para
transporte.
q  Como se faz esta escolha?
• 
• 
Avaliar os serviços fornecidos pelos protocolos
disponíveis do transporte.
Escolher o protocolo com as características que
melhor se adaptem às necessidades da
aplicação.
q  Programador decide, por exemplo:
• 
“Com Conexão” ou “Sem Conexão”.
17
unesp - IBILCE - SJRP
Os principais protocolos de
aplicação
18
Prof. Dr. Adriano Mauro Cansian
9
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
http
19
unesp - IBILCE - SJRP
WWW
q  Página WWW:
•  Consiste de “objetos”
•  Endereçada por um URL:
Universal Resource Locator.
q  Quase todas as páginas
WWW consistem de:
•  Página base HTML, e
•  Vários objetos referenciados.
q  URL tem duas partes:
nome do host, e path.
q  Agente de usuário para
WWW = browser:
• 
• 
• 
Chrome.
Firefox.
Safari, etc...
q  Servidor para WWW se
chama “servidor
WWW”:
• 
• 
Apache (Open Software).
Internet Information
Server (IIS).
gww.acmesecurity.org/themes/noprob/logo_cnpq.png
20
Prof. Dr. Adriano Mauro Cansian
10
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
WWW: o protocolo http
http: Hypertext Transfer
Protocol
q  Protocolo da camada de
aplicação para WWW.
PC rodando
IE browser
q  Modelo cliente-servidor
•  cliente: browser que solicita,
recebe (“visualiza”) objetos
WWW.
•  servidor: servidor WWW envia
objetos em resposta a pedidos.
q  http1.0: RFC-1945
q  http1.1: RFC-2068
• 
(visto adiante)
ped
id
oh
ttp
res
pos
ta
htt
p
p
htt
ido
tp Servidor
d
ht executando
pe
a
t
s
po
servidor
res
WWW
Apache
Mac rodando
Safari
21
unesp - IBILCE - SJRP
Mais sobre o protocolo http:
Usa serviço de transporte
TCP:
http é “sem
estado” (“stateless”)
1.) Cliente inicia conexão TCP
(cria socket) ao servidor, na
porta 80.
2.) Servidor aceita conexão TCP do
cliente.
3.) Troca mensagens http
(mensagens do protocolo da
camada de aplicação) entre
browser (cliente http) e servidor
WWW (servidor http).
4.) Encerra conexão TCP.
q  Servidor não mantém
informação sobre pedidos
anteriores do cliente.
Protocolos que mantêm
“estado” são complexos!
•  O histórico passado (estado)
tem que ser mantido.
•  Demanda recursos maiores.
•  São chamados de Protocolos
“Statefull”.
22
Prof. Dr. Adriano Mauro Cansian
11
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Exemplo de http (1)
Exemplo: Um usuário digita a URL www.unesp.br/index.html
(Ex: contém texto,
referências a 10
imagens jpeg)
1a. Cliente http inicia conexão TCP
ao servidor http (processo) em
www.unesp.br.
Porta 80 é padrão para servidor http.
1b. servidor http no hospedeiro
www.unesp.br espera por conexão
TCP na porta 80. “Aceita” conexão,
avisando ao cliente
2. cliente http envia mensagem de
pedido de http (contendo URL)
através do socket da conexão TCP 3. servidor http recebe mensagem de
pedido, elabora mensagem de resposta
contendo objeto solicitado (index.html),
e envia mensagem via socket.
tempo
Continua…
23
unesp - IBILCE - SJRP
Exemplo de http (2)
4. servidor http encerra conexão TCP .
5. cliente http recebe mensagem
de resposta contendo arquivo
html “index.html”. Analisando
arquivo html, encontra 10
objetos jpeg referenciados.
6. Passos 1 a 5 repetidos para
cada um dos 10 objetos jpeg
tempo
E então, repete e continua...
24
Prof. Dr. Adriano Mauro Cansian
12
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Conexões não-persistente e persistente
Não persistente:
q  HTTP/1.0
q  Servidor analisa
pedido, responde, e
encerra conexão TCP.
q  2 RTTs para trazer
cada objeto
(RTT = round trip time)
q  Transferência de cada
objeto sofre de
partida lenta.
Persistente:
q  Default no HTTP/1.1
q  Na mesma conexão TCP:
servidor analisa pedido,
responde, analisa novo pedido,
etc... à não fecha a conexão.
q  Cliente envia pedidos para
todos objetos referenciados,
assim que recebe o HTML
base .
q  Menos RTTs, e menos
partida lenta.
A maioria de browsers
usa conexões TCP paralelas.
25
unesp - IBILCE - SJRP
Conexão não-persistente (1)
q  O cliente HTTP inicia uma conexão TCP com o servidor.
q  O cliente emite mensagem de requisição HTTP usuário através do socket
associado com a conexão do TCP que foi estabelecida.
q  Servidor HTTP recebe o request através do socket associado com a
conexão estabelecida, recupera o objeto (index.html) de seu
armazenamento, encapsula o objeto em uma mensagem HTTP de resposta,
e emite a mensagem de resposta ao cliente através do socket.
q  O servidor diz ao cliente para fechar a conexão TCP.
q  O cliente recebe a mensagem de resposta. A conexão TCP termina. A
mensagem indica que o objeto encapsulado é um arquivo HTML. O cliente
extrai o arquivo da mensagem de resposta, analisa, e encontra referências a
10 objetos do JPEG.
q  As primeiras quatro etapas são repetidas então para cada um dos
objetos JPEG referenciados.
26
Prof. Dr. Adriano Mauro Cansian
13
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Conexão não-persistente (2)
q  Quando o browser recebe uma página, mostra a página ao usuário
q  Dois browsers diferentes podem interpretar (isto é, mostrar ao
usuário) um webpage de maneiras diferentes.
• 
O HTTP não define como uma webpage é interpretada por um cliente.
• 
As especificações do HTTP (RFC1945 e RFC2616) definem somente o protocolo
de comunicação entre o programa HTTP do cliente e o programa HTTP do
servidor.
q  Nas etapas das conexões não persistentes, cada conexão do TCP
é fechada depois que o servidor envia o objeto: a conexão não
persiste para outros objetos.
q  Cada conexão TCP transporta exatamente uma mensagem de
pedido e uma mensagem de resposta. No nosso exemplo,
quando um usuário requisita uma página, 11 conexões TCP são
geradas.
(discutir conexões paralelas)
27
unesp - IBILCE - SJRP
Conexão não-persistente (3)
28
Prof. Dr. Adriano Mauro Cansian
14
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Round Trip Time (1)
q  Quantidade de tempo gasta entre cliente solicitar um arquivo
HTML até que o arquivo esteja recebido?
q  Tempo round-trip-time (RTT), é o tempo gasto para um pacote
viajar do cliente ao servidor e então voltar ao cliente. É o tempo
de ida-e-volta.
q  RTT inclui os atrasos de propagação, de enfileiramento e de
processamento em routers e comutadores intermediários.
q  Usuário clica num hyperlink. Isto faz com que o browser inicie uma
conexão do TCP entre o browser e o web server.
q  Envolve um “three-way handshake”: o cliente emite uma mensagem
TCP ao servidor, o servidor reconhece e responde com uma
mensagem. Finalmente, o cliente confirma de volta ao servidor.
29
unesp - IBILCE - SJRP
Round Trip Time (2)
q  Mais um RTT decorre após as duas primeiras partes do
three-way handshake.
• 
Após ter terminado as primeiras duas partes do handshake, o
cliente emite a mensagem de requisição HTTP na conexão
TCP, e o TCP “agrega” a última confirmação (a terceira parte do
three-way handshake) na mensagem do pedido. Uma vez a
mensagem do pedido chega no usuário, o usuário emite o
arquivo HTML na conexão do TCP.
q  Esta interação HTTP “request-response” gasta outro RTT.
q  Assim, o tempo de resposta total é dois RTTs mais o
tempo da transmissão do arquivo HTML pelo servidor.
30
Prof. Dr. Adriano Mauro Cansian
15
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Conexão persistente (1)
q  Cada objeto sofre dois RTTs:
• 
um RTT para estabelecer a conexão TCP, e
• 
um RTT para solicitar e receber um objeto.
q  Cada objeto sofre do “partida lenta”(slow start) do TCP.
q  Com as conexão persistente, o servidor deixa a
conexão TCP aberta após ter emitido uma
resposta.
q  Os pedidos e as respostas subseqüentes entre o mesmos
cliente e servidor podem ser emitidos na mesma conexão.
q  Uma webpage inteira (no exemplo, o arquivo HTML base e
as 10 imagens) pode ser emitido sobre uma única conexão
persistente do TCP.
31
unesp - IBILCE - SJRP
Conexão persistente (2)
32
Prof. Dr. Adriano Mauro Cansian
16
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Não-persistente X persistente
33
unesp - IBILCE - SJRP
Conexão persistente (2)
q  Duas versões de conexões persistentes:
q  sem pipelining (paralelismo) e com pipelining.
• 
Sem pipelining: o cliente emite um pedido novo
somente quando a resposta precedente foi recebida.
• 
Com pipelining: o cliente emite um pedido assim
que encontrar uma referência.
•  É o default para HTTP/1.1.
34
Prof. Dr. Adriano Mauro Cansian
17
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Formato das mensagens HTTP
q Dois tipos de mensagem http:
• 
• 
Requisição (Request)
Resposta (Reply)
q Mensagem http: formato ASCII
• 
Mensagens são legíveis sem necessidade de interpretador.
35
unesp - IBILCE - SJRP
Mensagem http de requisição (1)
Formato geral de uma mensagem de requisição
36
Prof. Dr. Adriano Mauro Cansian
18
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Mensagem http de requisição (2)
linha do pedido
(comandos GET, GET /dir/page.html HTTP/1.1
POST, HEAD)
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
linhas do Accept-language:en
cabeçalho
Carriage return,
line feed
indica fim
de mensagem
(carriage return (CR), line feed (LF) adicionais)
37
unesp - IBILCE - SJRP
Mensagem http de resposta (1)
Note a diferença nestes campos
Formato geral de uma mensagem de RESPOSTA
38
Prof. Dr. Adriano Mauro Cansian
19
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Mensagem http de resposta (2)
código de status
linha de status
(protocolo,
código de status,
frase de status)
linhas de
cabeçalho
dados.
Por ex: conteúdo
do arquivo html
solicitado
frase de status
HTTP/1.1 200 OK
Date: Thu, 06 Jan 2014 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Dec 2013…...
Content-Length: 6821
Content-Type: text/html
dados dados dados dados ...
39
unesp - IBILCE - SJRP
Códigos de status da resposta http
q  Aparecem na primeira linha da mensagem de
resposta cliente-servidor.
•  Alguns códigos típicos:
200 OK
• 
Sucesso. Objeto pedido segue mais adiante nesta mensagem.
301 Moved Permanently
• 
Objeto pedido mudou de lugar, nova localização especificado mais
adiante nesta mensagem (Location:)
400 Bad Request
• 
Mensagem de pedido não entendida pelo servidor.
404 Not Found
• 
Documento pedido não se encontra neste servidor.
505 HTTP Version Not Supported
• 
Versão de http do pedido não aceita por este servidor.
40
Prof. Dr. Adriano Mauro Cansian
20
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
HTML (HyperText Markup Language)
q  HTML: uma linguagem simples para hipertexto
•  começou como versão simples de SGML.
•  construção básica: cadeias de texto.
q  Construtores de formato operam sobre cadeias
• 
• 
• 
<b> .. </b> !
!bold (negrito)!
<H1 ALIGN=CENTER> ..título centrado .. </H1>!
<BODY bgcolor=white text=black link=red ..> .Texto... </BODY>!
q  Vários formatos
•  listas de bullets, listas ordenadas, listas de definição
•  tabelas
•  Frames
•  Etc... Etc...
41
unesp - IBILCE - SJRP
Formulários e páginas dinâmicas na web
(interação bidirecional e integração com banco de dados)
q  Formulários transmitem
q  Páginas dinâmicas: processadas
informação do cliente ao
servidor.
q  HTTP permite enviar
q 
formulários ao servidor.
q  Resposta enviada como página
HTML dinâmica.
cliente
WWW
Prof. Dr. Adriano Mauro Cansian
GET/POST
formulário
resposta:
HTML
usando scripts ou outro tipo de
código.
Acessam programas que rodam no
servidor WWW.
•  permitem acesso a diferentes
serviços.
•  servidor WWW atua como
gateway universal.
servidor
WWW
Sistema de
informação
42
21
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Webservices
q  Solução utilizada para integração de sistemas e
comunicação entre aplicações diferentes.
• 
• 
Permite que novas aplicações possam interagir outras já
existentes.
Permite que sistemas desenvolvidos em plataformas
diferentes sejam compatíveis.
q  São componentes que permitem às aplicações enviar
e receber dados em formato XML.
• 
Cada aplicação pode ter a sua própria linguagem, que é
traduzida para uma linguagem universal XML.
q  O objetivo dos webservices é a comunicação de
aplicações através da Internet.
43
unesp - IBILCE - SJRP
Web: autenticação
q  Autenticação: controle de acesso
ao servidor.
cliente
q  Sem estado: cliente deve apresentar
autorização em cada pedido.
q  Autorização: tipicamente nome e
senha.
•  authorization: linha de
cabeçalho no pedido.
•  Se não for apresentada
autorização, servidor nega
acesso, e coloca no cabeçalho da
resposta
servidor
msg de pedido http comum
401: authorization req.
WWW authenticate:
msg de pedido http comum
+ Authorization:line
msg de resposta http comum
WWW authenticate:
Browser: faz cache do username
e senha para evitar que sejam
pedidos ao usuário a cada
acesso.
Prof. Dr. Adriano Mauro Cansian
msg de pedido http comum
+ Authorization:line
msg de resposta http comum
tempo
44
22
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Web: cookies
q  Servidor envia “cookie” ao
servidor
cliente
cliente na msg de resposta
Set-cookie: 1678453
msg de pedido http comum
resposta http comum+
Set-cookie: #
q  Cliente apresenta cookie
nos pedidos posteriores
msg de pedido http comum
cookie: 1678453
Ação
específica
msg de resposta http comum do cookie
q  Servidor casa o cookie
cookie: #
apresentado com a info
guardada no servidor.
•  Autenticação.
•  Lembrando
preferências do
usuário, opções
anteriores, etc…
msg de pedido http comum
Ação
específica
msg de resposta http comum do cookie
cookie: #
45
unesp - IBILCE - SJRP
GET condicional e aplicação em proxies
servidor
cliente
q  Meta: não enviar objeto se
cliente já tem (no cache)
versão atual.
q  Cliente: especifica data da
cópia em cache no pedido
http
If-modified-since:
<date>
q  Servidor: resposta não contém
objeto se a cópia no cache é
atual:
HTTP/1.1 304 Not
Modified
msg de pedido http
If-modified-since:
<date>
resposta http
objeto
não
modificado
HTTP/1.1
304 Not Modified
msg de pedido http
If-modified-since:
<date>
resposta http
objeto
modificado
HTTP/1.1 200 OK
…
<data>
46
Prof. Dr. Adriano Mauro Cansian
23
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
cache proxy
Meta: atender pedido do cliente sem envolver servidor de origem.
q  Usuário configura browser:
acessos WWW via
procurador (proxy).
q  Cliente envia todos
pedidos http ao
procurador.
• 
• 
Se objeto está no cache
do procurador, este o
devolve imediatamente
na resposta http.
Senão, solicita objeto do
servidor de origem,
armazena e depois
devolve resposta http ao
cliente.
Servidor
de origem
cliente
Servidor
proxy
ped
id
ttp
oh
d
i
tp
d
ht
pe
sta
o
p
res
oh
ttp
res
pos
ta
htt
p
ttp
h
o
tp
did
ht
pe
a
t
s
po
res
ped
ido
htt
res
p
pos
ta
htt
p
cliente
Servidor
de origem
47
unesp - IBILCE - SJRP
Por que usar cache WWW ?
Suposição: cache está
“próximo” do cliente (por
exemplo na mesma rede).
Internet
pública
Servidores
de origem
q  Tempo de resposta
menor.
q  Diminui tráfego aos
servidores distantes,
• 
Muitas vezes é o gargalo é
o enlace (link) que liga a
rede da instituição até a
Internet.
enlace de accesso
2 Mbps
rede da
instituição
LAN 10 Mbps
cache da
instituição
48
Prof. Dr. Adriano Mauro Cansian
24
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Para se aprofundar em http:
q  Learn http project -
http://project67555.appspot.com/http.html
q  Detailed Explanation of HTTP Headers.
• 
http://djce.org.uk/dumprequest
q  The difference between HTTP 1.0 and HTTP 1.1
• 
http://www8.org/w8-papers/5c-protocols/key/key.html
(Links verificados em 01/04/2014)
49
unesp - IBILCE - SJRP
FTP
File Transfer Protocol
50
Prof. Dr. Adriano Mauro Cansian
25
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
FTP: o protocolo de transferência de arquivos
usuário
na
estação
Interface cliente
do usuário FTP
FTP
transferência
do arquivo
FTP
servidor
sistema de
arquivos
remoto
sistema de
arquivos
local
q  Transferir arquivo de /para hospedeiro remoto
q  Modelo cliente / servidor
cliente: lado que inicia transferência.
servidor: host remoto.
q  FTP - File Transfer Protocol: definido pelo [RFC 959]
q  Servidor FTP: atende na porta 21
• 
• 
51
unesp - IBILCE - SJRP
FTP: conexões separadas para controle e dados
q  Usa TCP como protocolo de
transporte.
q  São abertas 2 conexões
TCP paralelas:
FTP: Outband control
x
(1) conexão de controle
TCP, porta 21
21
Controle: troca comandos,
y
20
respostas entre cliente,
(2) conexão de dados
cliente
servidor (porta 21).
servidor
TCP, porta 20
FTP
FTP
“controle fora da banda”
•  Dados: dados de arquivo
de/para servidor (porta 20).
q  Servidor ftp mantém “estado”:
• 
• 
Diretório corrente, e autenticação
realizada.
52
Prof. Dr. Adriano Mauro Cansian
26
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
FTP: conexões separadas para controle e dados
(Active Open mode)
53
unesp - IBILCE - SJRP
FTP Active Open
54
Prof. Dr. Adriano Mauro Cansian
27
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
FTP Active Open e firewall
55
unesp - IBILCE - SJRP
FTP Passive Open
http://securitywing.com/active-vs-passive-ftp-mode/
56
Prof. Dr. Adriano Mauro Cansian
28
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Fluxo FTP Passive Open
57
unesp - IBILCE - SJRP
FTP: comandos e respostas
Comandos típicos:
q  Enviados em texto ASCII pelo canal de controle.
• 
• 
• 
• 
• 
USER nome
PASS senha
LIST devolve lista de arquivos no diretório corrente
RETR arquivo recupera (lê) arquivo remoto
STOR arquivo armazena (escreve) arquivo no host remoto.
Códigos de retorno típicos:
q  código e frase de status (como para http).
• 
• 
• 
• 
331 Username OK, password required
125 data connection already open; transfer
starting
425 Can’t open data connection
452 Error writing file
58
Prof. Dr. Adriano Mauro Cansian
29
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Correio Eletrônico
SMTP e outros protocolos de aplicação
59
unesp - IBILCE - SJRP
Correio Eletrônico (1)
Três grandes componentes:
q  Agentes de usuário:
q 
Mail User Agent (MUA).
q  Agente de transporte (servidores).
q 
Mail Transport Agent (MTA).
q  Protocolo de correio eletrônico.
• 
Implementado pelo MTA.
• 
SMTP: Simple Mail Transfer Protoco.
•  É o mais usado.
q  Observação: O MTA pode ter mais
de um protocolo de correio
eletrônico. SMTP não é o único,
apesar de ser o padrão da Internet.
60
Prof. Dr. Adriano Mauro Cansian
30
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Correio Eletrônico (2)
MUA - Agente de Usuário
q  Conhecido como “leitor de e-mail”.
q  É o lado “cliente”.
q  Compor, editar, ler mensagens de correio
q  Exemplo: Outlook, Firebird, Mac Mail, Pine, e outros.
q  Mensagens de saída e chegada são armazenadas no
servidor.
MUA
61
unesp - IBILCE - SJRP
Correio Eletrônico: servidores
Servidores de correio
q  Fila de mensagens:
• 
Contém mensagens de saída (a serem enviadas).
q  Caixa de correio:
• 
Contém mensagens de chegada (ainda não lidas) p/ usuário.
q  Protocolo SMTP
• 
entre servidores para transferir mensagens de correio.
• 
• 
Cliente: servidor de correio que envia
“Servidor”: servidor de correio que recebe.
62
Prof. Dr. Adriano Mauro Cansian
31
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Correio Eletrônico: SMTP [RFC 821]
q  Usa TCP para a transferência confiável de mensagens.
• 
Porta 25/TCP
q  Transferência direta: remetente ao servidor receptor.
q  3 fases da transferência:
• 
1 - Handshaking (cumprimento).
•  NÃO confundir com handshaking do TCP !!
2 - Transferência das mensagens.
•  3 – Encerramento.
q  Interação comando/resposta
•  Comandos: são em texto ASCII.
•  Resposta: envia código e frase de status.
• 
q  Mensagens precisam ser em ASCII de 7-bits.
63
unesp - IBILCE - SJRP
Interação SMTP típica
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:
220 doces.br
HELO consumidor.br
250 Hello consumidor.br, 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
Eu gostaria de comprar alguns doces.
Você tem uma lista de preços? Obrigada. –Ana.
.
250 Message accepted for delivery
QUIT
221 doces.br closing connection
64
Prof. Dr. Adriano Mauro Cansian
32
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
( Exercício: experimente uma interação SMTP com
seu servidor de e-mail. )
q  telnet nomedoservidor.algumlugar.br 25
q  Observe a resposta 220 do servidor
q  Entre comandos HELO, MAIL FROM, RCPT TO,
DATA, QUIT, HELP.
q  Estes comandos permitem que você envie correio sem
usar um cliente (leitor de correio).
• 
Basta conhecer o formato das mensagens do protocolo.
q  Pesquisar a respeito das mensagens de protocolo mais
usadas no SMTP.
65
unesp - IBILCE - SJRP
SMTP: detalhes
q  SMTP usa conexões persistentes.
q  SMTP requer que a mensagem
(cabeçalho e corpo) sejam em
ASCII de 7-bits.
q  Algumas cadeias de
caracteres não são permitidas
numa mensagem (p.ex.,
CRLF.CRLF). Assim, a
mensagem pode ter que ser
codificada (normalmente em
base-64 ou “quoted
printable”).
q  Servidor SMTP usa
CRLF.CRLF para reconhecer o
final da mensagem.
Exercício: faça uma
comparação entre o SMTP
e o http.
q 
q 
q 
HTTP: pull (puxar)?
E-mail: push (empurrar)?
Ambos tem interação
comando/resposta, e códigos
de status em ASCII?
HTTP: cada objeto é
encapsulado em sua própria
mensagem de resposta?
q  SMTP: múltiplos objetos de
mensagem enviados numa
mensagem de múltiplas
partes?
q  Discuta outras questões que
achar relevantes.
q 
66
Prof. Dr. Adriano Mauro Cansian
33
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Formato de uma mensagem de e-mail
q  RFC 822: padrão para
cabeçalho
formato de mensagem:
q  Linhas de cabeçalho (header):
To:
From:
•  Subject:
(NÃO são os comandos de smtp)
• 
linha em
branco
• 
corpo
q  Corpo
• 
• 
• 
É a “mensagem”.
Somente de caracteres ASCII .
Termina com um “.” ponto
67
unesp - IBILCE - SJRP
Formato de uma mensagem: extensões para multimídia
q  MIME: multimedia mail extension, RFC 2045, 2056
q  Linhas adicionais no cabeçalho da mensagem declaram tipo do
conteúdo MIME.
versão MIME
método usado
para codificar dados
tipo, subtipo de
dados multimídia,
declaração parâmetros
Dados codificados
From: [email protected]
To: [email protected]
Subject: Imagem de uma bela torta
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
68
Prof. Dr. Adriano Mauro Cansian
34
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Tipos MIME
Content-Type: tipo/subtipo; parâmetros
Text
Audio
q  sub-tipos exemplos: plain,
q  Sub-tipos exemplos : basic
html
q  charset=“iso-8859-1”,
ascii
(8-bit codificado mu-law),
32kadpcm (codificação 32
kbps).
Image
Application
q  sub-tipos exemplos : jpeg,
q  Outros dados que precisam ser
gif
Video
q  sub-tipos exemplos : mpeg,
processados por um leitor para
serem “visualizados”.
q  subtipos exemplos : msword,
octet-stream
quicktime
69
unesp - IBILCE - SJRP
Tipo Multiparte
From: [email protected]
To: [email protected]
Subject: Imagem de uma bela torta
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
caro Bernardo,
Anexa a imagem de uma torta deliciosa.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--98766789-70
Prof. Dr. Adriano Mauro Cansian
35
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Protocolos de acesso ao correio
MTA
SMTP
SMTP
MTA
MUA
POP3 ou
IMAP
MUA
MAA
servidor de correio
do remetente
servidor de correio
do receptor
q  SMTP: entrega/armazenamento no servidor do receptor.
q  Protocolo de accesso ao correio: recupera do servidor.
q  MAA - Mail Access Agent
• 
• 
POP3: Post Office Protocol [RFC 1939]
•  Autorização (agente - servidor) e transferência.
IMAP: Internet Mail Access Protocol [RFC 1730]
•  Mais comandos e mais opções (mais complexo).
•  Manuseio de msgs armazenadas no servidor
•  Através de HTTP: Gmail, Hotmail, Webmail em geral: não é
exatamente um “protocolo” de e-mail e sim um mecanismo.
71
unesp - IBILCE - SJRP
IMAP x POP3
72
Prof. Dr. Adriano Mauro Cansian
36
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Como funciona tudo junto:
MAA
MSA - Message Submission Agent
73
unesp - IBILCE - SJRP
Sendmail – Qmail – Postfix - Qpopper
Fonte: http://www.vanemery.com/Protocols/SMTP/smtp.html (April 7, 14)
Prof. Dr. Adriano Mauro Cansian
74
37
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
DNS
Domain Name System
75
unesp - IBILCE - SJRP
DNS: Domain Name System (1)
Pessoas:
• 
Possuem muitos identificadores:
•  CPF, No. de Passaporte, RG, NOME, etc...
Dispositivos na Internet:
• 
Dispositivos Internet (hosts, roteadores, etc...) usam
números.
Endereço IP (32 bits): usado para endereçar datagramas.
Será detalhado no estudo da camada de rede.
“Nome” : é usado por humanos.
• 
www.unesp.br = 200.145.9.9
• 
• 
• 
Como mapear entre nome e endereço IP?
76
Prof. Dr. Adriano Mauro Cansian
38
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
DNS: Domain Name System (2)
q  (1) Uma base de dados distribuída implementada em uma
hierarquia de muitos servidores de nomes (nameservers).
q  (2) Um protocolo da camada de aplicação que permite
que os hosts e os servidores de nomes se comuniquem,
de modo a fornecer o serviço de tradução → “resolver”.
Resolver nome = traduzir nome em endereço IP.
q  Os servidores de nomes (nameservers) são frequentemente
máquinas Unix que rodam o software Berkeley Internet Name
Domain (Bind).
q  O protocolo do DNS funciona sobre UDP e usa a porta 53.
77
unesp - IBILCE - SJRP
Servidores de nomes DNS
Por quê não centralizar
o DNS?
q  Ponto único de falha.
q  Volume de tráfego.
q  Base de dados
centralizada seria
distante.
q  Dificuldade de
Manutenção da BD.
Ou seja: Problemas de
escalabilidade
q  Nenhum servidor mantém
todos os mapeamento nomepara-endereço IP.
Servidor de nomes local:
• 
• 
Cada provedor, empresa ou
instituição tem servidor de
nomes local (default)
Pedido DNS de um host vai
primeiro ao servidor de nomes
local.
Servidor de nomes autoritativo:
• 
• 
Para o host: guarda nome,
endereço IP dele.
Pode realizar tradução nome/
endereço para este nome.
78
Prof. Dr. Adriano Mauro Cansian
39
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
DNS: Servidores raiz (root servers)
q  Procurado por servidor local que não consegue resolver o nome.
q  Servidor raíz:
Procura servidor autoritativo se mapeamento for desconhecido.
Obtém tradução.
•  Devolve mapeamento ao servidor local.
Existem 13 de servidores raíz no mundo.
Seus endereços IP são fixos e raramente mudam.
São representados por “letras” de A até M.
Cada servidor “letra” tem vários espelhos espalhados pelo mundo.
• 
• 
q 
q 
q 
q 
79
unesp - IBILCE - SJRP
DNS Root servers de A até M
80
Prof. Dr. Adriano Mauro Cansian
40
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
DNS Root servers de A até M
81
unesp - IBILCE - SJRP
DNS Root servers & mirrors
http://root-servers.org/
Exercício: o que é o AS112 ?
Prof. Dr. Adriano Mauro Cansian
82
41
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Consulta e resolução de DNS (1)
83
unesp - IBILCE - SJRP
Consulta e resolução de DNS (2)
84
Prof. Dr. Adriano Mauro Cansian
42
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Consulta e resolução de DNS (3)
85
unesp - IBILCE - SJRP
DNS: uso de cache, atualização de dados
q  Uma vez um servidor qualquer aprende um
mapeamento, ele o coloca numa cache local.
•  Futuras consultas são resolvidas usando
dados da cache.
•  Entradas no cache são sujeitas a temporização
(desaparecem depois de certo tempo)
ttl = time to live (sobrevida).
86
Prof. Dr. Adriano Mauro Cansian
43
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Registros DNS
DNS: BD distribuída contendo resource records (RR)
formato RR: (nome,
valor, tipo, sobrevida)
q  Tipo=CNAME
q  Tipo=A
•  nome é nome alternativo
•  nome é nome de hospedeiro
(alias) para algum nome
•  valor é endereço IP
“canônico” (verdadeiro)
q  Tipo=NS
•  valor é o nome
•  nome é domínio (p.ex.
canônico
foo.com.br)
q 
Tipo=MX
•  valor é endereço IP de
servidor de nomes autoritativo
•  nome é domínio
para este domínio
•  valor é nome do
servidor de correio para
este domínio.
87
unesp - IBILCE - SJRP
Protocolo DNS:
•  Mensagens pedido e
resposta, ambas com o
mesmo formato de
mensagem
• 
Cabeçalho de mensagem
q  identification: ID de 16 bit para pedido,
resposta ao pedido usa mesmo ID
q  flags:
• 
• 
• 
• 
pedido ou resposta
recursão desejada
recursão permitida
resposta é autoritativa
http://www.troyjessup.com/headers/
Prof. Dr. Adriano Mauro Cansian
88
44
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
DNS: protocolo e mensagens
campos nome, tipo
num pedido
RRs em resposta
ao pedido
registros para
servidores
autoritativos
info adicional
“relevante” que
pode ser usada
89
unesp - IBILCE - SJRP
Compartilhamento de arquivos
Aplicações P2P
90
Prof. Dr. Adriano Mauro Cansian
45
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Compartilhamento de arquivos P2P
Exemplo:
• Alice executa a aplicação cliente P2P em seu notebook.
•  Intermitentemente à conecta-se à Internet;
• 
Obtém novo endereço IP para cada conexão.
• Procura por um determinado arquivo de uma música.
• A aplicação exibe outros peers que possuem uma cópia da música.
• Alice escolhe um dos pares: Bob.
•  O arquivo é copiado do PC de Bob para o notebook de Alice:
• 
por exemplo via HTTP.
• Enquanto Alice faz o download: outros usuários fazem upload da
máquina de Alice.
• O peer “Alice” é tanto um cliente Web como um servidor Web transiente.
Todos os pares são servidores = altamente escaláveis!
unesp - IBILCE - SJRP
Modelo Cliente / Servidor
q  Modelo mais usado na Internet.
• 
Dependente de servidores bem configurados em com
informação acessível.
q  Não explora o potencial de computação
distribuída proveniente da Rede.
• 
A existência de um ou milhares de computadores é
indiferente na interação de um usuário típico com a rede.
q  PCs clientes com capacidade considerável ficam
“escondidos”, formando um exército com alto
potencial.
Prof. Dr. Adriano Mauro Cansian
46
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Definição de sistema P2P (1)
Compartilhamento de recursos e
serviços computacionais, diretamente
entre sistemas.
unesp - IBILCE - SJRP
Definição de sistema P2P (1)
q Classe de aplicações que leva vantagem
de recursos disponíveis nas bordas da
rede.
q Quais recursos?
• 
• 
• 
• 
• 
Armazenamento.
Tempo de CPU.
Bandwidth.
Conteúdo.
Presença humana.
Prof. Dr. Adriano Mauro Cansian
47
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Questões Fundamentais:
Triplo “C”:
• 
Colaboração
• 
Cooperação
• 
Compartilhamento
unesp - IBILCE - SJRP
Características P2P (1)
q Sistemas distribuídos sem controle
centralizado ou organização
hierárquica.
q Software executado em cada peer é
equivalente em funcionalidade.
q Quantidade exponencial de adeptos.
Prof. Dr. Adriano Mauro Cansian
48
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Características P2P (2)
q  Cada participante age como cliente e
servidor ao mesmo tempo (servent).
q  Cada cliente “paga” a sua
participação fornecendo acesso a
(alguns de) seus recursos.
• 
Peering.
unesp - IBILCE - SJRP
Características P2P (3)
q  Sem coordenação central.
q  Sem banco de dados central.
q  Sem local único de falha ou gargalo.
q  Nenhum ponto (peer) tem visão global do sistema.
q  Comportamento global definido por interações
locais.
q  Todos os dados e serviços são acessíveis de
qualquer ponto.
q  Pontos são autônomos.
q  Pontos e conexões não são confiáveis.
Prof. Dr. Adriano Mauro Cansian
49
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Principais vantagens
q Escalabilidade
• 
Não há gargalo para crescimento.
q Robustez
• 
Não há ponto de falha único.
q Flexibilidade
• 
Auto-configuração / configuração
dinâmica.
unesp - IBILCE - SJRP
Comparação entre Roteadores e
sistemas P2P
q Descobrem e mantêm topologia.
q Não são clientes nem servidores.
q Continuamente falam uns com os outros.
q São inerentemente tolerantes a falhas.
q São autônomos.
Prof. Dr. Adriano Mauro Cansian
50
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Teste P2P
q  O sistema aceita conectividade variável e
endereços IP temporários?
q  O sistema dá uma autonomia significativa aos
computadores na borda da rede?
q  Os nós podem trocar informações livremente
entre si, sem arbitragem central?
unesp - IBILCE - SJRP
P2P X Redes de Cobertura (Overlay)
q  Overlay
•  Rede virtual: rede sobre outra rede (IP).
•  Os enlaces são conexões entre nós da rede.
q  P2P frequentemente utilizada para criar overlays.
•  Oferecendo serviços que poderiam ser implementados na
camada IP.
•  Estratégia muito útil para implantação.
q  Em certos casos, pode contornar barreiras
econômicas.
• 
Exemplo: IP era um overlay (sobre a rede de telefonia)
q  Nem todos os overlays são P2P (AKAMAI).
Prof. Dr. Adriano Mauro Cansian
51
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Redes Overlay
enlace virtual
Rede Overlay
enlace físico
Rede Física
unesp - IBILCE - SJRP
Modelos de Sistemas P2P
(Classificação 1)
q  Modelo Centralizado - depreciado
•  Índice global mantido por um autoridade central.
•  Contato direto entre clientes e provedores.
•  Exemplo: Napster.
q  Modelo Descentralizado
• 
Sem índice global (sem coordenação global)
•  Exemplos: Gnutella, Freenet.
q  Modelo Hierárquico
• 
• 
Introdução dos super-nós (super-nodes ou super-peers).
Mistura dos modelos centralizado e descentralizado
•  Exemplos: KaZaA, Morpheus.
Prof. Dr. Adriano Mauro Cansian
52
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Modelos de Sistemas P2P
(Classificação 2)
q  Centralized Service Location (CSL)
•  Busca centralizada
•  Exemplo: Napster
q  Flooding-based Service Location (FSL)
•  Busca baseada em inundação
•  Exemplo: Gnutella
q  Distributed Hash Table-based Service Location (DHT)
• 
• 
Busca baseada em tabela de hash distribuída
Exemplo: Bittorrent
unesp - IBILCE - SJRP
Modelos de Sistemas P2P
(Classificação 3)
q  Modelo Centralizado
•  Napster, intant mesengers (ICQ, MSN, etc...)
q  Modelo Descentralizado e Não Estruturado.
•  Super-Nós: KaZaA
•  Inundação: Gnutella
q  Modelo Descentralizado e Estruturado
•  DHT.
•  Bittorrent.
Prof. Dr. Adriano Mauro Cansian
53
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Aplicação: Troca de Mensagens
q  IM (Instant Messaging)
q  Aplicação popular na Internet, pela facilidade de
enviar mensagens on-line.
• 
Exemplos:
• 
• 
• 
• 
MSN Messenger (http://messenger.msn.com)
Yahoo! Messenger (http://messenger.yahoo.com)
ICQ – (http://web.icq.com)
Jabber – (http://ww.jabber.org)
unesp - IBILCE - SJRP
Aplicação: Compartilhamento de
Arquivos
q  Aplicação de maior sucesso na Internet.
• 
Permite usuários compartilharem diretamente seus
arquivos, músicas, vídeos, etc...
q  Características
• 
• 
• 
• 
Área de armazenamento.
Disponibilidade de informações.
Anonimato.
Gerenciamento.
Prof. Dr. Adriano Mauro Cansian
54
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Aplicações: Computação Distribuída
q  Idéia de aproveitar recursos computacionais ociosos
não é nova.
q  Grade Computacional (Grid)
• 
• 
Solução de computação distribuída para engenharia e
ciências, baseada em compartilhamento de recursos em
larga escala.
Semelhanças e diferenças com P2P.
q  SETI@Home (http://setiathome.ssl.berkeley.edu)
•  The Search for Extraterrestrial Intelligence
•  Usuários executam partes da “busca”.
unesp - IBILCE - SJRP
SETI@Home
Prof. Dr. Adriano Mauro Cansian
55
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Modelo Centralizado
Diretório
central
Iron
Maiden ?
unesp - IBILCE - SJRP
Modelo por Inundação
Prof. Dr. Adriano Mauro Cansian
56
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Modelo por Inundação
unesp - IBILCE - SJRP
Modelo de Super-Nós
Super-Nós
Prof. Dr. Adriano Mauro Cansian
57
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Modelo DHT
q  Hash
•  Estrutura de dados importantes para desenvolvimento.
q  Hash distribuído na escala da Internet
q  Importante para sistemas distribuídos grandes.
q  Sistemas P2P.
q  Espelhamento de servidores Web.
unesp - IBILCE - SJRP
DHT: Funcionamento
q  Função de hash mapeia objeto para um
identificador único.
• 
Ex: hash(“Aquarela do Brasil”) à 8045
q  Faixa de resultados da função de hash é
distribuída pela rede.
Prof. Dr. Adriano Mauro Cansian
58
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
DHT: Funcionamento
q  Cada nó deve “conhecer” pelo menos uma
cópia do objeto que foi colocado na sua faixa
de hash.
q Localização dos objetos
• 
• 
Nós armazenam os objetos que são mapeados
para a sua faixa de hash.
Nós armazenam apontadores para os objetos
na sua faixa.
unesp - IBILCE - SJRP
DHT: Roteamento
q Para cada objeto, o nó (os nós) cuja faixa
cobre o objeto deve ser alcançável por um
caminho “curto”.
• 
De qualquer outro nó.
q Em geral, qualquer função aleatória de hash
“boa” é suficiente.
• 
Padrão SHA-1 (colisão praticamente
impossível)
Prof. Dr. Adriano Mauro Cansian
59
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Aplicações mais populares
119
unesp - IBILCE - SJRP
Naspter
q  Primeiro programa de compartilhamento
massivo de arquivos através de P2P.
q  Shawn Fanning.
• 
• 
• 
• 
Primeira versão: 1999
Popularidade: início de 2000.
Pico: 2001 à 8 M users/dia ≈ 20 M músicas / dia.
No início de 2001 não resistiu a uma série de ações
legais e o serviço foi fechado em março.
•  Batalha judicial com a RIAA*
•  Novembro de 2002 à direitos
* Recording Industry Association of America.
Prof. Dr. Adriano Mauro Cansian
para a Roxio.
60
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Naspter simplificado
q  Quando um par se conecta, ele informa ao
servidor central:
• 
• 
Endereço IP.
Conteúdo.
q  Alice procura por “Hey Jude”.
q  Servidor central informa onde existe este
arquivo.
q  Alice requisita o arquivo de Bob.
unesp - IBILCE - SJRP
Napster: funcionamento
1. 
2. 
3. 
4. 
5. 
Cliente se conecta com servidor e envia a sua
lista de arquivos compartilhados.
Cliente envia palavras-chave para fazer
busca na lista completa.
Cliente testa taxa de transmissão dos pares que
têm o arquivo solicitado (ping).
Peers respondem (pong).
O arquivo é transferido diretamente entre os
pares.
Prof. Dr. Adriano Mauro Cansian
61
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Napster - Problemas
q  Servidor centralizado
•  Ponto único de falhas.
•  Pode usar o DNS para balancear carga entre servidores.
•  Sujeito a congestionamentos.
•  Sob controle total do Napster.
•  Apenas ilusão de liberdade.
q  Nenhuma segurança:
•  Sem criptografia.
•  Sem autenticação.
•  Sem privacidade (identidade é revelada).
unesp - IBILCE - SJRP
Gnutella (1)
q  Sistema de busca totalmente distribuído.
• 
Protocolo aberto.
q  Busca baseada em inundação (flooding).
q  História:
•  14/03/2000: Disponibilizado sob licença pública GNU no
servidor web da Nullsoft (pertencente à AOL).
•  Retirado apenas algumas horas depois.
•  Tarde demais: muitos usuários fizeram download.
•  O protocolo Gnutella foi “descoberto” através de
engenharia reversa.
•  Outros clientes foram disponibilizados e Gnutella
começou a se popularizar.
Prof. Dr. Adriano Mauro Cansian
62
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Gnutella (2)
q  A sua principal característica é a busca
distribuída.
q  Problema: Tráfego gerado = Escalabilidade.
q  Despertou grande interesse na comunidade
acadêmica.
• 
• 
Não depende de servidor central.
Problema inicial: descobrir algum nó que está na
rede. Depois, já está na rede.
unesp - IBILCE - SJRP
BitTorrent
q  Bram Cohen – Abril de 2001.
q  Procolo aberto.
q  Descentralizado.
q  Modelo híbrido.
q  DHT (Kademlia).
q  Implementado pelo Azureus (atual Vuze)
126
Prof. Dr. Adriano Mauro Cansian
63
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
BitTorrent (2)
q  Tracker.
•  Peer cria um arquivo de metadata: .torrent contendo
um hash do que vai ser compartilhado.
•  Envia para o tracker à servidor supernode.
•  Clientes buscam informações dos compartilhamento
nos trackers.
•  Também possibilidade de operação trackerless e
multitracker.
q  Clientes:
• 
• 
BitTorrent, µTorrent, rTorrent, KTorrent, BitComet à DHT
Vuze (Ex-Azureus) à suporta trackerless (incompatível com
DHT, apesar de que desenvolveu o DHT primeiro).
127
unesp - IBILCE - SJRP
BitTorrent- funcionamento
128
Prof. Dr. Adriano Mauro Cansian
64
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Programação com sockets
Como funcionam as aplicações cliente/servidor
129
unesp - IBILCE - SJRP
Programação com sockets
Meta: aprender construir aplicação cliente/servidor que se
comunica usando sockets.
API Sockets
socket
q  Surgiu em BSD4.1 UNIX, 1981
q  Explicitamente criados, usados
e liberados por aplicações.
q  Paradigma cliente/servidor
q  Dois tipos de serviço de
transporte via API Sockets
• 
• 
Datagrama não confiável
Fluxo de bytes, confiável
Uma interface (uma “porta”),
local ao hospedeiro, criada
por e pertencente à aplicação,
e controlado pelo SO, através
da qual um processo de
aplicação pode tanto enviar
como receber mensagens de/
para outro processo de
aplicação
(remoto ou local)
130
Prof. Dr. Adriano Mauro Cansian
65
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Programação com sockets usando TCP
Socket: uma porta entre o processo de aplicação e um
protocolo de transporte fim-a-fim (UDP ou TCP)
Serviço TCP: transferência confiável de bytes de um
processo para outro
controlado pelo
programador de
aplicação
processo
processo
socket
TCP com
buffers,
variáveis
controlado
pelo sistema
operacional
estação ou
servidor
internet
socket
TCP com
buffers,
variáveis
controlado pelo
programador de
aplicação
controlado
pelo sistema
operacional
estação ou
servidor
131
unesp - IBILCE - SJRP
Programação com sockets usando TCP
Cliente deve contactar servidor:
q  Quando cliente cria socket: TCP
do cliente estabelece conexão ao
q  Processo servidor deve antes
servidor TCP
estar em execução
q  Quando contactado pelo cliente,
q  Servidor deve antes ter criado
servidor TCP cria socket novo
socket (porta) que aguarda
processo servidor poder se
contato do cliente
comunicar com o cliente.
•  Permite que o servidor
Cliente contacta servidor por:
converse com múltiplos
q  Criar socket TCP local ao
clientes.
cliente
q  Especificar endereço IP,
ponto de vista da aplicação
número de porta do processo
TCP provê transferência
servidor
confiável, ordenada de bytes
(“tubo”) entre cliente e servidor
132
Prof. Dr. Adriano Mauro Cansian
66
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Programação com sockets usando TCP
Input stream: seqüência de bytes
para dentro do processo.
doUsuário
doServidor
Output stream: seqüência de bytes
para fora do processo.
pparaServidor
Exemplo de aplicaçao clienteservidor:
q  Cliente lê linha da entrada
padrão (fluxo doUsuário),
envia para servidor via socket
(fluxo paraServidor).
q  Servidor lê linha do socket.
q  Servidor converte linha para
letra maiúscula, e devolve para
o cliente.
q  Cliente lê linha modificado do
socket (fluxo doServidor),
imprime-a
socket do cliente
133
unesp - IBILCE - SJRP
Capítulo 2: Sumário
Terminamos nosso estudo de aplicações de rede!
q  Requisitos do serviço de
aplicação:
• 
Confiabilidade, banda,
retardo.
q  Paradigma cliente-servidor.
q  Modelo de serviço do
transporte orientado a
conexão, confiável da Internet:
TCP.
q  Modelo não confiável:
datagramas UDP.
q  Protocolos específicos:
•  HTTP
•  FTP.
•  SMTP, IMAP e POP3.
•  DNS.
•  P2P.
q  Sockets
•  Implementação cliente/
servidor.
•  Usando sockets tcp, udp.
134
Prof. Dr. Adriano Mauro Cansian
67
UNESP - IBILCE - SJRP - Curso de Redes de Computadores
Capítulo 2
unesp - IBILCE - SJRP
Capítulo 2: Sumário
Mais importante - aprendemos de protocolos:
q  Troca típica de mensagens em
pedido/resposta:
• 
• 
Cliente solicita info ou serviço.
Servidor responde com dados, e
código de status.
q  Formatos de mensagens:
• 
• 
Cabeçalhos: campos com
informações sobre dados
(metadados).
Dados: informação sendo
comunicada.
q  Msgs de controle X dados.
• 
na banda, fora da banda
q  Centralizado X
descentralizado
q  Sem estado X com estado
q  Transferência de msgs
confiável X não confiável
q  “Complexidade na borda da
rede”.
135
Prof. Dr. Adriano Mauro Cansian
68
Download

Curso de Redes de Computadores