BitTorrent: o que é e como funciona?

Introdução

Muitos serviços on-line de compartilhamento de arquivos são bastante populares, no entanto, é possível que nenhum deles tenha tanto destaque quanto o BitTorrent: trata-se de um sistema P2P (peer-to-peer) que oferece um modo de funcionamento eficiente, rápido e estável, especialmente para compartilhamento de arquivos grandes (com centenas ou milhares de megabytes).

Mas, o que faz o BitTorrent tais estas características? Como o BitTorrent funciona? Como usar o BitTorrent? Como recursos adicionais — DHT e PEX, por exemplo — melhoram ainda as suas funcionalidades? O BitTorrent é sinônimo de pirataria? Para responder a essas e outras perguntas, eu, Emerson Alecrim, explico a seguir os principais conceitos por trás da tecnologia do BitTorrent.


O que é BitTorrent?

Criado pelo desenvolvedor norte-americano Bram Cohen em 2001, o BitTorrent é um sistema que permite o compartilhamento de praticamente qualquer arquivo pela internet, sendo utilizado principalmente para a distribuição de vídeos, músicas e softwares.

O BitTorrent é bastante popular porque é uma ferramenta fácil de se usar e, ao mesmo tempo, é muito eficiente. Isso se deve, basicamente, a dois motivos:

- quando um arquivo está sendo baixado para um computador, "pedacinhos" deste são obtidos de várias outras máquinas simultaneamente, não apenas de uma;

- ao mesmo tempo em que um computador obtém um arquivo, os dados que já foram baixados também são compartilhados, ou seja, para receber é preciso também fornecer.

O BitTorrent em si, na verdade, é um protocolo de compartilhamento de dados e não um sistema centralizado. Não há um servidor provendo os dados, mas sim um padrão de comunicação entre vários computadores que permite que arquivos sejam localizados, distribuídos e obtidos por todos.


Vantagens do BitTorrent

BitTorrent - logotipo O BitTorrent tem sido a opção preferida de muita gente para compartilhamento de arquivos. Não por menos, trata-se de um dos protocolos mais populares da internet e isso se deve a diversas razões, entre elas:

- Segurança: o BitTorrent é muito seguro, pois compartilha apenas o arquivo que você estiver baixando ou já baixou. É extremamente difícil, por exemplo, um invasor utilizar o compartilhamento para acessar indevidamente um computador  (a não ser que você esteja fazendo download de um arquivo já contaminado, mas isso não é comum);

- Multiplataforma: o BitTorrent é multiplataforma, ou seja, não é destinado a um único sistema operacional. Você pode utilizá-lo no Windows, macOS, Linux e até em plataformas móveis, como o Android;

- Gratuito: você não precisa pagar nada para usar o BitTorrent;

- Continue de onde parou: você não precisa deixar seu computador ligado até o download terminar. É possível pausar o download e continuá-lo posteriormente a partir do ponto de interrupção;

- Distribuição barata: uma organização que precisa distribuir um software, por exemplo, pode fazê-lo via BitTorrent, evitando gastos com a aquisição de servidores para este fim.


Como o BitTorrent funciona?

Torrent

Para que você possa fazer download (baixar dados) e upload (enviar dados) pelo BitTorrent, é necessário que cada arquivo compartilhado esteja associado a um torrent. Trata-se de um arquivo pequeno (normalmente, possui apenas alguns kilobytes) e simples, mas que contém as informações necessárias ao compartilhamento, como tamanho em bytes do conteúdo a ser compartilhado, dados que confirmam a integridade deste, endereços de trackers (servidor que orienta a comunicação do compartilhamento, conceito abordado mais abaixo), entre outros.

Eis alguns dos campos que são encontrados em um arquivo torrent:

  • announce: informa qual o tracker que trata da distribuição do arquivo;
  • announce-list: informa eventuais trackers auxiliares;
  • comment: um comentário qualquer inserido pelo criador do torrent;
  • created by: informa com qual software o torrent foi criado;
  • info: contém todos os dados referentes ao arquivo, como nome, tamanho, código de verificação de integridade (hash), etc.

Isso significa que, para que você consiga encontrar determinado arquivo para baixar (um filme, por exemplo), é necessário primeiro achar um torrent associado. Arquivos do tipo geralmente têm extensão .torrent. Em seguida, o torrent tem que ser aberto em um programa apropriado (cliente) e, portanto, capaz de iniciar o download do material.

