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