Redes de Computadores



Documentos relacionados
FTP: protocolo de transferência de arquivos

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

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

HYPERTEXT TRANSFER PROTOCOL

Transferência de arquivos (FTP)

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


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

INTRODUÇÃO ÀS REDES DE COMPUTADORES

DNS - Domain Name System

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

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

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

Teleprocessamento e Redes

REDES DE COMPUTADORES. Prof. Evandro Cantú

Redes de Computadores e a Internet

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

O espaço de nomes DNS Registros de recursos de domínio Servidores de nome

Configuração de um servidor DNS. Campus Cachoeiro Curso Técnico em Informática

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

Capítulo 8 - Aplicações em Redes

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

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

DNS Parte 2 - Configuração

Universidade Federal do Rio Grande do Norte

Permite o acesso remoto a um computador;

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

TECNOLOGIA WEB INTERNET PROTOCOLOS

Resolução de nomes. Professor Leonardo Larback

UM dos protocolos de aplicação mais importantes é o DNS. Para o usuário leigo,

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

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

Rafael Goulart - rafaelgou@gmail.com Curso ASLinux v.3

2Arquitetura cliente-servidor

Redes de Computadores

REDES DE COMPUTADORES

Principais protocolos da Internet. Alexandre Gonçalves Xavier

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.

Redes de Computadores e a Internet

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

(eletronic mail )

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

Rede de Computadores (REC)

O que são DNS, SMTP e SNM

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.

Redes de Computadores Aula 3

REDES DE COMPUTADORES

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

Desenvolvimento de Aplicações Web

Professor: Gládston Duarte

REDES DE COMPUTADORES

FTP Protocolo de Transferência de Arquivos

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

Servidor de s e Protocolo SMTP

INTERNET = ARQUITETURA TCP/IP

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

DNS - Domain Name System

Redes de Computadores I

1.264 Lição 11. Fundamentos da Web

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

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

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos.

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

Camada de Aplicação. Prof. Eduardo

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

Configurando DNS Server. Prof. Armando Martins de Souza

DNS Linux. Rodrigo Gentini

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Redes - Internet. Sumário Aula 3,4 e 5 9º C } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 2. Avaliação sumária da matéria do Capítulo 2

Arquitectura de Redes

Prof. Marcelo Cunha Parte 5

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

Redes de Computadores

Redes de Computadores. Funcionamento do Protocolo DNS. Consulta DNS. Consulta DNS. Introdução. Introdução DNS. DNS Domain Name System Módulo 9

Tutorial de TCP/IP Parte 26 Criando Registros

Entendendo como funciona o NAT

TECNOLOGIAS WEB AULA 2 PROF. RAFAEL DIAS

Projeto de sistemas O novo projeto do Mercado Internet

Rede de Computadores

Capítulo 2 Camada de aplicação

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

Tecnologias Web. Lista de Exercícios AV02. Luiz Leão

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

Teleprocessamento e Redes

Um pouco sobre Pacotes e sobre os protocolos de Transporte

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

Aula prática. Objetivo IPCONFIG. Prof. Leandro Pykosz Informa a configuração atual de rede da máquina;

O Protocolo SMTP. Configuração de servidor SMTP

Wireshark Lab: TCP. Versão KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2011 BATISTA, O. M. N. Tradução e adaptação para Wireshark.

Camada de Transporte TCP/IP e Aplicação

Internet ou Net. É uma rede mundial de computadores ligados entre si através s de linhas telefónicas comuns.

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

Alan Menk Santos Redes de Computadores e Telecomunicações. Camada de Aplicação. Camada de Aplicação

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Arquitectura de Redes

Transcrição:

7. Camada de Aplicação DIN/CTC/UEM 2008

Principais Funções Oferece serviços de rede aos processos da aplicação Identifica e estabelece a disponibilidade dos recursos para a comunicação Sincroniza comunicação entre as aplicações Estabelece procedimentos para o caso de falhas Exemplos de protocolos: Transferência de arquivos File Transfer Protocol (FTP) Network File System (NFS) E-mail Simple Mail Transfer Protocol (SMTP) Internet Message Access Protocol (IMAP) Post Office Protocol (POP) Remote login Terminal Emulation Protocol (TELNET) Gerência de rede Simple Network Management Protocol (SNMP) Gerência de nomes Domain Name System Protocol (DNS)

The Big Picture