Seed, peer, leecher, tracker e swarm

Para que você possa entender como o BitTorrent funciona, é necessário conhecer cinco denominações básicas que estão relacionadas com o compartilhamento de arquivos:

- Seed (semeador): é o nome dado a cada máquina que possui o arquivo *completo* que está sendo compartilhado. É necessário que haja pelo menos um seed para que o compartilhamento ocorra integralmente;

- Peer (ponto, nó): termo que indica cada computador que compartilha arquivos. Quando você está baixando algo pelo BitTorrent, seu computador assume o papel de um peer, ou seja, de um ponto ou nó na rede;

- Leecher ("sugador"): o termo faz referência aos computadores que ainda estão baixando arquivos ou que já o baixaram completamente, mas por alguma razão não o estão compartilhando;

- Tracker (rastreador): o tracker é um servidor que mantém o controle de comunicação entre todos os seeds e peers, de forma que os computadores envolvidos no processo possam saber a quais máquinas se conectar. Note, no entanto, que o tracker não tem cópia do arquivo, muito menos interfere diretamente no compartilhamento.

- Swarm (enxame): nome dado ao conjunto de computadores que está compartilhando o mesmo arquivo. Se, por exemplo, o arquivo infowester.avi estiver sendo compartilhado por oito seeds e 34 peers, o swarm do arquivo contém 42 computadores (oito seeds + 34 peers).

Ilustração básica de um swarm
Ilustração básica de um swarm

O compartilhamento em si

Agora que você já conhece os "protagonistas da história", fica mais fácil entender como o BitTorrent funciona.

Quando você abre um arquivo torrent em um cliente (programa) de BitTorrent, este procura um tracker que, por sua vez, localizará o swarm que contém o arquivo compartilhado, ou seja, indicará tanto as máquinas que possuem o conteúdo completo (seeds) quanto as que o possuem parcialmente.

O tracker então orienta a comunicação para que o seu computador possa pegar "pedaços" do arquivo a partir do swarm. Perceba que as máquinas que possuem apenas partes do arquivo também estão fazendo download, mas já compartilham o que têm. O mesmo acontecerá com o seu computador.

Isso é possível porque cada arquivo compartilhado no BitTorrent é dividido em pequenas partes iguais chamadas peças. Estas podem ter 16 KB, 32 KB, 1 MB, enfim, tudo depende da forma como o compartilhamento foi feito. Para facilitar a transmissão, cada peça pode ainda ser subdividida em blocos.

Graças a este esquema, é possível compartilhar partes do arquivo mesmo que este não esteja completamente baixado: o computador enviará somente aquelas peças que já possui. Outra vantagem é que as peças não precisam ser baixadas sequencialmente. Como exemplo, suponha que um arquivo tenhas 100 partes; se um peer tiver as partes 78 e 83, por exemplo, não há problema algum em baixá-las antes das partes 18 ou 23.

Essa forma de trabalho influencia em outra característica do BitTorrent: o protocolo conta com um algoritmo chamado Rarest First (algo como "mais raro primeiro") capaz de decidir que a próxima peça a ser baixada será aquela mais rara, de forma a aumentar o seu número de cópias no swarm e a evitar que o download completo do arquivo demore demasiadamente.

Há também um processo que analisa cada pacote de dados para determinar uma sequência numérica chamada hash. Esta informação é associada à sua respectiva peça. Quando esta é baixada, o cálculo é feito novamente e comparado com o hash anterior. Ambos têm que ser iguais — se houver diferença, a peça é descartada, pois foi alterada ou corrompida de alguma forma.

Os computadores que fazem parte do swarm se comunicam constantemente com o tracker para informar o quanto de download já foi feito e o quanto ainda falta. Assim, o tracker poderá direcionar a sua máquina para outras que necessitam dos dados que você já baixou ao mesmo tempo em que apontará quais computadores têm o restante do arquivo que lhe falta.

O interessante é que, se o tracker parar de funcionar por algum motivo, o download não é interrompido. Isso é possível porque o swarm continua compartilhando o arquivo, uma vez que cada computador que o integra sabe de onde fazer o download. No entanto, nenhuma outra máquina poderá fazer parte deste swarm enquanto o tracker não voltar a funcionar.

Velocidade de download

A velocidade de download no BitTorrent depende de vários fatores e não só da capacidade da sua conexão à internet. Um deles — e talvez o mais importante — é a quantidade de máquinas que estão no swarm.

