2 aplicacao 2010

Download 2 aplicacao 2010

Post on 25-Jun-2015

134 views

Category:

Documents

2 download

Embed Size (px)

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