Projeto de Redes de Computadores Iuri Oliveira Carvalho [email protected] Conteúdo ● Camada de Aplicação o Principais Protocolos Arquitetura TCP/IP (Modelo Híbrido) X RM OSI 7 6 5 4 3 2 1 Aplicação Apresentação Sessão Transporte Rede Enlace Física Aplicação Transporte Rede Enlace Física Camada de Aplicação ● ● ● ● Camada de interface com o usuário Motivo da existência de redes Maioria das aplicações são executadas Exemplos de protocolos: HTTP, SMTP, FTP, SSH, POP3, IMAP, DNS ● Procolos definos na RFC Arquiteturas de aplicação ● Cliente-servidor ● P2P ● Híbrida Arquiteturas de aplicação ● Cliente-servidor o o o o Servidor Endereço fixo Hospedeiro ativo Sempre aguardando conexão Cliente Endereço dinâmico Nem sempre estão conectados Comunicação só pode ocorrer entre clientes e servidores Exemplo: Servidor Web Arquiteturas de aplicação ● P2P (Peer-to-peer / Ponto-a-Ponto) Sem um nó central o Conexões alteram com frequência o Altamente escalável o Difícil de gerencial o Exemplo: Torrent o Arquiteturas de aplicação ● Híbrido Presença de um servidor para localizar os pares ou arquivos o Comunicação realizada diretamente entre os pares o Exemplo: Voip o Comunicação entre processos ● No mesmo host quem define é o SO ● Entre hosts diferentes: o o Processo cliente Processo servidor Comunicação entre processos ● Estrutura P2P: Quem é o cliente e quem é o servidor? Sockets ● Envio/Recebimento para o socket ● Análogo a uma porta Funcionamento ● Através da endereço - IP ● Através da porta - 80 ● Junção de endereço e porta Funcionamento ● Protocolos da camada de transporte o o TCP UDP ● Aplicação define qual protocolo utilizar Aplicação X Camada de Transporte Aplicação Procolo de Aplicação Protocolo de Transporte Email SMTP TCP Web HTTP TCP Compartilhamento de Arquivo SAMBA TCP Resolução de nome DNS UDP Acesso Remoto SSH TCP Monitoramento SNMP UDP Funcionamento ● Serviços o Vamos fazer uma analogia a um shopping WWW ● ● ● ● ● World Wide Web Arquitetura Conteúdo estático Conteúdo dinâmico HTTP WWW WWW ● Público em geral ● Funciona por demanda ● HTML - HyperText Markup Language o o o Linguagem de Marcação de Hipertexto Tags <html>, <head>, <body>... HTTP ● Hypertext Transfer Protocol ● É a base para comunicação na www ● Utilizado para sistemas de informação de hipermídia, distribuídos e colaborativos ● Possui 3 versões ● 0.9 o ASCII ● 1.0 o MIME44 ● 1.1 HTTP ● Atualmente é coordenado pela W3C (World Wide Web Consortium) e IETF (Internet Engineering Task Force) ● Versão atual 1.1 está na RFC 2616 HTTP ● Principais servidores: o o o Apache IIS nginx HTTP HTTP ● Protocolo sem estado o o Servidor não mantém informações sobre os clientes Solução? Cookies HTTP ● Conexão não-persistente o o Transferência de um objeto por sessão HTTP 1.0 ● Conexão persistente o o Múltiplos objetos por sessão HTTP 1.1 HTTP ● Formato da mensagem o Métodos GET HEAD PUT POST DELETE TRACE CONNECT OPTIONS HTTP ● Formato da mensagem o o Mensagem de requisição Mensagem de resposta HTTP ● Formato da mensagem o Mensagem de requisição HTTP ● Formato da mensagem o Mensagem de requisição HTTP ● Formato da mensagem o Mensagem de resposta HTTP ● Formato da mensagem o Mensagem de resposta HTTP ● Código de resposta de status Código Significado Exemplo 1xx Informação 100 - Servidor aceitou os cabeçalhos do cliente 2xx Sucesso 200 - Requisição realizada com sucesso 3xx Redirecionar 301 - Página movida 4xx Erro no Cliente 404 - Página não encontrada 5xx Erro no Servidor 500 - Erro interno no servidor HTTP ● URL Uniform Resource Locator - Localizador Universal de Recursos o Endereço virutal o Exemplo: http://www.teste.com.br/index.html o HTTP ● Melhorando desempenho o o Compressão Comprimir os dados enviados Cache Local Servidor HTTP ● Melhorando desempenho o Cache Local ● Browser mantém cópia local HTTP ● Melhorando desempenho o Cache Servidor ● Exemplo: Squid HTTP ● Melhorando desempenho o Problemas com cache? HTTP ● GET condicional Resolver o problema do cache o Last-Modified o If-Modified-Since o Também melhora o desempenho o HTTP ● Teste HTTP o o o telnet www.ieft.org 80 GET /rcf.html HTTP/1.1 Host: www.ietf.org DNS ● Domain Name Server ● Responsável pela resolução de nomes ● IP (v4 e v6) identificador único na rede o 8.8.8.8 ● Nomes facilitam a compreensão dos usuários não das estações o www.google.com ● Utilizado apenas para acesso Web? DNS ● Cada estação tinha seu arquivo de hots ● Crescimento da Internet tornou inviável DNS ● Estrutura descentralizada ● Porque não centralizar? o Confiabilidade o Volume de tráfego o Distância o Manutenção do banco de dados DNS ● Atualmente consta com 13 servidores raiz o o o 10 nos EUA, 2 na Europa e 1 na Ásia a-m Réplicas espalhadas pelo mundo DNS ● 13 servidores raiz DNS ● No brasil Registro br DNS ● Consulta é feita recursivamente Servidores raiz possuem todos os endereços dos TLD o TLD - Top Level Domain o .com, .net, .org, .edu, .gov o DNS ● Consulta é feita recursivamente DNS ● Consulta é feita recursivamente o o www.teste.com.br. Vamos analisar Porta 53 UDP DNS ● Consulta é feita recursivamente DNS ● DNS Reverso o o Encontrar o nome associado ao endereço Resolução diferente DNS ● Servidor Master o Servidor principal ● Servidor Slave o Sincronia com o master ● Porta 53 TCP DNS ● Cache DNS o o o Manter em cache endereço resolvido Manter em cache endereço não resolvido Informações desatualizadas. Como resolver? TTL DNS ● Tipos de registro o A Associa um hostname à um endereço IPv4. o AAAA Associa um hostname à um endereço IPv6. o PTR Associa um endereço IP a um hostname para a resolução de DNS reverso. o NS Informa os IPs dos servidores DNS autoritativos de um domínio. DNS ● Tipos de registro MX Informa os IPs dos servidores SMTP de um domínio. o CNAME Usado para criarmos um alias de um host para outro, facilitando no caso de uma mudança de IP. o DNS ● Tipos de registro o TXT Pode armazenar qualquer informação em formato texto. Inicialmente criado para armazenar comentários ou informações sobre o domínio, hoje é muito usado por ferramentas anti-spam como o SPF (Sender Policy Framework) e o DomainKeys/DKIM. DNS ● Serviços gratuitos o o OpenDNS IPv4 ● 208.67.222.222 - Primário ● 208.67.220.220 - Secundário Google Public DNS IPv4 ● ● 8.8.8.8 - Primário 8.8.4.4 - Secundário IPv6 ● ● 2001:4860:4860::8888 - Primário 2001:4860:4860::8844 - Secundário DNS ● Servidor Bind o NSD o djbdns o Unbound o Microsoft DNS o Dnsmasq o MaraDNS o Comunição Cliente X Servidor ● Vamos detalhar o cenário