Domain Name System (DNS) A Internet é construída utilizando um esquema de endereçamento hierárquico Roteamento é baseado em classes de endereços ao invés de endereços individuais Problema: como associar o nome de um sítio na Internet ao seu endereço na rede? Solução: Domain Name System associa o nome de um domínio (domain) ao seu endereço Domínio é um grupo de máquinas que estão associadas ou geograficamente ou funcionalmente Um nome de domínio é uma cadeia de caracteres (letras e números) que representam um nome ou uma abreviação Todo domínio tem uma autoridade que controla a atribuição de nomes de seus sub-domínios Exemplo: www.registro.br controla a atribuição de endereços terminados com.br

Domain Name System (DNS) Nome de domínio é hierárquico Primeira parte carrega o nome da máquina Última parte carrega o nome do domínio de mais alto nível Exemplo: robot.ai.cs.yale.edu

Domain Name System (DNS) Alguns domínios no Brasil gov.br: entidades do governo org.br: entidades não governamentais, sem fins lucrativos com.br: atividades comerciais ind.br: indústrias mil.br: entidades militares edu.br: entidades de ensino g12.br: entidades de ensino fundamental e médio.br: entidades de ensino superior art.br: artes: música, pintura, folclore esp.br: entidades esportivas inf.br: provedores de informação (meios de comunicação, etc.) psi.br: provedores de serviçõs de Internet tmp.br: eventos temporários (feiras, etc.) can.br: candidatos am.br, fm.br, tv.br: emisoras de rádio e televisão Lista completa: registro.br/info/dpn.html

Domain Name System (DNS) Componentes Resolver: cliente que solicita as requisições Name Server: servidor que processa requisições e envia resposta Tipos de servidores Primário Informações criadas pelo administrador do domínio Único por domínio Secundário Mantém cópia das informações do domínio Periódicamente atualiza as informações Tipos de requisições Não Recursiva (Interativa) Servidor utiliza apenas as suas informações Retorna informação que mais se aproxima daquela requisitada Recursiva Servidor utiliza as suas informações e pode requisitar informações de outros servidores Retorna informação solicitada pela requisição

Domain Name System (DNS) Tipos de respostas Authoritative Servidor possui autoridade sobre o domínio Respostas sempre corretas Non-Authoritative Servidor não possui autoridade sobre o domínio Informação obtida a partir da cache Informações podem estar incorretas Diálogo típico

Domain Name System (DNS) Tipos de mapeamentos Direto Traduz nome da máquina para o seu endereço IP Reverso Traduz o endereço IP para o nome da máquina Domínio in-addr.arpa realiza o mapeamento inverso Exemplo: 52.0.2.10.in-addr.arpa contém informação sobre endereço 10.2.0.52 Outras informações Utiliza UDP nas comunicações Servidores operam seguindo a hierarquia dos nomes Nomes de domínios não diferenciam maiúsculo e minúsculo Cada componente do nome pode ter até 63 caracteres, e nomes completos até 255 caracteres Nomes de domínios seguem divisões poĺıticas e organizacionais e não existe relação entre hierarquia DNS e endereços IP Somente o nível mais alto é globalmente regulamentado Por exemplo, Nova Zelândia e Grã Bretanha utilizam.ac em vez de.edu e.co em vez de.com

Domain Name System (DNS) Servidor DNS Aceita requisições para tradução de nomes Cada servidor tem informação segura sobre certos nomes (configurados pelo administrador) e insegurança sobre outros (armazenados em cache) Um servidor deve ter informação segura sobre todos os sub-domínios da sua zona ou conhecer o endereço de outros servidores que a tenham Servidores cobrem regiões não sobrepostas no espaço de nomes Todos os servidores podem encontrar o servidor raiz Caching Todo servidor (e clientes também) devem armazenar informação obtida de transasões anteriores Essa prática funciona bem porque a informação é relativamente estática e em geral utilizada várias vezes Recursivo ou interativo? Clientes normalmente utilizam recursivo Servidores (atuando como clientes) utilizam interativo

Domain Name System (DNS) Resource Records Todos os domínios têm informação associada a eles Um resource record consiste de: nome do domínio tempo de vida (time to live) em segundos classe (sempre IN para Internet) tipo de registro (record) valor do registro

