Redes
Redes de
de Computadores
Computadores
Camada Aplicação
1
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Introdução às Redes de Computadores
e Internet – Revisão
AAInternet
Internet
Protocolos
Protocolos
Estrutura
Estruturada
darede
rede
––
AAperiferia
periferiada
darede
rede
OOnúcleo
núcleoda
darede
rede
Redes
Redesde
deAcesso
AcessoeeMeio
MeioFisico
Fisico
––
TCP/IP
TCP/IPeeOSI
OSI
––
––
2
Desempenho:
Desempenho:atraso
atrasoeeperda
perda
Camadas
Camadasde
deprotocolos
protocoloseemodelos
modelosde
deserviço
serviço
Estrutura
Estruturada
daInternet
InterneteeISPs
ISPs
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Camada Aplicação
Segue Capitulo 2 do livro de J.F Kurose e K.W. Ross
Princípioseecaracteristicas
caracteristicasdos
dosprotocolos
protocolosda
dacamada
camadade
deaplicação
aplicação
Princípios
WebeeooHTTP
HTTP(Hypertext
(HypertextTransfer
TransferProtocol)
Protocol)
AAWeb
Transferênciade
deFicheiros
Ficheiros(File
(FileTransfer)
Transfer)
Transferência
––
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
TransferProtocol,
Protocol,POP3,
POP3,IMAP
IMAP
SMTP:
––
DNS:Domain
DomainName
NameSystem
Systemprotocol
protocol
DNS:
CorreioElectrónico
Electrónico
Correio
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
Partilhade
deFicheiros
FicheirosPeer-to-Peer
Peer-to-Peer(P2P)
(P2P)
Partilha
Objectivos:
Objectivos:
Adquirir
Adquiriros
osconceitos
conceitoseeaspectos
aspectosde
deimplementação
implementaçãodos
dosprotocolos
protocolosde
deaplicação
aplicação
em
rede,
através
do
estudo
de
protocolos
populares
da
camada
aplicação.
em rede, através do estudo de protocolos populares da camada aplicação.
3
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Algumas aplicações distribuidas
4
E-mail
Web
Instant messaging
Login remoto
Partilha de ficheiros P2P
Jogos de rede multi-utilizador
Vídeo-clips
Voz sobre IP
Vídeo-conferência em tempo real
Computação paralela em larga escala
IPTV, MobileTV
Redes Sociais (FaceBook, Hi5, LinkedIn)
VoIP
Camada de Aplicação
Call – N – Share
Mobile IM
w/ Presence
Ringback Tones
Picture Share
Mobile
Conferencing
Mobile & IPTV
Multiplayer
Gaming
Rich Media IM
Network Address
Book
Video Surveillance
Remote Monitoring
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
IPTV – Televisão sobre a Internet
Still Today
“I have 100 channels,
but nothing to watch”
• High frustration with broadcast TV
• Demand for better TV
5
Camada de Aplicação
Already Today
My choice on
TV
My TV, My IM
My cell phone…
• IPTV will change the user TV experience
from passive zapping to active browsing
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Aplicações em Telemóveis
... Edge Gateway
... New Multimedia Computer
Applicações:
Applicações:
6
Camada de Aplicação
Segurança:telemóvel
telemóvelcomo
comochave
chave
Segurança:
Saúde:mediar
mediarcomunicações
comunicaçõescom
com
Saúde:
dispositivospessoais
pessoaisde
desaúde
saúde
dispositivos
Entretenimento:MobileTV,
MobileTV,jogos
jogos
Entretenimento:
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Open Internet – Novas Applicações
... focus na Conectividade Social
YouTube
Video Sharing
Flickr
Photo Sharing
Wikipedia
Colaborative
encyclopedia
LinkedIn
Business
Connections
7
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Open Internet – Novas Applicações
... focus na Conectividade Social
SecondLife
Virtual Worlds
Trust+Plus
Colaborative Trust
Twitter
Where and What
are you doing?
MySpace
Personal space
8
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Criando uma aplicação distribuida
Aplicações distribuídas
programas que executam em diferentes sistemas
terminais
necessitam trocar mensagens através da rede para
fornecerem o resultado para que foram desenhadas
E.g., e-mail, transferência de ficheiros
–
aplicação
transporte
rede
ligação
física
Web: servidor Web (Apache, Microsoft) envia página
Web (documento HTML) requisitada pelo navegador
(browser-Internet Explorer) através de uma troca de
mensagens (HTTP)
Dispositivos do núcleo da rede não executam
aplicações de utilizadores
Protocolos da camada de aplicação
9
são partes integrantes de uma aplicação distribuída
definem as mensagens a trocar e as acções que
resultam dessas mensagens
usam serviços de comunicação fornecidos pelas
entidades das camadas de protocolo inferiores
Camada de Aplicação
aplicação
transporte
rede
ligação
física
aplicação
transporte
rede
ligação
física
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Protocolos da Camada de
Aplicação – o que definem?
Aplicação
Distribuida
–
10
campos presentes nas mensagens
e como são identificados
Semântica dos campos
–
Protocolos
Protocolosde
dedomínio
domíniopúblico:
público:
definidos
definidosem
emRFCs
RFCs
Permitem
Permitemaainteroperação
interoperação
ex,
ex,HTTP
HTTPeeSMTP
SMTP
eg mensagens de pedido e resposta
Sintaxe dos tipos das mensagens
–
Aplicação
Distribuida
Tipos de mensagens trocadas
–
Protocolo de
Camada Aplicação
significado da informação nos campos
Regras para quando os processos
enviam e respondem às mensagens
Camada de Aplicação
Protocolos
Protocolosproprietários:
proprietários:
Ex.,
Ex.,KaZaA,
KaZaA,Skype
Skype
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Processos em comunicação
- Endereçamento de processos
Processo
Processo
porto
Canal
Canal de
de comunicação
comunicação
porto
Processo
Processo: programa que é
executado numa máquina
processos na mesma máquina
comunicam (típicamente) usando
comunicação entre processos
(interprocess communication) do
sistema operativo (SO)
Processos que se executam em
máquinas diferentes comunicam
através de um protocolo da
camada de aplicação, trocando
mensagens através da rede
Processo servidor: processo que
espera para ser contactado
Processo cliente: processo que
inicia a comunicação
–
–
–
Faz a interface com o utilizador
“acima” e com a rede “abaixo”
implementa protocolos nível de
aplicação
Ex. WWW: “browser”, E-mail: leitor de
correio, audio/video: “media player”
Paraooprocesso
processoreceber
recebermensagens,
mensagens,
Para
precisade
deum
umidentificador
identificador
precisa
–
–
–
–
endereçoIP
IPúnico
únicode
de32
32bits
bitsdo
dohost
host
endereço
númerodo
doporto
portoassociado
associadocom
comoo
eenúmero
processona
namáquina
máquina
processo
e.g.Servidor
ServidorHTTP:
HTTP:porto
porto80
80
e.g.
Servidor
de
Correio:
porto
25
Servidor de Correio: porto 25
Aplicações com arquitecturas P2P possuem processos clientes e processos servidores
11
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets
Cliente
socket
Servidor
controlado pelo
programador da
aplicação
Os processos enviam /recebem
mensagens para /de outros processos
através dos seus sockets
–
processo
processo
socket
socket
–
TCP com
buffers,
variáveis
TCP com
buffers,
variáveis
–
Ou UDP
Internet
Controlado pelo SO
Um socket corre no sistema terminal e é
análogo a uma porta entre os processos
da aplicação e o protocolo de transporte
O processo que envia empurra a
mensagem para fora da porta
assume que a infraestrutura de transporte
do outro lado da porta leva a mensagem
até ao socket do processo que a recebe
Protocolo de transporte: transferência de
bytes de um processo para outro
API (Interface de Programação da Aplicação)
–
–
Permite escolher o protocolo de transporte
E definir alguns parâmetros
12
Camada de Aplicação
Tamanho buffers e segmentos do TCP
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets com Ligação
Servidor
13
Cliente
socket
Servidor
bind
Socket
Escuta
listen
socket
accept
connect
read
write
write
read
Camada de Aplicação
Socket
Ligação
Cliente
3-wa
y ha
n ds h
ak e
bytes
bytes
Socket
Cliente
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets Stream em Java (Cliente)
import java.net*;
• classe Socket – suporta o
import java.io*;
public class TCPClient{
socket cliente. Argumentos:
public static void main(String args[]){
nome DNS do servidor e o porto.
// args: message and destin. hostname
• Construtor não só cria o socket
Socket s = null;
como efectua a ligação TCP
try{
WriteUTF /
int server Port = 7896;
s = new Socket (args[1], serverPort);
readUTF –
DataInputStream = new DataInputStream(s.getInputStream());
para Universal
DataOutputStream out =
transfer
newDataOutputStream (s.getOutputStream());
format / para
as cadeias de
caracteres
Métodos getInputStream /
out.writeUTF(args[0]);
getOutputStream – permitem
String data = in.readUTF();
aceder aos dois streams
System.out.prtintln(“Received: ” + data);
definidos pelo socket
}catch (UnknownHostException e){
System.out.println(“Sock:” + e.getMessage());
}catch (EOFException e){System.out.println(“EOF:”e.getMessage());
}catch (IOException e){System.out.println(“IO:”e.getMessage());
}finally {if(s!=null) try{s.close();}catch (IOException e}
}
14
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets Stream em Java (Servidor)
import java.net*;
Cria socket servidor que fica à
import java.io*;
escuta no porto “serverPort”
public class TCPServer{
public static void main(String args[]){
Bloqueia até cliente
try{
estabelecer ligação.
int server Port = 7896;
ServerSocket listenSocket = new ServerSocket(serverPort);
while(true){
Socket connectionSocket = listenSocket.accept();
myConnection c = new myConnection(connectionSocket);
}
}catch (IOException e){System.out.println(“Listen:”
+e.getMessage());}
Cria novo socket servidor com quem
}
é estabelecida ligação com o cliente
}
e onde os dados são recebidos
15
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets Stream em Java
Socket – classe que suporta o socket cliente e que tem
como argumentos a identificação remota do servidor: o
nome DNS do servidor e o porto
–
Métodos
–
O construtor não só cria o socket como efectua a ligação
getInputStream; getOutputStream – permite aceder aos
dois streams definidos pelo socket
ServerSocket – classe para o servidor
Métodos
–
Accept
WriteUTF e readUTF – Universal Transfer Format
–
16
Recebe um socket cliente sempre que é invocado o connect
para as cadeias de caracteres
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets sem Ligação
Servidor
Cliente
socket
socket
bind
bind
sendto
recvfrom
sendto
recvfrom
17
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets UDP em Java (Cliente)
import java.net*;
Constrói um socket datagram
import java.io*;
public class UDPClient{
(associado a qualquer porto disponível)
public static void main(String args[]){
// args give message contents and server hostname
DatagramSocket aSocket = null;
Conversão do nome
try {
DNS para endereço IP
aSocket = new DatagramSocket();
byte [] m = args [0].getBytes();
InetAddress aHost = InetAddress.getByName(args[1]);
Int serverPort = 6789;
DatagramPacket request =
new DatagramPacket(m, args[0].length(), aHost, serverPort);
aSocket.send(request);
byte[]buffer = new byte[1000];
DatagramPacket reply = new DatagramPacket(buffer, buffer.length);
aSocket.receive(reply);
System.out.println(“Reply:” + new String(reply.getData()));
} catch (SocketException e){System.out.println(“Socket:” +
e.getMessage());
} catch (IOException e){System.out.println(“IO:” + e.getMessage());
} finally { if(aSocket ! = null) aSocket.close();}
}
Cada mensagem enviada tem que levar junto
}
identificador do processo destino: IP e porto
18
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets UDP em Java (Servidor)
import java.net*;
import java.io*;
public class UDPServer{
Constrói um socket datagram
public static void main(String args[]){
(associado ao porto 6789)
DatagramSocket aSocket = null;
try{
aSocket = new DatagramSocket(6789);
byte[] buffer = new byte [1000];
while(true){
DatagramPacket request = new DatagramPacket(buffer,
buffer.legth);
aSocket.receive(request);
Recebe mensagem
DatagramPacket reply = new DatagramPacket(request.getData(),
request.getLength(); request.getAddress(),
request.getPort());
Extrai da
aSocket.send(reply);
mensagem o
}
IP e porto do
} catch (SocketException e){System.outprintln(“Socket:”+
e.getMessage());
processo
} catch (IOException e){System.out.println(“IO:” + e.getMessage());
origem para
} finally {if(aSocket ! = null) aSocket.close();}
responder
}
}
19
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Sockets Datagram em Java
DatagramSocket – classe que suporta os sockets
datagram e que tem como argumento um porto
Métodos
–
–
–
20
send; receive
setSoTimeout – temporizador que limita o tempo de
espera do receive
connect – define um porto remoto
Conversão do nome DNS para um endereço Internet
com o método InetAddress.getByName
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Serviços fornecidos pelos protocolos
de transporte Internet (recapitular)
Serviço TCP:
21
com ligação: inicialização
requerida entre cliente e servidor
transporte fiável entre processos
remetente e receptor
controlo do fluxo: remetente não
vai “inundar” receptor
controlo de congestão: bloqueio
do remetente quando a rede está
carregada
não oferece: garantias temporais
ou de banda mínima
Camada de Aplicação
Serviço UDP:
transferência de dados não
fiável entre processos remetente
e receptor
não oferece: estabelecimento da
ligação, fiabilidade, controlo do
fluxo, controlo do congestão,
garantias temporais ou de banda
mínima
Protocolo leve
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
De que serviços de transporte necessita
uma aplicação?
Requisitos sobre os serviços de transporte
Perdas de dados
algumas aplicações (e.g. áudio)
toleram perdas de informação
outras (eg transferência de
ficheiros, telnet) requerem
transferências 100% fiáveis
Largura de banda
Temporização
22
algumas aplicações (e.g.,
telefone sobre a internet VoIP, jogos interactivos)
exigem um pequeno atraso
extremo a extremo
aproximadamente constante
durante a sua execução
Camada de Aplicação
algumas aplicações (eg
aplicações multimedia)
requerem um ritmo mínimo de
transferência de informação
para funcionarem
adequadamente
outras aplicações conseguem
usar qualquer largura de banda
disponível em cada instante
–
Eg. Aplicações “elásticas” como
transferência de ficheiros
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Requisitos sobre o Serviço de
Transporte de Aplicações Comuns
A Internet de hoje ainda não dá garantias de Banda e Sensibilidade Temporal
Aplicação
transferência ficheiros
Correio electrónico
documentos Web
áudio/vídeo de
tempo real
videoconferência
áudio/vídeo gravado
jogos interativos
Mensagem
Instantânea
aplicações financeiras
23
Perdas
intolerante
intolerante
intolerante
Largura de
Banda
elástica
elástica
elástica
Sensibilidade
temporal a atrasos
não
não
não
tolerante
áudio: 5Kb-1Mb
vídeo:10Kb-5Mb
sim, 100’s mseg
como anterior
> alguns Kbps
elástica
sim, alguns segs
sim, 100’s mseg
sim e não
elástica
---
tolerante
tolerante
intolerante –
sem perdas
intolerante
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Aplicações Internet: protocolos de
aplicação e de transporte
Aplicação Internet
correio electrónico
acesso em terminal remoto
Web
transferência de ficheiros
streaming multimedia
servidor de ficheiros remoto
Telefone sobre Internet
24
Camada de Aplicação
Protocolo da
camada de aplicação
Protocolo de
transporte usado
SMTP [RFC 2821]
TCP
telnet [RFC 854], ssh
TCP
HTTP [RFC 2616]
TCP
FTP [RFC 959]
TCP
HTTP(ex. YouTube), RTP TCP ou UDP
NFS
TCP ou UDP
Proprietários (Skype)
tipicamente UDP
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Camada Aplicação - Revisão
Princípioseecaracteristicas
caracteristicasdos
dosprotocolos
protocolos
Princípios
dacamada
camadade
deaplicação
aplicação
da
WebeeooHTTP
HTTP(Hypertext
(HypertextTransfer
Transfer
AAWeb
Protocol)
Protocol)
Transferênciade
deFicheiros
Ficheiros(File
(FileTransfer)
Transfer)
Transferência
––
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
TransferProtocol,
Protocol,
SMTP:
POP3,
IMAP
POP3, IMAP
25
CorreioElectrónico
Electrónico
Correio
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
––
DNS:Domain
DomainName
NameSystem
Systemprotocol
protocol
DNS:
Partilhade
deFicheiros
FicheirosPeer-to-Peer
Peer-to-Peer(P2P)
(P2P)
Partilha
Camada de Aplicação
Aplicações
Aplicações
Distribuidas
Distribuidas
Processos
Processos
Programaçãode
de
Programação
aplicaçõesde
deRede
Rede
aplicações
(APIdos
dosSockets)
Sockets)
(API
Requisitossobre
sobreos
os
Requisitos
serviçosde
de
serviços
transporte
transporte
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Web (ou www – World Wide Web)
Página Web (Web page) é constituida por objectos
–
Objecto pode ser um ficheiro HTML (que referencia outros
objectos), imagem JPEG, vídeo-clip, ficheiro de áudio,…
–
Cada objecto é endereçado por um URL
–
Se pagina Web tiver texto HTML mais n objectos referenciados (eg
imagens), então o número total de objectos é n+1
Um URL (Uniform Resource Locator) tem duas componentes:
“host name” e “path name”
www.ist.utl.pt/secretaria/pautas.html
nome da máquina host / servidor
26
Camada de Aplicação
nome do caminho
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Protocolo HTTP
HyperText Transfer Protocol – protocolo de transferência de hipertexto
Protocolo
Protocoloda
dacamada
camadade
deaplicação
aplicaçãoda
daWeb
Web
pe d
HTTP
HTTP1.0:
1.0:RFC
RFC1945,
1945, HTTP
HTTP1.1:
1.1:RFC
RFC2616
2616
Modelo Cliente/Servidor
“browser” é o agente de utilizador
Web, ou cliente HTTP
–
–
r
PC executa esp
Explorer
MS Internet Explorer, Netscape
Navigator, Mozilla Firefox, Google
Chrome
pede, recebe, mostra objectos Web
–
–
27
ost
a
htt
p
htt
p
ttp
h
ido
d
ttp
h
pe
sta
o
p
res
O servidor Web chama-se “Web Server”
–
ido
Servidor
Web
(ex. IST)
eg. Apache, MS Internet Information Server
Mac executa
Implementa lado servidor do HTTP
envia objectos www em resposta a pedidos Navigator
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Protocolo HTTP (cont.)
Usa
Usaserviço
serviçode
detransporte
transporteTCP
TCP
HTTP “não mantem estado”
1.1.
2.2.
3.3.
4.4.
28
cliente
clienteinicia
inicialigação
ligaçãoTCP
TCP(cria
(cria
um
socket)
com
o
servidor
um socket) com o servidorno
no
porto
80
porto 80
servidor
servidoraceita
aceitaligação
ligaçãoTCP
TCPdo
do
cliente
cliente
mensagens
mensagensHTTP
HTTP(mensagens
(mensagens
do
protocolo
da
camada
do protocolo da camadade
de
aplicação)
trocadas
entre
aplicação) trocadas entre
browser
browser(cliente
(clienteHTTP)
HTTP)eeoo
WebServer
WebServer(servidor
(servidorHTTP)
HTTP)
Encerramento
Encerramentoda
daligação
ligaçãoTCP
TCP
Camada de Aplicação
servidor não mantém
informação sobre pedidos
anteriores do cliente
Nota
Protocolos que mantêm “estado” são
complexos!
história passada (estado) tem que ser
guardada
Caso o servidor ou o cliente vá abaixo,
as visões do “estado” destes podem
ficar inconsistentes, e devem
portanto ser sincronizadas
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Ligações HTTP
HTTP não persistente
O servidor interpreta o pedido,
responde e fecha a ligação TCP
–
–
–
29
–
–
Ineficiente
–
No máximo um objecto é enviado
numa ligação TCP
Mas, na maioria dos casos, usam-se
várias ligações TCP em paralelo
HTTP persistente
Múltiplos objectos podem ser
enviados sobre 1 única ligação
TCP entre cliente e servidor
Cada transferência é sujeita ao
período “slow start” do TCP
Com paralelismo consegue-se
aumentar eficiência
HTTP/1.0 usa HTTP não persistente
Camada de Aplicação
na mesma ligação TCP o
servidor responde a vários
pedidos
o cliente envia pedidos para
todos os objectos
referenciados na mesma
página de base
HTTP/1.1 usa ligações
persistentes no seu modo
default
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
HTTP com ligação não persistente
Exemplo: Utilizador introduz o URL: www.ist.utl.pt/dei/index.html
1a. Cliente http inicia ligação
TCP ao servidor http
(processo) www.ist.utl.pt
na Porta 80, padrão para
servidor http.
2. cliente http envia
mensagem de pedido
de http (incluindo o
URL) através do
tempo
socket da ligação TCP
30
Camada de Aplicação
1b. servidor http no host
www.ist.utl.pt espera por
ligação TCP na porta 80.
“aceita” ligação, avisando o
cliente
3. servidor http recebe mensagem
de pedido, elabora a mensagem
de resposta contendo o objecto
solicitado
www.ist.utl.pt/dei/index.html, e
envia mensagem via socket
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Exemplo de HTTP não persistente (cont.)
4. servidor http
5. cliente http recebe
encerra ligação
TCP
mensagem de resposta a
qual contem o ficheiro html,
mostra html. No ficheiro
html, encontra referências
para n objectos jpeg
6. passos 1 a 5 repetidos para
tempo
31
cada um dos n objectos jpeg
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Modelo do tempo de resposta
Tempo total = 2RTT + tempo de transmissão
RTT
RTT(Round
(RoundTrip
TripTime)
Time)
intervalo
de
tempo
intervalo de tempoentre
entreaa
ida
idaeeaavolta
voltade
deum
umpacote
pacote
(tamanho
pequeno)
entre
(tamanho pequeno) entre
um
umcliente
clienteeeum
umservidor
servidor
Tempo
de
resposta:
Tempo de resposta:
um
umRTT
RTTpara
parainiciar
iniciaraa
ligação
ligaçãoTCP
TCP
um
RTT
um RTTpara
paraoopedido
pedidoHTTP
HTTP
eeooretorno
dos
primeiros
retorno dos primeiros
bytes
bytesda
daresposta
respostaHTTP
HTTP
O
RTT
inclui
os
atrasos
O RTT inclui os atrasos
d proc , d queue , d prop
Tempo
total = 2RTT + tempo
de transmissão do ficheiro
32
Camada de Aplicação
Iniciar a ligação
TCP
RTT
pedir
ficheiro
RTT
ficheiro
recebido tempo
tempo para
transmitir
o ficheiro
tempo
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
HTTP não persistente – Problemas
33
requer22 RTTs
RTTspara
para cada
cada objecto
objecto
requer
SO aloca
aloca recursos
recursosdo
dohost
hostpara
para cada
cada
SO
ligaçãoTCP
TCP
ligação
browserabre
abre com
comfrequência
frequência
oo browser
ligaçõesTCP
TCP paralelas
paralelas para
para recuperar
recuperar
ligações
os objectos
objectos referenciados
referenciados
os
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
HTTP com ligação persistente
o servidor deixa a
ligação aberta após
enviar a resposta
Persistente sem pipelining (paralelismo):
o cliente envia um novo pedido apenas
quando a resposta anterior tiver sido
recebida
um RTT para cada objecto referenciado
As mensagens
HTTP seguintes
entre o mesmo
cliente/servidor são
enviadas nesta
ligação
Persistente com pipelining
default no HTTP/1.1
o cliente envia os pedidos logo que
encontra um objecto referenciado
pode ser necessário apenas um RTT
para todos os objectos referenciados
HTTP persistente
34
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Formato de mensagem HTTP: pedido
Dois tipos de mensagem HTTP: pedido (request), resposta (response)
linha do pedido (comandos GET, POST, HEAD, PUT, DELETE)
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
linhas do
cabeçalho
User-agent: Mozilla/4.0
Accept-language:fr
linha em branco
(carriage return, line
feed) indica o fim
do cabeçalho
35
(caracteres adicionais de carriage return - CR, line feed - LF)
ASC
ASCIIII- -American
AmericanStandard
StandardCode
Codefor
forInformation
InformationInterchange
InterchangeIIII
256
256caracteres
caracterescodificados
codificadosem
em88bits
bits(formato
(formatolegível
legívelpor
porpessoas)
pessoas)
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Mensagem de pedido HTTP
formato geral
Linha de
pedido
(request line)
Linhas do
Cabeçalho
(header lines)
Linha em
branco
Corpo da
mensagem
(entity body)
36
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Formato de mensagem
HTTP: pedido
Método
URL
Versão HTTP
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Sistema terminal em que os
objectos residem
Connection: close
Não utilizar ligações persistentes
User-agent: Mozilla/4.0
Tipo de browser
Accept-language:fr
O cliente prefere obter a versão
francesa do objecto
37
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Camada de Aplicação
Tipos de métodos
HTTP/1.0
HTTP/1.0
GET
GET
––
––
Utilizador
Utilizadorintroduz
introduzdados
dadosna
napágina
página
web
preenchendo
formulário
web preenchendo formulário
Dados
Dadosenviados
enviadosno
nocorpo
corpoda
da
mensagem
mensagem
HEAD
HEAD
––
38
––
POST
POST
––
Utilizador
Utilizadorpede
pedeum
umobjecto
objectoou
ouenvia
envia
formulário
no
campo
URL
da
linha
formulário no campo URL da linha
de
depedido
pedido
HTTP/1.1
HTTP/1.1
GET,
GET,POST,
POST,HEAD
HEAD
PUT
PUT
Pede
Pedeao
aoservidor
servidorpara
paranão
nãoincluir
incluiroo
objecto
objectona
naresposta
resposta
Camada de Aplicação
Envio
Envio(Upload)
(Upload)de
de
ficheiro
no
corpo
ficheiro no corpoda
da
mensagem
mensagempara
paraoo
caminho
caminhoespecificado
especificado
no
campo
no campoURL
URL
DELETE
DELETE
––
Apaga
Apagado
doservidor
servidor
Web
ficheiro
Web ficheiro
especificado
especificadono
nocampo
campo
URL
URL
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Mensagem HTTP de
resposta
formato
linhas de cabeçalho
linha de estado (protocolo, código de estado, frase descritiva do estado)
HTTP/1.0 200 OK
data em que resposta
Connection: close
foi criada no servidor
Date: Thu, 06 Aug 2009 12:00:15 GMT
servidor que gerou a
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 2009... resposta
Content-Length: 6821
data em que objecto foi
criado ou modificado
Content-Type: text/html
dados dados dados dados ...
dados, eg ficheiro html (ou imagem, etc) pedido
39
Camada de Aplicação
número de bytes do
objecto
tipo de objecto
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Códigos de estado da resposta HTTP
Na primeira linha da mensagem de resposta servidor->cliente
200 OK
–
Alguns códigos típicos
sucesso, objecto pedido segue mais adiante nesta mensagem
301 Moved Permanently
–
objecto pedido mudou de lugar, nova localização especificada
mais adiante nesta mensagem (cabeçalho Location:)
400 Bad Request
–
mensagem de pedido não entendida pelo servidor
404 Not Found
–
objecto pedido não foi encontrado neste servidor
505 HTTP Version Not Supported
–
40
versão de http do pedido não usada por este servidor
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Analisador de Pacotes de Rede Wireshark –
Captura HTTP
41
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Interacção utilizador/servidor:
Autenticação
cliente
servidor
msg pedido http
Autenticação
Autenticação: :controlo
controlode
deacesso
acessoaos
aos
401 authorization req
www authenticate
msg pedido http
authorization <cred>
–
–
resposta normal http
msg pedido http
authorization <cred>
tempo
42
resposta normal http
Camada de Aplicação
documentos
documentosno
noservidor
servidor
Credenciais
Credenciaisde
deAutorização:
Autorização:tipicamente
tipicamente
nome
(username)
e
senha
(password)
nome (username) e senha (password)
na
nalinha
linhado
docabeçalho
cabeçalhodo
dopedido
pedido
Sem
Semestado
estado(stateless):
(stateless):oocliente
cliente
apresenta
autorização
em
cada
apresenta autorização em cadapedido
pedido
–
–
Linha
Linhade
decabeçalho
cabeçalhoAuthorization
Authorizationem
em
cada
cadapedido
pedido
Sem
Semcabeçalho
cabeçalhoAuthorization,
Authorization,ooservidor
servidor
recusa
o
acesso,
recusa o acesso,eeresponde
respondecom
comoo
cabeçalho
cabeçalhowww
wwwauthenticate
authenticate
oo“browser”
“browser”memoriza
memorizaaaautorização,
autorização,
repetindo-a
a
cada
pedido
repetindo-a a cada pedido
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Cookies: manutenção do “estado” da ligação
Permitem que sites identifiquem e monitorizem os seus utilizadores
1.
Vários sites Web usam cookies
Quatro componentes:
linha de cabeçalho do cookie na
mensagem de resposta HTTP
–
2.
linha de cabeçalho do cookie na
mensagem de pedido HTTP
–
3.
43
Cookie: 1678
ficheiro de cookies mantido na
máquina do utilizador e gerido pelo
browser deste
–
4.
Set-cookie: 1678
armazenado no disco rígido com
dados do utilizador
Base de Dados (BD) de apoio no
site Web
Camada de Aplicação
Exemplo:
Exemplo:
Anasurfa
surfana
naInternet
Internet
Ana
sempredo
domesmo
mesmoPC
PC
sempre
Elavisita
visitaum
umsite
siteespecífico
específico
Ela
decomércio
comércioelectrónico
electrónico
de
pelaprimeira
primeiravez
vez
pela
Quandoos
ospedidos
pedidosiniciais
iniciais
Quando
HTTP
chegam
ao
site
Web,
HTTP chegam ao site Web,
estecria
criaum
umidentificador
identificador
este
(ID)único
únicoeecria
criatambém
também
(ID)
umaentrada
entradapara
paraooID
IDna
na
uma
suaBase
Basede
deDados
Dados
sua
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Cookies: manutenção do “estado” (cont.)
ficheiro de Cookies
Host - ID
ebay: 8734
servidor
msg pedido http
resposta http +
Set-cookie: 1678
ficheiro de Cookies
amazon: 1678
ebay: 8734
cliente apresenta “cookie” em
futuras mensagens “request”
uma semana depois:
ficheiro de Cookies
amazon: 1678
ebay: 8734
44
Camada de Aplicação
msg pedido http
cookie: 1678
resposta http
msg pedido http
cookie: 1678
resposta http
en
servidor
de trad
cria o ID 1678 e ap a
oi na
envia ao
o
BD
utilizador
servidor valida o cesso
a
“cookie”
Acção específica
do cookie
ac
es
so
cliente
acção
específica
do cookie
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Cookies (continuação)
O que os cookies podem fazer:
Autorização após armazenar
o registo da pessoa
Registo da lista de compras
no E-commerce
Sugestões – recomendar
produtos
estado da sessão do
utilizador (Web email) –
identificação do utilizador
Cookies armazenam coisas
que utilizador acedeu, e
também info este nunca viu
45
Camada de Aplicação
Nota
Cookies e privacidade:
cookies permitem que os sites
aprendam muito sobre o utilizador
mecanismos de busca usam
redirecionamento e cookies para
aprender ainda mais sobre
utilizador
agências de publicidade obtêm
perfil de utilizadores a partir dos
sites visitados e oferecem a estes
produtos de forma agressiva (eg
DoubleClick)
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Cache Web (servidor proxy)
Objectivo: satisfazer o pedido de um cliente sem envolver o servidor origem
O utilizador configura o
“browser” para aceder a web
via “web cache”
Todos os pedidos http são
enviados à “web cache”
–
–
se o objecto existe na “web
cache” o pedido é
imediatamente satisfeito
caso contrário a “web cache”
cria ligação TCP com o
servidor origem, consulta
este, e memoriza o objecto
retornado na resposta (para
futura utilização)
46
e responde ao pedido do
cliente na ligação TCP que
tinha com este
Camada de Aplicação
cliente
Servidor de origem
Servidor
proxy
pe d
ido
htt
res
p
pos
ta
htt
p
ttp
h
ido
ttp
d
e
h
p
sta
o
p
res
cliente
ttp
h
o
ttp
did
e
h
p
sta
o
p
res
pe d
ido
htt
res
p
pos
ta
htt
p
Servidor de origem
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Caches Web
Quais as vantagens da Web Cache?
Redução
Reduçãodo
dotempo
tempode
deresposta
resposta
para
paraos
ospedidos
pedidosdo
docliente
cliente
Redução
Reduçãodo
dotráfego
tráfegono
nocanal
canalde
de
acesso
acessode
deuma
umainstituição
instituição
por um ISP (universidade,
AAInternet
Internetcheia
cheiade
decaches
caches
permitem
permitemque
queprovedores
provedoresde
de
conteúdo
conteúdo“pobres”
“pobres”efectivamente
efectivamente
empresa, ISP residencial)
forneçam
forneçamconteúdo!!!!!
conteúdo!!!!!
Cache actua tanto como cliente
quanto como servidor
Guarda as suas próprias cópias
dos objectos no seu próprio
sistema de armazenamento
47
Tipicamente a cache é instalada
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Exemplo de cache
Hipóteses
Tamanho médio dos objectos = 100k bits
Taxa média de solicitações dos browsers de
uma instituição para os servidores originais = a
= 15/seg
Atraso do roteador institucional para qualquer
servidor origem e de volta ao roteador = 2seg
Consequências
Utilização da LAN = aL/R = 15/seg x 100Kb /
10Mbps=15%
Utilização do canal de acesso = 15 / seg x
100Kb x / 1,5Mbps = 100%
Atraso total = atraso da Internet + atraso de
acesso + atraso na LAN =
2 seg + minutos (100%) + milisegundos (15%)
48
Camada de Aplicação
Servidores de origem
Internet
pública
ligação de acesso
1,5 Mbps
Rede da
instituição
LAN 10 Mbps
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Exemplo de cache
- Solução de Upgrade
Solução Potencial
Aumento da largura de banda do canal
de acesso para, por exemplo, 10 Mbps
Consequências
Utilização da LAN = 15%
Utilização do canal de acesso = 15%
Atraso total = atraso da Internet + atraso
de acesso + atraso na LAN =
2 seg + msegs + msegs
Frequentemente esta é uma ampliação
cara
–
49
Servidores de origem
Internet
pública
ligação de acesso
10 Mbps
Rede da
instituição
LAN 10 Mbps
Requer upgrade da ligação da instituição
à internet
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Exemplo de cache
- Uso de uma Web Cache
Instalação de uma cache
Assumir que a taxa de reutilização seja de 0,4
(tipicamente entre 0,2 e 0,7)
Consequências
40% dos pedidos serão atendidos quase
imediatamente
60% dos pedidos serão servidos pelos
servidores de origem
Utilização do canal de acesso é reduzido para
60%, resultando em atrasos desprezíveis
–
50
e.g. 0,01 segs
Atraso total = atraso da Internet + atraso de
acesso + atraso na LAN =
0,6 x 2 seg + 0,6 x 0,01 segs + 0,4 x 0,01seg
< 1,3 segs
Camada de Aplicação
Servidores de origem
Internet
pública
ligação de acesso
1,5 Mbps
Rede da
instituição
LAN 10 Mbps
cache institucional
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Interacção utilizador/servidor:
GET condicional
cliente
servidor
msg de pedido http
If-modified-since:
<date>
resposta http
Objecto não
modificado
HTTP/1.0
304 Not Modified
msg de pedido http
If-modifiedsince: <date>
resposta http
HTTP/1.1 200 OK
Objectivo:
Objectivo:evitar
evitaraa
transmissão
transmissãode
deum
umobjecto
objecto
que
existe
memorizado
que existe memorizadono
no
cliente
(na
cache)
cliente (na cache)
Cliente:
Cliente:especifica
especificaaadata
data
da
cópia
que
possui
na
da cópia que possui na
mensagem
mensagemrequest
request
If-modified-since:
If-modified-since: <date>
<date>
Objecto
modificado
Servidor:
Servidor:aaresposta
respostanão
não
inclui
o
objecto
se
o
cliente
inclui o objecto se o cliente
ootem
temactualizado
actualizado
HTTP/1.0
HTTP/1.0 304
304 Not
Not Modified
Modified
<data>
51
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
A Web e o HTTP - Revisão
Princípioseecaracteristicas
caracteristicasdos
dosprotocolos
protocolos
Princípios
dacamada
camadade
deaplicação
aplicação
da
WebeeooHTTP
HTTP(Hypertext
(HypertextTransfer
Transfer
AAWeb
Protocol)
Protocol)
Transferênciade
deFicheiros
Ficheiros(File
(FileTransfer)
Transfer)
Transferência
––
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
TransferProtocol,
Protocol,
SMTP:
POP3,
IMAP
POP3, IMAP
CorreioElectrónico
Electrónico
Correio
––
––
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
––
DNS:Domain
DomainName
NameSystem
Systemprotocol
protocol
DNS:
Partilhade
deFicheiros
FicheirosPeer-to-Peer
Peer-to-Peer(P2P)
(P2P)
Partilha
52
Camada de Aplicação
WebeeooProtocolo
Protocolo
AAWeb
HTTP
HTTP
Modelodo
dotempo
tempode
de
Modelo
resposta
resposta
HTTPpersistente
persistenteee
HTTP
nãopersistente
persistente
não
Formatode
de
Formato
mensagensHTTP
HTTP
mensagens
Pedido
Pedido
Resposta
Resposta
Cookies
Cookies
WebCaches
Caches
Web
GETCondicional
Condicional
GET
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Transferência de ficheiros - FTP
[RFC 959]
Utilizador
na máquina
sistema de
ficheiros local
Servidor
FTP
sistema de
ficheiros remoto
Transferência
Transferênciade
deficheiros
ficheirosde/para
de/paraum
umcomputador
computadorremoto
remoto
Modelo
Modelocliente/servidor
cliente/servidor
––
––
53
Interface cliente
FTP do
FTP
utilizador
transferência
do ficheiro
cliente:
cliente:inicia
iniciaaatransferência
transferência
servidor:
servidor:computador
computadorremoto
remoto(Servidor
(Servidorftp:
ftp:porto
porto21)
21)
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Separação das ligações de dados e de
controlo
Ligação de controlo
TCP, porto 21
O cliente FTP contacta o servidor
Ligação de dados
cliente
FTP especificando o protocolo de
TCP, porto 20
FTP
transporte TCP e o porto 21
São criadas ligações TCP em paralelo “out of band control”:
–
controlo: troca de comandos e respostas entre o cliente e
o servidor.
–
após a transmissão de um ficheiro o servidor fecha a ligação
O servidor FTP mantém o estado em cada sessão
–
–
54
Persistente – sempre aberta durante a sessão do utilizador.
Envio de informação de autorização
Consulta da directoria remota
Envio de comandos put e get
dados: transferência de dados (ficheiros) entre o cliente e
o servidor. Uma ligação TCP por cada ficheiro a enviar
o
servidor
FTP
identificação do utilizador, directoria actual
limite do nº de sessões paralelas
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
FTP: Comandos e Respostas
CR e LF terminam cada comando
Comandos
55
enviados em texto ASCII (7bit) pelo canal de controlo
USER nome
PASS senha
LIST (envia a lista de ficheiros
da directoria actual)
RETR filename – cliente lê
(get) ficheiro do servidor
STOR filename - o cliente
escreve (put) o ficheiro no
servidor, o qual o armazena
Camada de Aplicação
Respostas
Inclui um código e frase de
status (como no http)
331 Username OK,
password required
125 data connection already
open; transfer starting
425 Can’t open data
connection
452 Error writing file
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Wireshark – Captura FTP
56
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Transferência de Ficheiros - Revisão
Princípioseecaracteristicas
caracteristicasdos
dosprotocolos
protocolos
Princípios
dacamada
camadade
deaplicação
aplicação
da
WebeeooHTTP
HTTP(Hypertext
(HypertextTransfer
Transfer
AAWeb
Protocol)
Protocol)
Transferênciade
deFicheiros
Ficheiros(File
(FileTransfer)
Transfer)
Transferência
––
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
TransferProtocol,
Protocol,
SMTP:
POP3,
IMAP
POP3, IMAP
CorreioElectrónico
Electrónico
Correio
57
Separaçãodas
das
Separação
ligaçõesno
noFTP
FTP
ligações
––
––
Controlo
Controlo
Dados
Dados
FTP:Comandos
Comandosee
FTP:
Respostas
Respostas
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
––
DNS:Domain
DomainName
NameSystem
Systemprotocol
protocol
DNS:
Partilhade
deFicheiros
FicheirosPeer-to-Peer
Peer-to-Peer(P2P)
(P2P)
Partilha
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
fila de
mensagens de saída
caixa de correio
(mailbox)do utilizador
Correio Electrónico
Três componentes principais
agentes de utilizador
servidores de correio
protocolo de transferência de
mensagens SMTP - Simple Mail
Transfer Protocol
Servidor de
mensagens
SMTP
SMTP
Agente de Utilizador
Interface para compor, modificar e
ler mensagens de correio electrónico
–
–
leitor de mensagens (mail reader)
e.g. Eudora, Outlook, elm, Netscape
Messenger
Mensagens que chegam ou a ser
enviadas são armazenadas no
servidor
58
Camada de Aplicação
agente de
utilizador
Servidor de
mensagens
agente de
utilizador
agente de
utilizador
Servidor de
mensagens
agente de
utilizador
SMTP
agente de
utilizador
agente de
utilizador
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Servidor de Correio Electrónico
Componentes
Caixa do correio (“Mailbox”)
que contém as mensagens
do utilizador ainda não lidas
Fila de mensagens de saída
para as que ainda não
foram enviadas
Implementação do protocolo
SMTP (push- envio de
mensagem) para
comunicação entre
servidores:
–
–
59
cliente: aquele que envia
mensagens
servidor: aquele que recebe
Camada de Aplicação
Servidor de
mensagens
agente de
utilizador
SMTP
SMTP
Servidor de
mensagens
agente de
utilizador
agente de
utilizador
Servidor de
mensagens
SMTP
agente de
utilizador
agente de
utilizador
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
SMTP
“Simple Mail Transfer Protocol”
[RFC 2821]
Usa o protocolo de transporte TCP para transferência fiável de mensagens
Modelo cliente/servidor
–
Transferência directa entre emissor e receptor
Três fases na comunicação entre cliente e servidor
–
–
–
apresentação (“handshaking”)
transferência de mensagens
fecho da ligação
Interacção na forma de comando - resposta
–
–
ao servidor corresponde o porto 25
comando: texto ASCII
resposta: código de status e frase explicativa
As mensagens têm de ser formadas em ASCII de 7-bits
Endereço de e-mail: [email protected]
Nome local
60
Camada de Aplicação
Nome do Servidor
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
fila de
mensagens de saída
Cenário
caixa de correio
(mailbox)do utilizador
Alice envia mensagem para Bob
Cliente SMTP
1
user
agent
2
mail
server
3
1) Alice compõe uma mensagem
para [email protected]
2) Alice envia a mensagem para o seu
servidor de mensagens
- a mensagem é colocada na fila
3) O lado cliente do SMTP abre uma
ligação TCP com o servidor de
mensagens do Bob
61
Camada de Aplicação
Servidor SMTP
SMTP
4
mail
server
5
6
user
agent
4) Caso consiga a ligação, o cliente SMTP
envia a mensagem de Alice através da
ligação TCP
5) Servidor de mensagens de Bob coloca a
mensagem na caixa de e-mail de Bob
6) Bob usa o seu Agente de Utilizador para
ler a mensagem
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Exemplo de interacção SMTP
Linhasenviadas
enviadaspor
porcliente
clienteeeservidor
servidorpara
paraooseu
seusocket
socketTCP,
TCP,após
apósligação
ligaçãoestabelecida
estabelecida
Linhas
ClienteCC(envia
(enviamsg
msgcorreio)
correio)––55comandos:
comandos:HELO,
HELO,MAIL
MAILFROM,
FROM,RCPT
RCPTTO,
TO,DATA,
DATA,QUIT
QUIT
• •Cliente
ServirorSS(recebe
(recebemsg
msgcorreio)
correio)––respostas:
respostas:código
códigoeeexplicações(opcionais)
explicações(opcionais)
• •Serviror
S: 220 doces.pt
Cliente envia
C: HELO consumidor.pt
endereço de
Várias
correio do
S: 250 Hello consumidor.pt, pleased to meet you
mensagens
remetente
C: MAIL FROM: <[email protected]>
podem ser
enviadas entre
servidores de
correio numa
única ligação
MAIL FROM
.
MAIL FROM
.
62
S: 250 [email protected].. Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Gostas de chocolate?
C: Durante a abertura da nossa loja, são gratuitos!
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 doces.pt closing connection
Camada de Aplicação
Cliente envia
endereço de
correio do
destinatário
Códigos de
explicação
são opcionais
CRLF.CRLF
para servidor
reconhecer o
final da msg
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
SMTP
Resumo e Comparação com HTTP
HTTP
SMTP
Usam ambos interacção de comando / resposta em ASCII
Transferem ficheiros usando ligações persistentes
Transfere ficheiros do
Servidor Web para o Cliente
Web (normalmente Browser)
Transfere mensagens de correio entre
servidores SMTP
SMTP requer que a mensagem (corpo e
cabeçalho) seja em ASCII de 7-bits
– dados binários (e.g. uma imagem jpeg)
devem ser codificados em ASCII antes de
serem enviados – receptor deve descodificar
pull (cliente puxa objecto do
servidor)
SMTP: push (cliente empurra
mensagem para servidor)
Cada objecto é encapsulado Múltiplos objectos podem constituir uma
numa mensagem de resposta única mensagem de correio
63
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Formato das Mensagens
S: 220 doces.br
C: HELO consumidor.pt
S: 250 Hello consumidor.pt, pleased to meet you
C: MAIL FROM: <[email protected]>
S: 250 [email protected].. Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Gostas de chocolate?
C: Durante a abertura da nossa loja, são gratuitos!
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 doces.pt closing connection
O protocolo SMTP não define o formato das mensagens
SMTP: protocolo para trocar mensagens
As mensagens de texto são normalizadas pelo RFC 822
Cabeçalho, por e.g.
To: <valor>
Linhas de cabeçalho
obrigatórias
– From: <valor>
– Subject: <valor> Linhas de cabeçalho
opcionais
– ...
diferentes dos comandos de smtp!
–
cabeçalho
linha
em
branco
corpo
Corpo da mensagem
–
64
a “mensagem”, em caracteres ASCII
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Formato das Mensagens:
Extensões Multimédia
MIME – Multipurpose Internet Mail Extensions (extensões do [RFC 822])
Extensão do e-mail para multimédia [RFC 2045, 2046]
– Não é um protocolo de e-mail, não substitui o SMTP
(1) Linhas adicionais no cabeçalho para declarar o tipo do conteúdo MIME
(2) Permite dados que não são ASCII (SMTP usa formato ASCII de 7 bits)
–
From: [email protected]
To: [email protected]
Método usado
Subject: Imagem de uma bela torta
para codificar
MIME-Version: 1.0
dados
(1) Content-Transfer-Encoding: base64
Dados
Content-Type: image/jpeg
multimédia
Exemplo imagem JPEG
versão MIME
tipo, subtipo,
parâmetros
Recepor 1º usa ContentTransfer-Encoding para
descodificar ASCII para
binário, e depois ContentArtur
Arsenio
Type para
uma
aplicação
Redes de Computadores
2010/2011
de descompressão
JPEG
Departamento de Engenharia Informática
base64 encoded data .....
(2) .........................
Dados
......base64 encoded data
codificados
65
Camada de Aplicação
Tipos MIME
Content-Type: tipo/subtipo; parâmetros
Text
exemplos de subtipos: plain,
html
charset=“iso-8859-1”, ascii
Image
exemplos de subtipos: jpeg, gif
Audio
Application
Video
66
exemplos de subtipos: mpeg,
quicktime
Camada de Aplicação
exemplos de subtipos: 32k
adpcm (codificação 32
kbps), basic (8-bit mu-law)
dados que têm de ser
processados por uma
aplicação
exemplos de subtipos:
msword, octet-stream
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Linha de cabeçalho adicionada
pelo servidor que recebe a
mensagem
Formato das mensagens:
Tipo “Multipart”
Tipo “Multipart” – Recepção
Received: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMT
From: [email protected]
To: [email protected]
Hora a que o servidor SMTP
Subject: Imagem de saboroso doce.
recebeu a mensagem
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Bruno, junto envio imagem de um doce.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados codificados em base64 .....
.................................
......dados codificados em base64
--StartOfNextPart
Queres a receita?
From: [email protected]
To: [email protected]
Subject: Imagem de saboroso doce.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Bruno, junto envio imagem de um doce.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados codificados em base64 .....
.................................
......dados codificados em base64
--StartOfNextPart
Queres a receita?
67
Camada de Aplicação
Nome do servidor SMTP que
recebe a mensagem
Nome do servidor SMTP que
envia a mensagem
Tipo “Multipart” – Encaminhamento
Received: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMT
Received: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMT
From: [email protected]
To: [email protected]
Subject: Imagem de saboroso doce.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Bruno, junto envio imagem de um doce.
--StartOfNextPart
Content-Transfer-Encoding: base64
O agente receptor recebe um
Content-Type: image/jpeg
trace por onde a mensagem
dados codificados em base64 .....
passou e quando
.................................
Artur Arsenio
......dados codificados em base64
--StartOfNextPart
Redes de Computadores 2010/2011
Queres a receita?
Departamento de Engenharia Informática
Protocolos de acesso ao e-mail
SMTP: usado para enviar/armazenar mensagens para os servidores
–
–
SMTP não pode ser usado por agente utilizador receptor (e.g. Bob) para obter e-mail
pois tal requer uma operação “pull” (puxar), e SMTP é um protocolo “push” (empurrar)
Protocolos de acesso: usados para receber/ler mensagens presentes nos servidores
–
Transfere mensagens de correio do servidor SMTP receptor para agente utilizador receptor
servidor de e-mail
do remetente
SMTP
Alice
SMTP
HTTP
user
agent
Bob
E se servidor de e-mail do remetente estivesse contido no agente de utilizador (e.g. Alice)?
–
user
agent
servidor de Protocolos de acesso:
e-mail
POP3 ou
do receptor IMAP ou
Quando agente de utilizador não estivesse ligado à rede, mensagens de correio perdiam-se!
Porque não usar apenas um servidor SMTP? Assim, agente de utilizador (e.g. Alice) enviava
directamente mensagens de correio ao servidor de e-mail do receptor...
–
68
Não seria possível o servidor de e-mail do remetente continuar a tentar enviar mensagem se o servidor de
e-mail do receptor estivesse em baixo
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Post Office Protocol
v.3 (POP3)
Descarrega e-mails para a máquina actual
Após cliente abrir ligação TCP no servidor de e-mail usando o porto 110
(1) Fase de autorização
comandos do cliente
–
–
user: username
pass: password
respostas do servidor
–
–
+OK
-ERR (problema com comando anterior)
(2) Fase de transferência, cliente:
list: lista os números e tamanho das msgs
retr: transfere msg pelo número
dele: apaga msg
quit: termina a sessão POP3
(3) Fase de Actualização (update)
servidor de correio apaga mensagens
marcadas para remoção
69
Camada de Aplicação
S:
C:
S:
C:
S:
+OK POP3 server ready
user ana
+OK
pass faminta
+OK user successfully logged
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 2 contents>
.
dele 2
quit
+OK POP3 server signing off
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
on
POP3 (cont.)
[RFC 1939]
POP3 não mantém estado
entre ligações
–
–
Protocolo muito simples
–
70
Só mantém estado na mesma
sessão do utilizador, não entre
sessões diferentes do
utilizador
Simplifica bastante a
implementação do servidor
POP3
Porém de funcionalidade
limitada
Camada de Aplicação
Agente de utilizador pode ser
configurado pelo utilizador
O exemplo anterior usa o
modo “download e delete”.
–
Bob não pode reler as
mensagens se mudar de
cliente
“Download-e-mantenha”:
copia as mensagens em
clientes diferentes
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
IMAP e HTTP
Protocolos de Acesso
IMAP [RFC 2060]
Mantém todas as mensagens num único
lugar: o servidor
–
Permite ao utilizador organizar as
mensagens em pastas no servidor remoto
–
nomes das pastas e mapeamentos entre as
IDs das mensagens e o nome da pasta
Permite obter apenas componentes de
mensagens
–
–
–
71
servidor de e-mail servidor de e-mail Protocolo de
do receptor
do remetente
acesso:
HTTP
HTTP
SMTP
user
user
agent
Alice agent
Bob
Criar pastas, reorganizar mais tarde
mensagens nas pastas
O IMAP mantém o estado do utilizador
entre sessões:
–
mais comandos (mais complexo)
HTTP
Cliente Web (e.g. Browser) é o agente
de utilizador que comunica com a sua
caixa de correio em HTTP
Linhas de cabeçalho
Uma parte de uma mensagem multipart
E.g. Obter mensagem de texto sem
descarregar imagem numa ligação de baixa
largura de banda
Camada de Aplicação
Permite a manipulação de mensagens
no servidor remoto (como o IMAP)
–
Numa implemantação alternativa o
servidor HTTP usa um servidor IMAP
para fornecer a funcionalidade de pastas
Servidor
HTTP
Scripts
e.g.,
Protocolo
IMAP
Servidor
IMAP
Hotmail , Yahoo! Mail, Webmail, etc.
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Correio Electrónico - Revisão
Princípioseecaracteristicas
caracteristicasdos
dosprotocolos
protocolos
Princípios
dacamada
camadade
deaplicação
aplicação
da
WebeeooHTTP
HTTP(Hypertext
(HypertextTransfer
Transfer
AAWeb
Protocol)
Protocol)
Transferênciade
deFicheiros
Ficheiros(File
(FileTransfer)
Transfer)
Transferência
––
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
TransferProtocol,
Protocol,
SMTP:
POP3,
IMAP
POP3, IMAP
CorreioElectrónico
Electrónico
Correio
––
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
––
DNS:Domain
DomainName
NameSystem
Systemprotocol
protocol
DNS:
Componentes do
do
Componentes
Correio
Correio
Electrónico
Electrónico
SMTP
SMTP
Formato das
das
Formato
Mensagens
Mensagens
Partilhade
deFicheiros
FicheirosPeer-to-Peer
Peer-to-Peer(P2P)
(P2P)
Partilha
Protocolosde
de
Protocolos
acesso ao
ao e-mail
e-mail
acesso
––
72
Camada de Aplicação
Extensões
Extensões
Multimédia
Multimédia
POP3,IMAP,
IMAP,HTTP
HTTP
POP3,
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
DNS: Domain Name System
Como fazer o mapeamento entre os endereços IP e nome da máquina?
Pessoas: muitos identificadores:
–
BI, nome, nº passaporte
Sistemas terminais da Internet, routers
–
Endereço IP (32 bit)
–
DNS:Domain
DomainName
NameSystem
System
DNS:
Usado simultaneamente para
endereço de datagramas e como
identificador
“Nome”, e.g., ww.yahoo.com –
usado pelos seres humanos
Basede
deDados
DadosDistribuida
Distribuida
Base
implementada
como
umaHierarquia
Hierarquiade
de
implementada como uma
muitosServidores
Servidoresde
denomes
nomes
muitos
Protocoloda
daCamada
CamadaAplicação
Aplicaçãoque
que
Protocolo
permitemáquinas
máquinasinterrogarem
interrogaremaaBase
Base
permite
deDados
Dadospara
pararesolverem
resolveremnomes
nomes
de
–
–
–
–
DNS: Protocolo que usa o serviço de transporte não fiável UDP, no porto 53
–
complexo, usado por outros protocolos da camada aplicação: HTTP, SMTP e FTP
Os servidores de nomes funcionam, em geral, como cliente e servidor
–
73
Funçãocore
coreda
daInternet,
Internet,implementada
implementada
Função
num
protocolo
da
camada
aplicação
num protocolo da camada aplicação
Complexidadena
nafronteira
fronteirada
darede
rede
Complexidade
estão normalmente em máquinas UNIX a correr o software Berkeley Internet
Name Domain (BIND)
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Serviços e Escalabilidade
Porque não centralizar o
DNS?
ponto único de falha
volume de tráfego
base de dados
centralizada distante
manutenção
Serviços DNS
(principal) Translação do nome da
máquina para endereço IP
Host aliasing (ou nome alternativo)
–
–
Aliasing de Servidor de Correio
Distribuição de Carga
–
–
74
Nome Real vs Alias
DNS pode também ser invocado com o
nome alias para pedir o nome real
Replicação de Servidores Web – conjunto
de endereços IP para um nome real
Servidor responde com todos os
endereços IP que mapeiam ao nome mas
roda a ordem a cada pedido
Camada de Aplicação
Não é escalável!
nenhum sevidor tem
todos os mapeamentos
de nome para
endereço IP
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
DNS: Exemplo de Distribuição de
Carga
75
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Tipos de Servidores de Nomes
Servidores de Nomes Locais
–
–
Cada máquina, para conhecer um mapeamento nome/endereço começa por
interrogar o seu servidor local
Em geral, cada ISP tem um servidor de nomes local
–
Sistemas terminais interrogam primeiro o Servidor de Nomes Local, sendo um
pedido “DNS query” enviado ao servidor DNS local
Interrogado por servidor de nomes local se este não consegue resolver um pedido
Servidores de Nomes de Dominio de Nível Topo “TLD –Top Level Domain”
–
Responsável por com, org, net, edu, etc, e todos dominios nacionais uk, fr, ca, jp
Servidores de Nomes Oficial “Authoritative Name Servers”
–
Cada organização com máquinas de acesso público tem um servidor de nomes
oficial onde a tradução nome/endereço está armazenada obrigatoriamente
76
Actua como uma proxy, reencaminha query na hierarquia
Servidores de Nomes Raiz “Root Name Servers”
–
Também chmado “default name server”
Para um sistema terminal: guarda o nome, endereço IP
Pode executar a tradução nome/endereço para este sistema terminal
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Base de Dados Distribuida e de
estrutura Hierárquica
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los Angeles)
d U Maryland College Park, MD
g US DoD Vienna, VA
h ARL Aberdeen, MD
j Verisign, ( 11 locations)
k RIPE London (also Amsterdam, Frankfurt)
i Autonomica, Stockholm (plus 3 other locations)
m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA
(and 17 other locations)
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
13 servidores de nomes raiz no mundo
Root DNS Servers
com DNS servers
org DNS servers
yahoo.com
amazon.com
DNS servers DNS servers
77
Camada de Aplicação
pbs.org
DNS servers
edu DNS servers
poly.edu
DNS servers
umass.edu
DNS servers
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
root name server
A máquina
Procedimento
Recursivo
surf.eurecom.fr
pretende o endereço IP
cs.umass.edu
TLD DNS server
dns.edu
3
2
7
6
Utilizador usa browser, URL: gaia.cs.umass.edu/index.html
5
Browser extrai gaia.cs.umass.edu
1.
Máquina contacta o seu servidor de
nomes local dns.eurecom.fr
2.
3.
4.
5.
Se for necessário, servidor local de
nomes dns.eurecom.fr contacta um
servidor de nomes raiz
Se for necessário o servidor de
nomes raiz contacta um servidor de
nomes de nível topo dns.edu
Se for necessário o servidor de
nomes de nível topo contacta o
servidor de nomes oficial
“authoritative” dns.umass.edu
(6, 7 e 8) Servidor de nomes
“authoritative” retorna endereço IP
de gaia.cs.umass.edu de volta
78
com query gaia.cs.umass.edu
4
local name server
dns.eurecom.fr
1
8
authoritative name server
dns.umass.edu
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
Coloca o esforço da resolução de nomes no servidor de nomes contactado
O servidor de nomes de nível topo pode não conhecer o endereço do
servidor oficial, mas de um servidor intermédio
10 ou mais mensagens
Artur Arsenio
Camada de Aplicação
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
root name server
Procedimento
Iterativo
TLD DNS server
2
dns.edu
3
4
1.
2.
3.
4.
5.
6.
7.
79
Máquina contacta o seu servidor de
nomes local dns.eurecom.fr
Se for necessário, servidor local de
nomes dns.eurecom.fr interroga um
servidor de nomes raiz para
descobrir servidor DNS edu
Servidor local recebe um IP dns.edu
do servidor de nomes raiz
Servidor local interroga servidor de
nomes de nível topo para descobrir
servidor DNS umass.edu
Servidor local recebe um IP
dns.umass.edu do servidor TLD
Servidor local interroga servidor de
nomes oficial “authoritative” para
descobrir IP de gaia.cs.umass.edu
(e 8) Envio do IP para cliente
5
6
local name server
dns.eurecom.fr
1
8
7
authoritative name server
dns.umass.edu
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
Pedidos iterativos – “I don’t know this name, but ask this server”
Cada servidor de nomes apenas fornece o endereço do próximo servidor
a contactar
Artur Arsenio
Camada de Aplicação
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
DNS: Caches e Actualização dos
Registos
Assim
Assimque
queum
umservidor
servidorde
denomes
nomesrecebe
recebeum
ummapeamento
mapeamentonome/IP,
nome/IP,
armazena-o
em
cache
armazena-o em cache
–– Redução
Reduçãodo
donúmero
númerode
demensagens
mensagensna
nainternet
internet
–– Maior
eficiência
no
mapeamento
Maior eficiência no mapeamento
–– As
Asentradas
entradasda
dacache
cachetêm
têmum
umtemporizador
temporizador(timeout)
(timeout)pelo
peloque
que
são
removidas
após
um
certo
tempo
(e.g.
dois
dias)
são removidas após um certo tempo (e.g. dois dias)
–– TLD
TLDservers
serverssão
sãotipicamente
tipicamentecolocados
colocadosem
emcache
cachenos
nos
Servidores
de
Nomes
Locais
Servidores de Nomes Locais
Assim,
Assim,os
osservidores
servidoresde
denomes
nomesraiz
raiznão
nãosão
sãovisitados
visitadoscom
com
frequência
frequência
80
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Inserçãode
deregistos
registosno
noDNS
DNS
Inserção
Registos DNS
Supõeque
quecrias
criasum
umnovo
novodomínio,
domínio,foo.com
foo.com
Supõe
(foo.com,dns1.foo.com,
dns1.foo.com,NS)
NS)
(foo.com,
(dns1.foo.com,212.212.212.1,
212.212.212.1,A)
A)
(dns1.foo.com,
(foo.com,mail.foo.com,
mail.foo.com,MX)
MX)
(foo.com,
(mail.foo.com,212.212.211.23,
212.212.211.23,A)
A)
(mail.foo.com,
Cada resposta DNS contém 1 ou mais Registo de Recursos “Resource Records” (RR)
Formato
Formatode
deum
umRR
RR(4-tuple):
(4-tuple): (nome,
(nome, valor,
valor, tipo,
tipo, ttl)
ttl)
Type=A
–
nome - hostname
–
valor - endereço IP
Type=NS
–
–
Type=CNAME
–
nome - nome alternativo para uma
dada máquina, e.g.
www.ibm.com é de facto
servereast.backup2.ibm.com
nome - dominio (e.g. foo.com)
– valor - nome real da máquina
valor - endereço IP do
servidor de nomes
Type=MX
“authoritative” que sabe
– valor - nome da máquina servidor
como obter o IP de
máquinas deste dominio
de correio associada com nome
RR armazenados em cache no servidor DNS – de acordo com time to live (ttl)
81
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Mensagens do Protocolo DNS
As mensagens pergunta e resposta têm o mesmo formato
msg header
identification: 16 bit # for query,
reply to query uses same #
flags
– query or reply
– recursion desired
– recursion available
– reply is authoritative
Name, type fields para pergunta
RRs na resposta à pergunta
Registos para authoritative
servers
Informação adicional de
ajuda que pode ser utilizada
82
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Serviço de nomes da Internet - Revisão
Princípioseecaracteristicas
caracteristicasdos
dosprotocolos
protocolos
Princípios
dacamada
camadade
deaplicação
aplicação
da
WebeeooHTTP
HTTP(Hypertext
(HypertextTransfer
Transfer
AAWeb
Protocol)
Protocol)
Transferênciade
deFicheiros
Ficheiros(File
(FileTransfer)
Transfer)
Transferência
––
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
TransferProtocol,
Protocol,
SMTP:
POP3,
IMAP
POP3, IMAP
CorreioElectrónico
Electrónico
Correio
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
––
DNS:Domain
DomainName
NameSystem
Systemprotocol
protocol
DNS:
Partilhade
deFicheiros
FicheirosPeer-to-Peer
Peer-to-Peer(P2P)
(P2P)
Partilha
83
Camada de Aplicação
O protocolo
protocolo DNS
DNS
O
Tiposde
de
Tipos
Servidores de
de
Servidores
Nomes
Nomes
Mensagens do
do
Mensagens
Protocolo DNS
DNS
Protocolo
Registos DNS
DNS
Registos
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
P2P file sharing – Pesquisa em
de
Directório Centralizado Servidor
directório
Transferência de ficheiro é descentralizada, mas a
localização de conteúdos é centralizada
centralizado
Registo
–
Peer liga-se e informa servidor central
Do seu endereço IP
Conteúdo
–
2.
e.g. Lista de ficheiros MP3
Pedido
–
3.
1
2
Pedido
3
Transferência de dados
1
Alice pede a canção “Hey Jude”
Transferência de dados
–
Alice pede ficheiro a Bob
Problemas
Problemas
84
Bob
peers
1
Desenho original do “Napster”
1.
1
Registo
Alice
Pontoúnico
únicode
defalha
falha
Ponto
Estrangulamentode
dedesempenho
desempenho
Estrangulamento
Infracçõesde
dedireitos
direitosde
deautor
autor
Infracções
Camada de Aplicação
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Pesquisa sem Directório
“Query flooding”: Gnutella
Totalmente distribuido
–
–
sem servidor central
sem hierarquia
Usa nó de arranque para
conhecer outros nós
Vários clientes Gnutella
implementam o protocolo, que
é de dominio publico
Juntar a um par (mensagem de associação)
Para o par X se juntar tem que achar
outro par já na rede Gnutella
X tenta estabelecer ligações TCP de
forma sequencial com pares na lista até
conseguir ligação com Y
X envia uma mensagem Ping a Y
Camada de Aplicação
Esta contém o endereço IP de Z, número
e tamanho dos ficheiros partilhados por Z
X recebe muitas mensagens Pong
85
Y reencaminha a mensagem Ping
Todos os pares Z que recebem a msg
Ping respondem com mensagem Pong
Associação
para tal usa uma lista de pares candidatos
pode estabelecer ligações TCP adicionais
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Gnutella:
Mensagens de Pedidos
Transferência de ficheiro: HTTP
fora da rede sobreposta
Query
QueryHit
Mensagemde
depedido
pedido“Query”
“Query”
Mensagem
enviadasobre
sobreas
asligações
ligaçõesTCP
TCP
enviada
Incluikeywords
keywordsdescritivas
descritivasdo
do
Inclui
conteúdoprocurado
procurado
conteúdo
Cadapar
parvizinho
vizinhoreencaminha
reencaminha
Cada
mensagemde
depedido
pedido
aamensagem
Seum
umtem
temooobjecto
objectopedido
pedido
Se
(QueryHit),envia
enviauma
umamensagem
mensagem
(QueryHit),
devolta
voltapara
paraoopar
parque
queperguntou
perguntou
de
enviadapelo
pelocaminho
caminhoinverso
inverso
enviada
comnome
nomeeetamanho
tamanhodo
doficheiro
ficheiro
com
86
Camada de Aplicação
y
er
u
it
Q
H
y
er
u
Q
Qu
ery
Query
QueryHit
Q
ue
ry
y
er
u
Q
Que
ry
Que
ry
ry
e
Qu
Que
ry
Query flooding – Inundação de pedidos
de raio (alcance) limitado (e.g. 7)
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Inundação de Pedidos
Vantagens
Simples
Altamente
descentralizado
O mais dificil de “desligar”
Pares têm
responsabilidades
semelhantes: não há
lideres de grupo
Nenhum par mantém
informação de directório
87
Camada de Aplicação
Desvantagens
Tráfego de pedidos excessivo
Raio de alcance limitado do
pedido: pode não encontrar o
conteúdo quando este existe
Nó de arranque
Manutenção da rede sobreposta
Escalabilidade
EscalabilidadeLimitada:
Limitada:
Inundação
Inundaçãoda
darede
rede((flooding
flooding))
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
KaZaA: Pesquisa em
Directório Distribuído
Par líder de grupo
Junta conceitos do Napster e Gnutella
• Explora a heterogeneidade dos nós
Nó de arranque
–
–
Cada par é um lider de grupo, ou
está associado a um líder de grupo
O lider de grupo conhece o
conteúdo de todos os seus filhos
–
–
–
88
Ligação TCP entre par e o seu
líder de grupo
Ligações TCP entre pares de
lideres de grupo
Rede sobreposta, hierárquica
–
Par na rede
Pares são nós
Arcos entre pares e o seu líder de
grupo
Arcos entre alguns pares de líderes
de grupos
Vizinhos virtuais
Camada de Aplicação
Par na rede
Par líder de grupo
Relações entre
vizinhos na rede
sobreposta.
hierárquica
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
KaZaA: Descrição
Identificação dos ficheiros
–
–
Hash
Descriptor
Cliente envia keywords ao líder de grupo
Líder de grupo responde c/ lista de pares
cuja descrição corresponde às keywords
–
Pedido HTTP usa hash como identificador,
é enviado aos pares que contêm o ficheiro
Cifra as mensagens de controlo
–
89
Enviando: metadata, hash, endereço IP
Rede sobreposta hierárquica
Maior alcançe dos pedidos
Desvantagens
Necessários nós de arranque
Líderes de grupo podem ser
sobrecarregados
–
Se o líder de grupo reencaminha pedido a
outros líderes de grupo, estes respondem
com correspondências
Truques
Cliente selecciona ficheiros para download
–
Nome do ficheiro
Descrição textual não estruturada
Vantagens
Não há servidor de directório
centralizado
– Serviço de localização
distribuido pelos pares
– Mais dificil de desactivar
mas não as de dados
Camada de Aplicação
Limites nos uploads simultâneos
Pôr pedidos em filas
Prioridade por incentivos
Downloads paralelos
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Partilha de Ficheiros Peer-to-Peer
(P2P) – Revisão
Princípioseecaracteristicas
caracteristicasdos
dos
Princípios
protocolosda
dacamada
camadaaplicação
aplicação
protocolos
WebeeooHTTP
HTTP(Hypertext
(Hypertext
AAWeb
TransferProtocol)
Protocol)
Transfer
Transferênciade
deFicheiros
Ficheiros(File
(File
Transferência
Transfer)
Transfer)
FileTransfer
TransferProtocol
Protocol(FTP)
(FTP)
File
––
SMTP:Simple
SimpleMail
MailTransfer
Transfer
SMTP:
Protocol,
POP3,
IMAP
Protocol, POP3, IMAP
DNS:Domain
DomainName
NameSystem
System
DNS:
protocol
protocol
––
CorreioElectrónico
Electrónico
Correio
Serviçode
denomes
nomesda
daInternet
Internet
Serviço
Partilhade
deFicheiros
FicheirosPeer-toPeer-toPartilha
Peer(P2P)
(P2P)
Peer
90
Camada de Aplicação
P2PFile
Filesharing
sharing
P2P
––
––
––
Umpeer
peeréétanto
tantoum
umcliente
cliente
Um
Webcomo
comoum
umservidor
servidorWeb
Web
Web
temporário
temporário
Todosos
ospeers
peerssão
sãoservidores
servidores
Todos
facilmenteescalável
escalável! !
==facilmente
Napster--Pesquisa
Pesquisaem
em
Napster
DirectórioCentralizado
Centralizado
Directório
Pesquisasem
semDirectório
Directório
Pesquisa
“Queryflooding”:
flooding”:Gnutella
Gnutella
“Query
KaZaAPesquisa
Pesquisaem
emDirectório
Directório
KaZaA
Descentralizado
Descentralizado
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática
Download

Camada Aplicação