2 aplicacao 2010

90

Click here to load reader

Upload: vertente-humana

Post on 25-Jun-2015

149 views

Category:

Documents


2 download

TRANSCRIPT

  • 1. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica1Redes de ComputadoresRedes de ComputadoresCamada Aplicao

2. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica2 Camada de AplicaoIntroduo s Redes de Computadorese Internet RevisoA InternetProtocolosEstrutura da rede A periferia da rede O ncleo da rede Redes de Acesso e Meio FisicoDesempenho: atraso e perdaCamadas de protocolos e modelos de servio TCP/IP e OSIEstrutura da Internet e ISPsA InternetProtocolosEstrutura da rede A periferia da rede O ncleo da rede Redes de Acesso e Meio FisicoDesempenho: atraso e perdaCamadas de protocolos e modelos de servio TCP/IP e OSIEstrutura da Internet e ISPs 3. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica3 Camada de AplicaoCamada AplicaoPrincpios e caracteristicas dos protocolos da camada de aplicaoA Web e o HTTP (Hypertext Transfer Protocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol, POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dos protocolos da camada de aplicaoA Web e o HTTP (Hypertext Transfer Protocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol, POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Segue Capitulo 2 do livro de J.F Kurose e K.W. RossObjectivos:Adquirir os conceitos e aspectos de implementao dos protocolos de aplicaoem rede, atravs do estudo de protocolos populares da camada aplicao.Objectivos:Adquirir os conceitos e aspectos de implementao dos protocolos de aplicaoem rede, atravs do estudo de protocolos populares da camada aplicao. 4. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica4 Camada de AplicaoAlgumas aplicaes distribuidasVoIP Call N ShareMobile IMw/ PresenceMultiplayerGamingNetwork AddressBookMobile & IPTVRich Media IMRingback TonesPicture ShareMobileConferencing Video Surveillance Remote MonitoringE-mailWebInstant messagingLogin remotoPartilha de ficheiros P2PJogos de rede multi-utilizadorVdeo-clipsVoz sobre IPVdeo-conferncia em tempo realComputao paralela em larga escalaIPTV, MobileTVRedes Sociais (FaceBook, Hi5, LinkedIn) 5. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica5 Camada de AplicaoMy TV, My IMMy cell phone IPTV will change the user TV experiencefrom passive zapping to active browsing High frustration with broadcast TV Demand for better TVAlready TodayMy choice onTVMy choice onTVIPTV Televiso sobre a InternetStill TodayI have 100 channels,but nothing to watchI have 100 channels,but nothing to watch 6. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica6 Camada de AplicaoAplicaes em TelemveisApplicaes:Segurana: telemvel como chaveSade: mediar comunicaes comdispositivos pessoais de sadeEntretenimento: MobileTV, jogosApplicaes:Segurana: telemvel como chaveSade: mediar comunicaes comdispositivos pessoais de sadeEntretenimento: MobileTV, jogos... Edge Gateway... New Multimedia Computer 7. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica7 Camada de AplicaoOpen Internet Novas Applicaes... focus na Conectividade SocialVideo SharingYouTubeFlickrPhoto SharingWikipediaColaborativeencyclopediaBusinessConnectionsLinkedIn 8. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica8 Camada de AplicaoOpen Internet Novas Applicaes... focus na Conectividade SocialVirtual WorldsSecondLifeTrust+PlusColaborative TrustWhere and Whatare you doing?TwitterMySpacePersonal space 9. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica9 Camada de AplicaoCriando uma aplicao distribuidaAplicaes distribudasprogramas que executam em diferentes sistemasterminaisnecessitam trocar mensagens atravs da rede parafornecerem o resultado para que foram desenhadasE.g., e-mail, transferncia de ficheiros Web: servidor Web (Apache, Microsoft) envia pginaWeb (documento HTML) requisitada pelo navegador(browser-Internet Explorer) atravs de uma troca demensagens (HTTP)Dispositivos do ncleo da rede no executamaplicaes de utilizadoresProtocolos da camada de aplicaoso partes integrantes de uma aplicao distribudadefinem as mensagens a trocar e as aces queresultam dessas mensagensusam servios de comunicao fornecidos pelasentidades das camadas de protocolo inferioresaplicaotransporteredeligaofsicaaplicaotransporteredeligaofsicaaplicaotransporteredeligaofsica 10. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica10 Camada de AplicaoProtocolos da Camada deAplicao o que definem?Tipos de mensagens trocadas eg mensagens de pedido e respostaSintaxe dos tipos das mensagens campos presentes nas mensagens e como so identificadosSemntica dos campos significado da informao nos camposRegras para quando os processosenviam e respondem s mensagensProtocolos de domnio pblico:definidos em RFCsPermitem a interoperaoex, HTTP e SMTPProtocolos proprietrios:Ex., KaZaA, SkypeProtocolos de domnio pblico:definidos em RFCsPermitem a interoperaoex, HTTP e SMTPProtocolos proprietrios:Ex., KaZaA, SkypeAplicaoDistribuidaProtocolo deCamada AplicaoAplicaoDistribuida 11. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica11 Camada de AplicaoProcessos em comunicao- Endereamento de processosProcesso: programa que executado numa mquinaprocessos na mesma mquinacomunicam (tpicamente) usandocomunicao entre processos(interprocess communication) dosistema operativo (SO)Processos que se executam emmquinas diferentes comunicamatravs de um protocolo dacamada de aplicao, trocandomensagens atravs da redeProcesso servidor: processo queespera para ser contactadoProcesso cliente: processo queinicia a comunicao Faz a interface com o utilizadoracima e com a rede abaixo implementa protocolos nvel deaplicao Ex. WWW: browser, E-mail: leitor decorreio, audio/video: media playerAplicaes com arquitecturas P2P possuem processos clientes e processos servidoresProcessoProcesso Canal de comunicaoCanal de comunicaoportoProcessoportoPara o processo receber mensagens,precisa de um identificador endereo IP nico de 32 bits do host e nmero do porto associado com oprocesso na mquinae.g. Servidor HTTP: porto 80Servidor de Correio: porto 25Para o processo receber mensagens,precisa de um identificador endereo IP nico de 32 bits do host e nmero do porto associado com oprocesso na mquinae.g. Servidor HTTP: porto 80Servidor de Correio: porto 25 12. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica12 Camada de AplicaoOs processos enviam /recebemmensagens para /de outros processosatravs dos seus sockets Um socket corre no sistema terminal e anlogo a uma porta entre os processosda aplicao e o protocolo de transporte O processo que envia empurra amensagem para fora da porta assume que a infraestrutura de transportedo outro lado da porta leva a mensagemat ao socket do processo que a recebeProtocolo de transporte: transferncia debytes de um processo para outroAPI (Interface de Programao da Aplicao) Permite escolher o protocolo de transporte E definir alguns parmetrosTamanho buffers e segmentos do TCPSocketsprocessoTCP combuffers,variveissocketClienteprocessoTCP combuffers,variveissocketServidorInternetControlado pelo SOcontrolado peloprogramador daaplicaosocketOu UDP 13. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica13 Camada de AplicaoSockets com Ligaosocketbindlisten socketconnectacceptreadwrite readwriteClienteServidorClienteServidorSocketClienteSocketEscutaSocketLigao3-way handshakebytesbytes 14. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica14 Camada de Aplicaoimport java.net*;import java.io*;public class TCPClient{public static void main(String args[]){// args: message and destin. hostnameSocket 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 osocket cliente. Argumentos:nome DNS do servidor e o porto. Construtor no s cria o socketcomo efectua a ligao TCPMtodos getInputStream /getOutputStream permitemaceder aos dois streamsdefinidos pelo socketWriteUTF /readUTF para Universaltransferformat / paraas cadeias decaracteresSockets Stream em Java (Cliente) 15. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica15 Camada de Aplicaoimport 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 clienteestabelecer ligao.Cria socket servidor que fica escuta no porto serverPortSockets Stream em Java (Servidor)Cria novo socket servidor com quem estabelecida ligao com o clientee onde os dados so recebidos 16. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica16 Camada de AplicaoSockets Stream em JavaSocket classe que suporta o socket cliente e que temcomo argumentos a identificao remota do servidor: onome DNS do servidor e o porto O construtor no s cria o socket como efectua a ligaoMtodos getInputStream; getOutputStream permite aceder aosdois streams definidos pelo socketServerSocket classe para o servidorMtodos AcceptRecebe um socket cliente sempre que invocado o connectWriteUTF e readUTF Universal Transfer Format para as cadeias de caracteres 17. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica17 Camada de AplicaoSockets sem LigaosocketbindrecvfromsendtosocketbindsendtorecvfromClienteServidor 18. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica18 Camada de AplicaoSockets 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 hostnameDatagramSocket 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();}}}Converso do nomeDNS para endereo IPConstri um socket datagram(associado a qualquer porto disponvel)Cada mensagem enviada tem que levar juntoidentificador do processo destino: IP e porto 19. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica19 Camada de AplicaoSockets 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();}}}Constri um socket datagram(associado ao porto 6789)Recebe mensagemExtrai damensagem oIP e porto doprocessoorigem pararesponder 20. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica20 Camada de AplicaoSockets Datagram em JavaDatagramSocket classe que suporta os socketsdatagram e que tem como argumento um portoMtodos send; receive setSoTimeout temporizador que limita o tempo deespera do receive connect define um porto remotoConverso do nome DNS para um endereo Internetcom o mtodo InetAddress.getByName 21. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica21 Camada de AplicaoServio TCP:com ligao: inicializaorequerida entre cliente e servidortransporte fivel entre processosremetente e receptorcontrolo do fluxo: remetente novai inundar receptorcontrolo de congesto: bloqueiodo remetente quando a rede estcarregadano oferece: garantias temporaisou de banda mnimaServio UDP:transferncia de dados nofivel entre processos remetentee receptorno oferece: estabelecimento daligao, fiabilidade, controlo dofluxo, controlo do congesto,garantias temporais ou de bandamnimaProtocolo leveServios fornecidos pelos protocolosde transporte Internet (recapitular) 22. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica22 Camada de AplicaoDe que servios de transporte necessitauma aplicao?Requisitos sobre os servios de transportePerdas de dadosalgumas aplicaes (e.g. udio)toleram perdas de informaooutras (eg transferncia deficheiros, telnet) requeremtransferncias 100% fiveisTemporizaoalgumas aplicaes (e.g.,telefone sobre a internet -VoIP, jogos interactivos)exigem um pequeno atrasoextremo a extremoaproximadamente constantedurante a sua execuoLargura de bandaalgumas aplicaes (egaplicaes multimedia)requerem um ritmo mnimo detransferncia de informaopara funcionaremadequadamenteoutras aplicaes conseguemusar qualquer largura de bandadisponvel em cada instante Eg. Aplicaes elsticas comotransferncia de ficheiros 23. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica23 Camada de AplicaoAplicaotransferncia ficheirosCorreio electrnicodocumentos Webudio/vdeo detempo realvideoconfernciaudio/vdeo gravadojogos interativosMensagemInstantneaaplicaes financeirasPerdasintoleranteintoleranteintolerantetolerantetolerantetoleranteintolerante sem perdasintoleranteLargura deBandaelsticaelsticaelsticaudio: 5Kb-1Mbvdeo:10Kb-5Mbcomo anterior> alguns KbpselsticaelsticaSensibilidadetemporal a atrasosnononosim, 100s msegsim, alguns segssim, 100s msegsim e no---A Internet de hoje ainda no d garantias de Banda e Sensibilidade TemporalRequisitos sobre o Servio deTransporte de Aplicaes Comuns 24. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica24 Camada de AplicaoAplicao Internetcorreio electrnicoacesso em terminal remotoWebtransferncia de ficheirosstreaming multimediaservidor de ficheiros remotoTelefone sobre InternetProtocolo dacamada de aplicaoSMTP [RFC 2821]telnet [RFC 854], sshHTTP [RFC 2616]FTP [RFC 959]HTTP(ex. YouTube), RTPNFSProprietrios (Skype)Protocolo detransporte usadoTCPTCPTCPTCPTCP ou UDPTCP ou UDPtipicamente UDPAplicaes Internet: protocolos deaplicao e de transporte 25. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica25 Camada de AplicaoCamada Aplicao - RevisoPrincpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)AplicaesDistribuidasProcessosProgramao deaplicaes de Rede(API dos Sockets)Requisitos sobre osservios detransporteAplicaesDistribuidasProcessosProgramao deaplicaes de Rede(API dos Sockets)Requisitos sobre osservios detransporte 26. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica26 Camada de AplicaoWeb (ou www World Wide Web)Pgina Web (Web page) constituida por objectos Objecto pode ser um ficheiro HTML (que referencia outrosobjectos), imagem JPEG, vdeo-clip, ficheiro de udio, Cada objecto endereado por um URL Se pagina Web tiver texto HTML mais n objectos referenciados (egimagens), ento o nmero total de objectos n+1Um URL (Uniform Resource Locator) tem duas componentes:host name e path namewww.ist.utl.pt/secretaria/pautas.htmlnome da mquina host / servidor nome do caminho 27. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica27 Camada de AplicaoModelo Cliente/Servidorbrowser o agente de utilizadorWeb, ou cliente HTTP MS Internet Explorer, NetscapeNavigator, Mozilla Firefox, GoogleChrome pede, recebe, mostra objectos WebPC executaExplorerMac executaNavigatorpedido httppedido httpServidorWeb(ex. IST)resposta httpresposta httpHyperText Transfer Protocol protocolo de transferncia de hipertextoProtocolo da camada de aplicao da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616Protocolo da camada de aplicao da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616O servidor Web chama-se Web Server eg. Apache, MS Internet Information Server Implementa lado servidor do HTTP envia objectos www em resposta a pedidosProtocolo HTTP 28. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica28 Camada de AplicaoProtocolo HTTP (cont.)Usa servio de transporte TCP1. cliente inicia ligao TCP (criaum socket) com o servidor noporto 802. servidor aceita ligao TCP docliente3. mensagens HTTP (mensagensdo protocolo da camada deaplicao) trocadas entrebrowser (cliente HTTP) e oWebServer (servidor HTTP)4. Encerramento da ligao TCPUsa servio de transporte TCP1. cliente inicia ligao TCP (criaum socket) com o servidor noporto 802. servidor aceita ligao TCP docliente3. mensagens HTTP (mensagensdo protocolo da camada deaplicao) trocadas entrebrowser (cliente HTTP) e oWebServer (servidor HTTP)4. Encerramento da ligao TCPHTTP no mantem estadoservidor no mantminformao sobre pedidosanteriores do clienteProtocolos que mantm estado socomplexos!histria passada (estado) tem que serguardadaCaso o servidor ou o cliente v abaixo,as vises do estado destes podemficar inconsistentes, e devemportanto ser sincronizadasNota 29. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica29 Camada de AplicaoLigaes HTTPHTTP no persistenteO servidor interpreta o pedido,responde e fecha a ligao TCP No mximo um objecto enviadonuma ligao TCP Mas, na maioria dos casos, usam-sevrias ligaes TCP em paraleloIneficiente Cada transferncia sujeita aoperodo slow start do TCP Com paralelismo consegue-seaumentar eficinciaHTTP/1.0 usa HTTP no persistenteHTTP persistenteMltiplos objectos podem serenviados sobre 1 nica ligaoTCP entre cliente e servidor na mesma ligao TCP oservidor responde a vriospedidos o cliente envia pedidos paratodos os objectosreferenciados na mesmapgina de baseHTTP/1.1 usa ligaespersistentes no seu mododefault 30. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica30 Camada de AplicaoExemplo: Utilizador introduz o URL: www.ist.utl.pt/dei/index.html1a. Cliente http inicia ligaoTCP ao servidor http(processo) www.ist.utl.ptna Porta 80, padro paraservidor http.1b. servidor http no hostwww.ist.utl.pt espera porligao TCP na porta 80.aceita ligao, avisando ocliente3. servidor http recebe mensagemde pedido, elabora a mensagemde resposta contendo o objectosolicitadowww.ist.utl.pt/dei/index.html, eenvia mensagem via sockettempo2. cliente http enviamensagem de pedidode http (incluindo oURL) atravs dosocket da ligao TCPHTTP com ligao no persistente 31. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica31 Camada de AplicaoExemplo de HTTP no persistente (cont.)6. passos 1 a 5 repetidos paracada um dos n objectos jpeg4. servidor httpencerra ligaoTCPtempo5. cliente http recebemensagem de resposta aqual contem o ficheiro html,mostra html. No ficheirohtml, encontra refernciaspara n objectos jpeg 32. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica32 Camada de AplicaoRTT (Round Trip Time)intervalo de tempo entre aida e a volta de um pacote(tamanho pequeno) entreum cliente e um servidorTempo de resposta:um RTT para iniciar aligao TCPum RTT para o pedido HTTPe o retorno dos primeirosbytes da resposta HTTPO RTT inclui os atrasosRTT (Round Trip Time)intervalo de tempo entre aida e a volta de um pacote(tamanho pequeno) entreum cliente e um servidorTempo de resposta:um RTT para iniciar aligao TCPum RTT para o pedido HTTPe o retorno dos primeirosbytes da resposta HTTPO RTT inclui os atrasostempo paratransmitiro ficheiroIniciar a ligaoTCPRTTpedirficheiroRTTficheirorecebido tempo tempoTempo total = 2RTT + tempo de transmissoModelo do tempo de respostapropqueueproc ,, dddTempo total = 2RTT + tempode transmisso do ficheiro 33. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica33 Camada de AplicaoHTTP no persistente Problemasrequer 2 RTTs para cada objectoSO aloca recursos do host para cadaligao TCPo browser abre com frequncialigaes TCP paralelas para recuperaros objectos referenciadosrequer 2 RTTs para cada objectoSO aloca recursos do host para cadaligao TCPo browser abre com frequncialigaes TCP paralelas para recuperaros objectos referenciados 34. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica34 Camada de AplicaoHTTP persistenteo servidor deixa aligao aberta apsenviar a respostaAs mensagensHTTP seguintesentre o mesmocliente/servidor soenviadas nestaligaoPersistente sem pipelining (paralelismo):o cliente envia um novo pedido apenasquando a resposta anterior tiver sidorecebidaum RTT para cada objecto referenciadoPersistente com pipeliningdefault no HTTP/1.1o cliente envia os pedidos logo queencontra um objecto referenciadopode ser necessrio apenas um RTTpara todos os objectos referenciadosHTTP com ligao persistente 35. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica35 Camada de AplicaoFormato de mensagem HTTP: pedidoDois tipos de mensagem HTTP: pedido (request), resposta (response)GET /somedir/page.html HTTP/1.1Host: www.someschool.eduConnection: closeUser-agent: Mozilla/4.0Accept-language:fr(caracteres adicionais de carriage return - CR, line feed - LF)linha do pedido (comandos GET, POST, HEAD, PUT, DELETE)linhas docabealholinha em branco(carriage return, linefeed) indica o fimdo cabealhoASC II - American Standard Code for Information Interchange II256 caracteres codificados em 8 bits (formato legvel por pessoas)ASC II - American Standard Code for Information Interchange II256 caracteres codificados em 8 bits (formato legvel por pessoas) 36. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica36 Camada de AplicaoMensagem de pedido HTTPLinhas doCabealho(header lines)Linha depedido(request line)Linha embrancoCorpo damensagem(entity body)formato geral 37. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica37 Camada de AplicaoFormato de mensagemHTTP: pedidoGET /somedir/page.html HTTP/1.1Host: www.someschool.eduConnection: closeUser-agent: Mozilla/4.0Accept-language:frSistema terminal em que osobjectos residemTipo de browserNo utilizar ligaes persistentesO cliente prefere obter a versofrancesa do objectoMtodo URL Verso HTTP 38. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica38 Camada de AplicaoTipos de mtodosHTTP/1.0GET Utilizador pede um objecto ou enviaformulrio no campo URL da linhade pedidoPOST Utilizador introduz dados na pginaweb preenchendo formulrio Dados enviados no corpo damensagemHEAD Pede ao servidor para no incluir oobjecto na respostaHTTP/1.0GET Utilizador pede um objecto ou enviaformulrio no campo URL da linhade pedidoPOST Utilizador introduz dados na pginaweb preenchendo formulrio Dados enviados no corpo damensagemHEAD Pede ao servidor para no incluir oobjecto na respostaHTTP/1.1GET, POST, HEADPUT Envio (Upload) deficheiro no corpo damensagem para ocaminho especificadono campo URLDELETE Apaga do servidorWeb ficheiroespecificado no campoURLHTTP/1.1GET, POST, HEADPUT Envio (Upload) deficheiro no corpo damensagem para ocaminho especificadono campo URLDELETE Apaga do servidorWeb ficheiroespecificado no campoURL 39. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica39 Camada de AplicaoHTTP/1.0 200 OKConnection: closeDate: Thu, 06 Aug 2009 12:00:15 GMTServer: Apache/1.3.0 (Unix)Last-Modified: Mon, 22 Jun 2009...Content-Length: 6821Content-Type: text/htmldados dados dados dados ...linha de estado (protocolo, cdigo de estado, frase descritiva do estado)linhasdecabealhodados, eg ficheiro html (ou imagem, etc) pedidoMensagem HTTP derespostaformatodata em que objecto foicriado ou modificadonmero de bytes doobjectotipo de objectoservidor que gerou arespostadata em que respostafoi criada no servidor 40. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica40 Camada de AplicaoCdigos de estado da resposta HTTP200 OK sucesso, objecto pedido segue mais adiante nesta mensagem301 Moved Permanently objecto pedido mudou de lugar, nova localizao especificadamais adiante nesta mensagem (cabealho Location:)400 Bad Request mensagem de pedido no entendida pelo servidor404 Not Found objecto pedido no foi encontrado neste servidor505 HTTP Version Not Supported verso de http do pedido no usada por este servidorNa primeira linha da mensagem de resposta servidor->clienteAlguns cdigos tpicos 41. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica41 Camada de AplicaoAnalisador de Pacotes de Rede Wireshark Captura HTTP 42. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica42 Camada de AplicaoInteraco utilizador/servidor:AutenticaoAutenticao: controlo de acesso aosdocumentos no servidorCredenciais de Autorizao: tipicamentenome (username) e senha (password)na linha do cabealho do pedidoSem estado (stateless): o clienteapresenta autorizao em cada pedido Linha de cabealho Authorization emcada pedido Sem cabealho Authorization, o servidorrecusa o acesso, e responde com ocabealho www authenticateo browser memoriza a autorizao,repetindo-a a cada pedidoAutenticao: controlo de acesso aosdocumentos no servidorCredenciais de Autorizao: tipicamentenome (username) e senha (password)na linha do cabealho do pedidoSem estado (stateless): o clienteapresenta autorizao em cada pedido Linha de cabealho Authorization emcada pedido Sem cabealho Authorization, o servidorrecusa o acesso, e responde com ocabealho www authenticateo browser memoriza a autorizao,repetindo-a a cada pedidocliente servidormsg pedido http401 authorization reqwww authenticatemsg pedido httpauthorization resposta normal httpmsg pedido httpauthorization resposta normal httptempo 43. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica43 Camada de AplicaoCookies: manuteno do estado da ligaoExemplo:Ana surfa na Internetsempre do mesmo PCEla visita um site especficode comrcio electrnicopela primeira vezQuando os pedidos iniciaisHTTP chegam ao site Web,este cria um identificador(ID) nico e cria tambmuma entrada para o ID nasua Base de DadosExemplo:Ana surfa na Internetsempre do mesmo PCEla visita um site especficode comrcio electrnicopela primeira vezQuando os pedidos iniciaisHTTP chegam ao site Web,este cria um identificador(ID) nico e cria tambmuma entrada para o ID nasua Base de DadosPermitem que sites identifiquem e monitorizem os seus utilizadoresVrios sites Web usam cookiesQuatro componentes:1. linha de cabealho do cookie namensagem de resposta HTTP Set-cookie: 16782. linha de cabealho do cookie namensagem de pedido HTTP Cookie: 16783. ficheiro de cookies mantido namquina do utilizador e gerido pelobrowser deste armazenado no disco rgido comdados do utilizador4. Base de Dados (BD) de apoio nosite Web 44. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica44 Camada de AplicaoCookies: manuteno do estado (cont.)cliente servidormsg pedido httpresposta http +Set-cookie: 1678msg pedido httpcookie: 1678resposta httpmsg pedido httpcookie: 1678resposta httpservidor valida ocookieAco especficado cookieacoespecficado cookieservidorcria o ID 1678 eenvia aoutilizadorentrada na BDde apoioacessoacessoficheiro de Cookiesamazon: 1678ebay: 8734ficheiro de CookiesHost - IDebay: 8734ficheiro de Cookiesamazon: 1678ebay: 8734uma semana depois:cliente apresenta cookie emfuturas mensagens request 45. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica45 Camada de AplicaoCookies (continuao)O que os cookies podem fazer:Autorizao aps armazenaro registo da pessoaRegisto da lista de comprasno E-commerceSugestes recomendarprodutosestado da sesso doutilizador (Web email) identificao do utilizadorCookies armazenam coisasque utilizador acedeu, etambm info este nunca viuCookies e privacidade:cookies permitem que os sitesaprendam muito sobre o utilizadormecanismos de busca usamredirecionamento e cookies paraaprender ainda mais sobreutilizadoragncias de publicidade obtmperfil de utilizadores a partir dossites visitados e oferecem a estesprodutos de forma agressiva (egDoubleClick)Nota 46. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica46 Camada de AplicaoCache Web (servidor proxy)O utilizador configura obrowser para aceder a webvia web cacheTodos os pedidos http soenviados web cache se o objecto existe na webcache o pedido imediatamente satisfeito caso contrrio a web cachecria ligao TCP com oservidor origem, consultaeste, e memoriza o objectoretornado na resposta (parafutura utilizao)e responde ao pedido docliente na ligao TCP quetinha com esteObjectivo: satisfazer o pedido de um cliente sem envolver o servidor origemclienteServidorproxyclientepedido httppedido httpresposta httpresposta httppedido httpresposta httpServidor de origemServidor de origempedido httpresposta http 47. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica47 Camada de AplicaoCaches WebCache actua tanto como clientequanto como servidorGuarda as suas prprias cpiasdos objectos no seu prpriosistema de armazenamentoTipicamente a cache instaladapor um ISP (universidade,empresa, ISP residencial)Reduo do tempo de respostapara os pedidos do clienteReduo do trfego no canal deacesso de uma instituioA Internet cheia de cachespermitem que provedores decontedo pobres efectivamenteforneam contedo!!!!!Reduo do tempo de respostapara os pedidos do clienteReduo do trfego no canal deacesso de uma instituioA Internet cheia de cachespermitem que provedores decontedo pobres efectivamenteforneam contedo!!!!!Quais as vantagens da Web Cache? 48. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica48 Camada de AplicaoExemplo de cache Servidores de origemInternetpblicaRede dainstituio LAN 10 Mbpsligao de acesso1,5 MbpsHiptesesTamanho mdio dos objectos = 100k bitsTaxa mdia de solicitaes dos browsers deuma instituio para os servidores originais = a= 15/segAtraso do roteador institucional para qualquerservidor origem e de volta ao roteador = 2segConsequnciasUtilizao da LAN = aL/R = 15/seg x 100Kb /10Mbps=15%Utilizao do canal de acesso = 15 / seg x100Kb x / 1,5Mbps = 100%Atraso total = atraso da Internet + atraso deacesso + atraso na LAN =2 seg + minutos (100%) + milisegundos (15%) 49. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica49 Camada de AplicaoExemplo de cache- Soluo de UpgradeSoluo PotencialAumento da largura de banda do canalde acesso para, por exemplo, 10 MbpsConsequnciasUtilizao da LAN = 15%Utilizao do canal de acesso = 15%Atraso total = atraso da Internet + atrasode acesso + atraso na LAN =2 seg + msegs + msegsFrequentemente esta uma ampliaocara Requer upgrade da ligao da instituio internetServidores de origemInternetpblicaRede dainstituio LAN 10 Mbpsligao de acesso10 Mbps 50. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica50 Camada de AplicaoExemplo de cache- Uso de uma Web CacheInstalao de uma cacheAssumir que a taxa de reutilizao seja de 0,4(tipicamente entre 0,2 e 0,7)Consequncias40% dos pedidos sero atendidos quaseimediatamente60% dos pedidos sero servidos pelosservidores de origemUtilizao do canal de acesso reduzido para60%, resultando em atrasos desprezveis e.g. 0,01 segsAtraso total = atraso da Internet + atraso deacesso + atraso na LAN =0,6 x 2 seg + 0,6 x 0,01 segs + 0,4 x 0,01seg< 1,3 segsServidores de origemInternetpblicaRede dainstituio LAN 10 Mbpsligao de acesso1,5 Mbpscache institucional 51. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica51 Camada de AplicaoInteraco utilizador/servidor:GET condicionalObjectivo: evitar atransmisso de um objectoque existe memorizado nocliente (na cache)Cliente: especifica a datada cpia que possui namensagem requestIf-modified-since: Servidor: a resposta noinclui o objecto se o clienteo tem actualizadoHTTP/1.0 304 Not ModifiedObjectivo: evitar atransmisso de um objectoque existe memorizado nocliente (na cache)Cliente: especifica a datada cpia que possui namensagem requestIf-modified-since: Servidor: a resposta noinclui o objecto se o clienteo tem actualizadoHTTP/1.0 304 Not Modifiedcliente servidormsg de pedido httpIf-modified-since:resposta httpHTTP/1.0304 Not ModifiedObjecto nomodificadomsg de pedido httpIf-modified-since: resposta httpHTTP/1.1 200 OKObjectomodificado 52. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica52 Camada de AplicaoA Web e o HTTP - RevisoPrincpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)A Web e o ProtocoloHTTPModelo do tempo derespostaHTTP persistente eno persistenteFormato demensagens HTTP Pedido RespostaCookiesWeb CachesGET CondicionalA Web e o ProtocoloHTTPModelo do tempo derespostaHTTP persistente eno persistenteFormato demensagens HTTP Pedido RespostaCookiesWeb CachesGET Condicional 53. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica53 Camada de AplicaoTransferncia de ficheiros - FTPTransferncia de ficheiros de/para um computador remotoModelo cliente/servidor cliente: inicia a transferncia servidor: computador remoto (Servidor ftp: porto 21)Transferncia de ficheiros de/para um computador remotoModelo cliente/servidor cliente: inicia a transferncia servidor: computador remoto (Servidor ftp: porto 21)transfernciado ficheiro ServidorFTPInterfaceFTP doutilizadorclienteFTPsistema deficheiros localsistema deficheiros remotoUtilizadorna mquina[RFC 959] 54. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica54 Camada de AplicaoSeparao das ligaes de dados e decontroloO cliente FTP contacta o servidorFTP especificando o protocolo detransporte TCP e o porto 21So criadas ligaes TCP em paralelo out of band control: controlo: troca de comandos e respostas entre o cliente eo servidor.Persistente sempre aberta durante a sesso do utilizador.Envio de informao de autorizaoConsulta da directoria remotaEnvio de comandos put e get dados: transferncia de dados (ficheiros) entre o cliente eo servidor. Uma ligao TCP por cada ficheiro a enviaro aps a transmisso de um ficheiro o servidor fecha a ligaoO servidor FTP mantm o estado em cada sesso identificao do utilizador, directoria actual limite do n de sesses paralelasclienteFTPservidorFTPLigao de controloTCP, porto 21Ligao de dadosTCP, porto 20 55. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica55 Camada de AplicaoFTP: Comandos e RespostasComandosenviados em texto ASCII (7-bit) pelo canal de controloUSER nomePASS senhaLIST (envia a lista de ficheirosda directoria actual)RETR filename cliente l(get) ficheiro do servidorSTOR filename - o clienteescreve (put) o ficheiro noservidor, o qual o armazenaRespostasInclui um cdigo e frase destatus (como no http)331 Username OK,password required125 data connection alreadyopen; transfer starting425 Cant open dataconnection452 Error writing fileCR e LF terminam cada comando 56. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica56 Camada de AplicaoWireshark Captura FTP 57. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica57 Camada de AplicaoTransferncia de Ficheiros - RevisoPrincpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Separao dasligaes no FTP Controlo DadosFTP: Comandos eRespostasSeparao dasligaes no FTP Controlo DadosFTP: Comandos eRespostas 58. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica58 Camada de AplicaoTrs componentes principaisagentes de utilizadorservidores de correioprotocolo de transferncia demensagens SMTP - Simple MailTransfer Protocolcaixa de correio(mailbox)do utilizadorfila demensagens de sadaCorreio ElectrnicoServidor demensagensSMTPSMTPSMTPagente deutilizadorServidor demensagensServidor demensagensagente deutilizadoragente deutilizador agente deutilizadoragente deutilizadoragente deutilizadorAgente de UtilizadorInterface para compor, modificar eler mensagens de correio electrnico leitor de mensagens (mail reader) e.g. Eudora, Outlook, elm, NetscapeMessengerMensagens que chegam ou a serenviadas so armazenadas noservidor 59. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica59 Camada de AplicaoServidor de Correio ElectrnicoComponentesCaixa do correio (Mailbox)que contm as mensagensdo utilizador ainda no lidasFila de mensagens de sadapara as que ainda noforam enviadasImplementao do protocoloSMTP (push- envio demensagem) paracomunicao entreservidores: cliente: aquele que enviamensagens servidor: aquele que recebeServidor demensagensSMTPSMTPSMTPagente deutilizadorServidor demensagensServidor demensagensagente deutilizadoragente deutilizador agente deutilizadoragente deutilizador 60. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica60 Camada de AplicaoSMTPSimple Mail Transfer Protocol[RFC 2821]Endereo de e-mail: [email protected] local Nome do ServidorUsa o protocolo de transporte TCP para transferncia fivel de mensagensModelo cliente/servidor ao servidor corresponde o porto 25Transferncia directa entre emissor e receptorTrs fases na comunicao entre cliente e servidor apresentao (handshaking) transferncia de mensagens fecho da ligaoInteraco na forma de comando - resposta comando: texto ASCII resposta: cdigo de status e frase explicativaAs mensagens tm de ser formadas em ASCII de 7-bits 61. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica61 Camada de AplicaoCenrioAlice envia mensagem para Bobuseragentmailservermailserver useragentCliente SMTP Servidor SMTPSMTPcaixa de correio(mailbox)do utilizadorfila demensagens de sada22) Alice envia a mensagem para o seuservidor de mensagens- a mensagem colocada na fila33) O lado cliente do SMTP abre umaligao TCP com o servidor demensagens do Bob11) Alice compe uma mensagempara [email protected]) Caso consiga a ligao, o cliente SMTPenvia a mensagem de Alice atravs daligao TCP66) Bob usa o seu Agente de Utilizador paraler a mensagem55) Servidor de mensagens de Bob coloca amensagem na caixa de e-mail de Bob 62. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica62 Camada de AplicaoExemplo de interaco SMTPS: 220 doces.ptC: HELO consumidor.ptS: 250 Hello consumidor.pt, pleased to meet youC: MAIL FROM: S: 250 [email protected]... Sender okC: RCPT TO: S: 250 [email protected] ... Recipient okC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Gostas de chocolate?C: Durante a abertura da nossa loja, so gratuitos!C: .S: 250 Message accepted for deliveryC: QUITS: 221 doces.pt closing connectionLinhas enviadas por cliente e servidor para o seu socket TCP, aps ligao estabelecida Cliente C (envia msg correio) 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT Serviror S (recebe msg correio) respostas: cdigo e explicaes(opcionais)Linhas enviadas por cliente e servidor para o seu socket TCP, aps ligao estabelecida Cliente C (envia msg correio) 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT Serviror S (recebe msg correio) respostas: cdigo e explicaes(opcionais)Vriasmensagenspodem serenviadas entreservidores decorreio numanica ligaoMAIL FROM.MAIL FROM.Cdigos deexplicaoso opcionaisCliente enviaendereo decorreio dodestinatrioCliente enviaendereo decorreio doremetenteCRLF.CRLFpara servidorreconhecer ofinal da msg 63. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica63 Camada de AplicaoSMTPResumo e Comparao com HTTPUsam ambos interaco de comando / resposta em ASCIITransferem ficheiros usando ligaes persistentesMltiplos objectos podem constituir umanica mensagem de correioCada objecto encapsuladonuma mensagem de respostaSMTP: push (cliente empurramensagem para servidor)pull (cliente puxa objecto doservidor)Transfere mensagens de correio entreservidores SMTPSMTP requer que a mensagem (corpo ecabealho) seja em ASCII de 7-bits dados binrios (e.g. uma imagem jpeg)devem ser codificados em ASCII antes deserem enviados receptor deve descodificarTransfere ficheiros doServidor Web para o ClienteWeb (normalmente Browser)SMTPHTTP 64. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica64 Camada de AplicaoFormato das MensagensO protocolo SMTP no define o formato das mensagensSMTP: protocolo para trocar mensagensS: 220 doces.brC: HELO consumidor.ptS: 250 Hello consumidor.pt, pleased to meet youC: MAIL FROM: S: 250 [email protected]... Sender okC: RCPT TO: S: 250 [email protected] ... Recipient okC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Gostas de chocolate?C: Durante a abertura da nossa loja, so gratuitos!C: .S: 250 Message accepted for deliveryC: QUITS: 221 doces.pt closing connectioncabealhocorpolinhaembrancoAs mensagens de texto so normalizadas pelo RFC 822Linhas de cabealhoobrigatriasLinhas de cabealhoopcionaisCabealho, por e.g. To: From: Subject: ...diferentes dos comandos de smtp!Corpo da mensagem a mensagem, em caracteres ASCII 65. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica65 Camada de AplicaoFormato das Mensagens:Extenses MultimdiaFrom: [email protected]: [email protected]: Imagem de uma bela tortaMIME-Version: 1.0Content-Transfer-Encoding: base64Content-Type: image/jpegbase64 encoded data ....................................base64 encoded dataMIME Multipurpose Internet Mail Extensions (extenses do [RFC 822]) Extenso do e-mail para multimdia [RFC 2045, 2046] No um protocolo de e-mail, no substitui o SMTPDadosmultimdiatipo, subtipo,parmetrosMtodo usadopara codificardadosverso MIME(1) Linhas adicionais no cabealho para declarar o tipo do contedo MIME(1)Dadoscodificados(2) Permite dados que no so ASCII (SMTP usa formato ASCII de 7 bits)(2)Exemplo imagem JPEGRecepor 1 usa Content-Transfer-Encoding paradescodificar ASCII parabinrio, e depois Content-Type para uma aplicaode descompresso JPEG 66. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica66 Camada de AplicaoTipos MIMETextexemplos de subtipos: plain,htmlcharset=iso-8859-1, asciiImageexemplos de subtipos: jpeg, gifVideoexemplos de subtipos: mpeg,quicktimeAudioexemplos de subtipos: 32kadpcm (codificao 32kbps), basic (8-bit mu-law)Applicationdados que tm de serprocessados por umaaplicaoexemplos de subtipos:msword, octet-streamContent-Type: tipo/subtipo; parmetros 67. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica67 Camada de AplicaoFrom: [email protected]: [email protected]: Imagem de saboroso doce.MIME-Version: 1.0Content-Type: multipart/mixed; boundary=StartOfNextPart--StartOfNextPartBruno, junto envio imagem de um doce.--StartOfNextPartContent-Transfer-Encoding: base64Content-Type: image/jpegdados codificados em base64 ............................................dados codificados em base64--StartOfNextPartQueres a receita?Formato das mensagens:Tipo MultipartReceived: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMTFrom: [email protected]: [email protected]: Imagem de saboroso doce.MIME-Version: 1.0Content-Type: multipart/mixed; boundary=StartOfNextPart--StartOfNextPartBruno, junto envio imagem de um doce.--StartOfNextPartContent-Transfer-Encoding: base64Content-Type: image/jpegdados codificados em base64 ............................................dados codificados em base64--StartOfNextPartQueres a receita?Tipo Multipart RecepoReceived: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMTReceived: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMTFrom: [email protected]: [email protected]: Imagem de saboroso doce.MIME-Version: 1.0Content-Type: multipart/mixed; boundary=StartOfNextPart--StartOfNextPartBruno, junto envio imagem de um doce.--StartOfNextPartContent-Transfer-Encoding: base64Content-Type: image/jpegdados codificados em base64 ............................................dados codificados em base64--StartOfNextPartQueres a receita?Tipo Multipart EncaminhamentoLinha de cabealho adicionadapelo servidor que recebe amensagemNome do servidor SMTP querecebe a mensagemNome do servidor SMTP queenvia a mensagemHora a que o servidor SMTPrecebeu a mensagemO agente receptor recebe umtrace por onde a mensagempassou e quando 68. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica68 Camada de AplicaoProtocolos de acesso ao e-mailSMTP: usado para enviar/armazenar mensagens para os servidores SMTP no pode ser usado por agente utilizador receptor (e.g. Bob) para obter e-mail pois tal requer uma operao 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 receptorservidor de e-maildo remetenteSMTP SMTPPOP3 ouIMAP ouHTTPuseragentuseragentProtocolos de acesso:servidor dee-maildo receptorBobAliceE se servidor de e-mail do remetente estivesse contido no agente de utilizador (e.g. Alice)? Quando agente de utilizador no estivesse ligado rede, mensagens de correio perdiam-se!Porque no usar apenas um servidor SMTP? Assim, agente de utilizador (e.g. Alice) enviavadirectamente mensagens de correio ao servidor de e-mail do receptor... No seria possvel o servidor de e-mail do remetente continuar a tentar enviar mensagem se o servidor dee-mail do receptor estivesse em baixo 69. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica69 Camada de AplicaoPost Office Protocolv.3 (POP3)(1) Fase de autorizaocomandos do cliente user: username pass: passwordrespostas do servidor +OK -ERR (problema com comando anterior)(2) Fase de transferncia, cliente:list: lista os nmeros e tamanho das msgsretr: transfere msg pelo nmerodele: apaga msgquit: termina a sesso POP3(3) Fase de Actualizao (update)servidor de correio apaga mensagensmarcadas para remooC: listS: 1 498S: 2 912S: .C: retr 1S: S: .C: dele 1C: retr 2S: S: .C: dele 2C: quitS: +OK POP3 server signing offS: +OK POP3 server readyC: user anaS: +OKC: pass famintaS: +OK user successfully logged onDescarrega e-mails para a mquina actualAps cliente abrir ligao TCP no servidor de e-mail usando o porto 110 70. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica70 Camada de AplicaoPOP3 (cont.)Agente de utilizador pode serconfigurado pelo utilizadorO exemplo anterior usa omodo download e delete. Bob no pode reler asmensagens se mudar declienteDownload-e-mantenha:copia as mensagens emclientes diferentesPOP3 no mantm estadoentre ligaes S mantm estado na mesmasesso do utilizador, no entresesses diferentes doutilizador Simplifica bastante aimplementao do servidorPOP3Protocolo muito simples Porm de funcionalidadelimitada[RFC 1939] 71. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica71 Camada de AplicaoIMAP e HTTPProtocolos de AcessoIMAP [RFC 2060]Mantm todas as mensagens num nicolugar: o servidor mais comandos (mais complexo)Permite ao utilizador organizar asmensagens em pastas no servidor remoto Criar pastas, reorganizar mais tardemensagens nas pastasO IMAP mantm o estado do utilizadorentre sesses: nomes das pastas e mapeamentos entre asIDs das mensagens e o nome da pastaPermite obter apenas componentes demensagens Linhas de cabealho Uma parte de uma mensagem multipart E.g. Obter mensagem de texto semdescarregar imagem numa ligao de baixalargura de bandae.g., Hotmail , Yahoo! Mail, Webmail, etc.servidor de e-maildo remetenteHTTP SMTP HTTPuseragentuseragentProtocolo deacesso:servidor de e-maildo receptorBobAliceServidorHTTPScriptsServidorIMAPProtocoloIMAPHTTPCliente Web (e.g. Browser) o agentede utilizador que comunica com a suacaixa de correio em HTTPPermite a manipulao de mensagensno servidor remoto (como o IMAP) Numa implemantao alternativa oservidor HTTP usa um servidor IMAPpara fornecer a funcionalidade de pastas 72. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica72 Camada de AplicaoCorreio Electrnico - RevisoPrincpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Componentes doCorreioElectrnicoSMTPFormato dasMensagens ExtensesMultimdiaProtocolos deacesso ao e-mail POP3, IMAP, HTTPComponentes doCorreioElectrnicoSMTPFormato dasMensagens ExtensesMultimdiaProtocolos deacesso ao e-mail POP3, IMAP, HTTP 73. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica73 Camada de AplicaoDNS: Domain Name SystemComo fazer o mapeamento entre os endereos IP e nome da mquina?Pessoas: muitos identificadores: BI, nome, n passaporteSistemas terminais da Internet, routers Endereo IP (32 bit)Usado simultaneamente paraendereo de datagramas e comoidentificador Nome, e.g., ww.yahoo.com usado pelos seres humanosDNS: Protocolo que usa o servio de transporte no fivel UDP, no porto 53 complexo, usado por outros protocolos da camada aplicao: HTTP, SMTP e FTPOs servidores de nomes funcionam, em geral, como cliente e servidor esto normalmente em mquinas UNIX a correr o software Berkeley InternetName Domain (BIND)DNS: Domain Name SystemBase de Dados Distribuidaimplementada como uma Hierarquia demuitos Servidores de nomesProtocolo da Camada Aplicao quepermite mquinas interrogarem a Basede Dados para resolverem nomes Funo core da Internet, implementadanum protocolo da camada aplicao Complexidade na fronteira da redeDNS: Domain Name SystemBase de Dados Distribuidaimplementada como uma Hierarquia demuitos Servidores de nomesProtocolo da Camada Aplicao quepermite mquinas interrogarem a Basede Dados para resolverem nomes Funo core da Internet, implementadanum protocolo da camada aplicao Complexidade na fronteira da rede 74. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica74 Camada de AplicaoServios e EscalabilidadePorque no centralizar oDNS?ponto nico de falhavolume de trfegobase de dadoscentralizada distantemanutenoNo escalvel!nenhum sevidor temtodos os mapeamentosde nome paraendereo IPServios DNS(principal) Translao do nome damquina para endereo IPHost aliasing (ou nome alternativo) Nome Real vs Alias DNS pode tambm ser invocado com onome alias para pedir o nome realAliasing de Servidor de CorreioDistribuio de Carga Replicao de Servidores Web conjuntode endereos IP para um nome real Servidor responde com todos osendereos IP que mapeiam ao nome masroda a ordem a cada pedido 75. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica75 Camada de AplicaoDNS: Exemplo de Distribuio deCarga 76. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica76 Camada de AplicaoTipos de Servidores de NomesServidores de Nomes Locais Cada mquina, para conhecer um mapeamento nome/endereo comea porinterrogar o seu servidor local Em geral, cada ISP tem um servidor de nomes localTambm chmado default name server Sistemas terminais interrogam primeiro o Servidor de Nomes Local, sendo umpedido DNS query enviado ao servidor DNS localActua como uma proxy, reencaminha query na hierarquiaServidores de Nomes Raiz Root Name Servers Interrogado por servidor de nomes local se este no consegue resolver um pedidoServidores de Nomes de Dominio de Nvel Topo TLD Top Level Domain Responsvel por com, org, net, edu, etc, e todos dominios nacionais uk, fr, ca, jpServidores de Nomes Oficial Authoritative Name Servers Cada organizao com mquinas de acesso pblico tem um servidor de nomesoficial onde a traduo nome/endereo est armazenada obrigatoriamentePara um sistema terminal: guarda o nome, endereo IPPode executar a traduo nome/endereo para este sistema terminal 77. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica77 Camada de AplicaoRoot DNS Serverscom DNS servers org DNS servers edu DNS serverspoly.eduDNS serversumass.eduDNS serversyahoo.comDNS serversamazon.comDNS serverspbs.orgDNS serversBase de Dados Distribuida e deestrutura Hierrquicab USC-ISI Marina del Rey, CAl ICANN Los Angeles, CAe NASA Mt View, CAf 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 Tokyoa Verisign, Dulles, VAc Cogent, Herndon, VA (also Los Angeles)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 11 locations)13 servidores de nomes raiz no mundo 78. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica78 Camada de AplicaoBrowser extrai gaia.cs.umass.edu1. Mquina contacta o seu servidor denomes local dns.eurecom.frcom query gaia.cs.umass.edu2. Se for necessrio, servidor local denomes dns.eurecom.fr contacta umservidor de nomes raiz3. Se for necessrio o servidor denomes raiz contacta um servidor denomes de nvel topo dns.edu4. Se for necessrio o servidor denomes de nvel topo contacta oservidor de nomes oficialauthoritative dns.umass.edu5. (6, 7 e 8) Servidor de nomesauthoritative retorna endereo IPde gaia.cs.umass.edu de voltaProcedimentoRecursivorequesting hostsurf.eurecom.fr gaia.cs.umass.eduroot name serverlocal name serverdns.eurecom.fr127authoritative name serverdns.umass.edu83456A mquinasurf.eurecom.frpretende o endereo IPcs.umass.eduColoca o esforo da resoluo de nomes no servidor de nomes contactadoO servidor de nomes de nvel topo pode no conhecer o endereo doservidor oficial, mas de um servidor intermdio 10 ou mais mensagensTLD DNS serverUtilizador usa browser, URL: gaia.cs.umass.edu/index.htmldns.edu 79. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica79 Camada de Aplicao1. Mquina contacta o seu servidor denomes local dns.eurecom.fr2. Se for necessrio, servidor local denomes dns.eurecom.fr interroga umservidor de nomes raiz paradescobrir servidor DNS edu3. Servidor local recebe um IP dns.edudo servidor de nomes raiz4. Servidor local interroga servidor denomes de nvel topo para descobrirservidor DNS umass.edu5. Servidor local recebe um IPdns.umass.edu do servidor TLD6. Servidor local interroga servidor denomes oficial authoritative paradescobrir IP de gaia.cs.umass.edu7. (e 8) Envio do IP para clienteProcedimentoIterativoPedidos iterativos I dont know this name, but ask this serverCada servidor de nomes apenas fornece o endereo do prximo servidor a contactarrequesting hostsurf.eurecom.fr gaia.cs.umass.eduroot name serverlocal name serverdns.eurecom.fr123authoritative name serverdns.umass.edu846TLD DNS server57dns.edu 80. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica80 Camada de AplicaoDNS: Caches e Actualizao dosRegistosAssim que um servidor de nomes recebe um mapeamento nome/IP,armazena-o em cache Reduo do nmero de mensagens na internet Maior eficincia no mapeamento As entradas da cache tm um temporizador (timeout) pelo queso removidas aps um certo tempo (e.g. dois dias) TLD servers so tipicamente colocados em cache nosServidores de Nomes LocaisAssim, os servidores de nomes raiz no so visitados comfrequnciaAssim que um servidor de nomes recebe um mapeamento nome/IP,armazena-o em cache Reduo do nmero de mensagens na internet Maior eficincia no mapeamento As entradas da cache tm um temporizador (timeout) pelo queso removidas aps um certo tempo (e.g. dois dias) TLD servers so tipicamente colocados em cache nosServidores de Nomes LocaisAssim, os servidores de nomes raiz no so visitados comfrequncia 81. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica81 Camada de AplicaoRegistos DNSCada resposta DNS contm 1 ou mais Registo de Recursos Resource Records (RR)Type=NS nome - dominio (e.g. foo.com) valor - endereo IP doservidor de nomesauthoritative que sabecomo obter o IP demquinas deste dominioFormato de um RR (4-tuple): (nome, valor, tipo, ttl)Formato de um RR (4-tuple): (nome, valor, tipo, ttl)Type=A nome - hostname valor - endereo IPType=CNAME nome - nome alternativo para umadada mquina, e.g.www.ibm.com de factoservereast.backup2.ibm.com valor - nome real da mquinaType=MX valor - nome da mquina servidorde correio associada com nomeInsero de registos no DNSSupe que crias um novo domnio, 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)Insero de registos no DNSSupe que crias um novo domnio, 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) 82. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica82 Camada de AplicaoMensagens do Protocolo DNSAs mensagens pergunta e resposta tm o mesmo formatomsg headeridentification: 16 bit # for query,reply to query uses same #flags query or reply recursion desired recursion available reply is authoritativeName, type fields para perguntaRRs na resposta perguntaRegistos para authoritativeserversInformao adicional deajuda que pode ser utilizada 83. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica83 Camada de AplicaoServio de nomes da Internet - RevisoPrincpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dos protocolosda camada de aplicaoA Web e o HTTP (Hypertext TransferProtocol)Transferncia de Ficheiros (File Transfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail Transfer Protocol,POP3, IMAPServio de nomes da Internet DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)O protocolo DNSTipos deServidores deNomesMensagens doProtocolo DNSRegistos DNSO protocolo DNSTipos deServidores deNomesMensagens doProtocolo DNSRegistos DNS 84. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica84 Camada de AplicaoP2P file sharing Pesquisa emDirectrio CentralizadoDesenho original do Napster1. Registo Peer liga-se e informa servidor centralDo seu endereo IPContedo e.g. Lista de ficheiros MP32. Pedido Alice pede a cano Hey Jude3. Transferncia de dados Alice pede ficheiro a BobServidor dedirectriocentralizadopeersAliceBob111123Transferncia de dadosRegistoPedidoProblemasPonto nico de falhaEstrangulamento de desempenhoInfraces de direitos de autorProblemasPonto nico de falhaEstrangulamento de desempenhoInfraces de direitos de autorTransferncia de ficheiro descentralizada, mas alocalizao de contedos centralizada 85. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica85 Camada de AplicaoPesquisa sem DirectrioQuery flooding: GnutellaTotalmente distribuido sem servidor central sem hierarquiaUsa n de arranque paraconhecer outros nsVrios clientes Gnutellaimplementam o protocolo, que de dominio publicoJuntar a um par (mensagem de associao)Para o par X se juntar tem que acharoutro par j na rede Gnutellapara tal usa uma lista de pares candidatosX tenta estabelecer ligaes TCP deforma sequencial com pares na lista atconseguir ligao com YX envia uma mensagem Ping a YY reencaminha a mensagem PingTodos os pares Z que recebem a msgPing respondem com mensagem PongEsta contm o endereo IP de Z, nmeroe tamanho dos ficheiros partilhados por ZX recebe muitas mensagens Pongpode estabelecer ligaes TCP adicionaisAssociao 86. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica86 Camada de AplicaoQueryQueryHitQueryQueryQueryHitQueryQueryQueryHitTransferncia de ficheiro: HTTPfora da rede sobrepostaMensagem de pedido Queryenviada sobre as ligaes TCPInclui keywords descritivas docontedo procuradoCada par vizinho reencaminhaa mensagem de pedidoSe um tem o objecto pedido(QueryHit), envia uma mensagemde volta para o par que perguntouenviada pelo caminho inversocom nome e tamanho do ficheiroMensagem de pedido Queryenviada sobre as ligaes TCPInclui keywords descritivas docontedo procuradoCada par vizinho reencaminhaa mensagem de pedidoSe um tem o objecto pedido(QueryHit), envia uma mensagemde volta para o par que perguntouenviada pelo caminho inversocom nome e tamanho do ficheiroGnutella:Mensagens de PedidosQueryQueryQueryQueryQueryQuery flooding Inundao de pedidosde raio (alcance) limitado (e.g. 7) 87. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica87 Camada de AplicaoVantagensSimplesAltamentedescentralizadoO mais dificil de desligarPares tmresponsabilidadessemelhantes: no hlideres de grupoNenhum par mantminformao de directrioDesvantagensTrfego de pedidos excessivoRaio de alcance limitado dopedido: pode no encontrar ocontedo quando este existeN de arranqueManuteno da rede sobrepostaInundao de PedidosEscalabilidade Limitada:Inundao da rede (flooding)Escalabilidade Limitada:Inundao da rede (flooding) 88. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica88 Camada de AplicaoKaZaA: Pesquisa emDirectrio DistribudoN de arranque Cada par um lider de grupo, ouest associado a um lder de grupo O lider de grupo conhece ocontedo de todos os seus filhosLigao TCP entre par e o seulder de grupoLigaes TCP entre pares delideres de grupoRede sobreposta, hierrquica Pares so ns Arcos entre pares e o seu lder degrupo Arcos entre alguns pares de lderesde grupos Vizinhos virtuaisPar lder de grupoPar na redePar na redePar lder de grupoRelaes entrevizinhos na redesobreposta.hierrquicaJunta conceitos do Napster e Gnutella Explora a heterogeneidade dos ns 89. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica89 Camada de AplicaoKaZaA: DescrioIdentificao dos ficheiros Hash DescriptorNome do ficheiroDescrio textual no estruturadaCliente envia keywords ao lder de grupoLder de grupo responde c/ lista de parescuja descrio corresponde s keywords Enviando: metadata, hash, endereo IPSe o lder de grupo reencaminha pedido aoutros lderes de grupo, estes respondemcom correspondnciasCliente selecciona ficheiros para download Pedido HTTP usa hash como identificador, enviado aos pares que contm o ficheiroCifra as mensagens de controlo mas no as de dadosVantagensNo h servidor de directriocentralizado Servio de localizaodistribuido pelos pares Mais dificil de desactivarRede sobreposta hierrquica Maior alcane dos pedidosDesvantagensNecessrios ns de arranqueLderes de grupo podem sersobrecarregadosTruquesLimites nos uploads simultneosPr pedidos em filasPrioridade por incentivosDownloads paralelos 90. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informtica90 Camada de AplicaoPartilha de Ficheiros Peer-to-Peer(P2P) RevisoPrincpios e caracteristicas dosprotocolos da camada aplicaoA Web e o HTTP (HypertextTransfer Protocol)Transferncia de Ficheiros (FileTransfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail TransferProtocol, POP3, IMAPServio de nomes da Internet DNS: Domain Name SystemprotocolPartilha de Ficheiros Peer-to-Peer (P2P)Princpios e caracteristicas dosprotocolos da camada aplicaoA Web e o HTTP (HypertextTransfer Protocol)Transferncia de Ficheiros (FileTransfer) File Transfer Protocol (FTP)Correio Electrnico SMTP: Simple Mail TransferProtocol, POP3, IMAPServio de nomes da Internet DNS: Domain Name SystemprotocolPartilha de Ficheiros Peer-to-Peer (P2P)P2P File sharing Um peer tanto um clienteWeb como um servidor Webtemporrio Todos os peers so servidores= facilmente escalvel !Napster - Pesquisa emDirectrio CentralizadoPesquisa sem DirectrioQuery flooding: GnutellaKaZaA Pesquisa em DirectrioDescentralizadoP2P File sharing Um peer tanto um clienteWeb como um servidor Webtemporrio Todos os peers so servidores= facilmente escalvel !Napster - Pesquisa emDirectrio CentralizadoPesquisa sem DirectrioQuery flooding: GnutellaKaZaA Pesquisa em DirectrioDescentralizado