O documento descreve o protocolo BitTorrent, incluindo sua criação por Bram Cohen em 2001 como uma alternativa ao FTP para distribuição colaborativa de arquivos na Internet. Explica os principais conceitos como trackers, peers, swarms e o funcionamento geral do download e compartilhamento de arquivos torrent através da comunicação entre peers e trackers.
2. Introdução
. Criado e implementado por Bram Cohen em 2001;
. Alternativa ao FTP (File Transfer Protocol);
. Auxilia no problema de banda limitada dos servidores;
. Distribuição colaborativa de arquivos via Internet;
. Melhor caracterizado como um protocolo peer-to-peer (P2P),
embora possua elementos altamente centralizados;
. Apesar de ser largamente utilizado e já ter sido implementado
para várias plataformas, não possui uma especificação formal.
3. Terminologia
Tracker
É um servidor central que possui informação sobre torrents e
seus respectivos swarms. Possibilita a entrada de novos peers
em swarms.
Peer
É um nó da rede que participa do compartilhamento. Pode ser
um cliente e servidor simultaneamente.
4. Terminologia
Arquivo de Metainformação
Arquivo de texto que possui informação sobre a URL do
Tracker responsável pelo seu Swarm.
Swarm
É um conjunto de Peers (download / upload) que opera em um
torrent.
5. Características
- O Tracker serve de intermediário entre dois peers. Após os
peers se comunicarem ele não irá mais intermediar a
comunicação. E com isso diminui a sua carga.
- Nada impede de o Cliente conectar-se novamente ao Tracker
para solicitar novos peers do swarm.
- Tit-for-Tat quanto mais compartilha maior será a velocidade
de download.
- Para melhorar o uso da internet, o protocolo faz pipeline da
transmissão de dados, Bittorrent baixa pedaços de arquivo
de múltiplos usuários.
7. BitTorrent
Em redes P2P os usuários que compartilham os arquivos.
- No BitTorrent o compartilhamento é dado por:
● Publicações de Torrents
● Download de Torrents
8. Publicação de Torrents
- É necessário ter um tracker online.
- Crie um arquivo com metainformação contendo a informação
do tracker, informação sobre a estruturação do arquivo a ser
compartilhado, etc.
- Necessariamente um usuário com o arquivo inteiro deve estar
online para que o arquivo possa ser compartilhado na rede.
9. Download de Torrents
- Usuário baixa um arquivo com metainformação. Que está
sendo publicado num site indexador de torrents, o cliente se
conecta ao tracker periodicamente, requesitando informação
sobre peers no swarm.
- Cliente se conecta aos peers e então são transferidas partes
do arquivo através do protocolo Peer Wire Protocol (PWP) até
que o arquivo inteiro chegue ao cliente.
11. Arquivo de metainformação
Arquivo de texto contem informações do torrent tais como:
● Endereço do tracker
● Endereço de tracker auxiliares (opcional)
● Comentário feito pelo autor do arquivo (opcional)
● Nome do Cliente usado na criação do arquivo (opcional)
● Data de criação do arquivo de metainformação (opcional)
● Info:
○ identificação de todos os arquivos que fazem parte do
torrent
○ tamanho das partes
○ nome do arquivo
○ tamanho em bytes
13. Tracker HTTP Protocol (THP)
- Faz uso do HTTP, utilizado para gerenciar os swarms,
apresentando novos peers que desejam participar do processo
de download.
- Através de requests e responses notifica os peers sobre
novos peers participantes.
- Está característica que diferencia o BitTorrent dos protocolos
P2P.
- Caso o Tracker seja desligado ou reiniciado, os peers já
existentes no swarm continuam interagindo entre si
normalmente, apenas não se comunicam com novos peers.
14. Peer Wire Protocol (PWP)
- Responsável pela comunicação de peers vizinhos.
- Define como o peer vai se comportar em relação ao
compartilhamento, isso ocorre após fazer a comunicação com
o tracker através do THP, tornando-se parte do swarm.
- É construído sobre o protocolo TCP, gerenciando sua
comunicação por mensagens assíncronas.
- Deve ser otimizado para maximar disponibilidade de
determinadas partes de arquivos no swarm.
- Para evitar que um torrent "morra", o PWP identifica as partes
menos disponíveis no swarm e quais peers possuem essas
partes e então prioriza a tranferência das mesmas.
16. Na prática
- Responsável por 27% a 55% de todo o tráfego da internet
- Extensivamente utilizado por grandes companhias:
● Facebook e Twitter: Updates nos servidores são feitos
através de BitTorrent.
● Activision-Blizzard: Atualizações de jogos como Starcraft II
e World of Warcraft são baixadas através de um cliente
BitTorrent proprietário chamado Blizzard Downloader.
● Projetos Open-Source: A maioria dos projetos open-source
incentiva o download de conteúdo via BitTorrent devido ao
limite de tráfego dos servidores imposto a downloads via
HTTP ou FTP.
17. Conclusão
É uma solução muito boa, uma vez que maximiza a velocidade
de transferência de arquivos, pois baixa partes do arquivo
simultaneamente de peers diferentes, o que torna ele o
protocolo preferido para compartilhamento de arquivos
grandes.