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.
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.
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.
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.
Funcionamento
BitTorrent
Em redes P2P os usuários que compartilham os arquivos.
- No BitTorrent o compartilhamento é dado por:
●Publicações de Torrents
●Download de Torrents
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.
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.
Cliente uTorrent 2.2.1- Download
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
Arquivo de Metainformação
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.
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.
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.
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.