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=&peer_id= 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 em 2001 Ex: {‘complete’: 1, ‘downloaded’: 11, ‘incomplete’: 6, ‘interval’: 1732, ‘min interval’: 866, ‘peers’: {lista-de-hash-ids-de-peers}} I protocolo P2P mais usado no mundo, que gera ≈ 23% do tr´afego de , ≈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 . 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/ -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