Imagine que determinado arquivo possui 40 peers, sendo que 28 são seeds. O download tende a ser mais rápido porque o número de máquinas que possui cópias completas do arquivo é consideravelmente grande, facilitando a sua distribuição. Agora, suponha que o swarm possua 35 peers, mas apenas três seeds. Há então somente três computadores com a versão completa do arquivo e mais de 30 máquinas o solicitando. Com uma demanda tão alta, a distribuição demorará mais.

A velocidade dos seus downloads também pode ser influenciada pelo quanto você compartilha. Caso o seu cliente de BitTorrent seja ajustado para permitir uma taxa de upload muito baixa, via de regra, seu computador terá menos prioridade no download.

O controle é feito, por exemplo, por meio de algoritmos de choking, que consideram o aspecto da reciprocidade, mais conhecido como tit-for-tat (algo como "olho por olho"): com ele, um peer determina em intervalos de tempo regulares (a cada 10 ou 20 segundos, por exemplo) para quais outros nós compartilhará dados na próxima etapa com base nas taxas de downloads oriundas de cada um deles; os peers com as maiores velocidades nos últimos segundos avaliados acabam então sendo favorecidos.

Neste sentido, pode ser que você não esteja compartilhando nada (leeching) e, consequentemente, obtendo taxas de download baixas por algum problema em sem computador, como um firewall mal configurado impedindo a saída de dados do cliente de BitTorrent.


Desvantagens do BitTorrent

Ao conhecer o funcionamento básico do BitTorrent, você é capaz de compreender não só o porquê de sua popularidade, mas também algumas de suas possíveis desvantagens:

- redução repentina da velocidade de download: pode acontecer quando há poucos seeds no swarm e estes ficam indisponíveis (o computador pode ter sido desligado, por exemplo). É por isso que é importante que você permaneça conectado por pelo menos alguns muitos após o término de download — é uma forma de ajudar outros usuários a completar o procedimento;

- torrents sem seeds com o passar do tempo: um dos principais problemas do BitTorrent é que, como o passar do tempo, os torrents podem ficar sem seeds. Isso acontece porque as pessoas removem o arquivo baixado do seu computador, trocam o nome, mudam a pasta e assim por diante;

- consumo de quase toda a largura de banda: pode acontecer de o procedimento de download utilizar quase toda a velocidade da sua conexão à internet. Se esta for compartilhada, os demais usuários poderão ser afetados. Para evitar problemas do tipo, é recomendável limitar as taxas de download e upload em seu cliente de BitTorrent.

Outra possível desvantagem é um problema que não depende de falta de seeds ou da velocidade da conexão do usuário: a prática de Traffic Shaping.

O que é Traffic Shaping?

O Traffic Shaping é uma limitação imposta pelo fornecedor do acesso à internet que impede que a capacidade da conexão seja utilizada em sua totalidade. Ela é legítima quando o usuário atinge o limite de download contratado e a sua velocidade é reduzida, por exemplo — procedimento bastante comum em conexões móveis, como redes 3G e 4G. O problema é quando o Traffic Shaping é feito de maneira indevida.

Infelizmente, esaa situação é comum. Provedores de internet de vários partes do mundo identificam determinados fluxos de dados e, com isso, conseguem impedir que aplicações muito exigentes, como streaming de vídeo e BitTorrent, aproveitem o potencial da conexão. Quando isso acontece, o usuário percebe que sua taxa de download não passa de 100 KB/s (quilobytes por segundo), por exemplo, mesmo com a sua conexão suportando até 500 KB/s.

Trata-se de um assunto polêmico, afinal, nenhum provedor assume a prática e, do ponto de vista do usuário, é bastante difícil identificar quando o Traffic Shaping está sendo feito. Felizmente, há algumas técnicas que tentam contornar este problema, como o uso de criptografia para dificultar a identificação dos dados associados ao compartilhamento.


Como usar o BitTorrent?

Agora que você já sabe bastante sobre o funcionamento do BitTorrent, fica mais fácil utilizá-lo. O primeiro passo, se você nunca usou o serviço, consiste em baixar um software cliente. Há vários deles, para as mais diversas plataformas. Você pode encontrar as opções em sites especializados em softwares, mas aqui vamos recomendar o cliente oficial, que também se chama BitTorrent e pode ser baixado gratuitamente em www.bittorrent.com.

