REDES DE COMPUTADORES Camada de Aplicação. Alexandre Augusto Giron



Documentos relacionados
REDES DE COMPUTADORES Camada de Aplicação

Cap 03 - Camada de Aplicação Internet (Kurose)


Redes de Computadores Camada de Aplicação. Prof. MSc. Hugo Souza

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

Teleprocessamento e Redes

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

HYPERTEXT TRANSFER PROTOCOL

Redes de Computadores

REDES DE COMPUTADORES. Prof. Evandro Cantú

Redes de Computadores e a Internet

Capítulo 8 - Aplicações em Redes

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Rede de Computadores (REC)

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Redes de Computadores. Camada de Aplicação Profa. Priscila Solís Barreto

Teia de alcance mundial (World Wide Web WWW) Web composta de

Servidor de s e Protocolo SMTP. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

2Arquitetura cliente-servidor

Resolução de Nomes e o protocolo DNS

Transferência de arquivos (FTP)

Redes de Computadores e a Internet

Redes de Computadores Aula 3

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

TECNOLOGIA WEB INTERNET PROTOCOLOS

REDES DE COMPUTADORES

REDES DE COMPUTADORES

Aula-28 Camada Aplicação - DNS. Prof. Dr. S. Motoyama

Permite o acesso remoto a um computador;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

FPROT HTTP(s), FTP, DHCP, SQUID e SAMBA. Aula 1 SENAC TI Fernando Costa

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Redes. Pablo Rodriguez de Almeida Gross

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

Redes de Computadores. Ricardo José Cabeça de Souza

Informática I. Aula Aula 22-03/07/06 1

CAMADA DE TRANSPORTE

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Universidade Federal do Rio Grande do Norte

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

Correio Eletrônico e os protocolos SMTP, POP3 e IMAP

Redes de Computadores

Redes de Computadores e a Internet

FTP: protocolo de transferência de arquivos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Prof. Marcelo Cunha Parte 5

Projeto de sistemas O novo projeto do Mercado Internet

Professor: Gládston Duarte

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

DNS - Domain Name System

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

(eletronic mail )

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Entendendo como funciona o NAT

FERRAMENTAS DE Usada para visualizar s (correio eletrônico).

Camada de Transporte, protocolos TCP e UDP

MÓDULO 8 Modelo de Referência TCP/IP

Camada de Aplicação. Prof. Eduardo

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Rede de Computadores

SISTEMAS DISTRIBUÍDOS

Imagem digital. Configuração de 640 x 480 e 24 bits/pixel (RGB) 7,37 Mbits Solução compactação

Redes de Computadores

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

REDES DE COMPUTADORES

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

1.264 Lição 11. Fundamentos da Web

Redes de Computadores

Introdução à Camada de Aplicação. Prof. Eduardo

Protocolos de Redes Revisão para AV I

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores

FTP Protocolo de Transferência de Arquivos

Questionário de RC Nota3

Redes de Computadores. Prof. Thiago Caproni Tavares DNS. Prof. Thiago Caproni Tavares

DNS: Domain Name System

Camada de Transporte TCP/IP e Aplicação

TECNOLOGIAS WEB AULA 2 PROF. RAFAEL DIAS

Camada de Aplicação, sistemas de nomes de domínio, correio eletrônico e world wide web

Teleprocessamento e Redes

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Redes de Computadores

Transcrição:

REDES DE COMPUTADORES Camada de Aplicação Alexandre Augusto Giron

ROTEIRO Revisão Princípios e Arquiteturas das aplicações de rede Camada de Aplicação Aplicações e seus Protocolos Aplicações P2P Resumo

Revisão TCP/IP

Revisão TCP/IP Cada protocolo pertence a uma das camadas Cada camada fornece serviços e utiliza serviços das camadas imediatamente inferiores à ela

Revisão TCP/IP Camada de aplicação: onde residem as aplicações de rede e seus protocolos Camada de transporte: recebe as mensagens da camada de aplicação e as transporta entre os lados cliente e servidor (da aplicação!) Assim, uma aplicação de rede escolhe algum protocolo da camada de transporte para o envio das mensagens Mas como escolher o protocolo? Depende da arquitetura da aplicação

Princípios das Aplicações de Rede Aplicações de rede são a razão de ser de uma rede de computadores Ao desenvolver uma aplicação é necessário que: Software que execute em diferentes sistemas finais comunicantes Escolha da arquitetura da aplicação É necessário desenvolver programas também para os roteadores e switches (núcleo da rede)? Não! Arquitetura em camadas!

Princípios das Aplicações de Rede

Arquiteturas das aplicações de rede Não confundir com arquitetura de rede! Arquitetura de aplicação de rede arquitetura de rede Determina como a aplicação é organizada nos sistemas finais Mais utilizadas: Cliente-Servidor; Peer-to- Peer (P2P); Híbrida

