- Torrents -

0 Comentarios

 Tras el cierre de los servidores de descarga directa, han sido  muchas las personas que hemos recurrido a los Torrent como sustituto, asi que aqui les dejo una pequeña guia de como funciona.

Descripcion 


BitTorrent es un sistema que comparte en la red archivos de grandes dimensiones. Por esta razón este protocolo esta destinado a los canales con una gran velocidad de transferencia de datos. Por ejemplo, con una conexión ADSL, dependiendo de su velocidad puedes tener en unos pocos minutos la imagen de un DVD..

El protocolo puede ser usado para reducir el impacto que tiene la distribución de archivos grandes en los servidores. En lugar de descargar el archivo desde un único servidor, el protocolo BitTorrent permite a los usuarios unirse entre ellos en un "enjambre" (swarm) para descargar y subir el archivo de forma simultánea. El protocolo es una alternativa al sistema basado en servidores, que consiste en disponer de varios servidores espejo (mirrors) desde donde el usuario descarga el archivo completo, y puede funcionar en redes con poco ancho de banda, de esta forma, dispositivos pequeños como los smartphone, son capaces de distribuir archivos grandes o vídeo en streaming a muchos receptores.

Un usuario que quiere subir un archivo, primero crea un archivo torrent y lo distribuye de forma convencional (páginas web, correo electrónico, etc). Después hace que el archivo esté disponible en la red a través de un nodo BitTorrent que actúa como semilla (seed). Los usuarios que quieren descargar el archivo, obtienen el archivo torrent y crean otro nodo BitTorrent que actúa como cliente o "sanguijuela" (leecher), intercambiando partes del archivo con la semilla y con otros clientes.

El archivo que está siendo distribuido se divide en partes pequeñas (pieces). Cada vez que un usuario recibe una parte nueva del archivo, puede a su vez compartirla con otros usuarios, liberando a la semilla original de tener que enviar una copia de esa parte a todos los usuarios que quieren el archivo. En BitTorrent, la tarea de distribuir un archivo es compartida por todos aquellos que desean tener el archivo. Es perfectamente posible que la semilla solo envíe una copia del archivo y el archivo sea distribuido a un número ilimitado de usuarios.

Cada parte del archivo está protegida por un hash criptográfico contenido dentro del archivo torrent. Esto asegura que cualquier modificación que se produzca en una parte puede ser detectada, y por lo tanto evita que tanto las modificaciones accidentales como las maliciosas sean recibidas en otros nodos. Si un nodo tiene el archivo torrent autentico, puede verificar la autenticidad del archivo completo que ha recibido.

Las partes típicamente no se descargan de forma secuencial, estas son reordenadas por el cliente BitTorrent, el cual comprueba las partes que tiene y las que faltan de recibir. Todas las partes del archivo son del mismo tamaño y son transmitidas de una sola vez (por ejemplo un archivo de 10 MB puede ser transmitido en diez partes de 1 MB o en cuarenta partes de 256 KB). Debido a esto, se puede detener la descarga de un archivo en cualquier momento y reanudarla posteriormente sin perder la información descargada anteriormente. Esto hace que BitTorrent sea especialmente útil en la transferencia de archivos grandes. Esto también permite al cliente buscar las partes disponibles para descargar fácilmente, en lugar de tener que pausar la descarga y esperar que la siguiente parte esté disponible, lo que reduce el tiempo de descarga. .




Estructura de un Archivo Torrent

Los archivos .torrent contienen información acerca del archivo que queremos bajar. Esta información está codificada mediante Bencoding. La siguiente tabla muestra los distintos tipos de datos que podemos usar para representar la metainformación contenida en el arhivo .torrent.
 Si abrimos con un editor de texto un archivo .torrent nos encontramos con un diccionario que contiene las siguientes claves:
