O que é BitTorrent?
Criado pelo desenvolvedor norte-americano
Bram Cohen em 2001, o BitTorrent é uma
tecnologia que permite o compartilhamento de praticamente qualquer arquivo pela internet, sendo especialmente utilizado para a
distribuição de vídeos, músicas e softwares.
O BitTorrent é bastante popular porque é um sistema fácil de se utilizar 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
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 se utilizar do compartilhamento para
acessar indevidamente um computador;
-
Multiplataforma: o BitTorrent é multiplataforma, ou seja, não é destinado a um
único sistema operacional. Você pode utilizá-lo no Windows, no Mac OS, no 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ó nesta rede;
-
Leecher ("sugador"): este 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 uma 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 8 seeds e por 34 peers, o swarm do arquivo
contém 42 computadores (8 seeds + 34 peers).
Ilustração básica de um swarm
O compartilhamento em si
Agora que você já conhece as "personagens da história", fica muito 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 deste 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.
Esta forma de trabalho influencia em outra característica do BitTorrent: o protocolo conta com um algoritmo
chamado
Rarest First (algo como "mais rara 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 um determinado arquivo possui 40 peers, sendo que 28 destes 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 3 seeds. Há então somente
3 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.
Este 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, por exemplo.
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 seu nome, mudam a sua 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, esta 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, por exemplo, mesmo com a sua conexão suportando até 500 KB/s.
Trata-se de um assunto polêmico, afinal, nenhum provedor assume esta 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/intl/pt/downloads.
Com o programa 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, como
kat.ph,
www.mininova.org e
torrentz.eu.
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.
Uma vez que você tenha 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
programa. 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
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. 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 fazê-lo) e
adicionará informações de integridade.
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 este 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 este 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.
Neste 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 um filme de sua autoria; empresas de software podem economizar
recursos de servidor compartilhamento seus produtos por este 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.
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, estes esforços têm sido em vão: se um serviço popular deixa de funcionar, logo
aparece outro em seu lugar.
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 se trata de 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 este 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 deste sistema em outras ferramentas de compartilhamento
de arquivos, em serviços de
DNS, etc.
PEX (Peer Exchange)
O
PEX (
Peer Exchange) não dispensa o uso de trackers, mas faz com que estes trabalhem menos.
Isso porque esta 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,
uma vez que 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 - se mostra 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.
Finalizando
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: