|

Usando o Bittorrent
"Bittorrent" significa algo como "corrente de bits". Ele foi feito para facilitar a
distribuição de arquivos muito procurados, como por exemplo novas versões das distribuições, musicas ou games gratuitos e
assim por diante. Claro que além destes exemplos, é possível distribuir qualquer tipo de arquivo, legal ou não através dele.
Não existe uma interface centralizada como em outros programas. Os arquivos são
distribuídos na forma de pequenos arquivos .torrent que contém algumas informações sobre o arquivo, um código de
verificação de integridade e o endereço do tracker onde ele pode ser encontrado.
O tracker é um host que serve como ponto de encontro, ele não disponibiliza nenhum
arquivo diretamente e por isso é capaz de lidar com um número muito grande de requisições. Um tracker rodando numa conexão
ADSL com 128k de upload pode dar conta de milhares de downloads simultâneos.
Como disse, o tracker só centraliza informações sobre os hosts que estão compartilhando o
arquivo, não disponibiliza nada diretamente. Para colocar um arquivo em circulação é criado um seed (semente), um host
que será responsável por servir como um ponto inicial para download do arquivo.
A partir do momento em que outras pessoas começam a baixar o arquivo elas automaticamente
também compartilham os pedaços já baixados e conforme mais e mais gente vai tentando baixar a oferta do arquivo fica cada vez
maior e o download mais e mais rápido. Com o tempo algumas pessoas começam a deixar o bittorrent aberto compartilhando o
arquivo completo e o seed passa a nem ser mais necessário.
É exatamente o contrário do que aconteceria caso o arquivo fosse disponibilizado num FTP
comum. Uma simples conexão ADSL pode distribuir o arquivo para milhares de pessoas e um mesmo tracker pode coordenar a
distribuição de vários arquivos.
O ponto fraco do bittorrent é quando é preciso distribuir um monte de arquivos que
individualmente possuem pouca procura. Se apenas uma ou duas pessoas tentarem baixar de cada vez, quase todo o trafego vai
recair sobre os micros que estiverem disponibilizando o arquivo de qualquer forma.
Existem versões para Linux e Windows, a versão Linux pode ser baixada no:
http://bitconjurer.org/BitTorrent/download.html
Procure pelo link "some RPMs" que levará a alguns pacotes pré-compilados para várias
distribuições. Se estiver no Debian ou Kurumin a instalação será mais fácil, pois ele está disponível no apt-get. Basta um:
# apt-get install bittorrent
Existem duas opções de cliente. O btdownloadcurses e o btdownloadgui. Os
dois fazem exatamente a mesma coisa, a única diferença é que o primeiro mostra a barra de progresso numa janela de terminal,
enquanto o outro mostra uma barra gráfica.
Para usá-los, basta copiar o link do arquivo .torrent desejado e usar o comando "btdownloadcurses
--url", como em: btdownloadcurses --url http://www.levien.com/mandrake9.1.torrent
Depois é só deixar a janela aberta o máximo de tempo possível, mesmo depois de terminar de
baixar o arquivo, para ajudar outras pessoas que também estejam tentando baixá-lo. Se o download for interrompido, basta usar o
comando novamente, no mesmo diretório. O programa verifica a integridade do arquivo e continua da onde parou.
Outra opção é copiar o arquivo .torrent para uma pasta do HD e usar o comando btdownloadcurses sem o "--url"
para baixá-lo, como em: "btdownloadcurses mandrake9.1.torrent"
Se instalou a partir de um dos pacotes RPM, então os comandos serão
btdownloadcurses.py e o btdownloadgui.py
pode também configurar o
navegador para associar a extensão .torrent com os programas, assim não precisará ficar dando os comandos no terminal. O
Mozilla 1.4 já vem configurado.
Para disponibilizar arquivos
precisa antes de mais nada criar os arquivos .torrent a partir dos arquivos originais. Para isso, use o comando
btmakemetafile (ou btmakemetafile.py), fornecendo o nome do arquivo e o endereço do tracker, como em:
btmakemetafile.py kurumin-1.4.iso http://algum-lugar.com:6969/announce
O "kurumin-1.4.iso" é o nome do arquivo enquanto o "http://algum-lugar.com:6969" é o endereço
do tracker que será usado, incluindo a porta tcp onde ele está escutando. O comando gerará um arquivo .torrent de uns 20 kb que pode colocar no seu site ou enviar por e-mail aos
interessados. Não retire o "/announce" do comando, ele é necessário, independentemente de como o tracker esteja
configurado.
Como disse, um tracker pode gerenciar vários downloads simultâneos, pode encontrar
vários endereços de trackers simplesmente abrindo os arquivos .torrent que encontrar por aí num editor de textos. pode pedir
permissão para usar um tracker de alguém, ou criar o seu. Neste caso, use o comando:
./bttrack.py --port 6969 --dfile dstate
Substitua o "6969" pela porta TCP desejada. Depois de criar os
arquivos .torrent e verificar o tracker, precisa de um seed, uma máquina para iniciar a disseminação do
arquivo. Pode ser a sua própria máquina.
Acesse a pasta onde está o arquivo
completo e use o comando: btdownloadheadless.py --url http://guiadohardware.net/kurumin-1.4.iso.torrent
--saveas kurumin-1.4.iso O "http://guiadohardware.net/kurumin-1.4.iso.torrent"
onde hospedou o arquivo .torrent gerado na etapa anterior. O parâmetro "--saveas kurumin-1.4.iso" força ele a salvar o
arquivo com o nome especificado.
Como já existirá um arquivo completo na pasta, ele simplesmente
verificará a integridade e iniciará o compartilhamento do arquivo completo imediatamente. Agora é só divulgar a
localização do seu arquivo .torrent e iniciar a reação em cadeia. Quanto mais gente tentar baixar, mais rápido será o
download. :.:.
Dica para uso do bittorrent por trás de um firewall ou NAT
Assim como outros programas P2P, o bittorrent consegue funcionar sem maiores problemas por trás de
um firewall ou através de uma conexão compartilhada via NAT. Mesmo sem nenhuma porta de entrada disponível, o cliente
consegue se conectar ao tracker e negociar o download e upload dos arquivos.
Mas, ao mesmo tempo, muita gente que o utiliza desta maneira reclama da lentidão para baixar arquivos.
No caso de arquivos muito procurados, onde existe uma oferta muito grande é possível conseguir baixar na velocidade máxima da
conexão, mas no caso de arquivos onde a oferta é menor é comum baixar a 3 ou 4 KB/s numa conexão via ADSL, o que faz os
downloads demorarem uma eternidade...
Isso acontece por um motivo simples. O bittorrent aceita conexões nas portas 6881 à 6889 (ele tenta
primeiro a 6881 e depois vai tentando as demais caso ela esteja fechada). Estas portas são usadas para que o tracker (o servidor
que coordena o download e upload dos arquivos) possa requisitar que o seu micro envie dados para outros micros da rede.
Se estas portas estão fechadas no seu micro as suas taxas de upload serão mais baixas, já que o
tracker não tem como "mandar" o seu micro transmitir dados a outros o que torna a negociação muito mais lenta. Muita gente
vai achar isso bom, afinal o que interessa é baixar logo os arquivos o mais rápido possível e sair de fininho não é mesmo?
Se é dessa opinião, lamento dizer que no bittorrent as coisas não funcionam assim. O protocolo tem um sistema de compensação, que faz com que consiga baixar
os arquivos na medida que também contribui. Isso significa que se contribui pouco, também vai demorar mais para
baixar. No bittorrent o tracker rastreia as taxas de upload e download de cada micro, e mantém um cálculo da
"oferta" e da "demanda" de um determinado arquivo. Se temos 10 micros compartilhando e mais 10 micros tentando baixar, então a
oferta é de mais ou menos 2/1 (os que estão baixando também compartilham o arquivo), de modo que vai conseguir baixar
aproximadamente 2 KB para cada 1 KB que der de upload.
Se por outro lado tem muita gente
tentando baixar e poucos com o arquivo completo dando upload, então a taxa pode ser de 1/1 ou menos.
Numa linha ADSL a taxa de upload é apenas metade da taxa de download. Numa situação normal o upload
ficará estável em uns 13 KB/s e o download ficará um pouco acima disso. Se as portas 6881 à 6889 estão fechadas, então o upload
provavelmente será mais baixo, mas o download ficará muito mais lento e instável.
- Como abrir as tais portas e baixar os arquivos
mais rápidos
Se está rodando o firewall localmente, ou seja está usando o micro que está conectado
na Internet, então precisa apenas abrir as portas. No linux a regra para o iptables será:
iptables -A INPUT -p tcp --destination-port 6881:6889 -j ACCEPT
Se por outro lado está usando o micro Linux para compartilhar a conexão com outros micros da
rede local, então deve usar as linhas abaixo para redirecionar as portas (forward) para o micro onde está
usando o bittorrent: iptables -t nat -A PREROUTING -i ppp0
-p tcp --dport 6881:6889 -j DNAT --to-dest 192.168.0.3 iptables -A FORWARD -p tcp -i ppp0 --dport 6881:6889 -d
192.168.0.3 -j ACCEPT iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 6881:6889 -j DNAT --to-dest 192.168.0.3
iptables -A FORWARD -p udp -i ppp0 --dport 6881:6889 -d 192.168.0.3 -j ACCEPT
Observe que o "ppp0" corresponde à interface que está conectada na Internet. Se acessa via
ADSL PPPoE ou via modem então a interface é essa mesma, mas, se acessa através de algum serviço que utilize ip fixo, ou o
endereço seja obtido via dhcp (sem autenticação) então a interface será eth0 ou eth1. Use o comando "ifconfig" em
caso de dúvidas. Não se esqueça de substituir o "192.168.0.3" pelo endereço IP correto do micro que deseja
que receba as portas. Se tem dois ou mais micros na rede
interna que vão usar o bittorent, pode distribuir as portas entre eles. Se forem 3 micros, cada um pode ficar com 3.
poderia usar as regras abaixo: iptables -t nat -A PREROUTING -i ppp0
-p tcp --dport 6881:6883 -j DNAT --to-dest 192.168.0.3 iptables -A FORWARD -p tcp -i ppp0 --dport 6881:6883 -d
192.168.0.3 -j ACCEPT iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 6881:6883 -j DNAT --to-dest 192.168.0.3
iptables -A FORWARD -p udp -i ppp0 --dport 6881:6883 -d 192.168.0.3 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 6887:6889 -j DNAT --to-dest 192.168.0.4
iptables -A FORWARD -p tcp -i ppp0 --dport 6887:6889 -d 192.168.0.4 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 6887:6889 -j DNAT --to-dest 192.168.0.4
iptables -A FORWARD -p udp -i ppp0 --dport 6887:6889 -d 192.168.0.4 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 6884:6886 -j DNAT --to-dest 192.168.0.5
iptables -A FORWARD -p tcp -i ppp0 --dport 6884:6886 -d 192.168.0.5 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 6884:6886 -j DNAT --to-dest 192.168.0.5
iptables -A FORWARD -p udp -i ppp0 --dport 6884:6886 -d 192.168.0.5 -j ACCEPT
Lembre-se que nenhum ser humano normal fica digitando estas linhas manualmente cada vez que ligar o
micro. Ao invés disso, simplesmente copie tudo para dentro de um arquivo de texto e transforme-o em um executável usando o
comando "chmod +x". Depois disso basta executar o arquivo ou colocá-lo para inicializar junto com o sistema através de algum
arquivo de inicialização. :.
Baixando vários arquivos
de uma vez
É possível encontrar séries inteiras de desenhos e seriados via bittorrent. Uma simples busca no google
já vai trazer muita coisa. Um bom lugar para baixar animes por exemplo é o
http://a.scarywater.net/ que hospeda .torrents de vários grupos de fansubs.
A questão é que algumas séries chegam a ter mais de 60 episódios. Ao invés de ficar copiando e colando o
endereço de cada um para usar com o btdownloadcurses --url, pode simplesmente salvar todos os arquivos .torrent desejados
numa mesma pasta (/home/joao/bt, por exemplo) e rodar o comando:
btlaunchmanycurses /home/joao/bt
Ele vai iniciar o download de todos os
arquivos .torrent colocados dentro da pasta, todos numa única janela. Bem prático para deixar rodando durante à noite por
exemplo.
:.Limitando a taxa de
upload
Com tantos arquivos, ISOs de novas
distribuições, animes, etc. etc. para baixar, às vezes fica difícil resistir à tentação de fechar a janela do bittorrent. O
problema é que a natureza "viral" do bittorent faz com que ele sempre acabe consumindo quase toda a banda da conexão, mesmo que deixe aberta uma única janela.
Para manter o bittorrent aberto e ao mesmo tempo conseguir trabalhar no micro pode limitar a
taxa de upload do cliente. Isto também acabará limitando a taxa de download (lembra-se do sistema de compensação?) fazendo com
que parte da banda fique disponível para outras coisas.
Para isso deve adicionar a opção
"--max_upload_rate 8" no comando btdownloadcurses, onde o 8 é a taxa máxima de upload desejada, em kbytes. Como em:
btdownloadcurses --max_upload_rate 8 --responsefile kurumin-2.02.iso.torrent
(se o arquivo kurumin-2.02.iso.torrent já foi baixado para uma pasta)
ou:
btdownloadcurses --max_upload_rate 8 --url http://www.guiadohardware.info/linux/kurumin/kurumin-2.02.iso.torrent
(para baixar a partir de uma url)
........................................................................................................................................................................................
Sabe o que é MP5 ? ( Cortesia <
http://guia.mercadolivre.com.br/e-mp5-player-11041-VGP
adpatado por dimuka.net ) Toolbar >
http://dimuka.myteamtoolbar.com/ |