#Strings: Cadenas de Caracteres : 3:red Representa la cadena ?red?
#Integers: Enteros ie i3e Representa 3.
#Lists: Lista de tipos [strings, integers, lists, dictionaries] le l3:red4:wifie representa la lista de 2 cadenas: ["red", "wifi"]
#Dictionaries: Son asociaciones de clave -> valor de d3:ana4:blas5:mujer6:hombree representa el diccionario { "ana" -> "mujer", "blas" -> "hombre" } d4:spaml1:a1:bee representa el diccionario { "spam" -> [ "a", "b" ] }
Si abrimos con un editor de texto un archivo .torrent nos encontramos con un diccionario que contiene las siguientes claves:
#info: Un diccionario que describe los archivos del torrent. Puede tener una u otra estructura dependiendo de si el torrent es para bajar un archivo o varios archivos con una jerarquía de directorios.
#announce: cadena que representa la URL del tracker
#announce-list: (lista de cadenas opcional). Se usa para representar listas de trackers alternativos. Es una extensión a la especificación original.
#creation date: (entero opcional) La fecha de creación del torrent en formato de época UNIX.
#comment: (cadena opcional) Campo libre para el creador del torrent.
#created by: (cadena opcional) Nombre y versión del programa usado para crear el archivo torrent.

El diccionario info que acabamos de citar contiene a su vez las siguientes claves:


#name: (cadena) El nombre del archivo o directorio donde se almacenarán los archivos.
#piece length: Como dijimos en la introducción, el archivo que queremos compartir es dividido en piezas. Este parámetro es un entero que representa el número de bytes de cada pieza. Piezas demasiado grandes causan ineficiencia y piezas demasiado pequeñas forman un archivo .torrent más pesado. Actualmente se aconseja fijar el tamaño de cada pieza en 512 KB o menos para archivos de varios GBs.
#pieces: Cadena que representa la concatenación de la lista de claves hash de cada parte del fichero compartido. Las claves hash son generadas utilizando SHA-1 con un resumen de 160 bits y un tamaño máximo por parte de 2^64 bits. Este conjunto de claves se utiliza como mecanismo para asegurar la integridad y consistencia de una parte, una vez ha sido completada la descarga de dicha parte.
#private: (opcional). Es un entero que puede tener valores 0 ó 1 y que indica si se pueden buscar peers fuera de los trackers explícitamente descritos en la metainformación o no.
#length: (entero) Longitud del archivo en bytes.
#md5sum: (cadena opcional). Es una cadena hexadecimal de 32 caracteres correspondiente a la suma MD5 del archivo.
#files: Sólo aparecerá en el caso de que sea un torrent multi archivo. Es una lista de diccionarios (uno para cada archivo, pero con una estructura diferente a info). Cada uno de estos diccionarios contendrá a su vez información sobre la longitud del archivo, la suma MD5 y una ruta (path) en donde debe ubicarse el archivo en la jerarquía de directorios.

 Terminos Basicos

 Seeder: Un seeder (del inglés seed meier, semilla mea.da) es un usuario que ha descargado un torrent o que lleva parte de el torrent descargado y que ahora lo comparte para que el torrent este a disposición de los demás usuarios.

Leecher: Un leecher o lecher (del inglés leech, sanguijuela) es la denominación que se le ha dado en foros de Internet a ciertos usuarios que se caracterizan por hacer uso de los recursos aportados por los demás sin agradecer ni hacer ningún aporte a la red en cuestión (foros de descarga directa, programas P2P, etcétera). A veces también se considera leecher a quien hace un aporte puntual o muy pequeño.

.torrent: Un fichero .torrent utilizado por clientes BitTorrent para intercambio de archivos por la red Internet.

Peer: Cada uno de los partícipes en una transacción.

Ratio: Es la proporción entre la cantidad de información descargada y subida en la red. Normalmente en las webs de tracker privados donde se necesita registro previo para descargar esa información está colocada en un sitio visible para que se pueda verificar fácilmente por el usuario. El usuario debe intentar mantener el ratio al nivel 1:1 o mas si es posible, porque un seeder no puede ofrecer velocidad a todos los que quieren su archivo, por esta razón cada usuario debe hacer todo lo posible para ayudar a los otros.

Passkey: El passkey es un código de 32 símbolos individual para cada usuario del tracker, se escribe en el archivo .torrent al iniciar la descarga y se puede ver en el announce. Es comodo en el caso de ip dinámica o cuando más usuarios se conectan desde la misma IP. Si el tracker no te reconoce (el tracker privado), verifica si el passkey se encuentra en el announce. Si no se encuentra ahí, hay que borrar el torrent y descargarlo de nuevo del tracker (el .torrent no el archivo de datos) y la descarga se reanudara desde donde ha quedado.

 ok. Esto es lo basico y todo lo que no es necesario saber para poder bajar archivos desde Torrent.