Na informática, o BitTorrent também chamado de sistema par-a-par, ou ponto-a-ponto (do inglês: peer-to-peer, com acrônimo P2P) é um sistema on-line de compartilhamento e download de arquivos entre usuários através do protocolo de rede sem que o arquivo precise estar em um computador servidor, criado pelo programador Bram Cohen em abril de 2001.

No sistema P2P, cada dispositivo de um usuário, computador e smartphone, funciona como servidor de arquivos e cliente de download ao mesmo tempo, permitindo transferências de múltiplos arquivos de graça por múltiplos usuários.

Esse protocolo introduziu o conceito de partilhar o que já foi descarregado, maximizando o desempenho e possibilitando altos índices de transferência, mesmo com um enorme número de usuários realizando descargas (downloads) de um mesmo arquivo simultaneamente. Enquanto nas outras redes você deve procurar pelo próprio programa o arquivo e baixá-lo, nos arquivos de protocolo BitTorrent a coisa é diferente. Acontece que, todos os usuários que fazem o download de um arquivo, tornam-se também fornecedores deste arquivo; quando alguém for baixá-lo, todos os computadores que já o possuem através do torrent e que estiverem online no momento vão atuar como "semeadores", cada um fornecendo uma parte do arquivo, portanto quanto mais usuários fizerem o download, mais rápido será feito o compartilhamento, pois a parte enviada do arquivo por cada um será menor.

O BitTorrent foi e teve sua primeira implementação liberada no dia 2 de Julho de 2001. Desde então tem sido alvo de empresas que lutam em defesa da propriedade intelectual, devido a alegações de violação de copyright (autoria) de alguns arquivos transmitidos pela rede. No ano de 2005 o protocolo BitTorrent foi responsável por 35% dos dados transferidos na Internet em todo o mundo.

Em transmissões via BitTorrent, os arquivos são divididos em partes normalmente bem menores que o arquivo original. Num sistema de servidor central (como sites e portais de downloads, por exemplo), existe uma fila de espera e os usuários dependem do funcionamento do servidor para enviar o arquivo para cada um, tornando o processo lento, principalmente quando são arquivos "grandes"/"pesados" e que são baixados por muitas pessoas ao mesmo tempo. No BitTorrent, o sistema de partilha otimiza o desempenho geral de rede, uma vez que não existem filas de espera e, todos partilham "pedaços" entre si. A quantidade de usuários baixando o mesmo arquivo apenas agiliza o processo, devido ao fato de todos se tornarem fornecedores dos pedaços do arquivo, não há um servidor central, portanto não há sobrecarga. Assim, quanto mais utilizadores entram para descarregar um determinado arquivo, mais largura de banda se torna disponível. Mesmo as máquinas que possuem apenas parte do arquivo e estão realizando o download também já compartilham o arquivo.

Acesso Há diversos sites onde usuários disponibilizam seus arquivos .torrent. Porém como o número desses serviços é crescente, foi criado outro tipo de serviço: o de pesquisar arquivos nesses sites sem a necessidade de vasculhar um por um.

E, apesar de nos últimos tempos estarem parecendo um caça as bruxas, ou melhor, caça aos sites de torrent, você poderá encontrar bons downloads se procurar bem. Aqui vai uma lista dos sites nos quais você pode encontrar seus torrents:

The Pirate Bay Torrent-finder RARBG I Love torrents TorrentZilla Torrent Reactor Demonoid (privado)

Cliente São programas compatíveis com arquivos torrents necessários para criação, download e envio. Sem eles é impossível fazer o download de torrents. Você poderá até baixar o arquivo .torrent que vai redirecioná-lo ao original, porém se não houver cliente (como BitTorrent, BitComet, µTorrent, Vuze etc...) não é possível dar continuidade ao processo. Estes programas têm interfaces bem divididas e podem organizar muito bem os seus torrents entre aqueles que ainda estão sendo baixados, os que já foram concluídos e os outros dos quais você se tornou um seeder (semeador).