Arquiteturas das aplicações de rede Cliente-Servidor Servidor: Sempre em funcionamento Atende requisições Endereço IP fixo Cliente: Não necessitam estar sempre em funcionamento Envia requisições ao servidor Endereço IP dinâmico

Arquiteturas das aplicações de rede Cliente-Servidor

Arquiteturas das aplicações de rede Cliente-Servidor Vantagens Recursos centralizados Armazenamento centralizado mais fácil de gerenciar Clientes requerem pouca administração Desvantagens Um servidor sozinho não atende a todas as requisições Assim, é necessário um conjunto de servidores (Datacenter), aumentando o custo Se os servidores falharem, requisições não serão atendidas

Arquiteturas das aplicações de rede Peer-to-Peer (P2P) Arquitetura de pares arbitrários que se comunicam entre si Comunicação direta entre os pares Cada nó funciona como cliente e como servidor Arquitetura distribuída e descentralizada Pouca (ou nenhuma) interação com servidor

Arquiteturas das aplicações de rede Peer-to-Peer (P2P)

Arquiteturas das aplicações de rede Peer-to-Peer (P2P) Vantagens principais Auto-escalabilidade: Aumento na quantidade de nós gera mais demanda mas também maior capacidade de serviço ao sistema Não requerem infraestrutura significativa Confiabilidade: falha em um par não afeta a rede Desvantagens Complexidade maior na gerência da rede Segurança: arquitetura distribuída e exposta dificulta a proteção

Arquiteturas das aplicações de rede Híbrida Arquitetura Híbrida: combina conceitos de Cliente-Servidor com P2P Muitas aplicações de mensagem instantânea são híbridas Ex: Napster Servidor central identificava quais pares tinham determinado arquivo Troca de arquivos então ocorria entre os pares, sem passar por um servidor central

Comunicação entre processos Como a aplicação vai se comunicar entre os diferentes sistemas finais? Programas executando em sistemas finais: Processos Processos executando no mesmo sistema final: Regras de comunicação definidas pelo SO Processos executando em sistemas finais diferentes: SOs podem ser diferentes! Comunicação por troca de mensagens

Comunicação entre processos Um processo de uma aplicação deseja enviar uma mensagem para outro processo (em outro sistema final) Se é um processo que inicia a comunicação: Processo cliente Se é um processo que espera ser contatado: Processo servidor A mensagem de um processo deve passar pela rede Mas por onde o processo envia a mensagem? Através do Socket!

Socket É a interface entre o processo e a rede de computadores Mais especificamente: interface entre a camada de aplicação e a camada de transporte Processo cliente empurra a mensagem pelo socket Processo servidor recebe a mensagem a partir do socket Socket análogo a uma porta de uma casa

Socket Nesse caso, o protocolo escolhido foi o TCP da camada de transporte

Serviços da camada de transporte Quais são os serviços disponíveis para as aplicações de rede? 1. Transferência confiável de dados 2. Vazão 3. Temporização 4. Segurança

Transferência confiável Um pacote pode se perder dentro de uma rede Ser descartado por um roteador, exceder um buffer Muitas aplicações requerem que não haja perda de dados Objetivo da Transferência confiável: garantir que os dados cheguem ao seu destino de forma correta

Vazão Emissores/Receptores compartilham largura de banda da rede Vazão pode oscilar com o tempo Se o protocolo da camada de transporte pode garantir uma taxa mínima de r bits/s Então o protocolo garante vazão disponível seja sempre r bits/s (pelo menos) Aplicações multimídia que possuem necessidade de vazão são conhecidas como sensíveis à largura de banda

Temporização Objetivo: garantir o envio de um bit (desde o socket emissor até o socket destino) com tempo máximo pré-fixado Por exemplo, em menos de 100 milissegundos Serviço interessante para aplicações em tempo real Telefonia por internet, teleconferência, jogos multijogadores

Segurança Um protocolo de transporte pode oferecer vários serviços relacionados à segurança Sigilo, integridade dos dados, autenticação, entre outros Ex: um protocolo codifica os dados de um processo emissor antes de enviar ao processo receptor

Serviços da camada de transporte Quais são os serviços disponíveis para as aplicações de rede? 1. Transferência confiável de dados 2. Vazão 3. Temporização 4. Segurança Não são disponíveis na Internet atualmente

Serviços oferecidos na prática Protocolo TCP (Transmission Control Protocol): 1. Serviço Orientado para conexão 1. Conexão TCP entre os sockets do processo 2. Serviço confiável de transporte 1. TCP é capaz de enviar sem erros e na ordem correta: Transferência confiável de dados 3. Mecanismo de controle de congestionamento 1. Limita a capacidade de transmissão de um processo quando a rede está congestionada

