• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
125
0
0

Texto

(1)

REDES DE COMPUTADORES

Camada de Aplicação

(2)

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

(3)
(4)

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

(5)

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

(6)

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)?

(7)

Princípios das Aplicações de

Rede

(8)

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;

(9)

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

(10)

Arquiteturas das aplicações de

rede – Cliente-Servidor

(11)

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

(Data-center), aumentando o custo

– Se os servidores falharem, requisições não serão atendidas

(12)

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

(13)

Arquiteturas das aplicações de

rede – Peer-to-Peer (P2P)

(14)

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

(15)

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

(16)

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!

(17)

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!

(18)

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

(19)

Socket

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

Serviços oferecidos na prática

• Comparativo entre a utilização dos protocolos

(29)

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

(30)

Endereçamento de processos

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

HTTP com conexão não-persistente

• RTT (Round-Trip Time): Tempo de viagem de ida e volta

(40)

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

(41)

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.

(42)

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.

Para cada um dos 10 arquivos, os passos 1-5 devem ser

(43)

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

Adiciona 10*(2 RTT + tempo de transm. do arquivo)

• Total:

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

(44)

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)

(45)

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

(46)

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

(47)

Formato de mensagem HTTP

• Especificação na RFC 2616

• Dois tipos: Requisição e Resposta • Exemplo de requisição HTTP:

Linha de GET /somedir/page.html HTTP/1.1

requisição

Host: www.someschool.edu Linhas Connection: close

de cabeçalho User-agent: Mozilla/4.0 Accept-language: fr

(48)
(49)

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!

(50)

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:

(51)

Formato de mensagem de resposta

HTTP

(52)

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

(53)

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 – ....

(54)

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

(55)

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

(56)

Cookies Exemplo

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

(57)

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

(58)
(59)

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

(60)

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

(61)

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

(62)

Caches Web (servidor proxy)

• Um proxy atua como cliente e servidor

• Dessa forma, um proxy tende a reduzir o tempo de resposta

(63)

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

(64)

E se o arquivo estiver desatualizado

no proxy??

• Mecanismo do HTTP para verificação dos objetos

• Comando GET “Condicional”

(65)

GET Condicional

(66)

GET Condicional

• Proxy faz consulta

(67)

GET Condicional

• Servidor responde ao proxy

(68)

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??

(69)

GET Condicional

• GET condi- cional:

(70)

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

(71)

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

(72)

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

(73)

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

(74)

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

(75)

Comandos FTP

• Outros comandos para mudança de diretório, modo da transferência, tipo (ASCII ou binário...)

(76)

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

(77)

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

(78)
(79)

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

(80)

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

(81)

SMTP

• Características

– Utiliza porta TCP 25

– SMTP utiliza conexões persistentes

– Apenas envia as mensagens entre os servidores de correio dos usuários

(82)

SMTP

• Exemplo de mensagem

Cliente: MAIL FROM: <[email protected]>

Server: 250 [email protected] Sender ok

Cliente: RCPT TO: <[email protected]>

Server: 250 [email protected] 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

(83)

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)

(84)

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

(85)

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.

(86)

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

(87)

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

(88)

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

(89)

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

(90)

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

(91)

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?

(92)

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!

(93)

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

(94)

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

(95)
(96)

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

(97)

Funcionamento do DNS

(98)

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

(99)

Funcionamento do DNS

(100)

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

(101)

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??

(102)

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

(103)

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)

(104)

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 • ...

(105)

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

(106)

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

(107)

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 auto-escalabilidade

– Cada par aumenta a demanda por arquivos, mas também aumenta a capacidade de redistribuição

(108)

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

(109)
(110)

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

(111)

Aplicações P2P

• Métodos de consulta de arquivo para P2P

– Diretório centralizado – Inundação de consultas

(112)

Diretório Centralizado

• Troca de arquivos se dá diretamente entre os pares

(113)

Diretório Centralizado

• Depende da estrutura do servidor

– Pode acarretar em um gargalo de desempenho

(114)

Inundação de consultas

• Gnutella: aplicação de compartilhamento de arquivos

• Abordagem completamente distribuída • Não utiliza servidor centralizado

(115)
(116)

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)

(117)

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!)

(118)

Skype

• Serviços de mensagens instantâneas

– Pares se comunicam em tempo real

• Aplicações:

– Telefonia de PC para telefone – Telefone para PC

(119)

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

(120)

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

(121)

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

(122)

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

(123)

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

(124)

Para Casa

• Leitura do cap. 2 (Livro do Kurose)

• Lista de Exercícios 2

(125)

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.

Referências

Documentos relacionados

O objetivo deste trabalho foi avaliar épocas de colheita na produção de biomassa e no rendimento de óleo essencial de Piper aduncum L.. em Manaus

Campral só deverá por isso ser usado durante a gravidez após avaliação cuidadosa da relação benefício/risco, quando a paciente não se consegue abster de beber álcool sem

Dada la dimensión del producto y debido a las tolerancias de planaridad permitidas (de acuerdo con las normas internacionales), recomendamos la aplicación en paralelo y, en el caso

O cenário delineado por Silviano comporta, como o próprio crítico assinala, diversos pontos de vista, embora todos eles privilegiem, de alguma maneira, a mudança, o desafio de

Os sujeitos da pesquisa foram os trabalhadores, homens e mulheres, com vínculo público estatutário, nas categorias de enfermeiro, técnico e auxiliar de enfermagem

No caso descrito o tra- tamento se baseou na terapia neuropro- tetora, que é efetiva quando administrada dentro de um tempo restrito após a lesão e quando o

Determine analiticamente as zonas de funcionamento do transístor ao longo de um período da tensão de entrada e esboce a forma de onda da tensão tirada do