Domain Name System (DNS) Resource Records Start of Authority (SOA) domain ttl IN SOA origin contact (serial refresh retry expire minimum) domain: nome desse domínio ttl: tempo (em segundos) que clientes devem armazenar a informação desse registro origin: nome do servidor que mantém esse registro contact: e-mail do administrador desse domínio serial: versão do registro refresh: intervalo (em segundos) de atualização do servidor DNS secundário retry: intervalo (em segundos) de retentativa de atualização do servidor DNS secundário expire: validade (em segundos) da informação mantida pelo servidor DNS secundário minimum: tempo que o servidor DNS secundário mantém a informação desse registro

Domain Name System (DNS) Resource Records Name Server (NS) domain ttl IN NS server server: nome do servidor com informação segura sobre esse domínio Address v4 (A) e v6 (AAAA) host ttl IN A address host ttl IN AAAA address host: nome da máquina address: endereço IP da máquina Main Exchanger (MX): define o servidor de e-mail domain ttl IN MX preference host preference: prioridade do servidor Canonical Name (CNAME): define um apelido nickname ttl IN CNAME host nickname: apelido (alias)

Domain Name System (DNS) Resource Records Pointer (PTR): converte endereço IP em nome de máquina name ttl IN PTR host name: endereço IP no formato in-addr.arpa Well Known Services (WKS): identifica serviços disponíveis host ttl IN WKS address protocol service protocolo: protocolo de transporte (exemplo, TCP) service: lista de serviços (exemplo, snmp ftp www) Host Information (HINFO) host ttl IN HINFO hardware software hardware: identifica o hardware da máquina software: identifica o sistema operacional da máquina Notações especiais Símbolo @ substitui domínio origem Nomes completos no 1 o campo são terminados com ponto Nomes terminados sem ponto devem ser complementados com domínio de origem (exemplo, rowboat = rowboat.cs.vu.nl.)

Domain Name System (DNS) Exemplo de Resource Records

Domain Name System (DNS) Berkeley Internet Name Domain (BIND) Implementação mais utilizada em sistemas UNIX Componentes: Resolver, Name Server e arquivos de dados do domínio (resource records) Configuração do Resolver Contém nome do domínio padrão (default) Contém nome do(s) servidor(es) de nomes utilizado(s) Armazenada no arquivo /etc/resolv.conf Exemplo domain redes.unb.br domínio default nameserver 164.41.67.130 servidor de nomes 1 nameserver 164.41.67.131 servidor de nomes 2

Domain Name System (DNS) Berkeley Internet Name Domain (BIND) Configuração do Name Server Armazenada no arquivo /etc/named.boot Algumas linhas de exemplo (para BIND 8.2) options { directory "/var/named"; forwarders {10.0.0.1;10.0.0.2;}; forward first; allow-recursion {192.168.3.0/24;}; }; zone "." { type hint; file "root.servers"; }; zone "example.com" in { type master; file "master/master.example.com"; allow-transfer {192.168.23.1;}; }; diretório dos arquivos de dados para onde encaminhar perguntas encaminha antes de tentar resolver recursão só para hosts locais informação sobre um domain informação sobre root domain onde informação está

Correio Eletrônico Uma das primeira aplicações a se beneficiarem da interconexão de computadores em redes Atualmente ubíquo (onipresente) Muitas semelhanças com o sistema postal (snail mail) Especificação da Internet prevaleceu apesar de esforços para padronização internacional (com X.400) Caracteristicas do serviço Confiável, com confirmação de recebimento opcional Serviço sem conexão (exemplo de serviço sem conexão usando protocolo orientado a conexão, por exemplo TCP) Protocolos especificam transferência de arquivos, formato e codificação da mensagem, e formato do endereço Funções: compor, transferir, reportar, mostrar e dispor Outras funções: auto-encaminhar, responder em férias, mailing lists, alta prioridade, filtrar, etc. Dois subsistemas: User Agent e Message Transfer Agent

Correio Eletrônico Especificação RFCs 821 e sucessor 2821: protocolo de transmissão RFCs 822 e sucessor 2822: formato da mensagem Arquitetura

Correio Eletrônico User Agent Composição e exibição da mensagem Disposição da mensagem (eliminação, arquivamento, encaminhamento) Comunicação com o MTA local Espera endereço no formato: username@domain Muitos exemplos: Outlook, Thunderbird, Eudora, etc. Message Transfer Agent Mantém mensagens ainda não lidas Controla fila de mensagens a serem enviadas Protocolo SMTP (Simple Message Transfer Protocol) permite troca de mensagens entre MTAs

