Your SlideShare is downloading. ×
2 aplicacao 2010
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

2 aplicacao 2010

117
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
117
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática1Redes de ComputadoresRedes de ComputadoresCamada Aplicação
  • 2. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática2 Camada de AplicaçãoIntrodução às Redes de Computadorese Internet – RevisãoA InternetProtocolosEstrutura da rede– A periferia da rede– O núcleo da rede– Redes de Acesso e Meio FisicoDesempenho: atraso e perdaCamadas de protocolos e modelos de serviço– TCP/IP e OSIEstrutura da Internet e ISPsA InternetProtocolosEstrutura da rede– A periferia da rede– O núcleo da rede– Redes de Acesso e Meio FisicoDesempenho: atraso e perdaCamadas de protocolos e modelos de serviço– TCP/IP e OSIEstrutura da Internet e ISPs
  • 3. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática3 Camada de AplicaçãoCamada AplicaçãoPrincípios e caracteristicas dos protocolos da camada de aplicaçãoA Web e o HTTP (Hypertext Transfer Protocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol, POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dos protocolos da camada de aplicaçãoA Web e o HTTP (Hypertext Transfer Protocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol, POP3, IMAPServiço 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 implementação dos protocolos de aplicaçãoem rede, através do estudo de protocolos populares da camada aplicação.Objectivos:Adquirir os conceitos e aspectos de implementação dos protocolos de aplicaçãoem rede, através do estudo de protocolos populares da camada aplicação.
  • 4. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática4 Camada de AplicaçãoAlgumas aplicações 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-utilizadorVídeo-clipsVoz sobre IPVídeo-conferência em tempo realComputação paralela em larga escalaIPTV, MobileTVRedes Sociais (FaceBook, Hi5, LinkedIn)
  • 5. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática5 Camada de AplicaçãoMy 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 – Televisão sobre a InternetStill Today“I have 100 channels,but nothing to watch”“I have 100 channels,but nothing to watch”
  • 6. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática6 Camada de AplicaçãoAplicações em TelemóveisApplicações:Segurança: telemóvel como chaveSaúde: mediar comunicações comdispositivos pessoais de saúdeEntretenimento: MobileTV, jogosApplicações:Segurança: telemóvel como chaveSaúde: mediar comunicações comdispositivos pessoais de saúdeEntretenimento: MobileTV, jogos... Edge Gateway... New Multimedia Computer
  • 7. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática7 Camada de AplicaçãoOpen Internet – Novas Applicações... focus na Conectividade SocialVideo SharingYouTubeFlickrPhoto SharingWikipediaColaborativeencyclopediaBusinessConnectionsLinkedIn
  • 8. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática8 Camada de AplicaçãoOpen Internet – Novas Applicações... focus na Conectividade SocialVirtual WorldsSecondLifeTrust+PlusColaborative TrustWhere and Whatare you doing?TwitterMySpacePersonal space
  • 9. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática9 Camada de AplicaçãoCriando uma aplicação distribuidaAplicações distribuídasprogramas que executam em diferentes sistemasterminaisnecessitam trocar mensagens através da rede parafornecerem o resultado para que foram desenhadasE.g., e-mail, transferência de ficheiros– Web: servidor Web (Apache, Microsoft) envia páginaWeb (documento HTML) requisitada pelo navegador(browser-Internet Explorer) através de uma troca demensagens (HTTP)Dispositivos do núcleo da rede não executamaplicações de utilizadoresProtocolos da camada de aplicaçãosão partes integrantes de uma aplicação distribuídadefinem as mensagens a trocar e as acções queresultam dessas mensagensusam serviços de comunicação fornecidos pelasentidades das camadas de protocolo inferioresaplicaçãotransporteredeligaçãofísicaaplicaçãotransporteredeligaçãofísicaaplicaçãotransporteredeligaçãofísica
  • 10. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática10 Camada de AplicaçãoProtocolos da Camada deAplicação – o que definem?Tipos de mensagens trocadas– eg mensagens de pedido e respostaSintaxe dos tipos das mensagens– campos presentes nas mensagens– e como são identificadosSemântica dos campos– significado da informação nos camposRegras para quando os processosenviam e respondem às mensagensProtocolos de domínio público:definidos em RFCsPermitem a interoperaçãoex, HTTP e SMTPProtocolos proprietários:Ex., KaZaA, SkypeProtocolos de domínio público:definidos em RFCsPermitem a interoperaçãoex, HTTP e SMTPProtocolos proprietários:Ex., KaZaA, SkypeAplicaçãoDistribuidaProtocolo deCamada AplicaçãoAplicaçãoDistribuida
  • 11. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática11 Camada de AplicaçãoProcessos em comunicação- Endereçamento de processosProcesso: programa que éexecutado numa máquinaprocessos na mesma máquinacomunicam (típicamente) usandocomunicação entre processos(interprocess communication) dosistema operativo (SO)Processos que se executam emmáquinas diferentes comunicamatravés de um protocolo dacamada de aplicação, trocandomensagens através da redeProcesso servidor: processo queespera para ser contactadoProcesso cliente: processo queinicia a comunicação– Faz a interface com o utilizador“acima” e com a rede “abaixo”– implementa protocolos nível deaplicação– Ex. WWW: “browser”, E-mail: leitor decorreio, audio/video: “media player”Aplicações com arquitecturas P2P possuem processos clientes e processos servidoresProcessoProcesso Canal de comunicaçãoCanal de comunicaçãoportoProcessoportoPara o processo receber mensagens,precisa de um identificador– endereço IP único de 32 bits do host– e número do porto associado com oprocesso na máquinae.g. Servidor HTTP: porto 80Servidor de Correio: porto 25Para o processo receber mensagens,precisa de um identificador– endereço IP único de 32 bits do host– e número do porto associado com oprocesso na máquinae.g. Servidor HTTP: porto 80Servidor de Correio: porto 25
  • 12. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática12 Camada de AplicaçãoOs processos enviam /recebemmensagens para /de outros processosatravés dos seus sockets– Um socket corre no sistema terminal e éanálogo a uma porta entre os processosda aplicação 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: transferência debytes de um processo para outroAPI (Interface de Programação da Aplicação)– Permite escolher o protocolo de transporte– E definir alguns parâmetrosTamanho buffers e segmentos do TCPSocketsprocessoTCP combuffers,variáveissocketClienteprocessoTCP combuffers,variáveissocketServidorInternetControlado pelo SOcontrolado peloprogramador daaplicaçãosocketOu UDP
  • 13. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática13 Camada de AplicaçãoSockets com Ligaçãosocketbindlisten socketconnectacceptreadwrite readwriteClienteServidorClienteServidorSocketClienteSocketEscutaSocketLigação3-way handshakebytesbytes
  • 14. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática14 Camada de Aplicaçãoimport 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 não só cria o socketcomo efectua a ligação TCPMétodos 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 Informática15 Camada de Aplicaçãoimport 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 ligação.Cria socket servidor que fica àescuta no porto “serverPort”Sockets Stream em Java (Servidor)Cria novo socket servidor com quemé estabelecida ligação com o clientee onde os dados são recebidos
  • 16. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática16 Camada de AplicaçãoSockets Stream em JavaSocket – classe que suporta o socket cliente e que temcomo argumentos a identificação remota do servidor: onome DNS do servidor e o porto– O construtor não só cria o socket como efectua a ligaçãoMétodos– getInputStream; getOutputStream – permite aceder aosdois streams definidos pelo socketServerSocket – classe para o servidorMétodos– 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 Informática17 Camada de AplicaçãoSockets sem LigaçãosocketbindrecvfromsendtosocketbindsendtorecvfromClienteServidor
  • 18. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática18 Camada de AplicaçãoSockets 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();}}}Conversão do nomeDNS para endereço IPConstrói um socket datagram(associado a qualquer porto disponível)Cada mensagem enviada tem que levar juntoidentificador do processo destino: IP e porto
  • 19. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática19 Camada de AplicaçãoSockets UDP em Java (Servidor)import java.net*;import java.io*;public class UDPServer{public static void main(String args[]){DatagramSocket aSocket = null;try{aSocket = new DatagramSocket(6789);byte[] buffer = new byte [1000];while(true){DatagramPacket request = new DatagramPacket(buffer,buffer.legth);aSocket.receive(request);DatagramPacket reply = new DatagramPacket(request.getData(),request.getLength(); request.getAddress(),request.getPort());aSocket.send(reply);}} catch (SocketException e){System.outprintln(“Socket:”+e.getMessage());} catch (IOException e){System.out.println(“IO:” + e.getMessage());} finally {if(aSocket ! = null) aSocket.close();}}}Constrói um socket datagram(associado ao porto 6789)Recebe mensagemExtrai damensagem oIP e porto doprocessoorigem pararesponder
  • 20. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática20 Camada de AplicaçãoSockets Datagram em JavaDatagramSocket – classe que suporta os socketsdatagram e que tem como argumento um portoMétodos– send; receive– setSoTimeout – temporizador que limita o tempo deespera do receive– connect – define um porto remotoConversão do nome DNS para um endereço Internetcom o método InetAddress.getByName
  • 21. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática21 Camada de AplicaçãoServiço TCP:com ligação: inicializaçãorequerida entre cliente e servidortransporte fiável entre processosremetente e receptorcontrolo do fluxo: remetente nãovai “inundar” receptorcontrolo de congestão: bloqueiodo remetente quando a rede estácarregadanão oferece: garantias temporaisou de banda mínimaServiço UDP:transferência de dados nãofiável entre processos remetentee receptornão oferece: estabelecimento daligação, fiabilidade, controlo dofluxo, controlo do congestão,garantias temporais ou de bandamínimaProtocolo leveServiços fornecidos pelos protocolosde transporte Internet (recapitular)
  • 22. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática22 Camada de AplicaçãoDe que serviços de transporte necessitauma aplicação?Requisitos sobre os serviços de transportePerdas de dadosalgumas aplicações (e.g. áudio)toleram perdas de informaçãooutras (eg transferência deficheiros, telnet) requeremtransferências 100% fiáveisTemporizaçãoalgumas aplicações (e.g.,telefone sobre a internet -VoIP, jogos interactivos)exigem um pequeno atrasoextremo a extremoaproximadamente constantedurante a sua execuçãoLargura de bandaalgumas aplicações (egaplicações multimedia)requerem um ritmo mínimo detransferência de informaçãopara funcionaremadequadamenteoutras aplicações conseguemusar qualquer largura de bandadisponível em cada instante– Eg. Aplicações “elásticas” comotransferência de ficheiros
  • 23. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática23 Camada de AplicaçãoAplicaçãotransferência ficheirosCorreio electrónicodocumentos Webáudio/vídeo detempo realvideoconferênciaáudio/vídeo gravadojogos interativosMensagemInstantâneaaplicações financeirasPerdasintoleranteintoleranteintolerantetolerantetolerantetoleranteintolerante –sem perdasintoleranteLargura deBandaelásticaelásticaelásticaáudio: 5Kb-1Mbvídeo:10Kb-5Mbcomo anterior> alguns KbpselásticaelásticaSensibilidadetemporal a atrasosnãonãonãosim, 100’s msegsim, alguns segssim, 100’s msegsim e não---A Internet de hoje ainda não dá garantias de Banda e Sensibilidade TemporalRequisitos sobre o Serviço deTransporte de Aplicações Comuns
  • 24. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática24 Camada de AplicaçãoAplicação Internetcorreio electrónicoacesso em terminal remotoWebtransferência de ficheirosstreaming multimediaservidor de ficheiros remotoTelefone sobre InternetProtocolo dacamada de aplicaçãoSMTP [RFC 2821]telnet [RFC 854], sshHTTP [RFC 2616]FTP [RFC 959]HTTP(ex. YouTube), RTPNFSProprietários (Skype)Protocolo detransporte usadoTCPTCPTCPTCPTCP ou UDPTCP ou UDPtipicamente UDPAplicações Internet: protocolos deaplicação e de transporte
  • 25. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática25 Camada de AplicaçãoCamada Aplicação - RevisãoPrincípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)AplicaçõesDistribuidasProcessosProgramação deaplicações de Rede(API dos Sockets)Requisitos sobre osserviços detransporteAplicaçõesDistribuidasProcessosProgramação deaplicações de Rede(API dos Sockets)Requisitos sobre osserviços detransporte
  • 26. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática26 Camada de AplicaçãoWeb (ou www – World Wide Web)Página Web (Web page) é constituida por objectos– Objecto pode ser um ficheiro HTML (que referencia outrosobjectos), imagem JPEG, vídeo-clip, ficheiro de áudio,…– Cada objecto é endereçado por um URL– Se pagina Web tiver texto HTML mais n objectos referenciados (egimagens), então o número total de objectos é n+1Um URL (Uniform Resource Locator) tem duas componentes:“host name” e “path name”www.ist.utl.pt/secretaria/pautas.htmlnome da máquina host / servidor nome do caminho
  • 27. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática27 Camada de AplicaçãoModelo Cliente/Servidor“browser” é 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 transferência de hipertextoProtocolo da camada de aplicação da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616Protocolo da camada de aplicação da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 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 Informática28 Camada de AplicaçãoProtocolo HTTP (cont.)Usa serviço de transporte TCP1. cliente inicia ligação TCP (criaum socket) com o servidor noporto 802. servidor aceita ligação TCP docliente3. mensagens HTTP (mensagensdo protocolo da camada deaplicação) trocadas entrebrowser (cliente HTTP) e oWebServer (servidor HTTP)4. Encerramento da ligação TCPUsa serviço de transporte TCP1. cliente inicia ligação TCP (criaum socket) com o servidor noporto 802. servidor aceita ligação TCP docliente3. mensagens HTTP (mensagensdo protocolo da camada deaplicação) trocadas entrebrowser (cliente HTTP) e oWebServer (servidor HTTP)4. Encerramento da ligação TCPHTTP “não mantem estado”servidor não mantéminformação sobre pedidosanteriores do clienteProtocolos que mantêm “estado” sãocomplexos!história passada (estado) tem que serguardadaCaso o servidor ou o cliente vá abaixo,as visões do “estado” destes podemficar inconsistentes, e devemportanto ser sincronizadasNota
  • 29. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática29 Camada de AplicaçãoLigações HTTPHTTP não persistenteO servidor interpreta o pedido,responde e fecha a ligação TCP– No máximo um objecto é enviadonuma ligação TCP– Mas, na maioria dos casos, usam-sevárias ligações TCP em paraleloIneficiente– Cada transferência é sujeita aoperíodo “slow start” do TCP– Com paralelismo consegue-seaumentar eficiênciaHTTP/1.0 usa HTTP não persistenteHTTP persistenteMúltiplos objectos podem serenviados sobre 1 única ligaçãoTCP entre cliente e servidor– na mesma ligação TCP oservidor responde a váriospedidos– o cliente envia pedidos paratodos os objectosreferenciados na mesmapágina de baseHTTP/1.1 usa ligaçõespersistentes no seu mododefault
  • 30. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática30 Camada de AplicaçãoExemplo: Utilizador introduz o URL: www.ist.utl.pt/dei/index.html1a. Cliente http inicia ligaçãoTCP ao servidor http(processo) www.ist.utl.ptna Porta 80, padrão paraservidor http.1b. servidor http no hostwww.ist.utl.pt espera porligação TCP na porta 80.“aceita” ligação, 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) através dosocket da ligação TCPHTTP com ligação não persistente
  • 31. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática31 Camada de AplicaçãoExemplo de HTTP não persistente (cont.)6. passos 1 a 5 repetidos paracada um dos n objectos jpeg4. servidor httpencerra ligaçãoTCPtempo5. cliente http recebemensagem de resposta aqual contem o ficheiro html,mostra html. No ficheirohtml, encontra referênciaspara n objectos jpeg
  • 32. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática32 Camada de AplicaçãoRTT (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 aligação 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 aligação TCPum RTT para o pedido HTTPe o retorno dos primeirosbytes da resposta HTTPO RTT inclui os atrasostempo paratransmitiro ficheiroIniciar a ligaçãoTCPRTTpedirficheiroRTTficheirorecebido tempo tempoTempo total = 2RTT + tempo de transmissãoModelo do tempo de respostapropqueueproc ,, dddTempo total = 2RTT + tempode transmissão do ficheiro
  • 33. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática33 Camada de AplicaçãoHTTP não persistente – Problemasrequer 2 RTTs para cada objectoSO aloca recursos do host para cadaligação TCPo browser abre com frequêncialigações TCP paralelas para recuperaros objectos referenciadosrequer 2 RTTs para cada objectoSO aloca recursos do host para cadaligação TCPo browser abre com frequêncialigações TCP paralelas para recuperaros objectos referenciados
  • 34. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática34 Camada de AplicaçãoHTTP persistenteo servidor deixa aligação aberta apósenviar a respostaAs mensagensHTTP seguintesentre o mesmocliente/servidor sãoenviadas nestaligaçãoPersistente 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 necessário apenas um RTTpara todos os objectos referenciadosHTTP com ligação persistente
  • 35. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática35 Camada de AplicaçãoFormato 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 docabeçalholinha em branco(carriage return, linefeed) indica o fimdo cabeçalhoASC II - American Standard Code for Information Interchange II256 caracteres codificados em 8 bits (formato legível por pessoas)ASC II - American Standard Code for Information Interchange II256 caracteres codificados em 8 bits (formato legível por pessoas)
  • 36. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática36 Camada de AplicaçãoMensagem de pedido HTTPLinhas doCabeçalho(header lines)Linha depedido(request line)Linha embrancoCorpo damensagem(entity body)formato geral
  • 37. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática37 Camada de AplicaçãoFormato 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 browserNão utilizar ligações persistentesO cliente prefere obter a versãofrancesa do objectoMétodo URL Versão HTTP
  • 38. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática38 Camada de AplicaçãoTipos de métodosHTTP/1.0GET– Utilizador pede um objecto ou enviaformulário no campo URL da linhade pedidoPOST– Utilizador introduz dados na páginaweb preenchendo formulário– Dados enviados no corpo damensagemHEAD– Pede ao servidor para não incluir oobjecto na respostaHTTP/1.0GET– Utilizador pede um objecto ou enviaformulário no campo URL da linhade pedidoPOST– Utilizador introduz dados na páginaweb preenchendo formulário– Dados enviados no corpo damensagemHEAD– Pede ao servidor para não 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 Informática39 Camada de AplicaçãoHTTP/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, código de estado, frase descritiva do estado)linhasdecabeçalhodados, eg ficheiro html (ou imagem, etc) pedidoMensagem HTTP derespostaformatodata em que objecto foicriado ou modificadonúmero de bytes doobjectotipo de objectoservidor que gerou arespostadata em que respostafoi criada no servidor
  • 40. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática40 Camada de AplicaçãoCódigos de estado da resposta HTTP200 OK– sucesso, objecto pedido segue mais adiante nesta mensagem301 Moved Permanently– objecto pedido mudou de lugar, nova localização especificadamais adiante nesta mensagem (cabeçalho Location:)400 Bad Request– mensagem de pedido não entendida pelo servidor404 Not Found– objecto pedido não foi encontrado neste servidor505 HTTP Version Not Supported– versão de http do pedido não usada por este servidorNa primeira linha da mensagem de resposta servidor->clienteAlguns códigos típicos
  • 41. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática41 Camada de AplicaçãoAnalisador de Pacotes de Rede Wireshark –Captura HTTP
  • 42. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática42 Camada de AplicaçãoInteracção utilizador/servidor:AutenticaçãoAutenticação: controlo de acesso aosdocumentos no servidorCredenciais de Autorização: tipicamentenome (username) e senha (password)na linha do cabeçalho do pedidoSem estado (stateless): o clienteapresenta autorização em cada pedido– Linha de cabeçalho Authorization emcada pedido– Sem cabeçalho Authorization, o servidorrecusa o acesso, e responde com ocabeçalho www authenticateo “browser” memoriza a autorização,repetindo-a a cada pedidoAutenticação: controlo de acesso aosdocumentos no servidorCredenciais de Autorização: tipicamentenome (username) e senha (password)na linha do cabeçalho do pedidoSem estado (stateless): o clienteapresenta autorização em cada pedido– Linha de cabeçalho Authorization emcada pedido– Sem cabeçalho Authorization, o servidorrecusa o acesso, e responde com ocabeçalho www authenticateo “browser” memoriza a autorização,repetindo-a a cada pedidocliente servidormsg pedido http401 authorization reqwww authenticatemsg pedido httpauthorization <cred>resposta normal httpmsg pedido httpauthorization <cred>resposta normal httptempo
  • 43. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática43 Camada de AplicaçãoCookies: manutenção do “estado” da ligaçãoExemplo:Ana surfa na Internetsempre do mesmo PCEla visita um site específicode comércio electrónicopela primeira vezQuando os pedidos iniciaisHTTP chegam ao site Web,este cria um identificador(ID) único e cria tambémuma entrada para o ID nasua Base de DadosExemplo:Ana surfa na Internetsempre do mesmo PCEla visita um site específicode comércio electrónicopela primeira vezQuando os pedidos iniciaisHTTP chegam ao site Web,este cria um identificador(ID) único e cria tambémuma entrada para o ID nasua Base de DadosPermitem que sites identifiquem e monitorizem os seus utilizadoresVários sites Web usam cookiesQuatro componentes:1. linha de cabeçalho do cookie namensagem de resposta HTTP– Set-cookie: 16782. linha de cabeçalho do cookie namensagem de pedido HTTP– Cookie: 16783. ficheiro de cookies mantido namáquina do utilizador e gerido pelobrowser deste– armazenado no disco rígido comdados do utilizador4. Base de Dados (BD) de apoio nosite Web
  • 44. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática44 Camada de AplicaçãoCookies: manutenção do “estado” (cont.)cliente servidormsg pedido httpresposta http +Set-cookie: 1678msg pedido httpcookie: 1678resposta httpmsg pedido httpcookie: 1678resposta httpservidor valida o“cookie”Acção específicado cookieacçãoespecíficado 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 Informática45 Camada de AplicaçãoCookies (continuação)O que os cookies podem fazer:Autorização após armazenaro registo da pessoaRegisto da lista de comprasno E-commerceSugestões – recomendarprodutosestado da sessão doutilizador (Web email) –identificação do utilizadorCookies armazenam coisasque utilizador acedeu, etambém info este nunca viuCookies e privacidade:cookies permitem que os sitesaprendam muito sobre o utilizadormecanismos de busca usamredirecionamento e cookies paraaprender ainda mais sobreutilizadoragências de publicidade obtêmperfil de utilizadores a partir dossites visitados e oferecem a estesprodutos de forma agressiva (egDoubleClick)Nota
  • 46. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática46 Camada de AplicaçãoCache Web (servidor proxy)O utilizador configura o“browser” para aceder a webvia “web cache”Todos os pedidos http sãoenviados à “web cache”– se o objecto existe na “webcache” o pedido éimediatamente satisfeito– caso contrário a “web cache”cria ligação TCP com oservidor origem, consultaeste, e memoriza o objectoretornado na resposta (parafutura utilização)e responde ao pedido docliente na ligação 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 Informática47 Camada de AplicaçãoCaches WebCache actua tanto como clientequanto como servidorGuarda as suas próprias cópiasdos objectos no seu própriosistema de armazenamentoTipicamente a cache é instaladapor um ISP (universidade,empresa, ISP residencial)Redução do tempo de respostapara os pedidos do clienteRedução do tráfego no canal deacesso de uma instituiçãoA Internet cheia de cachespermitem que provedores deconteúdo “pobres” efectivamenteforneçam conteúdo!!!!!Redução do tempo de respostapara os pedidos do clienteRedução do tráfego no canal deacesso de uma instituiçãoA Internet cheia de cachespermitem que provedores deconteúdo “pobres” efectivamenteforneçam conteúdo!!!!!Quais as vantagens da Web Cache?
  • 48. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática48 Camada de AplicaçãoExemplo de cache Servidores de origemInternetpúblicaRede dainstituição LAN 10 Mbpsligação de acesso1,5 MbpsHipótesesTamanho médio dos objectos = 100k bitsTaxa média de solicitações dos browsers deuma instituição para os servidores originais = a= 15/segAtraso do roteador institucional para qualquerservidor origem e de volta ao roteador = 2segConsequênciasUtilização da LAN = aL/R = 15/seg x 100Kb /10Mbps=15%Utilização 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 Informática49 Camada de AplicaçãoExemplo de cache- Solução de UpgradeSolução PotencialAumento da largura de banda do canalde acesso para, por exemplo, 10 MbpsConsequênciasUtilização da LAN = 15%Utilização do canal de acesso = 15%Atraso total = atraso da Internet + atrasode acesso + atraso na LAN =2 seg + msegs + msegsFrequentemente esta é uma ampliaçãocara– Requer upgrade da ligação da instituiçãoà internetServidores de origemInternetpúblicaRede dainstituição LAN 10 Mbpsligação de acesso10 Mbps
  • 50. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática50 Camada de AplicaçãoExemplo de cache- Uso de uma Web CacheInstalação de uma cacheAssumir que a taxa de reutilização seja de 0,4(tipicamente entre 0,2 e 0,7)Consequências40% dos pedidos serão atendidos quaseimediatamente60% dos pedidos serão servidos pelosservidores de origemUtilização do canal de acesso é reduzido para60%, resultando em atrasos desprezíveis– 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 origemInternetpúblicaRede dainstituição LAN 10 Mbpsligação de acesso1,5 Mbpscache institucional
  • 51. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática51 Camada de AplicaçãoInteracção utilizador/servidor:GET condicionalObjectivo: evitar atransmissão de um objectoque existe memorizado nocliente (na cache)Cliente: especifica a datada cópia que possui namensagem requestIf-modified-since: <date>Servidor: a resposta nãoinclui o objecto se o clienteo tem actualizadoHTTP/1.0 304 Not ModifiedObjectivo: evitar atransmissão de um objectoque existe memorizado nocliente (na cache)Cliente: especifica a datada cópia que possui namensagem requestIf-modified-since: <date>Servidor: a resposta nãoinclui o objecto se o clienteo tem actualizadoHTTP/1.0 304 Not Modifiedcliente servidormsg de pedido httpIf-modified-since:<date>resposta httpHTTP/1.0304 Not ModifiedObjecto nãomodificadomsg de pedido httpIf-modified-since: <date>resposta httpHTTP/1.1 200 OK<data>Objectomodificado
  • 52. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática52 Camada de AplicaçãoA Web e o HTTP - RevisãoPrincípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)A Web e o ProtocoloHTTPModelo do tempo derespostaHTTP persistente enão persistenteFormato demensagens HTTP– Pedido– RespostaCookiesWeb CachesGET CondicionalA Web e o ProtocoloHTTPModelo do tempo derespostaHTTP persistente enão persistenteFormato demensagens HTTP– Pedido– RespostaCookiesWeb CachesGET Condicional
  • 53. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática53 Camada de AplicaçãoTransferência de ficheiros - FTPTransferência de ficheiros de/para um computador remotoModelo cliente/servidor– cliente: inicia a transferência– servidor: computador remoto (Servidor ftp: porto 21)Transferência de ficheiros de/para um computador remotoModelo cliente/servidor– cliente: inicia a transferência– servidor: computador remoto (Servidor ftp: porto 21)transferênciado ficheiro ServidorFTPInterfaceFTP doutilizadorclienteFTPsistema deficheiros localsistema deficheiros remotoUtilizadorna máquina[RFC 959]
  • 54. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática54 Camada de AplicaçãoSeparação das ligações de dados e decontroloO cliente FTP contacta o servidorFTP especificando o protocolo detransporte TCP e o porto 21São criadas ligações TCP em paralelo “out of band control”:– controlo: troca de comandos e respostas entre o cliente eo servidor.Persistente – sempre aberta durante a sessão do utilizador.Envio de informação de autorizaçãoConsulta da directoria remotaEnvio de comandos put e get– dados: transferência de dados (ficheiros) entre o cliente eo servidor. Uma ligação TCP por cada ficheiro a enviaro após a transmissão de um ficheiro o servidor fecha a ligaçãoO servidor FTP mantém o estado em cada sessão– identificação do utilizador, directoria actual– limite do nº de sessões paralelasclienteFTPservidorFTPLigação de controloTCP, porto 21Ligação de dadosTCP, porto 20
  • 55. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática55 Camada de AplicaçãoFTP: 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 código e frase destatus (como no http)331 Username OK,password required125 data connection alreadyopen; transfer starting425 Can’t open dataconnection452 Error writing fileCR e LF terminam cada comando
  • 56. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática56 Camada de AplicaçãoWireshark – Captura FTP
  • 57. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática57 Camada de AplicaçãoTransferência de Ficheiros - RevisãoPrincípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Separação dasligações no FTP– Controlo– DadosFTP: Comandos eRespostasSeparação dasligações no FTP– Controlo– DadosFTP: Comandos eRespostas
  • 58. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática58 Camada de AplicaçãoTrês componentes principaisagentes de utilizadorservidores de correioprotocolo de transferência demensagens SMTP - Simple MailTransfer Protocolcaixa de correio(mailbox)do utilizadorfila demensagens de saídaCorreio ElectrónicoServidor demensagensSMTPSMTPSMTPagente deutilizadorServidor demensagensServidor demensagensagente deutilizadoragente deutilizador agente deutilizadoragente deutilizadoragente deutilizadorAgente de UtilizadorInterface para compor, modificar eler mensagens de correio electrónico– leitor de mensagens (mail reader)– e.g. Eudora, Outlook, elm, NetscapeMessengerMensagens que chegam ou a serenviadas são armazenadas noservidor
  • 59. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática59 Camada de AplicaçãoServidor de Correio ElectrónicoComponentesCaixa do correio (“Mailbox”)que contém as mensagensdo utilizador ainda não lidasFila de mensagens de saídapara as que ainda nãoforam enviadasImplementação do protocoloSMTP (push- envio demensagem) paracomunicação 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 Informática60 Camada de AplicaçãoSMTP“Simple Mail Transfer Protocol”[RFC 2821]Endereço de e-mail: meu.nome@ist.utl.ptNome local Nome do ServidorUsa o protocolo de transporte TCP para transferência fiável de mensagensModelo cliente/servidor– ao servidor corresponde o porto 25Transferência directa entre emissor e receptorTrês fases na comunicação entre cliente e servidor– apresentação (“handshaking”)– transferência de mensagens– fecho da ligaçãoInteracção na forma de comando - resposta– comando: texto ASCII– resposta: código de status e frase explicativaAs mensagens têm de ser formadas em ASCII de 7-bits
  • 61. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática61 Camada de AplicaçãoCenárioAlice envia mensagem para Bobuseragentmailservermailserver useragentCliente SMTP Servidor SMTPSMTPcaixa de correio(mailbox)do utilizadorfila demensagens de saída22) Alice envia a mensagem para o seuservidor de mensagens- a mensagem é colocada na fila33) O lado cliente do SMTP abre umaligação TCP com o servidor demensagens do Bob11) Alice compõe uma mensagempara bob@someschool.edu44) Caso consiga a ligação, o cliente SMTPenvia a mensagem de Alice através daligação 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 Informática62 Camada de AplicaçãoExemplo de interacção SMTPS: 220 doces.ptC: HELO consumidor.ptS: 250 Hello consumidor.pt, pleased to meet youC: MAIL FROM: <ana@consumidor.pt>S: 250 ana@consumidor.pt... Sender okC: RCPT TO: <rita@doces.pt>S: 250 rita@doces.pt ... Recipient okC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Gostas de chocolate?C: Durante a abertura da nossa loja, são gratuitos!C: .S: 250 Message accepted for deliveryC: QUITS: 221 doces.pt closing connectionLinhas enviadas por cliente e servidor para o seu socket TCP, após ligação estabelecida• Cliente C (envia msg correio) – 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT• Serviror S (recebe msg correio) – respostas: código e explicações(opcionais)Linhas enviadas por cliente e servidor para o seu socket TCP, após ligação estabelecida• Cliente C (envia msg correio) – 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT• Serviror S (recebe msg correio) – respostas: código e explicações(opcionais)Váriasmensagenspodem serenviadas entreservidores decorreio numaúnica ligaçãoMAIL FROM.MAIL FROM.Códigos deexplicaçãosão opcionaisCliente enviaendereço decorreio dodestinatárioCliente enviaendereço decorreio doremetenteCRLF.CRLFpara servidorreconhecer ofinal da msg
  • 63. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática63 Camada de AplicaçãoSMTPResumo e Comparação com HTTPUsam ambos interacção de comando / resposta em ASCIITransferem ficheiros usando ligações persistentesMúltiplos objectos podem constituir umaúnica 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 ecabeçalho) seja em ASCII de 7-bits– dados binários (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 Informática64 Camada de AplicaçãoFormato das MensagensO protocolo SMTP não 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: <ana@consumidor.pt>S: 250 ana@consumidor.pt... Sender okC: RCPT TO: <rita@doces.pt>S: 250 rita@doces.pt ... Recipient okC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Gostas de chocolate?C: Durante a abertura da nossa loja, são gratuitos!C: .S: 250 Message accepted for deliveryC: QUITS: 221 doces.pt closing connectioncabeçalhocorpolinhaembrancoAs mensagens de texto são normalizadas pelo RFC 822Linhas de cabeçalhoobrigatóriasLinhas de cabeçalhoopcionaisCabeçalho, por e.g.– To: <valor>– From: <valor>– Subject: <valor>– ...diferentes dos comandos de smtp!Corpo da mensagem– a “mensagem”, em caracteres ASCII
  • 65. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática65 Camada de AplicaçãoFormato das Mensagens:Extensões MultimédiaFrom: ana@consumidor.brTo: bernardo@doces.brSubject: Imagem de uma bela tortaMIME-Version: 1.0Content-Transfer-Encoding: base64Content-Type: image/jpegbase64 encoded data ....................................base64 encoded dataMIME – 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 SMTPDadosmultimédiatipo, subtipo,parâmetrosMétodo usadopara codificardadosversão MIME(1) Linhas adicionais no cabeçalho para declarar o tipo do conteúdo MIME(1)Dadoscodificados(2) Permite dados que não são ASCII (SMTP usa formato ASCII de 7 bits)(2)Exemplo imagem JPEGRecepor 1º usa Content-Transfer-Encoding paradescodificar ASCII parabinário, e depois Content-Type para uma aplicaçãode descompressão JPEG
  • 66. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática66 Camada de AplicaçãoTipos MIMETextexemplos de subtipos: plain,htmlcharset=“iso-8859-1”, asciiImageexemplos de subtipos: jpeg, gifVideoexemplos de subtipos: mpeg,quicktimeAudioexemplos de subtipos: 32kadpcm (codificação 32kbps), basic (8-bit mu-law)Applicationdados que têm de serprocessados por umaaplicaçãoexemplos de subtipos:msword, octet-streamContent-Type: tipo/subtipo; parâmetros
  • 67. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática67 Camada de AplicaçãoFrom: rita@doces.ptTo: bruno@hamburger.eduSubject: 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 “Multipart”Received: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMTFrom: rita@doces.ptTo: bruno@hamburger.eduSubject: 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” – RecepçãoReceived: 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: rita@doces.ptTo: bruno@hamburger.eduSubject: 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 cabeçalho 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 Informática68 Camada de AplicaçãoProtocolos de acesso ao e-mailSMTP: 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 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 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) enviavadirectamente mensagens de correio ao servidor de e-mail do receptor...– Não seria possível o servidor de e-mail do remetente continuar a tentar enviar mensagem se o servidor dee-mail do receptor estivesse em baixo
  • 69. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática69 Camada de AplicaçãoPost Office Protocolv.3 (POP3)(1) Fase de autorizaçãocomandos do cliente– user: username– pass: passwordrespostas do servidor– +OK– -ERR (problema com comando anterior)(2) Fase de transferência, cliente:list: lista os números e tamanho das msgsretr: transfere msg pelo númerodele: apaga msgquit: termina a sessão POP3(3) Fase de Actualização (update)servidor de correio apaga mensagensmarcadas para remoçãoC: listS: 1 498S: 2 912S: .C: retr 1S: <message 1 contents>S: .C: dele 1C: retr 2S: <message 2 contents>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 máquina actualApós cliente abrir ligação TCP no servidor de e-mail usando o porto 110
  • 70. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática70 Camada de AplicaçãoPOP3 (cont.)Agente de utilizador pode serconfigurado pelo utilizadorO exemplo anterior usa omodo “download e delete”.– Bob não pode reler asmensagens se mudar decliente“Download-e-mantenha”:copia as mensagens emclientes diferentesPOP3 não mantém estadoentre ligações– Só mantém estado na mesmasessão do utilizador, não entresessões diferentes doutilizador– Simplifica bastante aimplementação do servidorPOP3Protocolo muito simples– Porém de funcionalidadelimitada[RFC 1939]
  • 71. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática71 Camada de AplicaçãoIMAP e HTTPProtocolos de AcessoIMAP [RFC 2060]Mantém 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 mantém o estado do utilizadorentre sessões:– nomes das pastas e mapeamentos entre asIDs das mensagens e o nome da pastaPermite obter apenas componentes demensagens– Linhas de cabeçalho– Uma parte de uma mensagem multipart– E.g. Obter mensagem de texto semdescarregar imagem numa ligação 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 manipulação de mensagensno servidor remoto (como o IMAP)– Numa implemantação alternativa oservidor HTTP usa um servidor IMAPpara fornecer a funcionalidade de pastas
  • 72. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática72 Camada de AplicaçãoCorreio Electrónico - RevisãoPrincípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Componentes doCorreioElectrónicoSMTPFormato dasMensagens– ExtensõesMultimédiaProtocolos deacesso ao e-mail– POP3, IMAP, HTTPComponentes doCorreioElectrónicoSMTPFormato dasMensagens– ExtensõesMultimédiaProtocolos deacesso ao e-mail– POP3, IMAP, HTTP
  • 73. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática73 Camada de AplicaçãoDNS: Domain Name SystemComo fazer o mapeamento entre os endereços IP e nome da máquina?Pessoas: muitos identificadores:– BI, nome, nº passaporteSistemas terminais da Internet, routers– Endereço IP (32 bit)Usado simultaneamente paraendereço de datagramas e comoidentificador– “Nome”, e.g., ww.yahoo.com –usado pelos seres humanosDNS: 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 FTPOs servidores de nomes funcionam, em geral, como cliente e servidor– estão normalmente em máquinas 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 Aplicação quepermite máquinas interrogarem a Basede Dados para resolverem nomes– Função core da Internet, implementadanum protocolo da camada aplicação– Complexidade na fronteira da redeDNS: Domain Name SystemBase de Dados Distribuidaimplementada como uma Hierarquia demuitos Servidores de nomesProtocolo da Camada Aplicação quepermite máquinas interrogarem a Basede Dados para resolverem nomes– Função core da Internet, implementadanum protocolo da camada aplicação– Complexidade na fronteira da rede
  • 74. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática74 Camada de AplicaçãoServiços e EscalabilidadePorque não centralizar oDNS?ponto único de falhavolume de tráfegobase de dadoscentralizada distantemanutençãoNão é escalável!nenhum sevidor temtodos os mapeamentosde nome paraendereço IPServiços DNS(principal) Translação do nome damáquina para endereço IPHost aliasing (ou nome alternativo)– Nome Real vs Alias– DNS pode também ser invocado com onome alias para pedir o nome realAliasing de Servidor de CorreioDistribuição de Carga– Replicação de Servidores Web – conjuntode endereços IP para um nome real– Servidor responde com todos osendereços IP que mapeiam ao nome masroda a ordem a cada pedido
  • 75. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática75 Camada de AplicaçãoDNS: Exemplo de Distribuição deCarga
  • 76. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática76 Camada de AplicaçãoTipos de Servidores de NomesServidores de Nomes Locais– Cada máquina, para conhecer um mapeamento nome/endereço começa porinterrogar o seu servidor local– Em geral, cada ISP tem um servidor de nomes localTambém 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 não consegue resolver um pedidoServidores 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, jpServidores de Nomes Oficial “Authoritative Name Servers”– Cada organização com máquinas de acesso público tem um servidor de nomesoficial onde a tradução nome/endereço está armazenada obrigatoriamentePara um sistema terminal: guarda o nome, endereço IPPode executar a tradução nome/endereço para este sistema terminal
  • 77. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática77 Camada de AplicaçãoRoot 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 Hierárquicab 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 Informática78 Camada de AplicaçãoBrowser extrai gaia.cs.umass.edu1. Máquina contacta o seu servidor denomes local dns.eurecom.frcom query gaia.cs.umass.edu2. Se for necessário, servidor local denomes dns.eurecom.fr contacta umservidor de nomes raiz3. Se for necessário o servidor denomes raiz contacta um servidor denomes de nível topo dns.edu4. Se for necessário o servidor denomes de nível topo contacta oservidor de nomes oficial“authoritative” dns.umass.edu5. (6, 7 e 8) Servidor de nomes“authoritative” retorna endereço IPde gaia.cs.umass.edu de voltaProcedimentoRecursivorequesting hostsurf.eurecom.fr gaia.cs.umass.eduroot name serverlocal name serverdns.eurecom.fr127authoritative name serverdns.umass.edu83456A máquinasurf.eurecom.frpretende o endereço IPcs.umass.eduColoca o esforço da resolução de nomes no servidor de nomes contactadoO servidor de nomes de nível topo pode não conhecer o endereço doservidor oficial, mas de um servidor intermédio 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 Informática79 Camada de Aplicação1. Máquina contacta o seu servidor denomes local dns.eurecom.fr2. Se for necessário, 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 nível 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 don’t know this name, but ask this server”Cada servidor de nomes apenas fornece o endereço do próximo 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 Informática80 Camada de AplicaçãoDNS: Caches e Actualização dosRegistosAssim que um servidor de nomes recebe um mapeamento nome/IP,armazena-o em cache– Redução do número de mensagens na internet– Maior eficiência no mapeamento– As entradas da cache têm um temporizador (timeout) pelo quesão removidas após um certo tempo (e.g. dois dias)– TLD servers são tipicamente colocados em cache nosServidores de Nomes LocaisAssim, os servidores de nomes raiz não são visitados comfrequênciaAssim que um servidor de nomes recebe um mapeamento nome/IP,armazena-o em cache– Redução do número de mensagens na internet– Maior eficiência no mapeamento– As entradas da cache têm um temporizador (timeout) pelo quesão removidas após um certo tempo (e.g. dois dias)– TLD servers são tipicamente colocados em cache nosServidores de Nomes LocaisAssim, os servidores de nomes raiz não são visitados comfrequência
  • 81. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática81 Camada de AplicaçãoRegistos DNSCada resposta DNS contém 1 ou mais Registo de Recursos “Resource Records” (RR)Type=NS– nome - dominio (e.g. foo.com)– valor - endereço IP doservidor de nomes“authoritative” que sabecomo obter o IP demáquinas 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 - endereço IPType=CNAME– nome - nome alternativo para umadada máquina, e.g.www.ibm.com é de factoservereast.backup2.ibm.com– valor - nome real da máquinaType=MX– valor - nome da máquina servidorde correio associada com nomeInserção de registos no DNSSupõe que crias um novo domínio, foo.com(foo.com, dns1.foo.com, NS)(dns1.foo.com, 212.212.212.1, A)(foo.com, mail.foo.com, MX)(mail.foo.com, 212.212.211.23, A)Inserção de registos no DNSSupõe que crias um novo domínio, foo.com(foo.com, dns1.foo.com, NS)(dns1.foo.com, 212.212.212.1, A)(foo.com, mail.foo.com, MX)(mail.foo.com, 212.212.211.23, A)RR armazenados em cache no servidor DNS – de acordo com time to live (ttl)
  • 82. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática82 Camada de AplicaçãoMensagens do Protocolo DNSAs mensagens pergunta e resposta têm 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 authoritativeserversInformação adicional deajuda que pode ser utilizada
  • 83. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática83 Camada de AplicaçãoServiço de nomes da Internet - RevisãoPrincípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço de nomes da Internet– DNS: Domain Name System protocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dos protocolosda camada de aplicaçãoA Web e o HTTP (Hypertext TransferProtocol)Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail Transfer Protocol,POP3, IMAPServiço 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 Informática84 Camada de AplicaçãoP2P file sharing – Pesquisa emDirectório CentralizadoDesenho original do “Napster”1. Registo– Peer liga-se e informa servidor centralDo seu endereço IPConteúdo– e.g. Lista de ficheiros MP32. Pedido– Alice pede a canção “Hey Jude”3. Transferência de dados– Alice pede ficheiro a BobServidor dedirectóriocentralizadopeersAliceBob111123Transferência de dadosRegistoPedidoProblemasPonto único de falhaEstrangulamento de desempenhoInfracções de direitos de autorProblemasPonto único de falhaEstrangulamento de desempenhoInfracções de direitos de autorTransferência de ficheiro é descentralizada, mas alocalização de conteúdos é centralizada
  • 85. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática85 Camada de AplicaçãoPesquisa sem Directório“Query flooding”: GnutellaTotalmente distribuido– sem servidor central– sem hierarquiaUsa nó de arranque paraconhecer outros nósVários clientes Gnutellaimplementam o protocolo, queé de dominio publicoJuntar a um par (mensagem de associação)Para o par X se juntar tem que acharoutro par já na rede Gnutellapara tal usa uma lista de pares candidatosX tenta estabelecer ligações TCP deforma sequencial com pares na lista atéconseguir ligação com YX envia uma mensagem Ping a YY reencaminha a mensagem PingTodos os pares Z que recebem a msgPing respondem com mensagem PongEsta contém o endereço IP de Z, númeroe tamanho dos ficheiros partilhados por ZX recebe muitas mensagens Pongpode estabelecer ligações TCP adicionaisAssociação
  • 86. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática86 Camada de AplicaçãoQueryQueryHitQueryQueryQueryHitQueryQueryQueryHitTransferência de ficheiro: HTTPfora da rede sobrepostaMensagem de pedido “Query”enviada sobre as ligações TCPInclui keywords descritivas doconteúdo 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 “Query”enviada sobre as ligações TCPInclui keywords descritivas doconteúdo 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 – Inundação de pedidosde raio (alcance) limitado (e.g. 7)
  • 87. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática87 Camada de AplicaçãoVantagensSimplesAltamentedescentralizadoO mais dificil de “desligar”Pares têmresponsabilidadessemelhantes: não hálideres de grupoNenhum par mantéminformação de directórioDesvantagensTráfego de pedidos excessivoRaio de alcance limitado dopedido: pode não encontrar oconteúdo quando este existeNó de arranqueManutenção da rede sobrepostaInundação de PedidosEscalabilidade Limitada:Inundação da rede (flooding)Escalabilidade Limitada:Inundação da rede (flooding)
  • 88. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática88 Camada de AplicaçãoKaZaA: Pesquisa emDirectório DistribuídoNó de arranque– Cada par é um lider de grupo, ouestá associado a um líder de grupo– O lider de grupo conhece oconteúdo de todos os seus filhosLigação TCP entre par e o seulíder de grupoLigações TCP entre pares delideres de grupoRede sobreposta, hierárquica– Pares são nós– Arcos entre pares e o seu líder degrupo– Arcos entre alguns pares de líderesde grupos– Vizinhos virtuaisPar líder de grupoPar na redePar na redePar líder de grupoRelações entrevizinhos na redesobreposta.hierárquicaJunta conceitos do Napster e Gnutella• Explora a heterogeneidade dos nós
  • 89. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática89 Camada de AplicaçãoKaZaA: DescriçãoIdentificação dos ficheiros– Hash– DescriptorNome do ficheiroDescrição textual não estruturadaCliente envia keywords ao líder de grupoLíder de grupo responde c/ lista de parescuja descrição corresponde às keywords– Enviando: metadata, hash, endereço IPSe o líder de grupo reencaminha pedido aoutros líderes de grupo, estes respondemcom correspondênciasCliente selecciona ficheiros para download– Pedido HTTP usa hash como identificador,é enviado aos pares que contêm o ficheiroCifra as mensagens de controlo– mas não as de dadosVantagensNão há servidor de directóriocentralizado– Serviço de localizaçãodistribuido pelos pares– Mais dificil de desactivarRede sobreposta hierárquica– Maior alcançe dos pedidosDesvantagensNecessários nós de arranqueLíderes de grupo podem sersobrecarregadosTruquesLimites nos uploads simultâneosPôr pedidos em filasPrioridade por incentivosDownloads paralelos
  • 90. Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática90 Camada de AplicaçãoPartilha de Ficheiros Peer-to-Peer(P2P) – RevisãoPrincípios e caracteristicas dosprotocolos da camada aplicaçãoA Web e o HTTP (HypertextTransfer Protocol)Transferência de Ficheiros (FileTransfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail TransferProtocol, POP3, IMAPServiço de nomes da Internet– DNS: Domain Name SystemprotocolPartilha de Ficheiros Peer-to-Peer (P2P)Princípios e caracteristicas dosprotocolos da camada aplicaçãoA Web e o HTTP (HypertextTransfer Protocol)Transferência de Ficheiros (FileTransfer)– File Transfer Protocol (FTP)Correio Electrónico– SMTP: Simple Mail TransferProtocol, POP3, IMAPServiço 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 Webtemporário– Todos os peers são servidores= facilmente escalável !Napster - Pesquisa emDirectório CentralizadoPesquisa sem Directório“Query flooding”: GnutellaKaZaA Pesquisa em DirectórioDescentralizadoP2P File sharing– Um peer é tanto um clienteWeb como um servidor Webtemporário– Todos os peers são servidores= facilmente escalável !Napster - Pesquisa emDirectório CentralizadoPesquisa sem Directório“Query flooding”: GnutellaKaZaA Pesquisa em DirectórioDescentralizado