Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Redes de Computadores UNIDADE II - Camada de Aplicação Romualdo Monteiro de Resende Costa romualdomrc@gmail.com Redes de Computadores • Princípio de Aplicações de Rede • A “World Wide Web”: HTTP • Correio Eletrônico: SMTP • DNS: o serviço de diretório da Internet Bibliografia: KUROSE, James F. & ROSS, Keith W. Redes de computadores e a Internet: uma abordagem top- down. 3 ed. São Paulo: Addison Wesley, 2006. 2 Camada de Aplicação Pilha de Protocolos 3 Camada de Aplicação • Formada por Aplicações de Rede – Programas ou processos que se comunicam através de uma rede. – Correio Eletrônico; – A Web; – Mensagens instantâneas; – Acesso a computadores remotos; – Compartilhamento de arquivos; – Transferência de arquivos; – Jogos; – Telefonia e Videoconferência; – etc. Camada de Aplicação • Aplicações são a razão de ser de uma rede de computadores • Todas as camadas inferiores provêm serviços que tornam possível a implementação das aplicações • Sintaxe Abstrata de Comunicação – Especificação de uma estrutura de dados independente da codificação interna utilizada pelas máquinas e na comunicação – Sintaxe Concreta 4 Sintaxe Abstrata • Independente da implementação • Facilidade de interpretação • Liberdade para novas implementações • Sintaxe de Transferência Tipos de Aplicações de Rede • Diferentes: – Arquiteturas – Protocolos • Arquitetura: Primeira escolha da aplicação – Cliente-servidor – Peer-to-Peer – Híbrida • A escolha envolve especificar como os recursos serão compartilhados 5 Compartilhamento de Recursos Arquitetura Cliente-Servidor 6 Arquitetura Cliente-Servidor • Um host servidor que atende a requisições de muitos outros hosts (clientes) – Servidor pode ser dedicado ou não • Problemas de performance – Escalabilidade – Servidor é um gargalo da rede – Confiabilidade – Servidores virtuais – Servidores ocultos – Proteção contra ataques – Segurança Arquitetura Peer-to-Peer 7 Arquitetura Peer-to-Peer • A idéia do servidor não dedicado é levada ao extremo – Pares comunicam-se diretamente entre si • Traz escalabilidade e distribuição do tráfego – Dificuldade de gerenciamento – Disponibilidade • Soluções híbridas – Conteúdos trocados via P2P – Servidor armazena os conteúdos disponíveis – Napster, Skype etc. Napster 8 Skype Comunicação entre as Aplicações • É preciso definir como as aplicações comunicam-se entre si – Troca de mensagens por meio da rede – Uma aplicação pode definir várias comunicações simultâneas. Assim, não são as aplicações que se comunicam, mas seus processos. – Um processo cria e envia mensagens pela rede – Um processo destinatário recebe-as e possivelmente responde – Essa comunicação é virtual e se desenvolve através das camadas de protocolos inferiores 9 Protocolos • Assim como em todas as camadas, é necessário especificar como as funções das aplicações são implementadas. – Os tipos de mensagens trocadas (solicitação, resposta etc.) – A sintaxe e a semântica das mensagens, incluindo os campos e seus significados – As regras (quando e como um processo envia ou responde uma mensagem etc.) Protocolos • Domínio Público ou Privado – RFC (Request For Comments) • HTTP (HyperText Transfer Protocol) – RFC 2616 • FTP (File Transfer Protocol) – RFC 959 • SMTP (Simple Mail Transfer Protocol) – RFC 821 • DNS (Domain Name Service) – RFC 1035 10 Recordando... Fornecedores e Usuários de Serviços • Um serviço representa um conjunto de funções oferecidas a um usuário por um provedor (fornecedor) • O serviço oferecido por um provedor é acessado por um usuário através de um ponto de acesso ao serviço (Service Access Point SAP) • O usuário é a camada N e o provedor a camada N-1 11 Fornecedores e Usuários de Serviços Socket • Na Arquitetura Internet, um socket é a interface entre a camada de aplicação e de transporte – Porta (especificação do processo receptor) – Protocolo de Transporte – Parâmetros do transporte (buffer, segmentos etc.) • Transferência de mensagens fim-a-fim (porta- a-porta) e entrega aos processos das aplicações – API de Transporte 12 Socket • Duas API’s mais conhecidas para Unix – Berkeley Sockets – TLI (System Transport Layer Interface) – Estendidas para outros sistemas operacionais, como o Win Socket • Interfaces desenvolvidas para C. – Atualmente com interfaces de acesso em outras linguagens. Socket 13 Serviços da Camada de Transporte • Protocolos: – UDP (User Datagram Protocol) – TCP (Transmission Control Protocol) • Diferentes tipos de serviços – Quanto à perda de dados • Tolerância à perdas ou transferência 100% confiável – Quanto à largura de banda • Requisitos mínimos de banda ou uso da banda disponível (ajuste elástico) – Quanto aos requisitos temporais • Suporte ao atraso, variação estatística do mesmo ou aplicações de tempo real. Aplicações 14 TCP • Serviço orientado a conexão – Antes da transmissão é requerida uma negociação entre os processos • Transporte confiável – Comunicação livre de erros entre processos • Controle de fluxo – Evita a perda de dados em um receptor mais lento • Controle de congestionamento – Diminui o fluxo do emissor quando a rede está congestionada – Não oferece garantias temporais ou banda mínima UDP • Transporte não confiável – Não há garantia de entrega de dados • Não implementa: – Conexão – Controle de fluxo – Controle de congestionamento – Garantias temporais – Garantia de banda mínima 15 Aplicações HTTP • O HTTP (Hypertext Transfer Protocol) é um protocolo usado para a transferência de informações na Web • Os dados transferidos podem ser texto, imagens, vídeos, áudios, ou qualquer outro tipo de mídia – As mídias são organizadas como (objetos) – A maioria dos objetos são formados por arquivos html que, por sua vez, fazem referência a outros objetos 16 HTTP • As referências aos objetos são realizadas através de URL (Uniform Resource Locator) – http://www.cesjf.br/node/11 – Protocolo – Nome do Computador – Caminho – Recurso • Navegadores são agentes usuários (user agent) que implementam o lado cliente do protocolo. Os servidores estão em máquinas acessíveis na Internet HTTP 17 HTTP • Protocolo de transporte TCP – Conexões persistentes e não persistentes – Porta 80 (default) • HTTP 1.0 – Conexões não persistentes • HTTP 1.1 – Conexões persistentes – Com e sem paralelismo Formato das Mensagens • Dois tipos de Mensagens – Requisição (GET, POST, HEAD) – Duas partes: linha de requisição e linhas de cabeçalho 18 Formato das Mensagens • Dois tipos de Mensagens – Resposta – Três partes: linha de estado, linhas de cabeçalho e corpo Códigos de Estado • 200 OK: requisição bem-sucedida e a informação é entregue com a resposta • 301 Moved Permanently: objeto requisitado foi removido. Novo URL é especificado no cabeçalho Location da mensage de resposta • 400 Bad Request: a requisição não pôde ser entendida pelo servidor • 404 Not Found: o documento não existe no servidor • 505 HTTP Version Not Supported: a versão do protocolo HTTP requisitada não é suportada 19 Exemplo HTTP • Protocolo sem estado – Facilita a implementação dos servidores – Processamento de requisições individuais – Dificuldade de identificar preferências – Perda de trabalho • Soluções – Cookies – Log-in de usuários – Carregamento de variáveis entre requisições (GET e POST) 20 HTTP e Cache Web • O cache pode reduzir o tempo de resposta para uma requisição do cliente – Conexão de alta velocidade entre o cliente e o cache e de baixa velocidade entre o cache e a Internet • O cache pode reduzir também o tráfego no enlace de acesso à Internet – Melhoria da performance por redução do tráfego • E se a cópia do objeto no cache estiver desatualizada? Cache 21 Get Condicional Transferência de Arquivos - FTP • Protocolo por autenticação e autorização de acesso – Da mesma forma que o HTTP também utiliza o TCP • Utiliza duas conexões paralelas: – Conexão de controle– Conexão de dados • A primeira para troca de informações entre os sistemas finais e a segunda para a troca de dados – Informações de controle fora da banda 22 FTP FTP • Mantém informações de estado – Controla a utilização dos serviços pelos usuários • Comandos – user “username” – pass “password” – list – retr “filename” – stor “filename” • Cada comandos é seguido de uma resposta 23 FTP - Respostas • 331 Nome de usuário OK, senha requisitada • 125 Conexão de dados aberta: iniciando transferência • 425 Não é possível abrir a conexão de dados • 452 Erro ao escrever o arquivo • ... • E muitas outras informações de estado – Consultar a RFC 959 Correio Eletrônico • Modelo de comunicação assíncrono – Os usuários não precisam estar on-line para trocar as mensagens • Arquitetura – Agentes – Servidores • Protocolo de troca de informações entre os servidores: SMTP – Simple Mail Transfer Protocol – RFCs: 821, 2821, 1869 e 1891 24 Correio Eletrônico Popularidade • Hotmail – E-mail grátis e o acesso aos servidores através da Web – Ano 1995 – 17 funcionários trabalhando durante 7 meses • Lançamento 1996 – 100 mil assinantes – Dezembro 1997: 400 milhões de assinantes • Comprado pela Microsoft – 400 milhões de dólares 25 SMTP • Não utiliza servidores intermediários – Transmissão entre os servidores através do TCP • Se o servidor não estiver disponível novas tentativas posteriores são realizadas – Conexão através da porta 25 Cliente/Servidor 26 Protocolos de Aceso • Protocolos de acesso ao correio que transferem dados dos servidores para as máquinas locais – POP3 (Post Office Protocol version 3) – IMAP (Internet Mail Access Protocol) – HTTP DNS • Domain Name System – Tradução de nomes na Web – Usualmente utilizado por outros procolos de aplicação: HTTP, FTP, SMTP etc. • Funciona como um banco de dados distribuído e hierárquico – Existe um servidor raiz – Distribuição de traduções de acordo com o domínio – Muita redundância entre os servidores. 27 DNS Servidor de Nomes Raiz
Compartilhar