• Nenhum resultado encontrado

Sistemas entre Pares e Redes Sobrepostas

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas entre Pares e Redes Sobrepostas"

Copied!
33
0
0

Texto

(1)

Sistemas entre Pares e Redes Sobrepostas

Obstáculos às redes P2P e Coral CDN

Ricardo Lopes Pereira [email protected]

IST

(2)

1 Obstáculos às rede P2P

Overview NAT

Contornar NAT

Impacto de NAT no BitTorrent

2 Coral CDN Overview Funcionamento DSHT DNS Proxy HTTP

(3)

Obstáculos P2P

(4)

Obstáculos

As aplicações P2P representam um novo paradigma de utilização da Internet

Redes dos ISPs foram desenhadas para lidar com tipo de tráfego diferentes

Os obstáculos às aplicações P2P incluem:

Ligações assimétricas, onde a capacidade de upload é muito menor que a da download. Impede os peers de contribuírem tanto quanto recebem

Firewalls e Network Address Translation. Impedem peers de receber ligações de outros peers

(5)

NAT

Técnica que se popularizou devido à escassez de endereços IPv4

Consiste na utilização de um único endereço IP público para fornecer acesso à Internet a vários aparelhos

Muito frequente devido à utilização dos routers wireless nos acesso à Internet de banda larga

Router mapeia ligações originadas no endereços IP privados no interior da rede em portos no seu endereço IP público

(6)

Obstáculos P2P

É, na maior parte dos casos, transparente para o cliente, mas cria problema quando as aplicações usam várias ligações (ex: FTP)

Impede a recepção de novas ligações por nós atrás de NAT, uma vez que o mapeamento ainda não existe no router. Este não sabe para quem se destina a nova ligação

Quando apenas um dos peers está atrás de NAT, pode ser esse a estabelecer a ligação. Quando ambos estão atrás de NAT, tal não é possível

(7)

Alternativas

Há estimativas que indicam que 70% dos nós da Internet estão atrás de NAT1

Chegada (para quando?) do IPv6 deverá acabar com problema uma vez que deixa de haver escassez de endereços IP. Depois a única motivação será segurança e o anonimato fornecido por NAT

NAT pode ser contornado:

Congurando manualmente mapeamentos de determinados portos para determinados IPs: não escalável

Possibilitando que as aplicações denam automáticamente os mapeamentos: levanta problemas de segurança. Viável no ambiente doméstico, onde UPnP é hoje suportado pela maioria dos routers à venda

Utilizando serviços especícos

(8)

Comunicação através de servidores intermédios

Peers atrás de NAT comunicam ambos com o servidor Servidor procede, a nível aplicacional, à troca de mensagens entre os peers

Solução não escalável uma vez que servidor tem de processar todo o tráfego entre os peers, eliminando as vantagens do modelo P2P

(9)

NAT hole punching

Técnica para abrir buracos num router NAT Funciona apenas para UDP

Peers que cam atrás de NAT enviam pacote UDP para servidor com endereço público

Servidor passa a conhecer endereços publicos e portos em ambos os NAT

Envia a cada peer o endereço do NAT do outro

Peers passam a enviar pacotes UDP directamente entre eles Não funciona com todos os tipos de NAT

(10)

NAT hole punching por tentativas

Quando hole punching iniciado com um terceiro não funciona (caso de NAT simétrico onde origem dos pacotes de resposta tem de ser igual ao destino dos pacotes originais)

É necessário ter uma ideia de qual o porto que o router NAT irá escolher (possível se forem sequenciais)

Cada um dos nós começa a enviar pacotes para o outro, usando o porto previsto

Primeiro pacote não entrará até que o peer também envie um pacote para abrir a rewall

Pode requerer várias tentativas

(11)

Interactive Connectivity Establishment - ICE

Protocolo em desenvolvimento pelo IETF

Assume que: nós não têm conhecimento de como estão ligados à Internet; existe um canal de comunicação entre os nós Nós comunicam com servidor ICE para determinar o seu estado e ter um canal de comunicação

Numa primeira fase, os nós comunicam com o servidor ICE para determinar o seu estado: com IP público, atrás de NAT (qual o endereço do router)

De seguida várias possibilidades de ligação são determinadas e comunicadas aos peers

Um dos peers, o controlador, escolhe a prioridade dos métodos de ligação e estes são tentados até se conseguir uma ligação: ligação directa (caso pelo menos um dos nós tenha IP público), NAT hole punching ou através de um servidor

(12)

Desenho de aplicações P2P considerando NAT

Uma aplicação P2P pode ser desenhada considerando que parte dos peer não vão conseguir receber ligações

Peers podem ser divididos em peers completos (ou super-peers) que fazem parte do overlay

Os peers que não conseguem receber ligações funcionam apenas como clientes dos peers completos, não fazendo verdadeiramente parte da rede P2P

Esta abordagem exige que alguns dos peers (os completos) estejam dispostos a suportar os clientes, que não contribuem para o sucesso da aplicação

Skype utiliza uma abordagem semelhante, onde alguns dos peers encaminham tráfego para os que estão atrás de NAT

(13)

NAT em BT

Impacto de NAT no desempenho do BitTorrent

2

2Grácos retirados de The Impact of NAT on BitTorrent-like P2P Systems

(14)

Impacto de NAT no BT

Peers atrás de NAT não conseguem receber ligações:

Visão do swarm é reduzida pois apenas podem ligar-se a peers com IP público

O seu upload apenas é dado aos peers com IP público Upload dos peers com IP público partilhado por todos, com e sem NAT

Não devido ao NAT mas por causa do cenários onde se usa NAT, tipicamente em cenários domésticos, peers com NAT tendem a ter uploads mais baixos

Peers com IP público vão preferir outros peers com elevada capacidade de upload, reduzindo mais a capacidade dos peers com NAT de realizar download

(15)

Cenário de simulação

1 seeder com 1 Mbps de upload partilha cheiro de 100MB 500 leechers entram em 5s

Leechers tem probabilidade α de estarem atrás de NAT (incontornável)

Ficheiro dividido em partes de 64KB

Leechers entram com 5% do cheiro e saem após terminar download

Peers têm 5 slots de upload e tracker fornece 50 peers

Download de 3Mbps e upload 384Kbps (no caso heterogéneo, peers com IP público tem 1Mbps de upload)

Para além da simulação foi também denido um modelo analítico

(16)

Tempo de download com upload homogéneo

Aumento de peers com NAT diminui desempenho global. Peers sem NAT beneciam do aumento de peers NAT (só os servem a eles)

(17)

Tempo de download com peers NAT com baixo upload

Desempenho deteriora mais rapidamente com introdução de peers com NAT.

(18)

Privilegiar peer com NAT no optimistic unchoking

Objectivo: modicar BitTorrent de modo a limitar discrepância de desempenho entre peers com IP público e peers atrás de NAT

Tit-for-tat considerado determinante para conseguir justiça e manter o desempenho global do sistema, pelo que não deveria ser alterado

Solução: Alterar a estratégia de selecção de peers para optimistic unchoking, fazendo com que os peers com IPs públicos favoreçam os peers atrás de NAT

Desempenho de peers atrás de NAT sobe signicativamente, sem que o desempenho dos peers com IP público seja muito afectado

(19)

Tempo de download, upload homogéneo, 20% NAT, biased

optimistic peer unchoking para NAT

(20)

Tempo de download, upload homogéneo, 40% NAT, biased

optimistic peer unchoking para NAT

(21)

Proxy HTTP

Coral CDN

Rede de distribuição de conteúdos

Coral CDN

3

3Imagens retiradas de Democratizing content publication with Coral por

(22)

Proxy HTTP

O que é

Coral CDN é uma rede de distribuição de conteúdos para HTTP

Funciona com um proxy distribuído para sites HTTP,

permitindo a editores com poucos recursos publicar conteúdos muito populares

Sistema de DNS direcciona clientes para servidor Coral próximo do cliente

Proxies HTTP guardam conteúdo. Para servir cliente conteúdo é puxado de outro proxies, apenas sendo consultado o servidor original caso o conteúdo não esteja disponível

Custo de publicação de conteúdos pode ser obstáculo para editores com menos recursos. É frequente sites carem o-line ao serem slashdoted

(23)

Proxy HTTP

Quem corre servidores

Existem uma instância a correr no planet lab Servidores corridos por entidades voluntárias:

com o objectivo de diminuir o tráfego para as suas redes e melhorar o desempenho dos seus utilizadores (tal como ISPs alojam Akamai e mirrors de conteúdos populares). Nestes casos podem não enviar tráfego para fora da sua rede por bons samaritanos (universidades, etc...)

(24)

Proxy HTTP

Como usar (planet lab)

Basta suxar o endereço do site de .nyud.net para que conteúdo seja servidor por Coral

Os conteúdos são replicados em função da sua popularidade Quem usa:

Editores: podem alterar o URL de partes (ou todo) o seu site, passando assim a responsabilidade para o Coral. Ex:

coralizar as imagens de um site

Terceiros: ao divulgar um site, é possível fornecer o URL do Coral caso seja esperado um uxo de visitantes maior que o site pode processar

Clientes: podem utilizar URL Coral para aumentar o desempenho no acesso a sites lentos (mas populares para já estarem no Coral)

(25)

Proxy HTTP

Arquitectura

O Coral é constituído por 3 partes:

DSHT que fornece os serviços de indexação e clustering (proximidade)

Aplicação sobre DSHT: servidor DNS Aplicação sobre DSHT: proxy HTTP

Baseado no conceito de DSHT (Distributed Sloppy Hash Table) onde chave é não é guardada num local exacto mas em vários sítios

Desenho evita pontos quentes (muita carga) dentro da infraestrutura

(26)

Proxy HTTP

Funcionamento

1. Cliente resolve

www.x.com.nyud.net através do seu servidor DNS (resolver) 2. Servidor DNS contacta servidor DNS Coral

3. DNS Coral mede RTT e últimos hops para resolver 4. Servidor DNS procura

servidores DNS e proxy próximos do resolver

5. Servidor DNS retorna servidores próximos ou (se não existirem) aleatórios

(27)

Proxy HTTP

Funcionamento

6. Resolver retorna endereço de proxy coral

7. Browser envia pedido aos proxy. Se este tiver conteúdo retorna

8. Proxy procura conteúdo na DSHT Coral

9. Proxy puxa conteúdo de outro proxy ou do site original 10. Proxy guarda conteúdo e entrega-o ao browser

11. Proxy guarda na DSHT uma referência ao conteúdo em si

(28)

Proxy HTTP

Coral DSHT

Baseada no Kademlia

3 níveis de DSHT onde o nó está presente nos 3 níveis, em DSHT diferentes que formam clusters de nós próximos:

Nível 0 contém todos os nós

Nível 1 contém nós a 60ms de distância Nível 2 contém nós a 20ms de distância

ID dos nós é hash do IP

DSHT guarda soft-state (expira se não renovado):

URL - lista de nós que contém objecto

(29)

Proxy HTTP

Inserções na DSHT

A cada hop a busca aproxima-se do ID mais próximo da chave Procura termina ao chegar ao nó mais próximo ou a um nó com determinado número de entradas (para a chave) frescas e que tenha visto determinado ritmo de queries

Cada um dos hops atravessados é colocado numa pilha e inserção é tentada do topo para a base

(30)

Proxy HTTP

Procura na DSHT

A cada passo aproxima-se do nó mais próximo do valor

Se encontrar resultado pelo caminho termina busca Se não encontrar no primeiro nível (2) vai descendo

(31)

Proxy HTTP

DNS

nyud.net mapeado em http.L2.L1.L0.nyucd.net Todos os servidores são autoritários

Em cada resolução DNS segue a resposta (proxy) e um conjunto de servidores DNS

Servidores pertencem ao cluster do nível mais alto encontrado perto do resolver do cliente

TTL é de uma hora

Níveis permitem, que ao ser encontrado um cluster de nível superior, sejam alterados os servidores DNS pois suxo é mais longo

(32)

Proxy HTTP

Proxy HTTP

Respostas DNS de proxies com TTL baixo para contornar falhas

Proxy procura conteúdo na DSHT e apenas vai buscar ao servidor original caso não encontre

Ao começar download (seja de onde for), insere conteúdo na DSHT com TTL de 20s (renovado até terminar download), para defender de ash crowds

Ao terminar download insere TTL de uma hora

Cache local gerida de modo a evitar apagar objecto ainda referênciados no DSHT

(33)

Proxy HTTP

Fim

Referências

Documentos relacionados

O rosto deve ser olhado, contemplado, porque só assim temos acesso ao conhecimento do outro: a singularidade do rosto, a possível presença nele de traços do seu parentesco,

Nós espíritas, temos de nossa parte, procurar conhecer a Doutrina, desenvolvendo a prática da leitura constante, e buscar nas obras de Kardec um manancial de

Notemos tamb´em que no diagrama padr˜ao do n´o de 2-pontes obtemos as tor¸c˜oes a 0 i s com i par, com os sinais de tor¸c˜ao opostos ao do diagrama regular inicial; pois para obter

Não pela cronologia de meus anos, mas pelo que vivi e pelo que partilhei em minha vida com pessoas como Orlando Fals-Borda, Paulo Freire e tantas e tantos outros,

Ela não é a mais completa apostila de nós e amarras, porém ela pode ser de grande ajuda para você desbravador(a) que gosta dessa área, pois, aqui estão

Para o prolongamento do cabo, poderão ser utilizados vários nós, no entanto os mais frequentes são o nó de oito podendo também ser utilizado o de pescador duplo.... Nó

Pretendemos, neste trabalho, evidenciar como, por meio da analogia do beisebol que Troy utiliza, Um limite entre nós de August Wilson (2016) silencia a mulher

“A minha Horta, tem para mim o mesmo significado que tinha a minha horta de rabanetes no canto do Quintal. quando era miúdo, semear ver nascer ver crescer e quantas vezes