EZINE HISPABYTE

Conociendo BitTorrent

Introducción

Quizas hayas oido sobre lo bueno que es el bittorrent pero en verdad sabes que lo hace tan bueno y diferente de el kazaa , emule y otros p2p? Claro que debes de haber oido de el, fue uno de los terminos mas buscados en buscadores y crecio igual de rapido que un virus :P
Para empesar no trae spywarez ni adwarez ni ninguna otra peste como el kazaa , no es tan complicado como el emule y los archivos falsos son muy limitados debido a la buena administración.
BitTorrent fue creado por Bram Cohen un programador que tuvo tiempo libre para dar fruto a uno de los mejores p2p que an existido.

Lo que hace tan especial a bittorrent es su sencilles y algoritmo, lo unico necesitado para hacer este sistema funcionar es un servidor web , un archivo torrent y un cliente de bittorrent.

- El servidor web:
El servidor no es nada mas y menos que un servidor comun y corriente como apache que permita enviar/recivir información de los archivos .torrent , para esto se necesita asociar los archivos .torrent con mimetype "application/x-bittorrent" para poder reconocer y trabajar con los archivos torrent. Luego que tengamos todo esto pues solo necesitamos un tracker. Un tracker es un script mayormente en php que se encarga del proceso del protocolo , yo lo considero como una base de datos entenderan cuando hable del protocolo.

- El archivo torrent:
Este debemos generarlo con cualquier programa como MakeTorrent , btmake , Azereus , etc.
El archivo torrent contiene información como el nombre del archivo , tamaño , un hash sha1 con la información del archivo , la url del tracker , quizas un comentario entre otras cosas. Estos archivos estan codificado con un metodo llamado "bencoding" donde los integers estan presentado con una 'i' seguido por el numero en base 10 y una 'e'. Un ejemplo de un archivo verdadero:

d8:announce32:http://torrents.ru:6969/announce13:creation
datei1104010782e8:encoding12:windows-12524:infod6:lengthi9528080e4:name51:2600.The.Hacker.Quarterly. vol21.no1.Spring.2004.rar12:piecelengthi262144e6:pieces740:»o&c |ûLGã

Se perdieron algunos caracteres pero aun se puede ver mas o menos como esta compuesto , este archivo lo descargue anoche y se lo sugiero a todos ;)

- El cliente:
Existen muchisimos clientes para bittorrent mi favorito es el mas simple , el que creo Bram Cohen , aunque a muchos le gusta Azereus porque trae muchas funciones y a otros Tornado (nunca he probado este). El cliente se conecta al tracker para ver quien tiene el archivo y luego se conecta a la persona y empiesa a descargar/compartir el archivo, todo eso siguiendo el protocolo.

Protocolo

Ese es parte del funcionamiento basico de bittorrent. Luego de un tracker , .torrent y un cliente viene la parte en que nosotros mas influenciamos que es la parte de compartir la información pero primero vamos a ver como funciona todo esto. Como dije anteriormente bittorrent tiene un mejor protocolo que todos los demas p2p, aunque algunos p2p usan o usaban algo parecido, como imesh que usaba algo parecido. La mayoria , para no decir todos , los p2p funcionan de la siguiente manera:

central.png

Una pc central osea la que tiene un archivo completo , comparte con las demas maquina el archivo. En teoria esta muy bonito y se parece a la topologia estrella (protocolo de una red). Pero no es tan rapido porque siempre dependemos de que una persona lo tenga completo de otro modo estamos estancados y sin esperanza.

BitTorrent usa otro metodo:

torrent.png

Todos los que tengan un pedaso del archivo pueden compartir con personas que no tengan ese pedaso y tambien poder descargar del que tenga el archivo completo. Esto es debido a que los torrent se dividen en partes, normalmente en 1/4 del tamaño que tenga y se va enviando por partes. Un archivo de 100mb se divide en 25mb (puede ser mas o menos, esto puede cambiar segun quien creo el torrent) pero esos 25mb se subdividen para poder enviarse más rapido por la red. Haci se logra una mejor velocidad , no depender 100% de una pc que tenga el archivo completo sino que tambien se puede descargar pedasos de personas que tengan el trozo que necesitas.

El protocolo en la hora de compartir tiene un cierto algoritmo que segun estudios funciona muy bien , como ya saben los torrent se dividen en pedasos y se descarga por pedasos. Pero eso tiene un algoritmo o una forma de funcionar, al inicio cuando se va empesar a descargar un torrent se empiesa descargando el primer trozo luego que se descarga este primer trozo se aplica lo que ellos llamaron 'rare first'. Rare first (menos comun primero) es parte de su hermoso protocolo, se descargan los trozos menos abundantes haci si se cae el seeder (persona con el archivo completo) los leechers (personas con archivo incompleto) pueden completarlo entre ellos. Claro esto funciona mejor cuando son mas de 50 personas descargando y haci se puede mantener vivo un archivo por mas tiempo.

Entonces donde influye el tracker?

Por medio del tracker es que se sabe a quien conectarse , que persona tiene X pedasos , los ip , etc. por eso dije que funciona o es similar a una base de datos o un dns. Si bittorrent viese dependido de un server como kazaa ya viese fracasado pero lo que lo mantiene vivo y mejorando dia a dia es que cualquier persona con una pc y un server puede montar un tracker. No necesitas un internet rapido ni mucho espacio debido a que los archivos torrent solo ocupan kb , los archivos reales estan en la pc de las personas, no necesitas alta velocidad de internet porque el protocolo funciona por HTTP o HTTPS y es muy rapido , no va jalar grande ancho de banda ni recursos del pc. Es como tener una web normal , claro que mientras mas visitantes tengas mejor servidor vas a querer para dar mejor servicio. Todo tracker tiene una web donde se muestran los torrents como lo era suprnova.org :( , por lo tanto los administradores y moderadores se encargan de que no se distribuyan archivos falsos, tan pronto encuentran uno lo eliminan de circulación. Pero no toda web que distribuya torrents tiene un tracker algunas solo alojan y redireccionan a trackers.

Se que fue un articulo largo pero me inspire mucho escribiendolo y espero que lo aprecien , si lo leyeron todo de una sola vez seguro estan cansados pero no tanto como yo que empese a las 11pm y voy par las 12:30am :P
Algo que deben tomar en cuenta es que mientras descargas un archivo vas compartiendo automaticamente los trozos que tengas, al terminar de descargar el archivo completo te conviertes en un seeder y es considerado mala educacion o no etico el cerrar el programa de una vez , dejenlo compartiendo aunque sea una hora o dos. Lo siento por RJ-45 que dijo que le gustan corto pero este vale la pena pienso yo ;)

Referencia y Enlaces

Protocolo , información y pagina oficial de bittorrent: http://bittorrent.com/
Blog personal de Bram Cohen: http://advogato.org/person/Bram/diary.html
Ayuda para bittorrent: http://www.ayudabittorrent.com/
Como crear y compartir un torrent
Mi pagina web favoritas para descargar torrents:
lokittorent.com
torrentreactor.net
isohunt.com
Una gran lista de trackers: thebeehive.info

by Crack_X
Yasser A. Hernández C.
http://crackx.webcindario.com