Funcionamento Baixar por torrent consiste em coletar fragmentos de um mesmo arquivo no computador de vários usuários que compartilham o conteúdo ou estejam fazendo download do mesmo documento. Isso é o que diferencia o compartilhamento por torrent de outras formas de download entre só dois usuários (P2P ou peer-to-peer). A transferência de dados acontece entre vários computadores que disponibilizam o mesmo arquivo. A sacada do protocolo BitTorrent é que o download também é realizado a partir de computadores que disponibilizam partes do mesmo arquivo, e não somente de quem baixou ele inteiro.

Para compartilhar um arquivo usando o BitTorrent, um utilizador cria um arquivo .torrent, um pequeno "apontador" que contém:

o nome do arquivo; tamanho do arquivo; hash, a matrícula de cada bloco do arquivo (que assegura aos utilizadores que o arquivo é o que o nome diz ser); endereço do servidor tracker (ver a seguir)

frame|BitTorrent reduz largamente a carga no servidor porque os utilizadores descarregam arquivos uns dos outros, não do servidor. As barras coloridas indicam que os pedaços são partilhados em ordem aleatória, em vez da ordem sequencial.O arquivo torrent pode ser distribuído para outros utilizadores, sendo um website o meio mais comum. No website, geralmente é disponibilizado um "link" que irá conectar o usuário direto ao fornecedor do arquivo .torrent, o site não contém o arquivo em si, apenas funciona como um intermediário entre o novo usuário e o fornecedor. O cliente BitTorrent se torna um "nó semeador", ou seja, se torna também um fornecedor do arquivo a partir do momento que inicia o download, permitindo que outros utilizadores se conectem a ele e comecem o download. Conforme outros utilizadores fazem o download do arquivo, eles também podem se tornar novos semeadores desse arquivo. Um dos problemas desse sistema é que se todos os semeadores saírem da rede, o arquivo, ficheiro, pode tornar-se indisponível para download, mesmo que se tenha o arquivo torrent. Com sorte ainda é possível descarregar todos os pedaços de um arquivo mesmo que nenhuma fonte seja completa, uma vez que os pedaços são distribuídos em ordem aleatória. Ou seja, mesmo se nenhum semeador possuir o arquivo completo, ainda é possível fazer o download do arquivo juntando as partes que cada semeador possui.

Descarregar com o BitTorrent é bastante intuitivo. Cada pessoa que quiser descarregar um arquivo, primeiro deve descarregar o arquivo torrent que aponta para o arquivo desejado, depois abri-lo no seu cliente BitTorrent, que é um software que usa o arquivo torrent para encontrar e descarregar o arquivo desejado. O arquivo torrent mostra ao cliente o endereço do tracker, que mantém um log de quais os utilizadores que estão descarregando o arquivo e onde o arquivo e seus pedaços estão (caso o tracker esteja fora do ar fica impossível começar o download). Depois do download começar, se o tracker sair do ar ainda é possível continuar o download, mas perde-se a informação de quais os utilizadores que estão online e quais os blocos que estão disponíveis. Para cada fonte disponível o cliente lista quais blocos do arquivo que estão disponíveis, para depois pedir o bloco menos disponível na rede que ele ainda não possui. Essa priorização dos blocos mais raros entre os utilizadores da rede primeiro faz com que todos tenham blocos para partilhar. Assim que um cliente termina de descarregar um bloco, ele é automaticamente "hasheado" para garantir a integridade e segurança do mesmo, para em seguida procurar um cliente qualquer para fazer o upload daquele bloco.

BitTorrent proporciona a melhor performance para pessoas com maior volume de upload, uma propriedade conhecida como "resistência a sugadores", já que ele não garante performance para utilizadores que somente descarregam e não devolvem nada para a rede e os outros utilizadores.

