P2P: BitTorrent Rafael Oliveira Romeiro

P2P: BitTorrent Rafael Oliveira Romeiro Introdução Distribuição de arquivos ● Modelo centralizado Servidor (Responsável por todo upload)  Clien...
1 downloads 0 Views 586KB Size
P2P: BitTorrent

Rafael Oliveira Romeiro

Introdução

Distribuição de arquivos ●

Modelo centralizado Servidor (Responsável por todo upload)  Clientes (Realizam download) 



Modelo distribuído Pares (Fazem tanto download quanto upload)  Podem existir servidores com funções auxiliares 

BitTorrent ●

P2P



Troca equivalente Garantir justiça entre os pares (fairness)  Impedir práticas oportunistas (free riding) 

Funcionamento

Publicando e obtendo um arquivo ●

Arquivo .torrent Nome  Info  Tamanho total  Tamanho dos pedaços  Hash dos pedaços  URL de ao menos um servidor de rastreamento (tracker)  Outros... 

Publicando e obtendo um arquivo (cont.) ●

Sites de indexação Disponibiliza arquivos .torrent  Oferece recursos como busca de arquivos e publicação de comentários 



Cliente BitTorrent 

Gerencia o download de vários torrents

Distribuição dos pares ●

Tracker (servidor de rastreamento) Auxilia os pares a encontrar outros pares  Quando consultado, retorna uma lista contendo um subconjunto aleatório de pares compartilhando determinado arquivo 



Seeder (semente) Possui o arquivo completo  Não faz download, realizando apenas upload 



Leecher Ainda não possui o arquivo completo  Fazem tanto download quanto upload 

Troca de blocos ●



Arquivo é dividido em pedaços, que por sua vez são subdivididos em blocos Cada par anuncia aos pares que ele conhece quais pedaços completos ele possui Antes de serem anunciados, a integridade de cada pedaço é verificada utilizando o hash SHA1 presente no arquivo .torrent 



Baseado na oferta de pedaços de seus pares conhecidos, cada par irá escolher um pedaço para fazer download e então irá requisitar blocos desse pedaço para diferentes pares

Algoritmos

Seleção de pedaços ●

Prioridade estrita São requisitados blocos de apenas um pedaço de cada vez  Obtem o mais rápido possível pedaços completos, para que estes passem a ser oferecidos aos outros pares 



Mais raro primeiro (rarest first) Seleciona primeiro os pedaços mais raros entre os oferecidos pelos pares conhecidos  Obtém pedaços que outros pares também querem, o que facilita a futura possibilidade de upload  Deixa para depois os pedaços mais comuns, o que facilita a futura possibilidade de download  Atua positivamente na dispersão dos pedaços no seeder, replicando o mais rápido possível os pedaços que apenas o seeder possui  Evita que pedaços não estejam mais disponíveis em nenhum dos pares 

Seleção de pedaços (cont.) ●

Primeiro aleatório Seleciona de forma aleatória o primeiro pedaço a ser obtido  Ao se iniciar o download de um arquivo, um par não possui nenhum de seus pedaços, portanto não é capaz de fazer upload  Pedaços raros são oferecidos por poucos pares, tendendo a ser obtidos mais lentamente do que pedaços comuns, que são oferecidos por vários pares 



Endgame Utilizado quando falta apenas um pedaço  Todos os blocos do pedaço faltando são requisitados a todos os pares conhecidos  Cancelamentos são enviados conforme os blocos forem sendo obtidos 

Seleção de pares ●

Sufocamento (choking) Diz-se que um par está sufocando (choking) outro par quando aquele estiver negando upload a este, do contrário, o par o está dessufocando (unchoking)  A todo momento, cada par estará sufocando todos os outros pares conhecidos, com exceção de um número fixo de pares (normalmente 4) que serão reselecionados a cada 10 segundos  Os pares dessufocados por determinado par serão aqueles que estiverem provendo as maiores taxas médias de download para este par nos últimos 20 segundos  Cada par irá fazer download de todos os outros pares que puder 



Dessufocamento otimista (optimistic unchoking) A cada 30 segundos, um dos pares a ser dessufocado é selecionado aleatoriamente  Cada par possui apenas informações locais  Visa explorar novas possibilidades de reciprocidade 

Seleção de pares (cont.) ●

Anti-esnobismo Quando um par não recebe nada de determinado outro par de quem ele estava fazendo download no período de 1 minuto, diz-se que este par o está esnobando  Pode acontecer de um par estar sendo esnobado por todos os pares de quem ele estava fazendo download. Nesse caso, o par demora a recuperar sua taxa de download  Quando um par considera que determinado outro par o está esnobando ele deixa de fazer qualquer upload para este par, ocorrendo assim mais de um dessufocamento otimista sucessivo 

Seleção de pares (cont.) ●

Somente upload Seeders não fazem download, portanto eles irão selecionar os pares a quem fazer upload de acordo com quais pares foram dessufocados mais recentemente  Será mantido um conjunto de pares dessufocados mais recentemente que serão novamente selecionados para serem dessufocados a cada 10 segundos  Em dois intervalos consecutivos de 10 segundos um par é selecionado aleatoriamente para ser dessufocado, tomando o lugar do par dessufocado menos recentemente dentre os pares dessufocados mais recentemente  No terceiro intervalo de 10 segundos os pares dessufocados são mantidos 

Performance

Modelo de fluido ●

Proposto por [Dongyu Qiu, R. Srikant] x(t) = Número de leechers no instante t. y(t) = Número de seeders no instante t. λ = Taxa de chegada de leechers, assumido que esta obedece um processo de Poisson. μ = Largura de banda de upload dos pares, assumindo que esta é igual para todos os pares. c = Largura de banda de download dos pares, assumindo que esta é igual para todos os pares e que c ≥ μ. θ = Taxa em que um leecher cancela o download. γ = Taxa em que um seeder sai do sistema. η = Eficácia na distribuição do arquivo, assumindo valores entre 0 e 1

Modelo de fluido (cont.) ●

Limite de largura de banda total de upload: μ(ηx(t) + y(t)) Limite de largura de banda total de download: cx(t) Taxa total de download e upload: min{cx(t), μ(ηx(t) + y(t))}

Podemos considerar, sem perda de generalização, que o tamanho do arquivo é 1 ●





Taxa de download equivale a taxa em que leechers se tornam seeders

Variação da quantidade de leechers e seeders:

Estado estacionário ●

Variação nula: ẋ(t) = ẏ(t) = 0



Se cx ≤ μ(ηx + y):



Resolvendo



Substituindo na restrição...

Estado estacionário (cont.) ●

Se cx ≥ μ(ηx + y):



Resolvendo



onde



Substituindo na restrição...

Estado estacionário (cont.) ●

Se definirmos



Podemos reunir as duas soluções como:

Tempo médio de download Lei de Little: o número de elementos no interior de um sistema em equilíbrio é igual ao produto entre a taxa de chegada dos elementos e o tempo médio que esses elementos permanecem no sistema ●

Tempo médio de download (cont.) Aplicando a Lei de Little em consideração ao conjunto de leechers que se tornarão seeders, temos: ●



Usando o valor de x, obtemos:

Como β não depende de λ, consequentemente T também não depende de λ. Portanto, podemos afirmar que o sistema é escalável. ●

Eficácia Podemos definir a eficácia na distribuição do arquivo como sendo: ●

η = 1 - P{leecher i não possui pedaços do interesse dos leechers conectados a ele}

Assumindo que as distribuições de pedaços entre os diferentes pares são independentes, temos: ●

η = 1 - P{leecher i não possui pedaços do interesse do leecher j }k

O leecher j não está interessado em nenhum dos pedaços do leecher i se e somente se o leecher j possui todos os pedaços que o leecher i possui ●

Eficácia (cont.) Consideraremos que cada leecher possui um subconjunto de pedaços uniformemente selecionados do total de pedaços do arquivo e com um número de elementos também uniformemente selecionado dos possíveis valores. ●

