Protocolo Bittorrent
●
Fundamentos Básicos
●
Funcionamento do Protocolo
●
Principais problemas
●
Impacto na Rede
●
Considerações Finais
[email protected]
LETRA - UNIRIO
1
Protocolo Bittorrent
Fundamentos Básicos
●
●
●
Bittorrent é um protocolo peer-to-peer para
compartilhamento de arquivos criado por Bram
Cohen. BitTorrent é projetado para facilitar
transferências de arquivos entre vários pares de
uma rede P2P.
Sítio do projeto http://www.bittorrent.org
Para melhor endendimento de uma rede Bittorrent é
importante conhecer seus elementos
2
Protocolo Bittorrent
Fundamentos Básicos
Elementos Bittorrent:
●
Cliente
●
●
Par (peer)
●
●
Aplicativo que implementa o protocolo, é o cliente
BitTorrent que está sendo executado na máquina local.
Par é qualquer cliente BitTorrent participando de um
download/upload.
Semeador (seeder)
●
Par que contém uma cópia completa do arquivo . Este
apenas realiza upload.
3
Protocolo Bittorrent
Fundamentos Básicos
Elementos Bittorrent:
●
Sangue-sugas (leecher)
●
●
Enxame (swarm)
●
●
Pares que estão baixando ou enviando informação para
uma rede Bittorrent.
Rede de pares (peers) que estão compartilhando
determinada informação.
Rastreador (Tracker)
●
Servidor responsável por manter uma lista atualizadas de
todos os pares que participam de enxames. Também
guarda estatísticas sobre a rede.
4
Protocolo Bittorrent
Fundamentos Básicos
Elementos Bittorrent:
●
Arquivo de metadados (metafile)
●
●
Pedaço
●
●
Arquivo de extensão '.torrent' que contém informações
sobre o arquivo ou arquivos que serão baixados.
Cada arquivo presente em um '.torrent' é dividido em
pedaços com objetivo de otimizar a troca dos mesmos.
Bloco
●
Cada pedaço é subdividido em blocos, que são a unidade
mínima de envio.
5
Protocolo Bittorrent
Funcionamento do Protocolo
Ínicio :
●
●
●
●
Em sítios especializados, baixar arquivo de
metadado com extenção '.torrent';
Chamar o arquivo '.torrent' através do cliente
Bittorrent;
Neste arquivo irá conter o(s) arquivo(s) a serem
baixado(s) e qual(is) ratreador(es) deverão ser
contactado(s);
Ao entrar em contato com o Rastreador (Tracker) ,
este envia uma lista de todos os pares no enxame
(swarm) no momento. Este processo é conhecido
como anúncio;
6
Protocolo Bittorrent
Funcionamento do Protocolo
Ínicio :
●
●
●
●
Cliente conecta com pares do enxame para
descobrir quem tem pedaços a oferecer;
O Cliente começa receber pedaços de outros pares.
Agora também já está apto a enviar pedaços a pares
que o solicitarem;
A escolha, em ambos os casos, de quais pedaços ou
blocos e com quais pares trocá-los é feita seguindo
alguns algoritmos;
Para cada pedaço completamente recebido, o
cliente calcula o hash SHA1 do pedaço, e confere se
este está de acordo com o valor presente no arquivo
de metadados.
7
Protocolo Bittorrent
Funcionamento do Protocolo
Ínicio :
●
Quando o cliente conclui o recebimento de todos os
pedaços do arquivo, ele deixa de realizar download
e torna-se um semeador.
8
Protocolo Bittorrent
Funcionamento do Protocolo
Arquivo de metadados( .torrent) :
●
O arquivo '.torrent' está codificado no formato
bencoding, que suporta quatro tipos de dados:
strings (cadeias de caracteres), números inteiros,
listas e dicionários . As listas e dicionário podem
conter qualquer um dos quatro tipos.
●
Strings: [número de caracteres em base dez]:[texto]
●
●
Inteiros: i[número em base dez]e
●
●
Ex.: 10:bittorrent → “bittorrent”
Ex.: i6e → 6
Listas: l[valor em bencoding][valor em bencoding][...]e
●
Ex: l3:bit7:torrenti2008ee → <“bit”, “torrent”, 2008>
9
Protocolo Bittorrent
Funcionamento do Protocolo
Arquivo de metadados( .torrent) :
●
Dicionários: d[chave em bencoding][valor em
bencoding][chave][valor][...]e
●
●
Ex.: d1:a6:inicio1:bi5e1:c3:fime → <(“a”, “inicio”),
(“b”, 5), (“c”, “fim”)>
O conteúdo de um arquivo metadado (o arquivo com
a terminação ". Torrent") é uma “bencoded”
dicionário, que contém as chaves listadas abaixo.
●
●
Info: um dicionário que descreve o arquivo (s) do
torrent.
Announce: Anunciar URL do tracker(string) .
10
Protocolo Bittorrent
Funcionamento do Protocolo
Arquivo de metadados( .torrent) :
●
O conteúdo de um arquivo metadado (o arquivo com
a terminação ". Torrent") é uma “bencoded”
dicionário, que contém as chaves listadas abaixo.
●
●
●
●
Announce-list: (opcional) esta é uma extensão para a
especificação oficial. Esta chave é utilizada para
implementar listas de backup trackers.
creation date: (opcional) hora da criação do torrent,
no formato hora UNIX . (Inteiro - Segundos desde
1-1-1970)
comment: (opcional) comentários do autor (string)
create by: (opcional) nome e versão do programa
utilizado para criar o .Torrent (string)
11
Protocolo Bittorrent
Funcionamento do Protocolo
Arquivo de metadados( .torrent) :
12
Protocolo Bittorrent
Funcionamento do Protocolo
Algoritmos:
●
Algoritmos de seleçao de pares
●
●
●
Após a descoberta dos semeadores(seeders) e dos
sanguesugas(leechers) , faz-se necessário escolher de
quais usuários baixar e para quais enviar. O Bittorrent
prevê um algoritmo que favorece a troca recíproca de
informações, o 'tit-for-tat“.
Como o BitTorrent não possui uma central de alocação
de recursos, cada peer é responsável por maximizar
sua taxa de download.
Alcançam este objetivo fazendo download do maior
número de peers quem eles podem e decidindo para
qual peer fazer upload.
13
Protocolo Bittorrent
Funcionamento do Protocolo
Algoritmos:
●
Algoritmos de seleçao de pares
●
●
Para cooperar, peers fazem upload, para não cooperar,
sufocam (choke) peers,
Resumindo o 'tit-fot-tat' se apresenta da seguinte
forma:
●
CHOKE -> Cliente para de enviar para este PAR;
●
UNCHOKE -> Cliente envia dados para este PAR;
●
OPTIMISTIC UNCHOCKING -> Cliente escolhe
aleatoriamente algum PAR para UNCHOKE;
14
Protocolo Bittorrent
Funcionamento do Protocolo
Algoritmos:
●
●
●
Algoritmos de seleção de pedaços
Cada arquivo sendo baixado é dividido em pedaços,
que podem ser obtidos simultaneamente de vários
peers.
O Bittorrent se utiliza de alguns algoritimos
principais para selecionar pedaços:
●
Prioridade Estrita
●
Mais raro primeiro
●
Primeiro pedaços Aleatório
●
Modo End Game
15
Protocolo Bittorrent
Funcionamento do Protocolo
Principais problemas:
●
Problema do Leech;
●
Falta de Anonimato;
●
Os FreeRiders
●
Estes, usuários que se beneficiam de redes Bittorrent
sem muito ou nada contribuirem;
16
Protocolo Bittorrent
Funcionamento do Protocolo
Impacto na Rede:
●
As transferências usando o protocolo BitTorrent são
responsáveis por grande parte do tráfego da
Internet.
17
Protocolo Bittorrent
Funcionamento do Protocolo
Impacto na Rede:
Sudoeste
Europeu
Oriente
Médio
Sul da
Europa
Alemanha
Norte da
África
Protocolo
Ares
BitTorrent
DirectConnect
eDonkey
Gnutella
Imesh
Thunder
Outros
Europa
Ocidental
Local
América do
Sul
As transferências usando o protocolo BitTorrent são
responsáveis por grande parte do tráfego da
Internet.
Sul da África
●
0.29% 42.63% 0.00% 2.24% 0.84% 0.16% 0.11% 1.80%
48.34% 30.02% 80.83% 74.51% 40.77% 48.94% 78.85% 58.20%
0.01% 0.00% 17.87% 0.08% 0.85% 0.00% 0.12% 0.30%
2.48% 25.99% 1.16% 7.70% 24.22% 47.17% 15.37% 35.99%
18.60% 0.36% 0.14% 14.21% 1.75% 1.66% 5.00% 2.75%
13.60% 0.02% 0.00% 0.47% 0.00% 0.03% 0.00% 0.14%
14.04% 0.80% 0.00% 0.69% 0.77% 1.64% 0.52% 0.62%
2.64% 0.19% 0.00% 0.10% 0.68% 0.41% 0.03% 0.21%
18
Protocolo Bittorrent
Funcionamento do Protocolo
Conclusão:
●
BitTorrent é um protocolo extremamente útil, que
tem como principais fraquezas a dependência de
servidores e o tempo de vida dos arquivos
fortemente dependente do interesse dos usuários.
Apesar destes desafios, ele se mostra um
concorrente respeitável para a troca de arquivos, já
sendo usada, de fato, em projetos de grande porte,
como algumas distribuições do sistema operacional
Linux. Suas vantagens técnicas são essenciais para
o envio de arquivos grandes (tendência nos
aplicativos e documentos de mídia) de forma barata.
19
Download

Protocolo Bittorrent