Introdução
Muitos sistemas de compartilhamento de arquivos pela internet são bastante populares, no entanto, é possível que nenhum deles tenha tanto destaque quanto o BitTorrent: trata-se de uma tecnologia que oferece um modo de funcionamento inovador, eficiente, rápido e estável, especialmente para o compartilhamento de arquivos grandes (com centenas ou milhares de megabytes).
Mas, o que faz o BitTorrent ter estas características? Como o BitTorrent funciona? Como usar o BitTorrent? Como recursos adicionais - DHT e PEX, por exemplo – melhoram ainda mais as suas funcionalidades? O BitTorrent é sinônimo de pirataria? É para responder a estas e outras perguntas relacionadas ao assunto que o InfoWester mostra a seguir os principais conceitos que estão por trás desta tecnologia.
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
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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).
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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 emblocos.
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 [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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, [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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 emArquivo 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.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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:
- bittorrent.com;
- bittorrent.org;
- wiki.theory.org/BitTorrentSpecification.