Eficácia (cont.) Chamando de N o número total de pedaços no arquivo e de ni o número de pedaços no leecher i, a probabilidade do leecher j possuir todos os pedaços do leecher i é determinada por: ●

Que equivale a:

Portanto:

Estabilidade ●

Quando a restrição está sobre a capacidade de upload:



Podemos escrever a matriz:

Estabilidade (cont.) No caso em que a restrição está sobre a capacidade de download: ●



Podemos escrever a matriz:

Em ambos os casos os autovalores são reais e negativos, portanto o sistema é estável ●

Oportunismo Considere um grupo de N pares e que cada par faz upload para nu outros pares além de um dessufocamento otimista ●



Usuário oportunista j se junta ao grupo

Cada par i do grupo, excetuando-se o oportunista, irá aleatoriamente seleciona um outro par para fazer seu dessufocamento otimista ●



A taxa média de download do par j será então igual a:

Performance dos algoritmos de seleção - Mais raro primeiro Resultados obtidos por [Arnaud Legout , G. Urvoy-Keller , P. Michiardi] ●

Para avaliarmos o mecanismo de seleção de pedaços, precisamos estudar a repartição dos pedaços entre os pares e, a partir dela, medir a entropia do torrent ●

Caracterizaremos a entropia como sendo a disponibilidade de pares, definida como sendo a fração do tempo em que um certo par está interessado em determinado outro par quando o primeiro está na lista de pares conhecidos pelo segundo ●

Performance dos algoritmos de seleção - Mais raro primeiro ●

Resultados:

Performance dos algoritmos de seleção - Sufocamento Resultados obtidos por [Arnaud Legout , G. Urvoy-Keller , P. Michiardi] ●

Principal responsabilidade do algoritmo de seleção de pares é garantir justiça entre os mesmos ●

Consideraremos como critério de justiça entre os leechers a seguinte regra: qualquer leecher i com uma taxa de upload Ui deve receber uma taxa de download menor do que a de qualquer outro leecher j quando Uj > Ui ●

No caso dos seeders, consideraremos, que se faz justiça entre os pares quando o seeder dedica frações iguais do seu total de upload para cada leecher ●

Performance dos algoritmos de seleção – Sufocamento ●

Resultados:

Auto-sustentabilidade Estudos apresentados por [Antonio Augusto de Aragão Rocha, Daniel Sadoc Menasche, Don Towsley and Arun Venkataramani] ●

Três experimentos foram realizados com o intuito de se observar o impacto da ausência do seeder inicial (publisher) sobre o sistema: ●

Auto-sustentabilidade (cont.) Na figura (a) o publisher permaneceu online por toda a duração do experimento. Cada um dos pares que chega consegue completar o download após algum tempo e então deixa o sistema. ●

Na figura (b) o publisher permaneceu online apenas pelos primeiros 80 segundos e a taxa de chegada de pares foi mantida a 1/5 pares por segundo. Todos os pares, com exceção do último, conseguiram completar o download. ●

Na figura (c) o publisher permaneceu online também pelos primeiros 80 segundos, no entanto, a taxa de chegada de pares foi reduzida a 1/15 pares por segundo. Neste cenário, podemos ver que depois dos 500 segundos iniciais nenhum dos pares pôde completar o download ●

Auto-sustentabilidade (cont.) ●

Comparando os casos (a) e (b), temos:

Extensões

Tabelas de hash distribuídas ●

Elimina a necessidade de um servidor de rastreamento

Utilização de tabelas de hash distribuídas (DHT) entre os pares onde serão armazenadas informações de contato para outros pares ●

Cada nó da rede DHT recebe um identificador único, chamado de node ID, selecionado aleatoriamente de um espaço de 160-bits ●

Cada torrent também possui um identificador único chamado de infohash pertencente ao mesmo espaço de 160-bits ●

Tabelas de hash distribuídas (cont.) ●