Com o aplicativo baixado e instalado, o próximo passo consiste em encontrar torrents dos arquivos que você deseja obter. A melhor forma de se fazer isso é recorrer a sites especializados. Há dezenas deles, basta fazer uma pesquisa no Google para encontrá-los.

Em todos eles, é importante que você observe a quantidade de seeds e leechers do torrent. Se houver poucos seeds, o download poderá ser demorado, como você já sabe, e talvez valha apenas procurar outro torrent.

Quando você tiver encontrado o torrent para o arquivo que você quer obter, basta baixá-lo e abrí-lo com o cliente. Normalmente, ao clicar no torrent, o próprio sistema operacional se encarrega de abrir o aplicativo. Este, por sua vez, poderá perguntar onde você quer salvar o arquivo a ser baixado.

O download será iniciado, bastando a você acompanhá-lo. Note que você pode pausar o download ou cancelá-lo e consultar uma série de informações sobre o procedimento, como taxa de download, taxa de upload, quantidade de peers e assim por diante. Os recursos, é claro, variam conforme o cliente utilizado.

Cliente BitTorrent
Cliente BitTorrent

Se o que você deseja é criar um torrent para distribuir um arquivo, também pode recorrer a um software cliente. No caso do cliente oficial do BitTorrent, tudo o que você precisa fazer é ir em Arquivo e escolher Criar Novo Torrent (ou equivalente). Em seguida, basta localizar em seu computador o arquivo a ser compartilhado (pode ser mais de um) e preencher os campos, quando necessário. O próprio software indicará trackers (embora você também possa fazê-lo) e adicionará informações de integridade.

Criando um torrent no cliente BitTorrent
Criando um torrent no cliente BitTorrent

Note que, como você é o criador do torrent, seu computador será o único seed do arquivo durante algum tempo. À medida que mais máquinas forem baixando o arquivo, o número de seeds aumentará.


O BitTorrent é ilegal?

O BitTorrent não é ilegal. Acima de tudo, estamos falando de um protocolo para compartilhamento de arquivos na internet que pode ser utilizado para vários fins, inclusive para distribuição de material protegido por lei. Mas isso não torna a tecnologia condenável.

De fato, o BitTorrent é bastante utilizado para distribuição de filmes, músicas, jogos e softwares pirateados. Mas todo esse conteúdo está sempre armazenado nos computadores dos usuários. Os trackers de BitTorrent não tomam partido sobre o que está sendo compartilhado, muito menos armazenam arquivos. A sua função é apenas a de possibilitar a comunicação entre os peers.

Nesse sentido, o BitTorrent também pode — e é — utilizado para fins legais. Produtores independentes de vídeo, por exemplo, podem utilizar o serviço para distribuir filmes de sua autoria; empresas de software podem economizar recursos de servidor compartilhamento seus produtos por esse meio.

A Canonical é um exemplo. A empresa é responsável pela famosa distribuição Linux Ubuntu. Além de permitir que os usuários baixem o sistema operacional de seus servidores, a empresa disponibiliza também cópias via BitTorrent.

Quer outro exemplo? A própria BitTorrent Inc., empresa responsável pela manutenção do protocolo, tem um serviço legal de compartilhamento legal de conteúdo: o BitTorrent Now. Por meio dele, artistas independentes distribuem vídeos e músicas gratuitamente ou por meio de pagamentos que dão acesso a conteúdo adicional.

Como a tecnologia não pode ser responsabilizada pelo uso que se faz dela, a indústria do entretenimento, principal "voz" no combate à distribuição inadvertida de conteúdo protegido por direitos autorais na internet, procura tomar medidas contra sites e ferramentas que distribuem torrents supostamente ilegais. Mas, na prática, esses esforços dão poucos resultados: se um serviço popular deixa de funcionar, logo aparece outro.


Recursos complementares

No intuito de aperfeiçoar determinadas funcionalidades ou superar limitações, o protocolo BitTorrent recebe ajustes e recursos adicionais ao longo do tempo, muitos dos quais oriundos originalmente de softwares clientes. A seguir, alguns dos que mais se destacam.

Protocolo DHT (Distributed Hash Table)

O DHT (Distributed Hash Table) é um sistema complexo que possibilita o uso do BitTorrent de maneira trackerless, isto é, sem que os peers tenham que consultar trackers. Isso é possível porque soluções do tipo utilizam um recurso chamado tabela de hashs que possibilita que cada nó encontre os demais integrantes da rede de maneira eficiente.

