Anatomia Do Bittorrent: a Ciência Da Computaç˜Ao Por Trás Do Protocolo
Total Page:16
File Type:pdf, Size:1020Kb
Anatomia do BitTorrent: a Ci^enciada Computa¸c~aopor tr´asdo protocolo Paulo Cheadi Haddad Filho | ∼paulochf Orientador: Jos´eCoelho de Pina | ∼coelho Objetivo BitTorrent: vis~aoda Internet Funcionamento do BitTorrent I estudar o protocolo do BitTorrent 1. busca de conte´udoem sites buscadores de torrent I identificar seu car´aterinterdisciplinar na Computa¸c~aopelo estudo 2. obten¸c~ao do arquivo .torrent, que ´eum dicion´ariode dados de seus componentes internos sobre os arquivos desejados, onde est~aocontidas informa¸c~oescomo announces (endere¸cosde trackers), n´umerode partes e lista dos I ilustrar a implementa¸c~aodesses componentes utilizando o c´odigo- fonte do cliente Transmission arquivos 3. cliente BitTorrent usa o announce para fazer um pedido de Introdu¸c~ao peers, usando uma requisi¸c~aoHTTP GET e passando dois iden- tificadores: um seu e o do torrent I redes peer-to-peer (P2P): redes de arquitetura descentralizada (sem um servidor central) e distribu´ıdaentre v´ariosn´osda rede Ex: http://tracker.publicbt.com:80/announce?info_ (peers) hash=<hash-do-torrent>&peer_id=<hash-do-cliente> Napster foi a primeira rede P2P, em 1999 4. o tracker adiciona o peer requisitante `asua lista e devolve I para ele um dicion´ariocontendo: uma lista aleat´oriade outros peers para aquele identificador de torrent, quantidades de seeders Hist´oriado BitTorrent e leechers, entre outros dados I lan¸cadopor Bram Cohen em 2001 Ex: f`complete': 1, `downloaded': 11, `incomplete': 6, `interval': 1732, `min interval': 866, `peers': flista-de-hash-ids-de-peersgg I protocolo P2P mais usado no mundo, que gera ≈ 23% do tr´afego de upload, ≈17% de download e ≈10% de todo o tr´afegona Am´erica 5. o cliente, para entrar no swarm, envia mensagens para cada Latina [1] um dos peers recebidos, at´eobter uma resposta I usado por Twitter [2] e Facebook [3] para distribuir os c´odigosdos 5.1 quando obt´emresposta, adiciona o endere¸co desta `asua seus sites para seus servidores \lista de contatos", que ´eacess´ıvel por outros peers, e imple- I baseado em trocas justas de arquivos e comunica¸c~aoeficiente mentada como uma tabela hash especial, do algoritmo Kademlia. entre peers Esse algoritmo faz com que uma busca por novos peers seja dis- tribu´ıda entre os que j´as~aoconhecidos, formando assim uma I peers sugadores (leechers) e semeadores (seeders), pertencentes a um enxame (swarm), trocam partes de um torrent entre si grande \lista telef^onica". Essa estrutura de dados ´echamada de tabela hash distribu´ıda(DHT) listas de peers mantidas por rastreadores (trackers) e, geralmente, I 5.2 ap´oso primeiro contato, o cliente entra no swarm e recebe pelos pr´oprios peers uma parte aleat´oriado torrent, se tornando um leecher 5.3 como leecher, o cliente entra no \jogo de trocas" do swarm, Transmission onde s´orecebe uma parte do torrent se fornecer outra 5.4 ao t´ermino do download, o usu´ario se torna um seeder, I programa cliente de c´odigoaberto para o proto- colo BitTorrent Trocas das partes de um arquivo torrent em um swarm passando a unicamente fornecer partes do torrent I escrito nas linguagens C e C++ ABC no BCC: disciplinas relacionadas I v´ariasplataformas: daemon (servi¸code segundo plano), roteadores, linha de comando e aplica¸c~aoem I Desenv. de Algoritmos, Estrutura de Dados, An´alise de janela Algoritmos: tabela hash (DHT), listas ligadas, ´arvores e estruturas compostas BitTorrent: vis~aodo usu´arioe ´areasda Computa¸c~ao I Prog. para Redes: protocolos de rede HTTP e UDP, seguran¸ca SSL, conex~oesde rede IPv4 e IPv6, roteamento (NAT PMP), troca de mensagens entre peers, descoberta de peers locais (Multicast) I Intro. `aCriptografia: integridade e privacidade de dados (SHA-1, RC4) I Sistemas Operacionais, Prog. Concorrente, Intro. `aComp. Paralela e Distribu´ıda: threads, DHT, leitura e escrita de partes de arquivo, retomada de download (download resume) I Lab. de Programa¸c~ao1{2: organiza¸c~aodo c´odigo,Automake, Autoconf, testes de c´odigo Refer^encias [1] Sandvine Inc. Global Internet Phenomena Report | 1H 2013, 2013. http://macaubas.com/wp-content/uploads/2013/05/Sandvine_ Global_Internet_Phenomena_Report_1H_2013.pdf [2] Ernesto. BitTorrent Makes Twitter's Server Deployment 75x Faster, 16 de julho de 2013. TorrentFreak http://torrentfreak.com/ bittorrent-makes-twitters-server-deployment-75-faster-100716/ [3] Ernesto. Facebook Uses BitTorrent, and They Love It, 25 de junho de 1. busca de conte´udoem sites buscadores de torrent 2013. TorrentFreak http://torrentfreak.com/ 2. obten¸c~aodo arquivo .torrent desejado facebook-uses-bittorrent-and-they-love-it-100625/ 3. computador do usu´ariose comunica com rastreadores (trackers), [4] Wikipedia. Timeline of file sharing | Wikipedia, The Free Encyclopedia, que mant^emlistas dos peers que est~aocompartilhando os arquivos 2013. http://en.wikipedia.org/wiki/Timeline_of_file_sharing do torrent obtido [5] Matheus B. Lehmann, Rodrigo B. Mansilha, Marinho P. Barcellos e Fl´avio 4. o tracker devolve uma lista de peers aleat´oria Roberto Santos. \Swarming: como BitTorrent revolucionou a Internet". 5. computador do usu´arioinicia comunica¸c~aocom os peers da lista, Em Atualiza¸c~oesem Inform´atica. PUC-Rio. Vol. 1. Rio de Janeiro, 2011. Cap. 6, pp. 209{258 e come¸caa receber deles os arquivos pertencentes `aqueletorrent Fonte: Wikipedia | http://en.wikipedia.org/wiki/File:Torrentcomp_small.gif IME-USP Rede Linux IME: ∼paulochf E-mail: [email protected] Created with LATEXbeamerposter http://www-i6.informatik.rwth-aachen.de/~dreuw/latexbeamerposter.php.