Serviços oferecidos na prática Protocolo UDP (User Datagram Protocol): um protocolo simplificado 1. Não orientado para conexão 2. Não fornece transporte confiável de dados 1. Protocolo não dá nenhuma garantia que os dados chegarão ao destino 3. Não inclui mecanismo de controle de congestionamento 1. Processo pode enviar dados à taxa que quiser

Serviços oferecidos na prática Comparativo entre a utilização dos protocolos

Endereçamento de processos SOs normalmente possuem vários processos em execução Como um processo sabe qual o processo que ele quer se comunicar? Na internet, um sistema final é identificado por um endereço IP (32 bits) Para identificar o processo, são utilizados números de porta

Endereçamento de processos Portas comuns: Protocolo Porta FTP 20 e 21 SSH 22 Telnet 23 SMTP 25 DNS 53 Web 80 Pop3 110 IMAP 143 (http://www.iana.org/assignments/service-names-portnumbers/service-names-port-numbers.xhtml)

Aplicações e Protocolos da camada de aplicação Um protocolo da camada de aplicação define como os processos (de sistemas finais diferentes) passam mensagens entre si 1. Tipos de mensagens trocadas (Ex: requisição, resposta) 2. Sintaxe: campos da mensagem, cabeçalho 3. Semântica: qual o significado de cada campo da mensagem 4. Regras para determinar quando e como é o envio e resposta das mensagens

Aplicações e Protocolos da camada de aplicação Protocolos públicos (definidos em RFCs): Web e o HTTP Transferência de arquivos: FTP Correio Eletrônico: SMTP, POP3 e IMAP Serviço de diretório: DNS Compartilhamento de arquivos P2P

Web e o HTTP Relembrando: até a década de 1990, Internet era usada por pesquisadores No inicio de 1990, surge a Web Protocolo HTTP como parte do coração da Web

Termos da Web Página Web: composta de objetos Um objeto é um arquivo qualquer (HTML, JPEG, GIF, applet Java, vídeo...) Forma de acesso: com um único URL Arquivo-base HTML e objetos nele referenciados URL (endereço web)

HTTP HTTP (HyperText Transfer Protocol) Protocolo de aplicação da Web Possui arquitetura cliente-servidor Browser (navegador) solicita documentos Browser implementa o lado cliente do protocolo HTTP Servidor trata requisições de objetos que ele abriga Servidores Web populares: Apache e Microsoft IIS HTTP define como se dão as requisições e a transferência das páginas Web

HTTP HTTP utiliza TCP como protocolo de transporte de mensagens Cliente realiza uma requisição HTTP para seu socket Uma conexão TCP é iniciada Servidor envia uma resposta HTTP

HTTP Vale ressaltar que o servidor HTTP não mantém informações de estado de seus clientes Se um mesmo cliente fizer a mesma solicitação duas vezes, serão enviadas duas respostas iguais HTTP é um protocolo sem estado Simplifica o projeto do servidor Gerência de maior número de conexões simultâneas

HTTP: tipos de conexão Duas configurações disponíveis HTTP com conexão não-persistente (HTTP 1.0): Cada solicitação de objeto requer uma nova conexão Com a transferência concluída, a conexão é desfeita HTTP com conexão persistente (HTTP 1.1): Vários objetos podem ser transferidos com a mesma conexão Normalmente, a conexão é fechada após um tempo predeterminado de inutilização da conexão Dois tipos: Paralela e Serial

HTTP com conexão não-persistente RTT (Round-Trip Time): Tempo de viagem de ida e volta

HTTP com conexão não-persistente Exemplo: http://someschool.edu/somedepartment/h ome.index Suponha que neste arquivo possua referência para 10 arquivos JPG Utilizando RTT como medida de tempo, qual o tempo necessário para a transferência desses arquivos?

HTTP com conexão não-persistente - Exemplo Fluxo: 1. Cliente HTTP inicia conexão TCP ao servidor HTTP (processo) em www.someschool.edu. Porta 80 é a default para o servidor HTTP 2. O cliente HTTP envia uma mensagem de requisição HTTP ao servidor através de seu socket 3. Servidor HTTP no hospedeiro www.someschool.edu encapsula o objeto requerido (home.index), localizado no seu disco ou RAM, em uma mensagem de resposta HTTP e envia ao cliente 4. Servidor HTTP ordena ao protocolo TCP o fechamento da conexão (na realidade o TCP só fechará após o cliente receber a mensagem descrita em 3 intacta Transferência confiável!) 5. O cliente recebe a resposta HTTP e a conexão é encerrada.

HTTP com conexão não-persistente - Exemplo Fluxo: 1. Cliente HTTP inicia conexão TCP ao servidor HTTP (processo) em www.someschool.edu. Porta 80 é a default para o servidor HTTP 2. O cliente HTTP envia uma mensagem de requisição HTTP ao servidor através de seu socket 3. Servidor HTTP no hospedeiro www.someschool.edu Para cada um dos 10 arquivos, encapsula o objeto requerido (home.index), localizado no seu disco ou RAM, os passos em uma 1-5 mensagem devem ser de resposta HTTP e envia ao cliente repetidos!! 4. Servidor HTTP ordena ao protocolo TCP o fechamento da conexão (na realidade o TCP só fechará após o cliente receber a mensagem descrita em 3 intacta Transferência confiável!) 5. O cliente recebe a resposta HTTP e a conexão é encerrada.

HTTP com conexão não-persistente - Exemplo Para o recebimento do arquivo home.index: 2 RTT + tempo de transmissão do arquivo Para receber os 10 arquivos JPG Total: Adiciona 10*(2 RTT + tempo de transm. do arquivo) 22*RTT + 11*Tempo transmissão Note que a conexão não-persistente do HTTP pode sobrecarregar servidores por esgotamento de recursos Cada conexão TCP requer alocação de buffers, manutenção de variáveis

HTTP com conexão persistente Servidor deixa a conexão TCP aberta após a transferência Novas requisições podem ser enviadas pela mesma conexão Serial: Permite apenas uma nova requisição apenas se a resposta anterior tiver sido recebida 1 RTT por arquivo (requisição e recebimento) Ociosidade do cliente/servidor: aguarda recebimento

HTTP com conexão persistente Paralela: Cliente envia requisições sem esperar pela resposta de cada requisição Padrão no HTTP 1.1 Menor ociosidade da conexão Menor espera (1 RTT é dividido por várias solicitações) É permitido ao usuário configurar o grau de paralelismo no navegador Por default, os navegadores abrem de 5 a 10 conexões TCP paralelas

Formato de mensagem HTTP Especificação na RFC 2616 Dois tipos: Requisição e Resposta Exemplo de requisição HTTP: GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language: fr

Formato de mensagem HTTP Especificação na RFC 2616 Dois tipos: Requisição e Resposta Exemplo de requisição HTTP: Linha de requisição Linhas de cabeçalho GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language: fr

Formato de mensagem HTTP

Formato de mensagem HTTP Linha de requisição: Método GET, POST, HEAD HTTP 1.1: PUT, DELETE, TRACE, OPTIONS, CONNECT URL: identificação do objeto Versão: Especifica o último campo da linha de requisição Versão do HTTP em uso Linhas de cabeçalho: Host indica o hospedeiro do objeto Connection close -> indica que a conexão não é persistente!

Corpo de entidade? Fica vazio com método GET Quando um usuário preenche um formulário, normalmente utiliza o método POST Dados do formulário embutidos no corpo de entidade Formulários com GET Dados do formulário contidos na URL URL mais extensa: www.somesite.com/animalsearch?monkeys&bananas

Formato de mensagem de resposta HTTP

Formato de mensagem de resposta HTTP Linha de Estado + cabeçalho + corpo da entidade HTTP/1.1 200 OK Connection: close Date: Sat, 07 Jul 2007 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Sun, 06 May 2007 09:23:24 GMT Content-Lenght: 6821 Content-Type: text/html (dados... )

Códigos de estado da mensagem de resposta HTTP Indicam o resultado da requisição Códigos comuns: 200 OK: requisição bem-sucedida e informação entregue com a resposta 301 Moved Permanently: o objeto foi removido permanentemente e o caminho é especificado no campo Location. Automaticamente o software que fez a requisição recupera o novo URL. 400 Bad Request: código de erro indicando que a requisição não pode ser atendida pelo servidor 404 Not Found: Objeto não foi encontrado no servidor...

Cookies HTTP: protocolo sem informações de estado Porém essas informações podem ser necessárias! Restrições de acesso a determinados usuários Apresentação de conteúdo compatível com idade dos usuários Cookies permitem o monitoramento de informações do usuário Maioria dos sites da Web utilizam cookies

Cookies Qual a função?? Monitorar informações do usuário, manter informações de comunicação sobre um protocolo sem estado (HTTP) Necessidade de suporte no servidor HTTP Banco de dados Componentes: 1. Linha de cabeçalho de cookie na mensagem de resposta HTTP 2. Linha de cabeçalho de cookie na requisição HTTP 3. Um arquivo de cookie mantido no sistema do usuário 4. Um banco de dados de apoio no servidor

Cookies Exemplo Suponha um acesso de um cliente ao site amazon.com, através de um navegador Anteriormente o mesmo cliente já havia acessado o site ebay

Cookies Exemplo 1. Mensagem normal de requisição HTTP (acesso ao site amazon) 2. Quando a requisição chega ao servidor da amazon, ele cria um n de identificação exclusivo (ID) para o cliente 1. e armazena no banco de dados de apoio 3. O servidor envia a resposta contendo: 1. Set-cookie: n de identificação 4. Quando o cliente recebe a mensagem de resposta, o navegador do cliente: 1. Adiciona uma linha no arquivo de cookies 2. Essa linha possui o nome de hospedeiro e o n de identificação

Cookies Exemplo

Cookies Exemplo 5. Cada nova requisição ao site amazon, o navegador do cliente insere o ID na requisição Assim, o servidor pode monitorar quais páginas foram acessadas, em qual ordem, em quais horários Sites de compra guardam informações dos interesses, itens acessados pelos usuários Anúncios personalizados 6. Com o cliente retornando ao site após uma semana, o servidor pode consultar o cookie e realizar ações específicas Anúncios personalizados!

Cookies Na prática, muitas informações do usuário (além do ID) são relacionadas ao cookie Registro no site: Nome completo, endereço, n do cartão de crédito incluídas no banco de dados Serviço de compras com um só clique : dados são recuperados Apesar de simplificarem processos de compra, cookies são uma ameaça à privacidade

Caches Web (servidor proxy) Cache Web: servidor proxy Atende requisições HTTP em nome de um servidor de origem Intermediário entre a conexão do cliente e servidor Cliente envia requisições HTTP para o proxy Se o objeto existe no proxy: o proxy retorna o objeto Se o objeto não existe no proxy: o proxy faz uma requisição HTTP ao servidor original (que contém o objeto) e após o recebimento, envia o objeto ao cliente

Caches Web (servidor proxy) Um proxy atua como cliente e servidor Dessa forma, um proxy tende a reduzir o tempo de resposta

Caches Web (servidor proxy) Depende da taxa de acertos Proxy além de reduzir o tempo de resposta, podem diminuir o tráfego no enlace de acesso a uma instituição Com redução de tráfego, a instituição não necessita ampliar sua largura de banda da conexão Diminuindo custos Mas requer a instalação do proxy

E se o arquivo estiver desatualizado no proxy?? Mecanismo do HTTP para verificação dos objetos Comando GET Condicional Linha de cabeçalho da requisição: If-Modified-Since

Exemplo GET Condicional

Proxy faz consulta ao servidor GET Condicional

Servidor responde ao proxy GET Condicional

Proxy envia o objeto ao cliente e armazena. Suponha que haja um novo acesso Após uma semana Como saber se o arquivo no proxy é atualizado?? GET Condicional

GET condicional: GET Condicional

GET Condicional Se o arquivo não foi atualizado, o servidor responde ao proxy: 304 Not Modified Sem o objeto na resposta Se não foi modificado, o proxy envia o objeto que ele possui ao cliente O Get condicional tem esse objetivo: apenas retorne o objeto se este foi modificado

FTP (File Transfer Protocol) Protocolo da camada de aplicação para transferência de arquivos pela rede Acesso através de usuário e senha Utiliza o TCP como protocolo de transporte

FTP FTP utiliza duas conexões TCP paralelas para transferência de arquivos Conexão de controle: Trocar informações de controle: usuário, senha, comandos FTP específicos Conexão persistente Conexão de dados: Utilizada para o envio do arquivo É uma conexão não persistente

FTP Dessa forma, FTP mantém informações de estado sobre o usuário Como se dá o acesso a um servidor ftp? ftp://[username]:[password]@[servidor] Existem servidores FTP gratuitos na web www.serversfree.com

Comandos FTP user nomeuser: nome de usuário pass password: senha list: listagem de arquivos no servidor remoto retr nomearquivo: obtenção de um arquivo no servidor remoto stor nomearquivo: comando que armazena um arquivo no diretório atual

Comandos FTP Outros comandos para mudança de diretório, modo da transferência, tipo (ASCII ou binário...) Códigos de erro FTP disponíveis na RFC 959

FTP Problemas de segurança Informações de usuário/senha não são codificadas Usuário mal intencionado pode interceptar pacotes e ler a senha FTPS ( FTP Secure ): a adição de mecanismos de segurança TLS e SSL para criptografia dos dados SFTP (Secure File Transfer Protocol): Transferência de dados criptografados Não é baseado no FTP, mas sim no SSH (Secure Shell)

Correio Eletrônico Envio assíncrono de mensagens pela rede Três componentes principais Agentes de usuário Servidores de correio SMTP (Simple mail transfer protocol) Fluxo: A envia uma mensagem para B Agentes de usuário: leitura, resposta, composição e armazenamento de mensagens Agente de usuário envia a mensagem ao servidor de correio Quando B quer ler suas mensagens, seu agente de correio extrai de sua caixa de correio localizada no servidor

Correio Eletrônico

Correio Eletrônico Servidores de correio formam o núcleo da infraestrutura do correio eletrônico Cada um dos destinatários contem uma caixa postal localizada no servidor A troca de mensagens é de servidor para servidor! Se o servidor de correio de A não puder entregar a mensagem no servidor de B Mantém uma fila de mensagens Tentará o envio mais tarde

SMTP É o principal protocolo de emails Porém é antigo Utiliza TCP como protocolo da camada de transporte Envia mensagens do servidor de correio do remetente até o servidor de correio do destinatário Portanto, SMTP tem dois lados: lado cliente (remetente) e lado servidor (destinatário) Quando um servidor de correio envia mensagem, age como um cliente SMTP Quando um servidor de correio recebe mensagem, age como um servidor SMTP

SMTP Características Utiliza porta TCP 25 SMTP utiliza conexões persistentes Apenas envia as mensagens entre os servidores de correio dos usuários

SMTP Exemplo de mensagem Cliente: MAIL FROM: <user@bol.com.br> Server: 250 user@bol.com.br Sender ok Cliente: RCPT TO: <user2@ibest.com.br> Server: 250 user2@ibest.com.br Recipient ok Cliente: DATA Server: 354 Enter mail, end with. on a line by itself Cliente: Olá user2,... cont. da mensagem.... Server: 250 Message accepted for delivery Cliente: QUIT

SMTP Em geral, o servidor de correio é mantido pelo ISP (empresa, universidade) Como se dá o acesso através do agente de usuário?? Como obter as mensagens que estão no servidor de correio?? Não pode usar SMTP: protocolo de envio (push) não de recuperação (pull) PROTOCOLOS DE ACESSO: POP3, IMAP e HTTP

POP3 Post Office Protocol Protocolo de acesso simples Porém limitado Utiliza TCP porta 110 Três fases após a conexão TCP 1. Autorização: agente de usuário envia nome e senha para autenticação 2. Transação: as mensagens são recuperadas e podem ser marcadas/desmarcadas para serem apagadas 3. Atualização: servidor apaga as mensagens e o cliente é desconectado

POP3 O POP3 trabalha no modo ler-e-apagar ou ler-e-guardar O segundo é indicado quando é necessário ler emails de diferentes máquinas Protocolo sem estado entre sessões Armazena pouca informação de estado: mensagens marcadas para apagar Simplifica a implementação Não há como manter uma hierarquia de pastas entre diferentes máquinas com o POP3: não há servidor remoto.

IMAP Internet Mail Access Protocol Protocolo de acesso com mais recursos que o POP3 Implementação é mais complexa IMAP associa uma mensagem a uma pasta Quando a mensagem chega a um servidor, é associada a uma pasta INBOX do destinatário Destinatário pode transferir a mensagem para uma nova pasta IMAP também permite a obtenção de apenas o cabeçalho de uma mensagem

Mas e na prática? Usamos IMAP ou POP3?? Na prática, atualmente se utilizam mais emails através da web: protocolo HTTP (ou HTTPS) Emails lidos e enviados através dos browsers Hotmail, Yahoo! Mail... Usuário se comunica com sua caixa postal remota via protocolo HTTP Contudo, o envio de emails de servidor de correio para servidor pode usar SMTP

DNS (Domain Name System) Conceito de facilidade de identificação (e memorização) Hostname: www.g1.com.br ou IP: 186.192.90.5 Hospedeiros são identificados das duas formas

DNS: o que é? 1. Um banco de dados distribuído implementado em uma hierarquia de servidores de nome 2. Protocolo que fornece o serviço de diretório da Internet 1. Permite que hospedeiros consultem o banco de dados

DNS Serviço principal do DNS: Traduzir o nome do host para um IP válido Outros serviços Apelidos de Hospedeiro: um host com nome complicado pode ter um ou mais apelidos: relay1.west-coast.enterprise.com pode ter apelidos como enterprise.com e www.enterprise.com relay1.west-coast.enterprise.com é o nome canônico DNS pode obter o nome canônico Apelidos de servidor de correio: mesma situação anterior, DNS pode ser utilizado para obter o nome canônico do servidor de correio Distribuição de carga: auxiliam a realizar distribuição de carga servidores Web movimentados. O DNS associa um conjunto de endereços IP (servidores) a um único nome canônico. Assim, o DNS faz um rodízio de tradução de nome, usando um dos IPs do conjunto.

DNS Protocolo DNS utiliza porta UDP 53 Esse protocolo é comumente usado por outros protocolos da camada de aplicação HTTP, FTP, SMTP... De que forma?

DNS Aplicação obtendo endereço IP 1. A própria máquina do usuário executa o lado cliente da aplicação DNS 2. Navegador (exemplo HTTP) extrai o hostname (www.someschool.edu) e o repassa para o lado cliente da aplicação DNS 3. Cliente DNS envia uma consulta contendo o nome do hospedeiro para um servidor DNS 4. Cliente recebe a resposta que inclui o endereço IP correspondente 5. Navegador pode iniciar uma conexão com o IP obtido Note que o DNS insere um atraso nas aplicações!

Funcionamento do DNS DNS é constituído de um grande n de servidores ao redor do mundo Abordagem de DNS centralizada não é adequada para a Internet Único ponto de falha Volume de tráfego Banco de dados centralizado distante Manutenção Assim, é utilizada abordagem distribuída e hierárquica

Funcionamento do DNS Mapeamentos distribuídos entre os servidores de nomes Três classes de servidores Servidores de nome raiz DNS de alto nível (TLD) DNS com autoridade

Funcionamento do DNS

Funcionamento do DNS Servidores de nomes raiz 13 servidores na Internet Na realidade, cada um dos 13 formam um conglomerado de servidores (para fins de confiabilidade e segurança) Serv. de nomes TLD Responsáveis pelos domínios de alto nível como com, org, net, edu e gov; E também por todos os domínios de alto nível de países como fr, uk, br... Serv. de nomes com autoridade Entidades desejam que seus endereços sejam acessíveis publicamente na Internet Devem fornecer registros DNS acessíveis Esses registros são abrigados pelos Servidores de nome com autoridade Uma instituição pode implementá-lo ou pagar por algum provedor desse serviço

Funcionamento do DNS http://www.root-servers.org/

Funcionamento do DNS Fora da hierarquia existem os DNS locais: Cada ISP tem um (ou mais) servidor DNS local Para descobrir, basta acessar os detalhes da conexão no Windows ou Linux... DNS abertos surgiram como alternativa aos DNS locais dos ISPs (OpenDNS, Google Public DNS...) Quando um usuário faz uma pergunta ao DNS, a pergunta é enviada para o DNS local E então encaminhada para dentro da hierarquia

Exemplo Funcionamento do DNS

Funcionamento do DNS (hierarquia) 1. Hospedeiro cis.poly.edu primeiramente envia uma mensagem de consulta ao servidor DNS local 2. O servidor DNS local transmite a mensagem a um servidor raiz 3. Servidor raiz percebe o sufixo (edu) e retorna uma lista de IPs contendo servidores DNS TLD, responsáveis pelo sufixo 4. Servidor de nomes local retransmite a mensagem de consulta a um servidor DNS TLD 5. TLD percebe o sufixo (umass.edu) e responde com o servidor de nomes com autoridade (dns.umass.edu) 6. Por fim, o serv. De nomes com autoridade responde com o endereço IP de gaia.cs.umass.edu

Funcionamento do DNS 4 mensagens de consulta; 4 de resposta Consultas recursivas e iterativas Normalmente as consultas seguem esse padrão Nem sempre o servidor DNS TLD conhece o servidor de nomes com autoridade Nesse caso, pode acontecer de ocorrerem 100% de consultas recursivas Como diminuir a quantidade de consultas DNS?? Cache DNS!

Cache DNS Ideia é reduzir o atraso inserido nas aplicações, por causa das buscas pelo endereço IP Reduzir a quantidade de consultas DNS Quando um servidor DNS recebe uma resposta DNS, o servidor armazenar essas informações por um período determinado Normalmente servidores locais guardam por 2 dias Com o cache, o servidor local pode retornar o IP imediatamente, sem necessidade de consultar nos outros servidores

Registro DNS Mensagem de resposta carrega um registro Consiste em uma tupla: (Name, Value, Type, TTL) TTL é o tempo de vida útil do registro Exemplo (ignorando TTL): (relay1.bar.foo.com, 145.37.93.126,A) Type=A significa que Name é um hostname e Value é um IP Type s: NS (Name é um domínio, Value um servidor DNS com autoridade), CNAME (nome canônico) MX (Value é um nome canônico e seu apelido está em Name)

DNS na prática Como obter um endereço IP? nslookup Utilizando API de programação (java InetAddress, JNDI) Como os endereços são inseridos no DNS?? Quem mantém o DNS?? Através de entidades registradoras Registram domínios nos bancos de dados do DNS (e cobra uma taxa) No Brasil: A. Telecom S/A Locaweb Serviços de Internet S/A...

Aplicações P2P Aplicações vistas até agora Todas na arquitetura cliente/servidor P2P (Peer-to-Peer): Pares se conectam diretamente entre si Com P2P há dependência mínima (se houver) de servidores funcionais

Aplicações P2P Segurança como principal problema Administração é descentralizada: mais difícil de gerenciar Aplicações P2P Distribuição de arquivos: BitTorrent Telefonia P2P da internet: Skype

Distribuição de arquivos P2P Cada Par pode redistribuir qualquer parte de um arquivo para outros pares Auxiliando no processo de distribuição Arquiteturas P2P possuem autoescalabilidade Cada par aumenta a demanda por arquivos, mas também aumenta a capacidade de redistribuição Protocolo P2P mais popular: BitTorrent

BitTorrent Normalmente, os blocos dos arquivos tem tamanho igual de 256 Kbytes Torrent: coleção de pares que participam da distribuição de determinado arquivo Quando um novo par chega ao torrent, ele se registra com o rastreador Assim o rastreador mantem registro dos pares do torrent

BitTorrent

BitTorrent Quais blocos solicitar Técnica rarest first (o mais raro primeiro): Blocos mais raros dentre os seus vizinhos, para proporcionar maior rapidez na redistribuição desses blocos mais raros Quais pedidos atender A faz identificação de 4 pares com maior taxa (pares unchoked ) Novo vizinho B aleatoriamente escolhido ( optimistically unchoked ) para envio de dados (a cada 30 segundos) Se A e B estão satisfeitos com a troca, A adiciona B em sua lista de 4 pares (e B adiciona A) A prioridade é dada a vizinhos que fornecem dados com a maior taxa de upload

Aplicações P2P Métodos de consulta de arquivo para P2P Diretório centralizado Inundação de consultas

Diretório Centralizado Troca de arquivos se dá diretamente entre os pares

Diretório Centralizado Depende da estrutura do servidor Pode acarretar em um gargalo de desempenho Violação dos direitos autorais

Inundação de consultas Gnutella: aplicação de compartilhamento de arquivos Abordagem completamente distribuída Não utiliza servidor centralizado Formam uma rede de sobreposição

Inundação de consultas

Inundação de consultas No Gnutella, pares enviam mensagens aos pares próximos Conexões TCP já existentes montando a rede de sobreposição Mensagem é retransmitida para cada vizinho Inundação de consultas na rede! Quando o arquivo é encontrado, forma-se uma conexão direta entre os pares (fora da rede de sobreposição) Objetos transferidos com HTTP!

Inundação de consultas Muitas consultas: tráfego significativo na rede Solução parcial: inundação de escopo limitado Inundação com esse controle era limitada a um campo de pares. Ao chegar no limite, o par não retransmitia a consulta, reduzindo o tráfego (mas o arquivo poderia nunca ser encontrado!)

Skype Serviços de mensagens instantâneas Pares se comunicam em tempo real Aplicações: Telefonia de PC para telefone Telefone para PC Videoconferência PC a PC

Skype Skype usa técnicas P2P de diversas formas Vão além da distribuição de conteúdo e compartilhamento de arquivos Protocolos proprietários, dados criptografados

Skype Funcionamento geral Nós no Skype organizados em uma rede sobreposta Classificados em pares Superpar ou par comum Como é feita a descoberta de pares? Skype mantém um índice que mapeia usuários a endereços IP Índice é distribuído entre os Superpares Quando há uma chamada de A para B, o cliente Skype de A procura o índice distribuído para determinar o endereço IP de B

RESUMO Desenvolvimento de aplicações de rede requer software que execute em sistemas finais diferentes Escolha da arquitetura (cliente-servidor, P2P) Socket é a interface entre o processo da camada de aplicação e o protocolo da camada de transporte Serviços da camada de transporte podem ser Transferência confiável, Segurança, Vazão, Temporização Apenas os dois primeiros são disponíveis na Internet

RESUMO Protocolo HTTP: protocolo da Web Cliente-servidor Cliente solicita documentos, servidor responde Protocolo simples, sem estado Cookies permitem o monitoramento das informações de usuário Comando GET Condicional verifica se objetos estão desatualizados no proxy FTP: protocolo de transferência de arquivos Conexão de controle e conexão de dados

RESUMO SMTP: protocolo de envio de emails Utiliza TCP, envia mensagens entre os servidores de correio POP3 e IMAP (e HTTP) como protocolos de acesso aos emails DNS: traduz nome de hospedeiro para IP Banco de dados distribuído Protocolo que fornece o serviço de consultas ao banco de dados Aplicações P2P: conexão direta entre pares comunicantes BitTorrent, Skype Consulta por diretório centralizado ou por Inundação de consultas

Para Casa Leitura do cap. 2 (Livro do Kurose) Lista de Exercícios 2 (Camada de Aplicação)

Bibliografia 1. Kurose, James F.; Ross, Keith W.; Redes de Computadores e a Internet (preferencialmente a 5ª Edição). São Paulo, SP: Pearson Addison Wesley, 2010. 2. Tanenbaum, Andrew S. Redes de computadores (3ª edição) Rio de Janeiro, RJ : Campus, 1997.