Download - Camada Aplicação
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática1
Redes de ComputadoresRedes de Computadores
Camada Aplicação
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática2 Camada de Aplicação
Introdução às Redes de Computadores e Internet – Revisão
� A Internet
� Protocolos
� Estrutura da rede– A periferia da rede
– O núcleo da rede
– Redes de Acesso e Meio Fisico
� Desempenho: atraso e perda
� Camadas de protocolos e modelos de serviço– TCP/IP e OSI
� Estrutura da Internet e ISPs
� A Internet
� Protocolos
� Estrutura da rede– A periferia da rede
– O núcleo da rede
– Redes de Acesso e Meio Fisico
� Desempenho: atraso e perda
� Camadas de protocolos e modelos de serviço– TCP/IP e OSI
� Estrutura da Internet e ISPs
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática3 Camada de Aplicação
Camada Aplicação
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol, POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol, POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
Segue Capitulo 2 do livro de J.F Kurose e K.W. Ross
Objectivos:
Adquirir os conceitos e aspectos de implementação dos protocolos de aplicação em rede, através do estudo de protocolos populares da camada aplicação.
Objectivos:
Adquirir os conceitos e aspectos de implementação dos protocolos de aplicação em rede, através do estudo de protocolos populares da camada aplicação.
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática4 Camada de Aplicação
Algumas aplicações distribuidas
VoIP Call – N – Share
Mobile IM w/ Presence
Multiplayer
Gaming
Network Address Book
Mobile & IPTV
Rich Media IMRingback Tones
Picture ShareMobile
Conferencing Video Surveillance Remote Monitoring
� 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)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática5 Camada de Aplicação
My TV, My IM
My cell phone…
• IPTV will change the user TV experience from passive zapping to active browsing
• High frustration with broadcast TV• Demand for better TV
Already Today
My choice on
TV
My choice on
TV
IPTV – Televisão sobre a Internet Still Today
“I have 100 channels,
but nothing to watch”
“I have 100 channels,
but nothing to watch”
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática6 Camada de Aplicação
Aplicações em Telemóveis
Applicações:� Segurança: telemóvel como chave
� Saúde: mediar comunicações com dispositivos pessoais de saúde
� Entretenimento: MobileTV, jogos
Applicações:� Segurança: telemóvel como chave
� Saúde: mediar comunicações com dispositivos pessoais de saúde
� Entretenimento: MobileTV, jogos
... Edge Gateway
... New Multimedia Computer
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática7 Camada de Aplicação
Open Internet – Novas Applicações... focus na Conectividade Social
Video Sharing
YouTube
Flickr
Photo Sharing
Wikipedia
Colaborativeencyclopedia
BusinessConnections
LinkedIn
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática8 Camada de Aplicação
Open Internet – Novas Applicações... focus na Conectividade Social
Virtual Worlds
SecondLife
Trust+Plus
Colaborative Trust
Where and Whatare you doing?
Twitter
MySpace
Personal space
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática9 Camada de Aplicação
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 – 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� 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
aplicaçãotransporte
redeligaçãofísica
aplicaçãotransporte
redeligaçãofísica
aplicaçãotransporte
redeligaçãofísica
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática10 Camada de Aplicação
Protocolos da Camada de Aplicação – o que definem?
� Tipos de mensagens trocadas
– eg mensagens de pedido e resposta
� Sintaxe dos tipos das mensagens
– campos presentes nas mensagens
– e como são identificados
� Semântica dos campos
– significado da informação nos campos
� Regras para quando os processos
enviam e respondem às mensagens
Protocolos de domínio público:
� definidos em RFCs
� Permitem a interoperação
� ex, HTTP e SMTP
Protocolos proprietários:
� Ex., KaZaA, Skype
Protocolos de domínio público:
� definidos em RFCs
� Permitem a interoperação
� ex, HTTP e SMTP
Protocolos proprietários:
� Ex., KaZaA, Skype
Aplicação
DistribuidaProtocolo de
Camada Aplicação
Aplicação
Distribuida
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática11 Camada de Aplicação
Processos em comunicação- Endereçamento de processos
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”
Aplicações com arquitecturas P2P possuem processos clientes e processos servidores
ProcessoProcesso Canal de comunicaçãoCanal de comunicaçãoporto
Processoporto
� Para o processo receber mensagens, precisa de um identificador
– endereço IP único de 32 bits do host
– e número do porto associado com o processo na máquina
� e.g. Servidor HTTP: porto 80
� Servidor de Correio: porto 25
� Para o processo receber mensagens, precisa de um identificador
– endereço IP único de 32 bits do host
– e número do porto associado com o processo na máquina
� e.g. Servidor HTTP: porto 80
� Servidor de Correio: porto 25
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática12 Camada de Aplicação
� Os processos enviam /recebem mensagens para /de outros processos através dos seus sockets– 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� Tamanho buffers e segmentos do TCP
Sockets
processo
TCP com
buffers,
variáveis
socket
Cliente
processo
TCP com
buffers,
variáveis
socket
Servidor
Internet
Controlado pelo SO
controlado pelo
programador da
aplicação
socket
Ou UDP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática13 Camada de Aplicação
Sockets com Ligação
socket
bind
listen socket
connectaccept
read
write read
write
ClienteServidor
ClienteServidor
Socket
Cliente
Socket
Escuta
Socket
Ligação
3-way handshake
bytes
bytes
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática14 Camada de Aplicação
import java.net*;
import java.io*;
public class TCPClient{
public static void main(String args[]){
// args: message and destin. hostname
Socket s = null;
try{
int server Port = 7896;
s = new Socket (args[1], serverPort);
DataInputStream = new DataInputStream(s.getInputStream());
DataOutputStream out =
newDataOutputStream (s.getOutputStream());
out.writeUTF(args[0]);
String data = in.readUTF();
System.out.prtintln(“Received: ” + data);
}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}
}
• classe Socket – suporta o socket cliente. Argumentos: nome DNS do servidor e o porto.• Construtor não só cria o socket como efectua a ligação TCP
Métodos getInputStream / getOutputStream – permitem aceder aos dois streamsdefinidos pelo socket
WriteUTF / readUTF –para Universal transferformat / para as cadeias de caracteres
Sockets Stream em Java (Cliente)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática15 Camada de Aplicação
import java.net*;
import java.io*;
public class TCPServer{
public static void main(String args[]){
try{
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());}
}
}
Bloqueia até cliente estabelecer ligação.
Cria socket servidor que fica àescuta no porto “serverPort”
Sockets Stream em Java (Servidor)
Cria novo socket servidor com quem é estabelecida ligação com o cliente
e onde os dados são recebidos
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática16 Camada de Aplicação
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– O construtor não só cria o socket como efectua a ligação
� Métodos– getInputStream; getOutputStream – permite aceder aos dois streams definidos pelo socket
� ServerSocket – classe para o servidor
� Métodos– Accept
� Recebe um socket cliente sempre que é invocado o connect
� WriteUTF e readUTF – Universal Transfer Format– para as cadeias de caracteres
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática17 Camada de Aplicação
Sockets sem Ligação
socket
bind
recvfrom
sendto
socket
bind
sendto
recvfrom
ClienteServidor
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática18 Camada de Aplicação
Sockets UDP em Java (Cliente)
import java.net*;
import java.io*;
public class UDPClient{
public static void main(String args[]){
// args give message contents and server hostname
DatagramSocket aSocket = null;
try {
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();}
}
}
Conversão do nome DNS para endereço IP
Constrói um socket datagram(associado a qualquer porto disponível)
Cada mensagem enviada tem que levar junto identificador do processo destino: IP e porto
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática19 Camada de Aplicação
Sockets UDP em Java (Servidor)import java.net*;
import java.io*;
public class UDPServer{
public static void main(String args[]){
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);
DatagramPacket reply = new DatagramPacket(request.getData(),
request.getLength(); request.getAddress(), request.getPort());
aSocket.send(reply);
}
} catch (SocketException e){System.outprintln(“Socket:”+ e.getMessage());
} catch (IOException e){System.out.println(“IO:” + e.getMessage());
} finally {if(aSocket ! = null) aSocket.close();}
}
}
Constrói um socket datagram (associado ao porto 6789)
Recebe mensagem
Extrai da mensagem o IP e porto do processo
origem para responder
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática20 Camada de Aplicação
Sockets Datagram em Java
� DatagramSocket – classe que suporta os socketsdatagram e que tem como argumento um porto
� Métodos
– 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
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática21 Camada de Aplicação
Serviço TCP:
� 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
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
Serviços fornecidos pelos protocolos de transporte Internet (recapitular)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática22 Camada de Aplicação
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
Temporização� 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
Largura de banda
� 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ática23 Camada de Aplicação
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
Perdas
intolerante
intolerante
intolerante
tolerante
tolerante
tolerante
intolerante –
sem perdas
intolerante
Largura de
Banda
elástica
elástica
elástica
áudio: 5Kb-1Mb
vídeo:10Kb-5Mb
como anterior
> alguns Kbps
elástica
elástica
Sensibilidade
temporal a atrasos
não
não
não
sim, 100’s mseg
sim, alguns segs
sim, 100’s mseg
sim e não
---
A Internet de hoje ainda não dá garantias de Banda e Sensibilidade Temporal
Requisitos sobre o Serviço de Transporte de Aplicações Comuns
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática24 Camada de Aplicação
Aplicação Internet
correio electrónico
acesso em terminal remoto
Web
transferência de ficheiros
streaming multimedia
servidor de ficheiros remoto
Telefone sobre Internet
Protocolo da
camada de aplicação
SMTP [RFC 2821]
telnet [RFC 854], ssh
HTTP [RFC 2616]
FTP [RFC 959]
HTTP(ex. YouTube), RTP
NFS
Proprietários (Skype)
Protocolo de
transporte usado
TCP
TCP
TCP
TCP
TCP ou UDP
TCP ou UDP
tipicamente UDP
Aplicações Internet: protocolos de aplicação e de transporte
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática25 Camada de Aplicação
Camada Aplicação - Revisão
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext TransferProtocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext TransferProtocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Aplicações
Distribuidas
� Processos
� Programação de
aplicações de Rede
(API dos Sockets)
� Requisitos sobre os
serviços de
transporte
� Aplicações
Distribuidas
� Processos
� Programação de
aplicações de Rede
(API dos Sockets)
� Requisitos sobre os
serviços de
transporte
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática26 Camada de Aplicação
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 (egimagens), 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 nome do caminho
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática27 Camada de Aplicação
Modelo Cliente/Servidor
� “browser” é o agente de utilizador Web, ou cliente HTTP– MS Internet Explorer, Netscape
Navigator, Mozilla Firefox, Google Chrome
– pede, recebe, mostra objectos Web
PC executaExplorer
Mac executaNavigator
pedido http
pedido
http
Servidor Web
(ex. IST)resposta http
respos
ta htt
p
HyperText Transfer Protocol – protocolo de transferência de hipertexto
Protocolo da camada de aplicação da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616Protocolo da camada de aplicação da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616
� O servidor Web chama-se “Web Server”– eg. Apache, MS Internet Information Server
– Implementa lado servidor do HTTP
– envia objectos www em resposta a pedidos
Protocolo HTTP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática28 Camada de Aplicação
Protocolo HTTP (cont.)
Usa serviço de transporte TCP1. cliente inicia ligação TCP (cria
um socket) com o servidor no porto 80
2. servidor aceita ligação TCP do cliente
3. mensagens HTTP (mensagens do protocolo da camada de aplicação) trocadas entre browser (cliente HTTP) e o WebServer (servidor HTTP)
4. Encerramento da ligação TCP
Usa serviço de transporte TCP1. cliente inicia ligação TCP (cria
um socket) com o servidor no porto 80
2. servidor aceita ligação TCP do cliente
3. mensagens HTTP (mensagens do protocolo da camada de aplicação) trocadas entre browser (cliente HTTP) e o WebServer (servidor HTTP)
4. Encerramento da ligação TCP
HTTP “não mantem estado”� servidor não mantém
informação sobre pedidos anteriores do cliente
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
Nota
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática29 Camada de Aplicação
Ligações HTTP
HTTP não persistente
� O servidor interpreta o pedido, responde e fecha a ligação TCP – No máximo um objecto é enviado
numa ligação TCP
– Mas, na maioria dos casos, usam-se várias ligações TCP em paralelo
� Ineficiente– 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
HTTP persistente
� Múltiplos objectos podem ser enviados sobre 1 única ligação TCP entre cliente e servidor– 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ática30 Camada de Aplicação
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.
1b. servidor http no hostwww.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
tempo
2. cliente http envia mensagem de pedidode http (incluindo o URL) através do socket da ligação TCP
HTTP com ligação não persistente
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática31 Camada de Aplicação
Exemplo de HTTP não persistente (cont.)
6. passos 1 a 5 repetidos para cada um dos n objectos jpeg
4. servidor http encerra ligação TCP
tempo
5. cliente http recebe mensagem de resposta a qual contem o ficheiro html, mostra html. No ficheiro html, encontra referências para n objectos jpeg
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática32 Camada de Aplicação
RTT (Round Trip Time)
� intervalo de tempo entre a ida e a volta de um pacote (tamanho pequeno) entre um cliente e um servidor
Tempo de resposta:
� um RTT para iniciar a ligação TCP
� um RTT para o pedido HTTP e o retorno dos primeiros bytes da resposta HTTP
� O RTT inclui os atrasos
RTT (Round Trip Time)
� intervalo de tempo entre a ida e a volta de um pacote (tamanho pequeno) entre um cliente e um servidor
Tempo de resposta:
� um RTT para iniciar a ligação TCP
� um RTT para o pedido HTTP e o retorno dos primeiros bytes da resposta HTTP
� O RTT inclui os atrasos
tempo para
transmitir
o ficheiro
Iniciar a ligação
TCP
RTT
pedir
ficheiro
RTT
ficheiro
recebidotempo tempo
Tempo total = 2RTT + tempo de transmissão
Modelo do tempo de resposta
propqueueproc ,, ddd
�Tempo total = 2RTT + tempo de transmissão do ficheiro
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática33 Camada de Aplicação
HTTP não persistente – Problemas
� requer 2 RTTs para cada objecto
� SO aloca recursos do host para cada
ligação TCP
� o browser abre com frequência
ligações TCP paralelas para recuperar
os objectos referenciados
� requer 2 RTTs para cada objecto
� SO aloca recursos do host para cada
ligação TCP
� o browser abre com frequência
ligações TCP paralelas para recuperar
os objectos referenciados
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática34 Camada de Aplicação
HTTP persistente
� o servidor deixa a
ligação aberta após
enviar a resposta
� As mensagens
HTTP seguintes
entre o mesmo
cliente/servidor são
enviadas nesta
ligação
Persistente sem pipelining (paralelismo):
� o cliente envia um novo pedido apenas quando a resposta anterior tiver sido recebida
� um RTT para cada objecto referenciado
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 com ligação persistente
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática35 Camada de Aplicação
Formato de mensagem HTTP: pedido
Dois tipos de mensagem HTTP: pedido (request), resposta (response)
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language:fr
(caracteres adicionais de carriage return - CR, line feed - LF)
linha do pedido (comandos GET, POST, HEAD, PUT, DELETE)
linhas do
cabeçalho
linha em branco
(carriage return, line
feed) indica o fim
do cabeçalho
ASC II - American Standard Code for Information Interchange II
256 caracteres codificados em 8 bits (formato legível por pessoas)ASC II - American Standard Code for Information Interchange II
256 caracteres codificados em 8 bits (formato legível por pessoas)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática36 Camada de Aplicação
Mensagem de pedido HTTP
Linhas do
Cabeçalho
(header lines)
Linha de
pedido
(request line)
Linha em
branco
Corpo da
mensagem
(entity body)
formato geral
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática37 Camada de Aplicação
Formato de mensagem HTTP: pedido
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language:fr
Sistema terminal em que os
objectos residem
Tipo de browser
Não utilizar ligações persistentes
O cliente prefere obter a versão
francesa do objecto
Método URL Versão HTTP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática38 Camada de Aplicação
Tipos de métodos
HTTP/1.0
� GET– Utilizador pede um objecto ou envia
formulário no campo URL da linha de pedido
� POST– Utilizador introduz dados na página
web preenchendo formulário
– Dados enviados no corpo da mensagem
� HEAD– Pede ao servidor para não incluir o
objecto na resposta
HTTP/1.0
� GET– Utilizador pede um objecto ou envia
formulário no campo URL da linha de pedido
� POST– Utilizador introduz dados na página
web preenchendo formulário
– Dados enviados no corpo da mensagem
� HEAD– Pede ao servidor para não incluir o
objecto na resposta
HTTP/1.1
� GET, POST, HEAD
� PUT– Envio (Upload) de
ficheiro no corpo da mensagem para o caminho especificado no campo URL
� DELETE– Apaga do servidor
Web ficheiro especificado no campo URL
HTTP/1.1
� GET, POST, HEAD
� PUT– Envio (Upload) de
ficheiro no corpo da mensagem para o caminho especificado no campo URL
� DELETE– Apaga do servidor
Web ficheiro especificado no campo URL
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática39 Camada de Aplicação
HTTP/1.0 200 OK
Connection: close
Date: Thu, 06 Aug 2009 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 2009...
Content-Length: 6821
Content-Type: text/html
dados dados dados dados ...
linha de estado (protocolo, código de estado, frase descritiva do estado)
linhas de cabeçalho
dados, eg ficheiro html (ou imagem, etc) pedido
Mensagem HTTP de resposta
formato
data em que objecto foi
criado ou modificado
número de bytes do
objecto
tipo de objecto
servidor que gerou a
resposta
data em que resposta
foi criada no servidor
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática40 Camada de Aplicação
Códigos de estado da resposta HTTP
200 OK
– 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
– versão de http do pedido não usada por este servidor
Na primeira linha da mensagem de resposta servidor->cliente
Alguns códigos típicos
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática41 Camada de Aplicação
Analisador de Pacotes de Rede Wireshark –Captura HTTP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática42 Camada de Aplicação
Interacção utilizador/servidor: Autenticação
Autenticação: controlo de acesso aosdocumentos no servidor
� Credenciais de Autorização: tipicamentenome (username) e senha (password) na linha do cabeçalho do pedido
� Sem estado (stateless): o clienteapresenta autorização em cada pedido
– Linha de cabeçalho Authorization em cada pedido
– Sem cabeçalho Authorization, o servidor recusa o acesso, e responde com o cabeçalho www authenticate
� o “browser” memoriza a autorização, repetindo-a a cada pedido
Autenticação: controlo de acesso aosdocumentos no servidor
� Credenciais de Autorização: tipicamentenome (username) e senha (password) na linha do cabeçalho do pedido
� Sem estado (stateless): o clienteapresenta autorização em cada pedido
– Linha de cabeçalho Authorization em cada pedido
– Sem cabeçalho Authorization, o servidor recusa o acesso, e responde com o cabeçalho www authenticate
� o “browser” memoriza a autorização, repetindo-a a cada pedido
cliente servidor
msg pedido http
401 authorization reqwww authenticate
msg pedido httpauthorization
resposta normal http
msg pedido httpauthorization
resposta normal httptempo
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática43 Camada de Aplicação
Cookies: manutenção do “estado” da ligação
Exemplo:� Ana surfa na Internet
sempre do mesmo PC
� Ela visita um site específico de comércio electrónico pela primeira vez
� Quando os pedidos iniciais HTTP chegam ao site Web, este cria um identificador (ID) único e cria também uma entrada para o ID na sua Base de Dados
Exemplo:� Ana surfa na Internet
sempre do mesmo PC
� Ela visita um site específico de comércio electrónico pela primeira vez
� Quando os pedidos iniciais HTTP chegam ao site Web, este cria um identificador (ID) único e cria também uma entrada para o ID na sua Base de Dados
Permitem que sites identifiquem e monitorizem os seus utilizadores
Vários sites Web usam cookies
Quatro componentes:
1. linha de cabeçalho do cookie na mensagem de resposta HTTP – Set-cookie: 1678
2. linha de cabeçalho do cookie na mensagem de pedido HTTP– Cookie: 1678
3. ficheiro de cookies mantido na máquina do utilizador e gerido pelo browser deste– armazenado no disco rígido com
dados do utilizador
4. Base de Dados (BD) de apoio no site Web
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática44 Camada de Aplicação
Cookies: manutenção do “estado” (cont.)
cliente servidor
msg pedido http
resposta http +Set-cookie: 1678
msg pedido httpcookie: 1678
resposta http
msg pedido httpcookie: 1678
resposta http
servidor valida o
“cookie”
Acção específica
do cookie
acção
específica
do cookie
servidor
cria o ID 1678 e
envia ao
utilizador
entrada na BD
de apoio
acesso
aces
so
ficheiro de Cookiesamazon: 1678
ebay: 8734
ficheiro de Cookies
Host - ID
ebay: 8734
ficheiro de Cookies
amazon: 1678
ebay: 8734
uma semana depois:
cliente apresenta “cookie” em
futuras mensagens “request”
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática45 Camada de Aplicação
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
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)
Nota
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática46 Camada de Aplicação
Cache Web (servidor proxy)
� 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)
� e responde ao pedido do cliente na ligação TCP que tinha com este
Objectivo: satisfazer o pedido de um cliente sem envolver o servidor origem
clienteServidorproxy
cliente
pedido http
pedido
http
resposta http
respos
ta htt
p
pedido
http
respos
ta htt
p
Servidor de origem
Servidor de origem
pedido httpresposta http
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática47 Camada de Aplicação
Caches Web
� Cache actua tanto como cliente
quanto como servidor
� Guarda as suas próprias cópias
dos objectos no seu próprio
sistema de armazenamento
� Tipicamente a cache é instalada
por um ISP (universidade,
empresa, ISP residencial)
� Redução do tempo de resposta
para os pedidos do cliente
� Redução do tráfego no canal de
acesso de uma instituição
� A Internet cheia de caches
permitem que provedores de
conteúdo “pobres” efectivamente
forneçam conteúdo!!!!!
� Redução do tempo de resposta
para os pedidos do cliente
� Redução do tráfego no canal de
acesso de uma instituição
� A Internet cheia de caches
permitem que provedores de
conteúdo “pobres” efectivamente
forneçam conteúdo!!!!!
Quais as vantagens da Web Cache?
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática48 Camada de Aplicação
Exemplo de cache Servidores de origem
Internetpública
Rede dainstituição LAN 10 Mbps
ligação de acesso 1,5 Mbps
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%)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática49 Camada de Aplicação
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– Requer upgrade da ligação da instituição
à internet
Servidores de origem
Internetpública
Rede dainstituição LAN 10 Mbps
ligação de acesso 10 Mbps
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática50 Camada de Aplicação
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– 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
Servidores de origem
Internetpública
Rede dainstituição LAN 10 Mbps
ligação de acesso 1,5 Mbps
cache institucional
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática51 Camada de Aplicação
Interacção utilizador/servidor: GET condicional
� Objectivo: evitar a transmissão de um objecto que existe memorizado no cliente (na cache)
� Cliente: especifica a data da cópia que possui na mensagem request
If-modified-since:
� Servidor: a resposta não inclui o objecto se o cliente o tem actualizado
HTTP/1.0 304 Not Modified
� Objectivo: evitar a transmissão de um objecto que existe memorizado no cliente (na cache)
� Cliente: especifica a data da cópia que possui na mensagem request
If-modified-since:
� Servidor: a resposta não inclui o objecto se o cliente o tem actualizado
HTTP/1.0 304 Not Modified
cliente servidor
msg de pedido httpIf-modified-since:
resposta httpHTTP/1.0
304 Not Modified
Objecto não modificado
msg de pedido httpIf-modified-
since:
resposta httpHTTP/1.1 200 OK
Objecto modificado
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática52 Camada de Aplicação
A Web e o HTTP - Revisão
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� A Web e o Protocolo
HTTP
� Modelo do tempo de
resposta
� HTTP persistente e
não persistente
� Formato de
mensagens HTTP
– Pedido
– Resposta
� Cookies
� Web Caches
� GET Condicional
� A Web e o Protocolo
HTTP
� Modelo do tempo de
resposta
� HTTP persistente e
não persistente
� Formato de
mensagens HTTP
– Pedido
– Resposta
� Cookies
� Web Caches
� GET Condicional
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática53 Camada de Aplicação
Transferência de ficheiros - FTP
� Transferência de ficheiros de/para um computador remoto
� Modelo cliente/servidor
– cliente: inicia a transferência
– servidor: computador remoto (Servidor ftp: porto 21)
� Transferência de ficheiros de/para um computador remoto
� Modelo cliente/servidor
– cliente: inicia a transferência
– servidor: computador remoto (Servidor ftp: porto 21)
transferênciado ficheiro Servidor
FTP
Interface FTP do
utilizador
cliente FTP
sistema de ficheiros local
sistema de ficheiros remoto
Utilizador na máquina
[RFC 959]
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática54 Camada de Aplicação
Separação das ligações de dados e de controlo
� O cliente FTP contacta o servidorFTP especificando o protocolo de 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. � 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 enviaro 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 – identificação do utilizador, directoria actual
– limite do nº de sessões paralelas
cliente
FTPservidor
FTP
Ligação de controloTCP, porto 21
Ligação de dados TCP, porto 20
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática55 Camada de Aplicação
FTP: Comandos e Respostas
Comandos� enviados em texto ASCII (7-
bit) pelo canal de controlo
� USER nome
� PASS senha
� LIST (envia a lista de ficheirosda directoria actual)
� RETR filename – cliente lê(get) ficheiro do servidor
� STOR filename - o clienteescreve (put) o ficheiro no servidor, o qual o armazena
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
CR e LF terminam cada comando
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática56 Camada de Aplicação
Wireshark – Captura FTP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática57 Camada de Aplicação
Transferência de Ficheiros - Revisão
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Separação das
ligações no FTP
– Controlo
– Dados
� FTP: Comandos e
Respostas
� Separação das
ligações no FTP
– Controlo
– Dados
� FTP: Comandos e
Respostas
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática58 Camada de Aplicação
Três componentes principais� agentes de utilizador
� servidores de correio
� protocolo de transferência de mensagens SMTP - Simple Mail Transfer Protocol
caixa de correio (mailbox)do utilizador
fila demensagens de saída
Correio Electrónico
Servidor de mensagens
SMTP
SMTP
SMTP
agente de utilizador
Servidor demensagens
Servidor de mensagens
agente de utilizador
agente de utilizador agente de
utilizador
agente de utilizador
agente de utilizador
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
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática59 Camada de Aplicação
Servidor de Correio ElectrónicoComponentes
� Caixa do correio (“Mailbox”) que contém as mensagensdo utilizador ainda não lidas
� Fila de mensagens de saídapara as que ainda nãoforam enviadas
� Implementação do protocoloSMTP (push- envio de mensagem) paracomunicação entreservidores: – cliente: aquele que envia
mensagens
– servidor: aquele que recebe
Servidor de mensagens
SMTP
SMTP
SMTP
agente de utilizador
Servidor demensagens
Servidor de mensagens
agente de utilizador
agente de utilizador agente de
utilizador
agente de utilizador
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática60 Camada de Aplicação
SMTP “Simple Mail Transfer Protocol”
[RFC 2821]
Endereço de e-mail: [email protected]
Nome local Nome do Servidor
� Usa o protocolo de transporte TCP para transferência fiável de mensagens
� Modelo cliente/servidor– ao servidor corresponde o porto 25
� 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– comando: texto ASCII
– resposta: código de status e frase explicativa
� As mensagens têm de ser formadas em ASCII de 7-bits
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática61 Camada de Aplicação
CenárioAlice envia mensagem para Bob
useragent
mailserver
mailserver user
agent
Cliente SMTP Servidor SMTP
SMTP
caixa de correio (mailbox)do utilizador
fila demensagens de saída
2
2) Alice envia a mensagem para o seu servidor de mensagens
- a mensagem é colocada na fila
3
3) O lado cliente do SMTP abre uma ligação TCP com o servidor de mensagens do Bob
1
1) Alice compõe uma mensagem para [email protected]
4
4) Caso consiga a ligação, o cliente SMTP envia a mensagem de Alice através da ligação TCP
6
6) Bob usa o seu Agente de Utilizador para ler a mensagem
5
5) Servidor de mensagens de Bob coloca a mensagem na caixa de e-mail de Bob
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática62 Camada de Aplicação
Exemplo de interacção SMTP
S: 220 doces.pt
C: HELO consumidor.pt
S: 250 Hello consumidor.pt, pleased to meet you
C: MAIL FROM:
S: 250 [email protected]... Sender ok
C: RCPT TO:
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
Linhas enviadas por cliente e servidor para o seu socket TCP, após ligação estabelecida
• Cliente C (envia msg correio) – 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT
• Serviror S (recebe msg correio) – respostas: código e explicações(opcionais)
Linhas enviadas por cliente e servidor para o seu socket TCP, após ligação estabelecida
• Cliente C (envia msg correio) – 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT
• Serviror S (recebe msg correio) – respostas: código e explicações(opcionais)
Várias
mensagens
podem ser
enviadas entre
servidores de
correio numa
única ligação
MAIL FROM
.
MAIL FROM
.
Códigos de
explicação
são opcionais
Cliente envia
endereço de
correio do
destinatário
Cliente envia
endereço de
correio do
remetente
CRLF.CRLF
para servidor
reconhecer o
final da msg
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática63 Camada de Aplicação
SMTPResumo e Comparação com HTTP
� Usam ambos interacção de comando / resposta em ASCII� Transferem ficheiros usando ligações persistentes
� Múltiplos objectos podem constituir uma única mensagem de correio
� Cada objecto é encapsulado numa mensagem de resposta
� SMTP: push (cliente empurramensagem para servidor)
� pull (cliente puxa objecto do servidor)
� Transfere mensagens de correio entre servidores SMTP� SMTP requer que a mensagem (corpo ecabeç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
� Transfere ficheiros do Servidor Web para o Cliente Web (normalmente Browser)
SMTPHTTP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática64 Camada de Aplicação
Formato das Mensagens
O protocolo SMTP não define o formato das mensagens
SMTP: protocolo para trocar mensagens
S: 220 doces.br
C: HELO consumidor.pt
S: 250 Hello consumidor.pt, pleased to meet you
C: MAIL FROM:
S: 250 [email protected]... Sender ok
C: RCPT TO:
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
cabeçalho
corpo
linha
em
branco
As mensagens de texto são normalizadas pelo RFC 822
Linhas de cabeçalho
obrigatórias
Linhas de cabeçalho
opcionais
� Cabeçalho, por e.g.
– To:
– From:
– Subject:
– ...
diferentes dos comandos de smtp!
� Corpo da mensagem
– a “mensagem”, em caracteres ASCII
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática65 Camada de Aplicação
Formato das Mensagens: Extensões Multimédia
From: [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
� 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
Dados multimédia
tipo, subtipo, parâmetros
Método usadopara codificar
dados
versão MIME
(1) Linhas adicionais no cabeçalho para declarar o tipo do conteúdo MIME
(1)
Dados codificados
(2) Permite dados que não são ASCII (SMTP usa formato ASCII de 7 bits)
(2)
Exemplo imagem JPEG
Recepor 1º usa Content-
Transfer-Encoding para
descodificar ASCII para
binário, e depois Content-
Type para uma aplicação
de descompressão JPEG
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática66 Camada de Aplicação
Tipos MIME
Text
� exemplos de subtipos: plain, html
� charset=“iso-8859-1”, ascii
Image
� exemplos de subtipos: jpeg, gif
Video
� exemplos de subtipos: mpeg, quicktime
Audio� exemplos de subtipos: 32k
adpcm (codificação 32 kbps), basic (8-bit mu-law)
Application
� dados que têm de ser processados por uma aplicação
� exemplos de subtipos: msword, octet-stream
Content-Type: tipo/subtipo; parâmetros
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática67 Camada de Aplicação
From: [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?
Formato das mensagens:
Tipo “Multipart”
Received: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMT
From: [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?
Tipo “Multipart” – Recepção
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]
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?
Tipo “Multipart” – Encaminhamento
Linha de cabeçalho adicionada
pelo servidor que recebe a
mensagem
Nome do servidor SMTP que
recebe a mensagem
Nome do servidor SMTP que
envia a mensagem
Hora a que o servidor SMTP
recebeu a mensagem
O agente receptor recebe um
trace por onde a mensagem
passou e quando
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática68 Camada de Aplicação
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 SMTP
POP3 ou IMAP ou HTTP
useragent
useragent
Protocolos de acesso:servidor de e-mail
do receptor
BobAlice
� E se servidor de e-mail do remetente estivesse contido no agente de utilizador (e.g. Alice)?– 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...– 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
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática69 Camada de Aplicação
Post Office Protocol v.3 (POP3)
(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
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S:
S: .
C: dele 1
C: retr 2
S:
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
S: +OK POP3 server ready
C: user ana
S: +OK
C: pass faminta
S: +OK user successfully logged on
Descarrega e-mails para a máquina actualApós cliente abrir ligação TCP no servidor de e-mail usando o porto 110
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática70 Camada de Aplicação
POP3 (cont.)
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
� POP3 não mantém estado entre ligações
– 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
� Protocolo muito simples
– Porém de funcionalidade limitada
[RFC 1939]
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática71 Camada de Aplicação
IMAP e HTTPProtocolos de Acesso
IMAP [RFC 2060]
� Mantém todas as mensagens num único lugar: o servidor– mais comandos (mais complexo)
� Permite ao utilizador organizar as mensagens em pastas no servidor remoto– Criar pastas, reorganizar mais tarde
mensagens nas pastas
� O IMAP mantém o estado do utilizador entre sessões:– nomes das pastas e mapeamentos entre as
IDs das mensagens e o nome da pasta
� Permite obter apenas componentes de mensagens– 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
�e.g., Hotmail , Yahoo! Mail, Webmail, etc.
servidor de e-mail do remetente
HTTP SMTP HTTPuseragent
useragent
Protocolo deacesso:
servidor de e-maildo receptor
BobAlice
Servidor
HTTP
ScriptsServidor
IMAP
Protocolo
IMAP
HTTP
� Cliente Web (e.g. Browser) é o agente de utilizador que comunica com a sua caixa de correio em HTTP
� 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
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática72 Camada de Aplicação
Correio Electrónico - Revisão
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Componentes do
Correio
Electrónico
� SMTP
� Formato das
Mensagens
– Extensões
Multimédia
� Protocolos de
acesso ao e-mail– POP3, IMAP, HTTP
� Componentes do
Correio
Electrónico
� SMTP
� Formato das
Mensagens
– Extensões
Multimédia
� Protocolos de
acesso ao e-mail– POP3, IMAP, HTTP
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática73 Camada de Aplicação
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)
� Usado simultaneamente paraendereço de datagramas e comoidentificador
– “Nome”, e.g., ww.yahoo.com –usado pelos seres humanos
� 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– estão normalmente em máquinas UNIX a correr o software Berkeley Internet
Name Domain (BIND)
DNS: Domain Name System� Base de Dados Distribuida
implementada como uma Hierarquia de muitos Servidores de nomes
� Protocolo da Camada Aplicação quepermite máquinas interrogarem a Base de Dados para resolverem nomes– Função core da Internet, implementada
num protocolo da camada aplicação
– Complexidade na fronteira da rede
DNS: Domain Name System� Base de Dados Distribuida
implementada como uma Hierarquia de muitos Servidores de nomes
� Protocolo da Camada Aplicação quepermite máquinas interrogarem a Base de Dados para resolverem nomes– Função core da Internet, implementada
num protocolo da camada aplicação
– Complexidade na fronteira da rede
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática74 Camada de Aplicação
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
Não é escalável!
� nenhum sevidor tem todos os mapeamentos de nome para endereço IP
Serviços DNS
� (principal) Translação do nome damáquina para endereço IP
� Host aliasing (ou nome alternativo)– Nome Real vs Alias
– DNS pode também ser invocado com o nome alias para pedir o nome real
� Aliasing de Servidor de Correio
� Distribuição de Carga– 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
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática75 Camada de Aplicação
DNS: Exemplo de Distribuição de Carga
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática76 Camada de Aplicação
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� Também chmado “default name server”
– Sistemas terminais interrogam primeiro o Servidor de Nomes Local, sendo um pedido “DNS query” enviado ao servidor DNS local
� Actua como uma proxy, reencaminha query na hierarquia
� Servidores de Nomes Raiz “Root Name Servers”– 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� Para um sistema terminal: guarda o nome, endereço IP
� Pode executar a tradução nome/endereço para este sistema terminal
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática77 Camada de Aplicação
Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.edu
DNS servers
umass.edu
DNS servers
yahoo.com
DNS serversamazon.com
DNS serverspbs.org
DNS servers
Base de Dados Distribuida e de estrutura Hierárquica
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA
(and 17 other locations)
i Autonomica, Stockholm (plus 3 other locations)
k RIPE London (also Amsterdam, Frankfurt)
m WIDE Tokyo
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)
13 servidores de nomes raiz no mundo
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática78 Camada de Aplicação
Browser extrai gaia.cs.umass.edu
1. Máquina contacta o seu servidor de nomes local dns.eurecom.fr� com query gaia.cs.umass.edu
2. Se for necessário, servidor local de nomes dns.eurecom.fr contacta um servidor de nomes raiz
3. Se for necessário o servidor de nomes raiz contacta um servidor de nomes de nível topo dns.edu
4. Se for necessário o servidor de nomes de nível topo contacta o servidor de nomes oficial“authoritative” dns.umass.edu
5. (6, 7 e 8) Servidor de nomes “authoritative” retorna endereço IP de gaia.cs.umass.edu de volta
ProcedimentoRecursivo
requesting hostsurf.eurecom.fr gaia.cs.umass.edu
root name server
local name serverdns.eurecom.fr
1
2
7
authoritative name serverdns.umass.edu
8
3
45
6
A máquina � surf.eurecom.fr
pretende o endereço IP� 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
TLD DNS server
Utilizador usa browser, URL: gaia.cs.umass.edu/index.html
dns.edu
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática79 Camada de Aplicação
1. Máquina contacta o seu servidor de nomes local dns.eurecom.fr
2. Se for necessário, servidor local de nomes dns.eurecom.fr interroga um servidor de nomes raiz para descobrir servidor DNS edu
3. Servidor local recebe um IP dns.edudo servidor de nomes raiz
4. Servidor local interroga servidor de nomes de nível topo para descobrir servidor DNS umass.edu
5. Servidor local recebe um IP dns.umass.edu do servidor TLD
6. Servidor local interroga servidor de nomes oficial “authoritative” para descobrir IP de gaia.cs.umass.edu
7. (e 8) Envio do IP para cliente
ProcedimentoIterativo
� 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
requesting hostsurf.eurecom.fr gaia.cs.umass.edu
root name server
local name serverdns.eurecom.fr
1
2
3
authoritative name serverdns.umass.edu
8
4
6
TLD DNS server
5
7
dns.edu
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática80 Camada de Aplicação
DNS: Caches e Actualização dos Registos
� Assim que um servidor de nomes recebe um mapeamento nome/IP, armazena-o em cache
– Redução do número de mensagens na internet
– Maior eficiência no mapeamento
– As entradas da cache têm um temporizador (timeout) pelo quesão removidas após um certo tempo (e.g. dois dias)
– TLD servers são tipicamente colocados em cache nosServidores de Nomes Locais
� Assim, os servidores de nomes raiz não são visitados com frequência
� Assim que um servidor de nomes recebe um mapeamento nome/IP, armazena-o em cache
– Redução do número de mensagens na internet
– Maior eficiência no mapeamento
– As entradas da cache têm um temporizador (timeout) pelo quesão removidas após um certo tempo (e.g. dois dias)
– TLD servers são tipicamente colocados em cache nosServidores de Nomes Locais
� Assim, os servidores de nomes raiz não são visitados com frequência
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática81 Camada de Aplicação
Registos DNS
Cada resposta DNS contém 1 ou mais Registo de Recursos “Resource Records” (RR)
� Type=NS – nome - dominio (e.g. foo.com)
– valor - endereço IP do servidor de nomes“authoritative” que sabecomo obter o IP de máquinas deste dominio
Formato de um RR (4-tuple): (nome, valor, tipo, ttl)Formato de um RR (4-tuple): (nome, valor, tipo, ttl)
� Type=A
– nome - hostname
– valor - endereço IP
� Type=CNAME
– nome - nome alternativo para uma
dada máquina, e.g.
www.ibm.com é de facto
servereast.backup2.ibm.com
– valor - nome real da máquina
� Type=MX
– valor - nome da máquina servidor
de correio associada com nome
Inserção de registos no DNS
Supõe que crias um novo domínio, foo.com(foo.com, dns1.foo.com, NS) (dns1.foo.com, 212.212.212.1, A)
(foo.com, mail.foo.com, MX)
(mail.foo.com, 212.212.211.23, A)
Inserção de registos no DNS
Supõe que crias um novo domínio, foo.com(foo.com, dns1.foo.com, NS) (dns1.foo.com, 212.212.212.1, A)
(foo.com, mail.foo.com, MX)
(mail.foo.com, 212.212.211.23, A)
RR armazenados em cache no servidor DNS – de acordo com time to live (ttl)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática82 Camada de Aplicação
Mensagens do Protocolo DNSAs 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
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática83 Camada de Aplicação
Serviço de nomes da Internet - Revisão
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada de aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer Protocol,
POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� O protocolo DNS
� Tipos de
Servidores de
Nomes
� Mensagens do
Protocolo DNS
� Registos DNS
� O protocolo DNS
� Tipos de
Servidores de
Nomes
� Mensagens do
Protocolo DNS
� Registos DNS
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática84 Camada de Aplicação
P2P file sharing – Pesquisa emDirectório Centralizado
Desenho original do “Napster”1. Registo
– Peer liga-se e informa servidor central � Do seu endereço IP
� Conteúdo– e.g. Lista de ficheiros MP3
2. Pedido– Alice pede a canção “Hey Jude”
3. Transferência de dados– Alice pede ficheiro a Bob
Servidor de directóriocentralizado
peers
Alice
Bob1
1
1
12
3Transferência de dados
Registo
Pedido
Problemas
� Ponto único de falha
� Estrangulamento de desempenho
� Infracções de direitos de autor
Problemas
� Ponto único de falha
� Estrangulamento de desempenho
� Infracções de direitos de autor
Transferência de ficheiro é descentralizada, mas a
localização de conteúdos é centralizada
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática85 Camada de Aplicação
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 acharoutro par já na rede Gnutella� para tal usa uma lista de pares candidatos
� 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� Y reencaminha a mensagem Ping
� Todos os pares Z que recebem a msgPing respondem com mensagem Pong� Esta contém o endereço IP de Z, número
e tamanho dos ficheiros partilhados por Z
� X recebe muitas mensagens Pong� pode estabelecer ligações TCP adicionais
Associação
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática86 Camada de Aplicação
Query
QueryHit
Query
Query
QueryHit
Query
Query
QueryHit
Transferência de ficheiro: HTTP
� fora da rede sobreposta
� Mensagem de pedido “Query”
enviada sobre as ligações TCP
� Inclui keywords descritivas do
conteúdo procurado
� Cada par vizinho reencaminha
a mensagem de pedido
� Se um tem o objecto pedido
(QueryHit), envia uma mensagem
de volta para o par que perguntou
� enviada pelo caminho inverso
� com nome e tamanho do ficheiro
� Mensagem de pedido “Query”
enviada sobre as ligações TCP
� Inclui keywords descritivas do
conteúdo procurado
� Cada par vizinho reencaminha
a mensagem de pedido
� Se um tem o objecto pedido
(QueryHit), envia uma mensagem
de volta para o par que perguntou
� enviada pelo caminho inverso
� com nome e tamanho do ficheiro
Gnutella: Mensagens de Pedidos
Query
Query
Query
Query
Query
Query flooding – Inundação de pedidos
� de raio (alcance) limitado (e.g. 7)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática87 Camada de Aplicação
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
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
Inundação de Pedidos
Escalabilidade Limitada:
Inundação da rede (flooding)Escalabilidade Limitada:
Inundação da rede (flooding)
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática88 Camada de Aplicação
KaZaA: Pesquisa emDirectório Distribuído
� 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
� Ligação TCP entre par e o seulíder de grupo
� Ligações TCP entre pares de lideres de grupo
� Rede sobreposta, hierárquica– 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
Par líder de grupo
Par na rede
Par na rede
Par líder de grupo
Relações entre
vizinhos na rede
sobreposta.
hierárquica
Junta conceitos do Napster e Gnutella• Explora a heterogeneidade dos nós
-
Artur Arsenio
Redes de Computadores 2010/2011
Departamento de Engenharia Informática89 Camada de Aplicação
KaZaA: Descrição
� Identificação dos ficheiros– Hash
– Descriptor� Nome do ficheiro
� Descrição textual não estruturada
� Cliente envia keywords ao líder de grupo
� Líder de grupo responde c/ lista de pares cuja descrição corresponde às keywords– Enviando: metadata, hash, endereço IP
� Se o líder de grupo reencaminha pedido a outros líderes de grupo, estes respondemcom correspondências
� Cliente selecciona ficheiros para download– Pedido HTTP usa hash como identificador,
é enviado aos pares que contêm o ficheiro
� Cifra as mensagens de controlo– mas não as de dados
Vantagens
� Não há servidor de directório
centralizado
– Serviço de localização
distribuido pelos pares
– Mais dificil de desactivar
� Rede sobreposta hierárquica
– Maior alcançe dos pedidos
Desvantagens
� Necessários nós de arranque
� Líderes de grupo podem ser
sobrecarregados
Truques
� 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ática90 Camada de Aplicação
Partilha de Ficheiros Peer-to-Peer(P2P) – Revisão
� Princípios e caracteristicas dos protocolos da camada aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer
Protocol, POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System
protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� Princípios e caracteristicas dos protocolos da camada aplicação
� A Web e o HTTP (Hypertext Transfer Protocol)
� Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)
� Correio Electrónico– SMTP: Simple Mail Transfer
Protocol, POP3, IMAP
� Serviço de nomes da Internet– DNS: Domain Name System
protocol
� Partilha de Ficheiros Peer-to-Peer (P2P)
� P2P File sharing
– Um peer é tanto um cliente
Web como um servidor Web
temporário
– Todos os peers são servidores
= facilmente escalável !
� Napster - Pesquisa em
Directório Centralizado
� Pesquisa sem Directório
“Query flooding”: Gnutella
� KaZaA Pesquisa em Directório
Descentralizado
� P2P File sharing
– Um peer é tanto um cliente
Web como um servidor Web
tempor