Correio Eletrônico SMTP Cliente SMTP estabelece conexão TCP com os servidores SMTP destinatários utilizando porta 25 Diálogo composto de 3 fases: Handshaking, Transferência de mensagens, e Fechamento Mensagem (corpo e cabeçalho) deve utilizar apenas codificação ASCII de 7 bits Exemplo de diálogo: S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "."on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

Correio Eletrônico SMTP Utiliza conexões persistentes (vários request-reply em uma mesma conexão) Fim da mensagem indicada por CRLF. CRLF Tente usar o SMTP você mesmo (como enviar um e-mail sem ter o cliente): Digite telnet servername 25 Deve aparecer uma resposta 220 do servidor Utilize os comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT l Formato da mensagem Originalmente apenas texto ASCII Definido o Multipurpose Internet Mail Extension (MIME) para multimídia, outros idiomas que não o inglês, etc. Conteúdos em diversos formatos definidos na RFC 1521

Correio Eletrônico Cabeçalho (header) da mensagem

Correio Eletrônico MIME Protocolo que permite a transmissão de dados não-texto Cabeçalho indica conteúdo do tipo MIME Cabeçalho MIME Exemplo de cabeçalho

Correio Eletrônico MIME Tipos e subtipos

Correio Eletrônico Protocolos de acesso SMTP (ou ESMT) entrega e armazena no servidor do destino Como o usuário acessa e recupera as mensagens? Utilizando um protocolos de acesso Post Office Protocol (POP): usuários apenas fazem o download de mensagens; oferece funcionalidade reduzida; difícil para o usuário móvel Internet Mail Access Protocol (IMAP): mais complexo; permite manipulação de mensagens armazenadas no servidor HTTP (exemplo, Hotmail, Yahoo!Mail, etc.)

Correio Eletrônico POP3 Permite que o UA contacte o MTA para copiar mensagens Após conexão, diálogo passa por 3 estados: Autorização, Transação, e Atualização Alguns comandos USER: especifica usuário PASS: especifica senha STAT: obtém quantidade de mensagens LIST: obtém lista e tamanhos das mensagens RETR: recupera mensagem DELE: marca mensagem para descarte QUIT: descarta mensagens marcadas e fecha conexão TCP

Correio Eletrônico Exemplo de diálogo POP

Correio Eletrônico Comparação POP e IMAP

Transferência de Arquivos File Transfer Protocol (FTP) Transferência de arquivo de/para host remoto (veja RFC 959) Modelo cliente-servidor (cliente inicia transferência) Diálogo: Cliente contacta servidor utilizando TCP na porta 21 e estabelece conexão de controle Cliente obtém autorização para acesso Cliente navega pelo sistema remoto de diretórios Ao receber um um pedido de transferência de arquivo, servidor estabele uma conexão de dados com o cliente utilizando TCP na porta 20 Após transferência de arquivo, conexão de dados é fechada Servidor mantém estado da conexão Dados e controle utilizam canais separados