Como esse é um sistema distribuído e descentralizado, as informações de localização são passadas de um peer para o outro, de forma que a entrada ou, especialmente, o desligamento de nós não comprometa totalmente a comunicação e, consequentemente, o compartilhamento. Graças a esse esquema, trackers em nada ou pouco precisam ser consultados.

É válido frisar que o protocolo DHT não é utilizado somente para redes BitTorrent: também é possível encontrar implementações desse sistema em outras ferramentas de compartilhamento de arquivos, em serviços de DNS, entre outros.

PEX (Peer Exchange)

O PEX (Peer Exchange) não dispensa o uso de trackers, mas faz estes trabalharem menos. Isso porque essa solução permite aos peers trocarem determinadas informações entre si de maneira direta, sem intermediação do tracker. A partir do PEX, um peer pode, por exemplo, informar a outro nó a localização de outros computadores do swarm via tabelas DHT.

Magnet Links

Os Magnet Links são tidos como uma alternativa aos arquivos torrent. Estes devem ser baixados e, posteriormente, abertos no programa cliente. O Magnet Link, por sua vez, é aberto assim que clicado em uma página, possibilitando o download do arquivo compartilhado imediatamente.

Como os Magnet Links são compatíveis com o DHT e com o PEX, é possível integrar o computador a um swarm e encontrar outros peers sem necessidade de trackers.

Os Magnet Links têm sido uma solução cada vez mais adotada por sites especializados em BitTorrent porque, quando há ausência de arquivos de torrent e endereços diretos (a localização do arquivo se dá por meio de hash), fica mais difícil associá-los à distribuição indevida de material protegido.

Tal como o DHT, os Magnet Links também são utilizados em outros serviços, não se limitando ao BitTorrent.

Protocolo µTP (uTP)

O protocolo µTP (µTorrent Transport Protocol) — também chamado de uTP, por comodidade — é bastante interessante porque consegue avaliar o impacto dos downloads via BitTorrent na conexão à internet do usuário.

Se o protocolo "notar", por exemplo, que os downloads estão atrapalhando o carregamento de páginas no navegador de internet, a largura de banda destinada ao BitTorrent é diminuída automaticamente.

O contrário também acontece: havendo disponibilidade, a largura de banda do compartilhamento aumenta. Como se não bastasse, o µTP também conta com recursos que tentam "burlar" barreiras colocadas por provedores para prejudicar os downloads (o já mencionado Traffic Shaping).

O uTP é oriundo de um dos clientes para torrents mais populares que existe: o µTorrent (ou uTorrent). A sua popularidade e os seus recursos o fizeram ser adquirido pela BitTorrent Inc. no final de 2006.

Modo Altruísta

Em setembro de 2016, a BitTorrent Inc. apresentou um recurso chamado Modo Altruísta (Altruistic Mode) que, basicamente, faz o computador do usuário enviar mais dados do que a quantidade baixada. É uma funcionalidade que causa desconfiança, afinal, pode deixar o download muito mais demorado.

Por outro lado, a BitTorrent ressalta que a ideia pode ser útil em determinadas circunstâncias, principalmente no sentido de aumentar a eficiência de um swarm. Para tanto, a indicação é a de que o Modo Altruísta funcione na proporção de 2 por 1: o computador tem que enviar duas peças de dados para baixar uma.

Note, porém, que os clientes de BitTorrent compatíveis com o Modo Altruísta deixam o recurso desativado por padrão. O usuário precisa decidir se deseja contribuir com um swarm (daí o termo altruísta).


* * *

Não é exagero considerar o BitTorrent uma grande invenção. Trata-se de uma tecnologia bastante funcional, criativa e que evolui com o passar do tempo. Considerando estes aspectos e a popularização das conexões de banda larga, é difícil vislumbrar um cenário onde o BitTorrent se torna desinteressante.

É possível saber mais sobre o assunto nos seguintes links:

Publicado em 28_05_2013. Atualizado em 06_12_2017.

Emerson Alecrim Autor: Emerson Alecrim
Graduado em ciência da computação, tem experiência profissional em TI e produz conteúdo sobre tecnologia desde 2001. É especializado em temas como hardware, sistema operacionais, dispositivos móveis, internet e negócios.
Principais redes sociais: • X/TwitterLinkedIn