Cada nó guarda uma tabela de roteamento para outros nós Dividida em "baldes" que juntos cobrem todo o espaço de node IDs  Quando um nó está para ser inserido na tabela, este nó é colocado dentro do balde correspondente  Um balde passa a ser considerado cheio quando este contém 8 nós  Baldes cheios não podem receber novos nós, com a exceção do balde que contém o nó mantendo a tabela. Nesse caso, este é dividido em dois baldes, que dividem o subespaço coberto pelo balde anterior exatamente na metade, e recebem os nós que estavam contidos no balde anterior 

Tabelas de hash distribuídas (cont.) Sempre que possível, entradas na tabela referentes a nós marcados como ruins ou duvidosos serão trocados por novas entradas referentes a nós bons ●

Um nó é considerado bom quando este respondeu uma consulta nos ultimos 15 minutos  Quando um nó está a mais de 15 minutos sem responder uma consulta, este passa a ser considerado duvidoso  Se um nó não respondeu várias consultas consecutivas, este passa a ser considerado ruim 

Uma "métrica de distância" é considerada para se inferir o quanto que dois node IDs ou um node ID e um infohash estão "próximos" ●

Tabelas de hash distribuídas (cont.) Quando um nó quer descobrir pares participando no compartilhamento de determinado torrent, ele compara o infohash do torrent com os node IDs de sua tabela de roteamento usando a métrica de distância, consultando em seguida o nó que se mostrar como sendo o mais próximo que por sua vez irá verificar se ele conhece algum par que esteja participando no compartilhamento do torrent em questão ●

Se houver algum, o nó irá responder com essa lista de pares.  Do contrário, o nó irá responder com a lista de nós em sua tabela de roteamento que apresentarem os node IDs mais próximos do infohash. 

Encriptação e traffic shaping Aplicativos de compartilhamento de arquivos P2P são planejados para aproveitar o máximo de banda disponível ●



Causa grande impacto sobre a qualidade dos demais serviços

Provedores de serviço (ISP) passaram a identificar e limitar o tráfego de redes P2P.Esta prática ficou conhecida como traffic shaping ●

Encriptação e traffic shaping (cont.) Para que os pacotes do BitTorrent não sejam identificados foi criado o Message Stream Encryption ●

Tem por objetivo encapsular o cabeçalho dos pacotes do BitTorrent dando a eles um aspecto aleatório  Dois pares que vão estabelecer uma conexão primeiro combinam uma chave utilizando o algoritmo de Diffie-Hellman e usam esta chave para encriptar o cabeçalho  Para que os pacotes do BitTorrent não possam ser identificados através do padrão no tamanho dos pacotes, são adicionados enchimentos 

Super-seeding Utilizada quando o seeder inicial possui alguma limitação especial com relação ao upload como, por exemplo, quando ele paga por byte transferido ●

Minimiza o quanto o seeder precisa fazer de upload para que algum leecher complete o download do arquivo e se torne um seeder  Não minimiza o tempo de upload do seeder! 

Super-seeding (cont.) O seeder que estiver utilizando a técnica de super-seeding opera de forma diferente do padrão ●

A princípio, em vez de anunciar que possui todos os pedaços, ele anuncia que não possui pedaço algum  Conforme os leechers se conectam a ele, o seeder irá informar um dos leechers que recebeu um pedaço  Este pedaço será necessáriamente um que o seeder ainda não tenha enviado para nenhum leecher  O seeder só irá enviar um novo pedaço para este leecher se ele receber de um outro leecher a confirmação de que este recebera o pedaço anteriormente transferido 

Pirataria

Não há nenhuma característica nos protocolos do BitTorrent que indique que o compartilhamento do arquivo esteja infringindo alguma lei ●

No entanto, muitos dos usuários utilizam esse sistema para fazer o compartilhamento ilegal de arquivos protegidos por direitos autorais ●

Os sites de indexação de torrents são alvos de diversos processos jurídicos, contudo, alegam que eles não armazenam nenhuma parte dos arquivos ilegais ●

The Pirate Bay (EA email) ●

Email da EA