Transferência de Arquivos File Transfer Protocol (FTP) Comandos enviados como texto ASCII pelo canal de controle USER username PASS password LIST: lista de arquivos no diretório atual RETR filename: retrieve STOR filename: store Respostas Código seguido de frase (similar ao HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file

Transferência de Arquivos File Transfer Protocol (FTP) FTP original é inseguro porque senhas, arquivos, comandos e respostas são enviados sem encriptação (podem ser captados por um packet sniffer) A solução usual a esse problema é utilizar SFTP (SSH File Transfer Protocol) ou FTPS (FTP over SSL) (veja RFC 4217) FTP utiliza múltiplas conexões TCP: 1 para controle e 1 para cada download, upload ou listing Alta latência devido ao número de comandos para iniciar a transferência Não existe verificação de integridade no receptor; se a transferência é interrompida o receptor não consegue saber se o arquivo está completo ou não Alguns servidores utilizam checksum

World Wide Web (WWW) Ou simplesmente Web Estrutura para acesso de documentos conectados e espalhados pelo globo Milhões de máquinas conectadas

World Wide Web (WWW) Uma página da Web é composta de objetos A base é um arquivo HTML (Hypertext Markup Language) que inclui referência a vários outros objetos Objetos podem ser arquivo HTML, imagem JPEG, applet Java, arquivo de áudio, etc. Cada objeto tem um endereço URL (Uniform Resource Locator) Exemplo URL: http://www.uem.br/din/pics/pic.gif protocolo html, domínio www.uem.br, diretório din/pics, e arquivo pic.gif Lado do cliente (browser) Interpretador HTML Páginas não HTML com uso de helpers, plug-ins Lado do servidor Otimização para acesso rápido: server farms, multithreading, etc.

World Wide Web (WWW) Uniform Resource Locator (URL)

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Especifica regras para a interação cliente-servidor Cliente utiliza browser que faz pedidos, recebe e mostra objetos Servidor envia objetos em resposta aos pedidos Camada de aplicação da Web HTTP/1.0: veja RFC 1945 HTTP/1.1: veja RFC 2616 Tipicamente utiliza TCP como protocolo de transporte Operações HTTP são denominadas métodos Requisição consiste de 1 ou mais linhas de texto ASCII especificando o método na primeira linha Resposta consiste de linha de status (com código de 3 dígitos) e possivelmente informação adicional

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Utiliza TCP porta 80 Cliente inicia conexão e solicita objetos Servidor aceita conexão e responde às requisições Ao final conexão TCP é fechada Conexão HTTP não tem estados Servidor não mantém qualquer informação sobre as requisiões dos clientes

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Exemplo de operação Usuário entra com a URL www.uem.br/home.html Cliente HTTP inicia conexão TCP, porta 80, para servidor HTTP de www.uem.br Cliente envia request message (contendo a URL) para servidor Cliente recebe resposta contendo objeto e apresenta o conteúdo Servidor HTTP em www.uem.br espera conexões TCP na porta 80 Servidor aceita conexão e avisa cliente Servidor recebe pedido, monta response message contendo o objeto solicitado e envia Servidor fecha conexão

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Não-persistente 1 objeto é enviado por conexão TCP Servidor analisa pedido, envia resposta e fecha conexão TCP HTTP/1.0 opera dessa maneira 2 RTT (Round Trip Time) para obter 1 objeto Sofre com slow start do TCP Browsers usualmente abrem várias conexões paralelas Persistente Na mesma conexão TCP vários objetos são trazidos Persistent sem pipelining Nova requisição enviada sómente após receber resposta anterior 1 RTT por objeto Persistent com pipelining Requisições enviadas assim que objetos referenciados são encontrados Com sorte, 1 RTT por todos os objetos Modo default para HTTP/1.1

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Mensagens: request e response Formato ASCII para leitura por humanos Mensagem de requisição: formato

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Mensagem de requisição: exemplo

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Mensagem de requisição: métodos (ou verbos) HEAD: mesma resposta obtida com o GET mas sem o corpo da mensagem de resposta GET: requisita o objeto especificado POST: submete dados para serem processados (por exemplo, formulário HTML) PUT: upload objeto especificado DELETE: apaga o objeto especificado TRACE: ecoa a requisição recebida OPTIONS: retorna os métodos HTTP respaldados pelo servidor CONNECT: converte conexão em um túnel TCP/IP (usualmente para converter para conexão encriptada)

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Mensagem de resposta: exemplo

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Mensagem de resposta: códigos de status 1xx: informação; requisição recebida e sendo processada 2xx: sucesso; requisição recebida, entendida e aceita 3xx: redireção; cliente necessita procedimentos adicionais para completar requisição 4xx: erro do cliente; sintaxe ruim ou requisição não pode ser atendida pelo servidor 5xx: erro do servidor; requisição válida mas que não pode ser atendida 100 Continue servidor recebeu cabeçalho da requisição e precisa do corpo da mensagem 200 OK requisição foi bem-sucedida 301 Moved Permanently objeto requisitado foi movido permanentemente; nova URL no campo Location da mensagem de resposta 400 Bad Request requisição não pode ser atendida 404 Not Found documento requisitado não existe 505 HTTP Version Not Supported versão HTTP não é respaldada pelo servidor

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Faça Você Mesmo Conecte-se a um servidor HTTP e abra uma conexão TCP na porta 80 telnet www.din.uem.br 80 Digite um pedido GET e tecle 2 vezes carriage return GET /~elvio/index.html HTTP/1.0 Verifique a resposta

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Autenticação Objetivo: controlar acesso ao servidor Sem estados: cliente apresenta autorização a cada requisição Autorização: tipicamente nome e senha l authorization colocada em linha no cabeçalho Se ausente, servidor recusa acesso e envia WWW authenticate Browser mantém nome e senha em cache para evitar que usuário tenha que digitá-los seguidamente

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) Cookie l Servidor envia cookie ao cliente em uma mensagem de resposta Exemplo: Set-cookie: 1678453 Cliente apresenta o cookie em requisições futuras Exemplo: cookie: 1678453 Servidor compara informação recebida com informação armazenada para: autenticação; lembrar preferências do usuário, escolhas anteriores, etc. Desvantagens: permitem obter informação sobre usuário (nome, e-mail, etc.)