Termos do BitTorrent Segue lista de termos do universo BitTorrent: Seeder: Como tudo no mundo, os torrents também começam com uma semente. Isso, uma semente, isto é, um "seeder". Semeador, em bom português. O processo de compartilhamento de arquivos é iniciado por um usuário que envia um arquivo de extensão .torrent em um site da internet. Feito isso, todos os usuários que tiverem interesse naquele conteúdo podem baixá-lo. Leecher: Enquanto se baixa um torrent, se assume o papel de leecher (literalmente "sanguessuga"), aquele que aproveita. Porém este papel é um tanto ambíguo. Enquanto você faz o download pode também se tornar um seeder, pois partes do arquivo já terão sido concluídas e já vieram para seu computador, então automaticamente estão disponíveis para outros leechers que possam se interessar. Portanto você pode ter um papel unico (seeder ou leecher) ou optar por ambos simultaneamente. Swarm: (Enxame) É um grupo formado por seeders e leechers que compartilham arquivos torrents. Peers (pessoas ou usuários) conectados por um tracker. Tracker: Neste caso específico o servidor se chama tracker. Ao contrário do que muitos podem pensar este servidor não é como os outros. Os trackers não armazenam nenhum dos arquivos. "Então pra que eles servem?" - simplesmente para executar a função de conectar os usuários para que estes possam executar seus papéis de seeder ou leecher. PEX: O Peer Exchange é um dos pontos de destaque da relação usuário-tracker, já que permite que esta aconteça de forma diferenciada. O grande trunfo do PEX é o fato que ele permite que um indivíduo pertencente a um Swarm possa trocar informações sobre o próprio grupo diretamente, sem que seja necessário pedir a autorização do tracker. A vantagem dessa função é justamente poupar este servidor de algumas tarefas. Assim, percebe-se que existe autonomia na hora e encontrar arquivos via torrent. Hash: Estes hashs que confundem tanto com vários números e letras em uma ordem estranha têm uma razão de ser. Sempre que você terminar de fazer o download de um pedaço do arquivo, o seu cliente torrent vai criptografá-lo, ou seja, fazer o hash. Isso é feito para que você tenha garantias de que não vai fazer o download de algo que não ordenou. Assim, seu torrent é transformado em uma sequência alfanumérica de 128 bits muito semelhantes a este exemplo: "9e107d9d372bb6826bd81d3542aq419d6". As sequências são produzidas através do algoritmo MD5, ou seja, o modelo de criptografia unidirecional que não permite o retorno a frase que lhe deu origem. Este formato é muito comum em trocas do tipo P2P e até mesmo em verificações de login. Tudo isso serve para garantir que não está baixando algo corrompido e que há uma preocupação com a segurança nos downloads e uploads. DHT: As DHTs, ou seja, tabelas de hash distribuído, são uma das peças chaves na hora de fazer downloads de arquivos torrent. Elas são uma espécie de sistema distribuído descentralizado que trabalha com pares de informações. As chaves e os valores são armazenados nesta tabela e, assim, qualquer nó - normalmente os leechers - é capaz de recuperar esse valor associado a uma chave para fazer o download de blocos de um arquivo maior. As DHTs ficam guardadas nos trackers. Por isso, quando você for procurar por um arquivo, a tabela deverá estar bem arquivada e atualizada para gerar o mínimo de desordem. O surgimento das DHTs esta intrinsecamente ligado ao nascimento das redes P2P e aos sistemas como Gnutella, Napster e o Freenet. Além de serem eficientes, as tabelas são bastante maleáveis, permitindo a adaptação ao sistema no qual ela é utilizada. No Napster, por exemplo, a adição dos dados acontecia no momento em que o usuário fazia o seu cadastro. A partir deste ponto, as informações de arquivos a serem compartilhados no computador seriam armazenadas no servidor. Os hashs são pontos cruciais nesse caso, porque são meios de mapeamento das chaves para os nós desta rede. São essas DHTs que promovem o encontro entre o seeder e o arquivo que ele procura.

Comparação com outros sistemas de partilha