Dear Mr. Neij: It has been brought to the attention of Electronic Arts Inc. ("EA") that the website http://www.piratebay.org with the IP addresses of 217.75.120.115, 217.75.120.116, 217.75.120.118 is conducting unauthorized activities with respect to EA's copyrighted software, The Sims 2. The aforementioned website is offering and distributing bittorrent seeds for an unauthorized downloadable version of this EA game. The infringing material may be found at: http://www.piratebay.org/download.php/3238103/Sims%202.torrent http://www.piratebay.org/download.php/3238222/The_Sims2_AlcoholClone-CLONEGAME_F ull.Release_%28exclusive_for_trackerwww.prq.to%29.torrent This unauthorized activity with respect to the distribution of EA's software products constitutes infringement of EA's intellectual property rights. EA enforces its intellectual property rights very aggressively by using every legal option available. As you are listed as the registrant for this website, EA demands that you immediately and permanently disable access to the aforementioned bittorrent seeds for The Sims 2 and any in the future. Thank you for your cooperation. If you have any questions concerning this matter, please contact us via e-mail at: [email protected]. Regards, EA Law - IP Enforcement Electronic Arts Inc.

The Pirate Bay (EA email) ●

Resposta do TPB

Hello and thank you for contacting us. We have shut down the website in question. Oh wait, just kidding. We haven't, since the site in question is fully legal. Unlike certain other countries, such as the one you're in, we have sane copyright laws here. But we also have polar bears roaming the streets and attacking people :-(. Please don't sue us right now, our lawyer is passed out in an alley from too much moonshine, so please atleast wait until he's found and doesn't have a huge hangover... You're free to demand anything you want. So are we. We demand that you cease and desist sending letters like this, since they're frivolous and meaningless. Where should I send the bill for the consumed diskspace and bandwidth? Thank you for your entertainment. As with all other threats, we will publish this one on http://static.thepiratebay.org/legal/

Conclusão

Os protocolos implementados garantem alta performance, aproveitando o máximo possível os recursos disponíveis da rede ●



É estável, convergindo para um estado de equilíbrio



Alta eficácia na distribuição do arquivo entre os leechers



Promove a cooperação e reciprocidade entre os pares

Robusto a ausência do publisher, sendo capaz de se manter auto-sustentável em determinados cenários ●

Apesar de não impedir completamente a ocorrência de práticas oportunistas, o mecanismo de seleção de pares utilizado impõe restrições sobre a taxa de download de tais aproveitadores ●

Perguntas e respostas

1 - Por que podemos afirmar que o sistema de distribuição de arquivos BitTorrent é bem escalável?

1 - Por que podemos afirmar que o sistema de distribuição de arquivos BitTorrent é bem escalável? Porque o custo de upload fica distribuído pelos pares e, no equilíbrio, o tempo médio de download não depende da taxa de chegada de novos pares.

2 - Cite e explique o funcionamento dos dois principais algoritmos de seleção implementados no BitTorrent e justifique a importancia deles.

2 - Cite e explique o funcionamento dos dois principais algoritmos de seleção implementados no BitTorrent e justifique a importancia deles. O algoritmo de seleção por mais raro primeiro é o principal algoritmo de seleção de pedaços do BitTorrent. Neste algoritmo, os pedaços que estiverem menos disponíveis entre os pares conhecidos por um determinado par serão aqueles priorizados por ele para se obter primeiro. A ordem em que os pedaços são obtidos por cada par é fundamental para o bom funcionamento do sistema pois esta tem grande impacto sobre o interesse que os pares terão uns pelos outros no futuro e, consequentemente, influencia fortemente na eficácia do sistema na distribuição do arquivo. Inclusive, uma estratégia ruim na seleção dos pedaços poderia implicar na incapacidade dos pares em completar o download devido a inexistência de determinado pedaço na rede.

2 - Cite e explique o funcionamento dos dois principais algoritmos de seleção implementados no BitTorrent e justifique a importancia deles. (cont.) O algoritmo de sufocamento é o principal algoritmo de seleção de pares do BitTorrent. Neste algoritmo, os pares irão realizar download de todos os pares que puder e sufocar (negar upload para) todos os pares com exceção de um número fixo de pares. Os pares escolhidos para serem dessufocados por um determinado par serão aqueles que estiverem contribuindo com as maiores taxas de upload para este par naquele momento. A seleção de pares é crucial para se garantir justiça segundo a idéia de reciprocidade entre os pares da rede e assim dificultar práticas oportunistas.

3 - O que são os chamados free riders e como eles podem se beneficiar em uma rede BitTorrent?

3 - O que são os chamados free riders e como eles podem se beneficiar em uma rede BitTorrent? Os free riders são pares que não contribuem com upload na rede, apenas fazem download. Isto é possível de acontecer em uma rede BitTorrent pois os pares não possuem informação global a respeito do sistema, apenas têm conhecimento sobre suas taxas de transferência locais. Cada par, a fim de explorar novas possibilidades de troca equivalente com pares para os quais ele não está fazendo upload, realiza um dessufocamento otimista de tempos em tempos. Um dessufocamento otimista é caracterizado por se selecionar um par aleatoriamente para ser dessufocado e este par pode ser um free rider.

4 - Qual o papel do servidor de rastreamento em uma rede BitTorrent e como que esta pode operar sem ele?

4 - Qual o papel do servidor de rastreamento em uma rede BitTorrent e como que esta pode operar sem ele? O servidor de rastreamento tem como única função informar cada par a respeito de outros pares compartilhando o mesmo torrent, a fim de que estes possam estabelecer uma conexão direta entre si. Uma rede BitTorrent pode operar sem servidor de rastreamento através da utilização de tabelas de hash distribuídas. Neste caso, cada par possui uma tabela de roteamento onde armazena informações de contato sobre outros pares, funcionando portanto como se fossem servidores de rastreamento.

5 - O que é traffic shaping e como o BitTorrent busca burlar esta prática?

5 - O que é traffic shaping e como o BitTorrent busca burlar esta prática? Traffic shaping é a prática de se identificar determinado tipo de tráfego e então interferir sobre ele de algum modo. No caso do BitTorrent e de outros aplicativos P2P, por fazerem uso itenso dos recursos disponíveis na rede, estes programas tem tido suas taxas de transferência limitadas pelos ISPs sob a alegação de estarem prejudicando a qualidade dos demais serviços. Para burlar esta prática foi criada uma extensão do BitTorrent chamada Message Stream Encryption que encapsula o cabeçalho dos pacotes BitTorrent deixando-os irreconhecíveis para o monitoramento dos ISPs.

Bibliografia [1] Bram Cohen, "The BitTorrent Protocol Specification", versão 11031, Fevereiro de 2008 (http://bittorrent.org/beps/bep_0003.html em 30/09/09) [2] "Bittorrent Protocol Specification v1.0", BitTorrent Specification wiki (http:// wiki.theory.org/BitTorrentSpecification em 30/09/09) [3] Bram Cohen, "Incentives build robustness in BitTorrent", Proceedings of the P2PEcon’03, May 2003, Berkeley, CA (http://www.bittorrent.org/bittorrentecon.pdf em 30/09/09) [4] Dongyu Qiu, R. Srikant, "Modeling and performance analysis of BitTorrentlike peer-to-peer networks", Proceedings of the 2004 conference on Applications, technologies, architectures, and protocols for computer communications, August 30-September 03, 2004, Portland, Oregon, USA (http://doi.acm.org/10.1145/1015467.1015508 em 30/09/09)

Bibliografia [5] Arnaud Legout , G. Urvoy-Keller , P. Michiardi, "Rarest first and choke algorithms are enough", Proceedings of the 6th ACM SIGCOMM on Internet measurement, October 25-27, 2006, Rio de Janeiro, Brazil (http://doi.acm.org/10.1145/1177080.1177106 em 30/09/09) [6] Antonio Augusto de Aragão Rocha, Daniel Sadoc Menasche, Don Towsley and Arun Venkataramani, "On P2P systems for enterprise content delivery", XVII Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos, pages 379-392, Recife, PE, Maio, 2009 (http://www.land.ufrj.br/publications/publications.php?page=papers em 30/09/09) (http://www.land.ufrj.br/publications/publications.php?page=papers em 30/09/09)

Obrigado!