World Wide Web (WWW) Hypertext Transfer Protocol (HTTP) GET Condicional l Objetivo: evitar que servidor envie objeto que já está armazenado no cliente (em cache) Cliente especifica data do objeto armanezando na requisição If-modified-since: date Resposta do servidor não contém dados se o objeto armazenado está atualizado HTTP/1.0 304 Not Modified

World Wide Web (WWW) Proxy Server (Web Cache) Objetivo: atender o cliente sem envolver o servidor de Web originador da informação Usuário configura browser para realizar acesso através de um proxy Cliente envia todas as requisições HTTP para proxy server Se o objecto existe na cache ele é retornado Ou proxy server solicita do servidor original

World Wide Web (WWW) ll Proxy Server (Web Cache) Porque Web Caching? Armazenamento perto do cliente Menor tempo de resposta Reduz tráfego com servidor distante Menor custo com enlaces externos

Peer to Peer (P2P) l Rede do tipo ad-hoc Presença do servidor nem sempre necessária Computadores finais podem comunicar-se diretamente Peers (parceiros) estão conectados intermitentemente (nem sempre com o mesmo endereço IP) Fácil de ser expandido mas difícil de ser gerenciado

Peer to Peer (P2P) Procura extrair vantagem da grande quantidade de recursos disponíveis na borda da rede Operação básica é de compartilhamento de arquivos Afilia-se a rede Publica e compartilha arquivos Procura por arquivos Obtém arquivo Aplicações: Compartilhamento de arquivos (áudio, vídeo, código) Telefonia (Skype) Comunicação (Instant Messaging) Jogos TV (Joost)

Peer to Peer (P2P) Questão: Quanto tempo seria necessário para 1 servidor distribuir um arquivo para N parceiros?

Peer to Peer (P2P) Distribuição de arquivos: BitTorrent

Peer to Peer (P2P) Distribuição de arquivos: BitTorrent Arquivo é dividido em pedaços com 256KB Peer entrando na torrent: Não tem nenhum pedaço; vai acumulá-los ao longo do tempo Registra-se com tracker e consegue uma lista de peers Conecta-se a subconjundo de peers (denominados vizinhos) Peer recebe e envia pedaços ao mesmo tempo Uma vez que o arquivo completo foi obtido, peer pode deixar torrent ou permanecer ajudando outros Obtendo pedaços Em um instante qualquer, cada peer pode ter um subconjunto diferente de pedaços do arquivo Cada peer pergunta aos vizinhos quais pedaços eles têm e solicita primeiro transferência daqueles mais raros Enviando pedaços Peer envia a 4 vizinhos na mais alta taxa de que capáz e espera o mesmo tratamento A posição desses 4 vizinhos é reavalizada a cada 10 segundos A cada 30 segundos um outro peer é escolhido aleatoriamente

Peer to Peer (P2P) Busca por informação Index: relaciona informação a localização do peer (endereço IP e número de porta) Compartilhamento de arquivos (e-mule) Index rastreia localização dos arquivos compartilhados Peers precisam comunicar index o que eles têm Peers procuram no index arquivos que eles querem Comunicação (Instant messaging, IM) Index relaciona nomes a localizações Quando um usuário começa a aplicação IM ele informa a sua localização Peers buscam no index o endereço IP dos usuários

Peer to Peer (P2P) l Index centralizado Arquitetura do Napster original 1. Quando peer conecta-se, ele informa ao servidor central o seu endereço IP e o seu conteúdo 2. Alice pergunta por um artigo 3. Alice pede arquivo a Bob Problemas: Ponto único de falha Possível engarrafamento no servidor Pirataria: alvo é óbvio

Peer to Peer (P2P) Index descentralizado: Query flooding Sem servidor central; totalmente descentralizado Usado por Gnutella Cada peer indexa os arquivos que ele mantém para compartilhamento Utiliza rede em grafo construída sobre rede física Enlace entre peers X e Y significa que existe uma conexão TCP entre eles Cada peer está conectado a até 10 vizinhos Query flooding Mensagem de Query enviada por TCP ao vizinhos Vizinhos encaminham adiante Query Quando ítem é encontrado, mensagem QueryHit é encaminada no sentido inverso

Peer to Peer (P2P) Query flooding