Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquiteturas de aplicao
Comunicao entre processos
Protocolos da camada de aplicao
Redes de Comunicao
- Camada de Aplicao -
P2P
HTTP
SMTP
DNS
Juliano F. Kazienko
kazienko@unipampa.edu.br
Arquiteturas de Aplicao
Arquiteturas de Aplicao
Cliente-Servidor
Peer-to-Peer (P2P)
Arquiteturas hbridas
Mtricas
Cliente-Servidor
Servidor sempre ligado com IP conhecido
Escalabilidade
Ex.: aplicao Web
P2P
Tolerncia a falhas
Escalabilidade, etc.
Servidor
Cliente
Servidor
Web com
acesso a
Banco de
Dados
Realiza consulta
Resultado
Juliano F. Kazienko
kazienko@unipampa.edu.br
Arquiteturas de Aplicao
Arquiteturas hbridas
P2P
Cliente-servidor
Juliano F. Kazienko
kazienko@unipampa.edu.br
Comunicao entre
Processos
Programas so processos (SO) que se
comunicam
Processo Cliente
Inicia a comunicao. Ex: navegador
Processo Servidor
Espera ser contatado para iniciar a sesso
Sockets
Identificao de uma comunicao entre
processos (conexo TCP)
[Schollmeier, 2001]
Juliano F. Kazienko
kazienko@unipampa.edu.br
Juliano F. Kazienko
kazienko@unipampa.edu.br
Comunicao entre
Processos
SYN Flooding
SYN
Host:
Processo
Servidor
Host:
Processo
Cliente
Usurio
SYN
Atacante
processo
controlado pelo
desenvolvedor da
aplicao
SYN-ACK
processo
SYN-ACK
Usurio
socket
socket
Internet
TCP com
buffers,
variveis
?
Servidor
ACK
Usurio
TCP com
buffers,
variveis
Servidor
Servidor
Servidor
SYN
Servidor
?
Usurio
controlado
pelo SO
Juliano F. Kazienko
kazienko@unipampa.edu.br
Juliano F. Kazienko
kazienko@unipampa.edu.br
class ClienteTCP {
Cria
fluxo de entrada
do teclado
Cria
socket de cliente,
conexo ao servidor
Cria
fluxo de sada
ligado ao socket
Cria socket
para recepo
na porta 6789
paraServidor.writeBytes(frase + '\n');
fraseModificada = doServidor.readLine();
System.out.println(Do Servidor: " + fraseModificada);
socketCliente.close();
Juliano F. Kazienko
kazienko@unipampa.edu.br
Aguarda, no socket
para recepo, o
contato do cliente
Cria fluxo de
entrada, ligado
ao socket
}
}
class ServidorTCP {
frase = doUsuario.readLine();
L linha
do servidor
BufferedReader doUsuario =
new BufferedReader(new InputStreamReader(System.in));
import java.io.*;
import java.net.*;
BufferedReader doServidor =
new BufferedReader(new
InputStreamReader(socketCliente.getInputStream()));
Envia linha
ao servidor
10
Mtodo bloqueante:
fica parado esperando
msg do servidor
Cria
fluxo de entrada
ligado ao socket
11
Mtodo bloqueante:
fica parado esperando
msg do cliente
12
Protocolos
DataOutputStream paraCliente =
new DataOutputStream(socketConexao.getOutputStream());
L linha
do socket
fraseCliente= doCliente.readLine();
paraCliente.writeBytes(fraseMaiusculas);
}
Protocolos proprietrios
}
}
KazaA
Skype
Juliano F. Kazienko
kazienko@unipampa.edu.br
13
Protocolo
Servio/Aplicao/Protocolo
Oi
Alice
Cliente
Oi
TCP connection
req.
Bob
TCP connection
reply.
Horas?
Servios
Servi
dor
Get http://www.google.com
15:30
<arquivo>
14
correio eletrnico
acesso terminal remoto
WWW
transferncia de arquivos
Multimdia em tempo real
telefonia Internet
Protocolo da
camada de aplic.
Protocolo de
transporte usado
TCP
TCP
TCP
TCP
TCP ou UDP
tipicamente UDP
Juliano F. Kazienko
kazienko@unipampa.edu.br
Juliano F. Kazienko
kazienko@unipampa.edu.br
15
HTTP
Modelo cliente/servidor
ido
http
Windows
r es
Internet Explorer posta
http
ttp
oh
p
did
h tt
pe
ta
s
po
res
URL
Cada objeto enderevel por um URL
http://www.unipampa.edu.br/alegrete/logo.gif
Mquina
Servidora
executando
Apache
Linux executa
Firefox
nome do caminho
Juliano F. Kazienko
kazienko@unipampa.edu.br
ped
Arquivo HTML
Imagens. Ex.: JPEG, GIF.
nome do hospedeiro
16
O HTTP um
protocolo sem estado
no mantm informao
sobre clientes e suas
requisies. Por isso
denominado assim
Juliano F. Kazienko
kazienko@unipampa.edu.br
18
Conexes HTTP
HTTP no persistente
Pedido
Resposta
HTTP persistente
linha do pedido
(comandos GET,
POST, HEAD)
linhas do
cabealho
19
Mensagem de pedido
HTTP: formato geral
21
Juliano F. Kazienko
kazienko@unipampa.edu.br
22
Mantendo o Estado da
Conexo com Cookies
20
Cookies
Juliano F. Kazienko
kazienko@unipampa.edu.br
Tipos de mtodos
23
Juliano F. Kazienko
kazienko@unipampa.edu.br
24
servidor
msg usual pedido http
arquivo de
Cookies
ebay: 8734
servidor
cria a ID 1678
para o usurio
en
de trada
ap
oio no B
D
Set-cookie: 1678
arquivo de
Cookies
cookie: 1678
amazon: 1678
ebay: 8734
ao especfica
do cookie
acesso
cookie: 1678
arquivo de
Cookies
amazon: 1678
ebay: 8734
ao
especfica
do cookie
so
es
ac
Caches Web
t
Juliano F. Kazienko
kazienko@unipampa.edu.br
25
Juliano F. Kazienko
kazienko@unipampa.edu.br
26
Cache Institucional
Proxy: Funcionamento
Servidores
de origem
cliente e
servidor
Internet
enlace de acesso
1,5 Mbps
rede da
instituio
LAN 10 Mbps
cache
institucional
Navegadores
apontam para o
servidor proxy
27
Correio Eletrnico
28
SMTP
Componentes
Porta 25
Utiliza TCP para a transferncia confivel
de msgs. do correio do cliente ao servidor
Transferncia direta
Agentes de usurio
Servidores de correio
Caixa de correio (chegada)
Fila de mensagens (sada)
SMTP
Fases da transferncia
Transfere mensagens
Servidor de correio remetente
Servidor de correio destinatrio
Handshaking (cumprimento)
Transferncia das mensagens
Encerramento
POP3 e IMAP
Juliano F. Kazienko
kazienko@unipampa.edu.br
Juliano F. Kazienko
kazienko@unipampa.edu.br
29
Juliano F. Kazienko
kazienko@unipampa.edu.br
30
Protocolos de Acesso
ao Correio
Alice
agente
de
usurio
SMTP
SMTP
servidor de correio
do remetente
POP3 ou
IMAP
agente
de
usurio
Protocolos de Acesso
Bob
servidor de correio
do receptor
SMTP
entrega/armazenamento no servidor do receptor
Bob no
poder
reler as
mensagens
POP
IMAP
HTTP
31
moita.unipampa.edu.br
www.unipampa.edu.br, www.unipampa.edu.br
Traduz
Ex.: Uso indevido de domnio para envio de spams
Abordagem Centralizada
34
Abordagem Distribuda
Nenhum servidor de nomes tem todos
mapeamentos para todos os hospedeiros da
Internet
Tipos de servidores DNS
Problemas
Juliano F. Kazienko
kazienko@unipampa.edu.br
nome
cannico
Distribuio de carga
32
Servios Providos
Traduo de nomes
Apelidos
Juliano F. Kazienko
kazienko@unipampa.edu.br
Juliano F. Kazienko
kazienko@unipampa.edu.br
SN Raiz: 13 servidores
SN de Alto Nvel (TLD): .com .org .edu .gov e .uk .br
SN com autoridade: empresas que possuem
hospedeiros acessados publicamente. Ex: amazon.com
SN Local: ISPs, universidade, depto. acadmico,
residencial (pode estar na mesma LAN)
No usada
pelo DNS
35
Juliano F. Kazienko
kazienko@unipampa.edu.br
36
Consulta e Resposta
SNs armazenam Registros de Recursos
(RR)
Sintaxe (Name, Value, Type, TTL)
Ex.: O servidor TLD edu no sabe como
obter um endereo IP Nome do servidor de nomes
O host cis.poly.edu
quer obter o IP de
gaia.cs.umass.edu
As 8 msgs de
consulta podem ser
reduzidas
Passo 5 Domnio
obter o IP p/ o domnio
(umass.edu, dns.umass.edu, NS)
(dns.umass.edu, 128.119.40.111, A)
Cache DNS
[Kurose and Ross, 2010]
Juliano F. Kazienko
kazienko@unipampa.edu.br
Mensagens DNS
37
Nome de
Hospedeiro
Juliano F. Kazienko
kazienko@unipampa.edu.br