Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Redes de Computadores Unidade II – Camada de Aplicação Prof Sergio Cardoso ssilva@unicarioca.edu.br 2Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 2 Camada de aplicação ▪ Nossos objetivos: ➢ Entender os aspectos conceituais e de implementação de protocolos de aplicação de redes ➢ Entender sobre as arquiteturas de aplicação ❑ Paradigma cliente-servidor ❑ Paradigma peer-to-peer ➢ Entender como definir os modelos de serviço da camada de transporte ➢ Aprender sobre protocolos de camada de aplicação examinando protocolos usuais o HTTP o FTP o SMTP/ POP3/ IMAP o DNS 3Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 3 4 Aplicação de Rede ▪ Um processo é um programa que executa num hospedeiro. ➢ 2 processos no mesmo hospedeiro se comunicam usando comunicação entre processos definida pelo sistema operacional (SO). ➢ 2 processos em hospedeiros distintos se comunicam usando um protocolo da camada de aplicação. ▪ Um agente de usuário (UA) é uma interface entre o usuário “acima” e a rede “abaixo”. ➢ Implementa o protocolo da camada de aplicação ➢ WWW: browser ➢ Correio: leitor/compositor de mensagens ➢ streaming de áudio/vídeo: tocador de mídia Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 4 5 Canais lógicos ▪ Comunicação aplicação-aplicação através de um caminho ou túnel ▪ Os processos realizam a comunicação através de um canal abstrato Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 5 6 Aplicações e protocolos da camada de aplicação Aplicação: processos distribuídos em comunicação ➢ p.ex., correio, Web, compartilhamento de arquivos P2P, mensagens instantâneas ➢ executam em hospedeiros no “espaço de usuário” ➢ trocam mensagens para implementar a aplicação Protocolos da camada de aplicação ➢ uma “parte” da aplicação ➢ define mensagens trocadas por aplicações e ações tomadas ➢ usam serviços providos por protocolos da camada inferior (TCP, UDP) Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 6 7 Camada de aplicação Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 7 8 Protocolos de camada de aplicação TCP/IP Protocolo de serviço de nome de domínio (DNS) - utilizado para resolver nomes de Internet a endereços IP. Telnet - um protocolo de simulação de terminal que é utilizado para fornecer acesso remoto a servidores e dispositivos de rede. Protocolo bootstrap (BOOTP) - um precursor do protocolo DHCP, um protocolo de rede usado para obter informações de endereço IP durante a inicialização Protocolo de Controle Dinâmico de Host (DHCP) - usado para atribuir um endereço IP, a máscara de sub-rede, o gateway padrão e o servidor DNS a um host Protocolo HTTP - usado para transferir arquivos que compõem as páginas Web da World Wide Web. Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 8 9 Protocolos de camada de aplicação TCP/IP File Transfer Protocol (FTP) - usado para transferência interativa de arquivos entre sistemas Protocolo de Transferência Trivial de Arquivo (TFTP) - usado para a transferência sem conexão de arquivo ativo Protocolo SMTP - usado para transferência de mensagens e anexos de e-mail. Protocolo POP - usado por clientes de e-mail para recuperar e-mail de um servidor remoto Protocolo de acesso a mensagens de Internet (IMAP) - outro protocolo para a recuperação do e-mail Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 9 10Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 10 Criando uma nova aplicação de rede ▪ Escrever programas que ➢ Executem em diferentes sistemas finais e ➢ Se comuniquem através de uma rede. ❑ Ex.: Web – software de servidor Web se comunicando com software do browser. ▪ Não é preciso escrever software para dispositivos do núcleo da rede ➢ dispositivos do núcleo da rede não executam aplicações do usuário ➢ as aplicações nos sistemas finais permitem rápido desenvolvimento e propagação 11 Definições de protocolo da camada de aplicação ▪ Devem definir ➢ tipos de mensagens trocadas ❑ Por exemplo, mensagens de requisição e de resposta ➢ sintaxe da mensagem: ❑ que campos nas mensagens e como os campos são delineados ➢ semântica da mensagem ❑ significado da informação nos campos ➢ regras de quando e como os processos enviam e respondem a mensagens Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 11 12 Requisitos ▪ Desenvolvedor de aplicações deve: ➢ Definir arquitetura da aplicação ➢ Verificar os requisitos que a aplicação necessita: ❑ Atraso ❑ Taxa de transmissão ❑ Etc.... ➢ Escolher serviço de transporte Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 12 13 Arquiteturas de aplicação ▪ Cliente-servidor ➢ Incluindo centros de dados/cloud computing ▪ Peer-to-peer (P2P) ▪ Híbrida de cliente-servidor e P2P Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 13 14Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 14 Arquitetura cliente-servidor ▪ Clientes: ➢ inicia contato com o servidor (“fala primeiro”) ➢ tipicamente solicita serviço do servidor ❑ para Serviço Web, o cliente está implementado no browser ❑ para correio no leitor de mensagens ➢ Pode ser conectado intermitentemente ➢ Pode ter endereço IP dinâmico ➢ Clientes não se comunicam diretamente uns com os outros ▪ Servidor: ➢ Hospedeiro sempre ligado ➢ provê ao cliente o serviço requisitado ❑ servidor WWW envia página solicitada; ❑ servidor de correio entrega mensagens ➢ Endereço IP permanente ➢ Fornece serviços solicitados pelo cliente ❑ Server farms por expansão 15Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 15 Modelo Cliente Servidor 16 Arquitetura cliente-servidor Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 16 17 Arquitetura cliente-servidor Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 17 18Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 18 Cliente-Servidor ▪ Vantagens ➢ Segurança ➢ Controle central de arquivos ➢ Servidores dedicados e otimizados ➢ Os usuários não se preocupam com a administração ▪ Desvantagens ➢ Custo ❑ Hardware ❑ Software ➢ É necessário um administrador ➢ Baixa escalabilidade ➢ Baixa disponibilidade 19Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 19 Arquitetura P2P pura ▪ Nenhum servidor está sempre ligado ▪ Sistemas finais arbitrários se comunicam diretamente ▪ Pares são conectados intermitentemente e mudam endereços IP Altamente escaláveis mas difíceis de administrar 20 Redes Ponto-a-Ponto (P2P) Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 20 Ambos os dispositivos são considerados iguais em comunicação As funções de cliente e servidor são definidas de acordo com a solicitação. 21 Redes Ponto-a-Ponto (P2P) Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 21 Cliente e servidor na mesma comunicação Ambos podem iniciar uma comunicação e são considerados iguais no processo de comunicação. 22Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 22 Peer-to-Peer ▪ Vantagens ➢ Sem investimento extra com servidores ➢ Alta escalabilidade ➢ Alta disponibilidade ➢ Sem administrador ▪ Desvantagens ➢ Sem organização central ❑ Difícil localização de arquivos ❑ Duplicações desnecessárias ➢ Os usuários são os administradores ➢ Sem segurança 23Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 23 Híbrida de cliente-servidor e P2P ▪ Integra os conceitos da arquitetura cliente servidor com P2P ➢ Cliente Servidor ❑ Normalmente um servidor para autenticação e localização ➢ P2P ❑ Depois de localizado, troca direta entre os pares▪ Exemplo ➢ Skype ❑ aplicação P2P voice-over-IP P2P ❑ servidor centralizado: achando endereço da parte remota: ❑ conexão cliente-cliente: direta (não através de servidor) ➢ Mensagem instantânea ❑ bate-papo entre dois usuários é P2P ❑ serviço centralizado: detecção/localização da presença do cliente o usuário registra seu endereço IP com servidor central quando entra on-line o usuário contata servidor central para descobrir endereços IP dos parceiros 24Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 24 Comunicação de processos ▪ Processo: programa executando num hospedeiro ➢ Dentro do mesmo hospedeiro: ❑ dois processos se comunicam usando comunicação interprocesso (definido pelo Sistema Operacional) ➢ Processos em diferentes hospedeiros se comunicam por meio de troca de mensagens ❑ Processo cliente: o processo que inicia a comunicação ❑ Processo servidor: o processo que espera para ser contatado Nota: aplicações com arquiteturas P2P possuem processos cliente e processos servidor 25Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 25 Sockets ▪ Um processo envia/recebe mensagens para/de seu socket ▪ É a interface de comunicação entre a camada de aplicação e camada de transporte ▪ O socket é análogo a uma porta ➢ O processo de envio “empurra” a mensagem para fora da porta ➢ O processo de envio confia na infraestrutura de transporte no outro lado da porta que leva a mensagem para o socket no processo de recepção. 26 Endereçando processos ▪ Para receber mensagens, processo deve ter identificador ▪ Dispositivo hospedeiro tem endereço IP exclusivo de 32 bits ➢ exercício: use ipconfig do comando prompt para obter seu endereço IP (Windows) ▪ P: Basta o endereço IP do hospedeiro em que o processo é executado para identificar o processo? Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 26 27 Endereçando processos ▪ R: Não, muitos processos podem estar rodando no mesmo hospedeiro ▪ Identificador inclui endereço IP e números de porta associados ao processo no hospedeiro. ▪ Exemplos de número de porta: ➢ servidor HTTP: 80 ➢ servidor de correio: 25 Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 27 28Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 28 De qual serviço de transporte uma aplicação necessita? ▪ Perda de dados ➢ Algumas aplicações (ex.: áudio) podem tolerar alguma perda ➢ Outras aplicações (ex.: transferência de arquivos, telnet) exigem transferência de dados 100% confiável ▪ Temporização ➢ Algumas aplicações (ex.: telefonia Internet, jogos interativos) exigem baixos atrasos para serem “efetivos” ▪ Banda passante / Vazão ➢ Algumas aplicações (ex.: multimídia) exigem uma banda mínima para serem “efetivas” ➢ Outras aplicações (“aplicações elásticas”) melhoram quando a banda disponível aumenta” ▪ Segurança ➢ criptografia, integridade de dados,… 29Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 29 Serviços dos protocolos de transporte da Internet ▪ Serviço TCP: ➢ Orientado à conexão: ❑ conexão requerida entre processos cliente e servidor ➢ Transporte confiável entre os processor de envio e recepção ➢ Controle de fluxo: ❑ o transmissor não sobrecarrega o receptor ➢ Controle de congestionamento: ❑ protege a rede do excesso de tráfego ➢ Não oferece: ❑ garantias de temporização e de banda mínima ▪ Serviço UDP: ➢ Transferência de dados não confiável entre os processos transmissor e receptor ➢ Não oferece: ❑ estabelecimento de conexão, confiabilidade, controle de fluxo e de congestionamento, garantia de temporização e de banda mínima. P.: Por que ambos? Por que existe o UDP? 30Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 30 Aplicação transf. arquivos e-mail documentos Web áudio/vídeo tempo real áudio/vídeo armazenado jogos interativos Perda de dados sem perda sem perda sem perda tolerante a perda tolerante a perda tolerante a perda Vazão elástica elástica elástica áudio: 5 kbps-1 Mbps vídeo:10 kbps-5 Mbps o mesmo que antes poucos kbps ou mais Sensível ao tempo não não não sim, centenas de ms sim, alguns seg sim, centenas de ms Requisitos de serviço de transporte das aplicações comuns 31Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 31 Aplicação e-mail acesso remoto Web transf. arquivos multimídia com fluxo contínuo telefonia da Internet Protocolo da camada de aplicação SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (p. e., Youtube), RTP [RFC 1889] SIP, RTP, proprietário (p. e., Skype) Protocolo de transporte básico TCP TCP TCP TCP TCP ou UDP normalmente UDP Aplicações da Internet: aplicação, protocolos de transporte 32Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 32 Protocolos de aplicação e transporte SMTP HTTP FTP Telnet TCP IP Acesso à rede UDP SNMP TFTP DHCP RTP DNS Rede Transporte Aplicação Transporte
Compartilhar