Archivo Torrent

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Archivo Torrent
Información general
Extensión de archivo .torrent
Tipo de MIME application/x-bittorrent
Estándar(es) BEP-0003[1]
Formato abierto ?

Un archivo torrent almacena metadatos usados por BitTorrent. Está definido en la especificación de BitTorrent.[1] Simplemente, un torrent es información acerca de un archivo de destino, aunque no contiene información acerca del contenido del archivo. La única información que contiene el torrent es la localización de diferentes piezas del archivo de destino. Los torrents funcionan dividiendo el archivo de destino en pequeños fragmentos de información, localizados en un número ilimitado de hosts diferentes. Por medio de este método, los torrents son capaces de descargar archivos grandes rápidamente. Cuando un cliente (el receptor del archivo de destino) ha iniciado una descarga por torrent, los fragmentos del archivo de destino que son necesitados pueden ser encontrados fácilmente, basado en la información del torrent. Una vez que todos los fragmentos son descargados, el cliente puede ensamblarlos en una forma utilizable. Nota: la descarga debe ser completada antes de que pueda ensamblarse en una forma utilizable.

Un archivo torrent contiene las URLs de muchos trackers y la integridad de los metadatos de todos los fragmentos. También puede contener metadatos adicionales definidos en extensiones de la especificación de BitTorrent.[2] Estos son conocidos como "Propuestas de Mejora BitTorrent". Ejemplos de tales propuestas incluyen metadatos para informar quien ha creado el torrent y cuando.

Estructura del archivo[editar]

Un archivo torrent es un diccionario Bencode con las siguientes claves:

  • announce - la URL del tracker
  • info - esto crea un diccionario cuyas claves son independientes de si uno o más archivos son compartidos:
    • name - directorio sugerido donde el o los archivos serán guardados
    • piece length - número de bytes por pieza. Es comúnmente 218 = 256 KiB = 262,144 B.
    • pieces - una lista de hash. Esto es la concatenación de cada hash SHA-1de las piezas. Debido a que SHA-1 devuelve un hash de 160 bits, pieces será una cadena cuya longitud será un múltiplo de 160 bits.
    • length - tamaño del archivo en bytes (solo cuando un archivo es compartido)
    • files - una lista de diccionarios cada uno correspondiente a un archivo (solo cuando múltiples archivos son compartidos). Cada diccionario tiene las siguientes claves:
      • path - una lista de cadenas correspondientes a los nombres de los subdirectorios, el último de los cuales será el verdadero nombre del archivo
      • length - tamaño del archivo en bytes.

Todas las cadenas deben ser codificadas con UTF-8.

Extensiones[editar]

Extensiones borrador[editar]

Estas extensiones de la especificación BitTorrent están en consideración para estandarizarse. Los archivos torrent usan la extensión ".torrent".

Tablas de hash distribuido[editar]

BEP-0005[3] extiende BitTorrent para soportar tablas de hash distribuido.

Un diccionario torrent sin trackers no tiene la clave announce. En lugar de eso, un torrent sin trackers tiene la clave nodes:

{
...
'nodes': [["<host>", <port>], ["<host>", <port>], ...]
...
}

Por ejemplo,

'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]]

La especificación recomienda que nodes "debería establecerse a los K nodos más cercanos en la tabla de ruta del cliente generada por el torrent. Alternativamente. la clave se podría establecer a un buen nodo conocido como uno operado por la persona que generó el torrent."

Múltiples trackers[editar]

BEP-0012[4] extiende el soporte de BitTorrent a múltiples trackers.

Una nueva clave, announce-list, es ubicada en la parte superior de la lista (por ejemplo con announce y info)

...
}

HTTP seeds[editar]

BEP-0017[5] extiende el soporte de BitTorrent a HTTP seeds.

Una nueva clave, httpseeds, es ubicada en la parte superior de la lista (por ejemplo con announce y info). El valor de esta clave es una lista de las direcciones web donde el torrent puede ser recuperado:

{
...
'httpseeds': ['http://www.site1.com/source1.php', 'http://www.site2.com/source2.php']
...
}

Torrents privados[editar]

BEP-0027[6] extiende el soporte de BitTorrent a torrents privados.

Una nueva clave, private, es ubicada en el diccionario de info. El valor de esta clave es 1 si el torrent es privado:

{
...
'private': 1
...
}

Hash trees[editar]

BEP-0030[7] extiende el soporte de BitTorrent a árboles de hash.

Un archivo torrent que use árboles hash no tiene la clave pieces en la lista info. En lugar de eso, tal archivo torrent tiene la clave root hash en la lista info. El valor de esta clave es el hash raíz del árbol de hash:

{
...
'info': {
...
'root hash': e6bdebcc5d55da0a77f4bb1b57d88de794838577
...
}
...
}

Ejemplos[editar]

Único archivo[editar]

Así es como un archivo torrent sin Bencode (con piece length 256KiB = 262144 bytes) para un archivo debian-503-amd64-CD-1.iso (cuyo tamaño es 647MiB = 678301696 bytes) podría verse:

{'announce': 'http://bttracker.debian.org:6969/announce',
'info': {
   'name': 'debian-503-amd64-CD-1.iso',
   'piece length': 262144,
   'length': 678301696,
   'pieces': '841ae846bc5b6d7bd6e9aa3dd9e551559c82abc1 ... d14f1631d776008f83772ee170c42411618190a4'
  }
}

Nota: pieces aquí sería ceil(length/piece length) * 160-bit = ceil(678301696/262144) * 160-bit = ceil(2587.515625) * 160-bit = 2588 * 160-bit = 414080-bit = 51KiB value.

Múltiples archivos[editar]

Así es como un archivo torrent sin Bencode (con piece length 256KiB = 262144) para dos archivos, 111.txt & 222.txt, podría verse:

{'announce': 'http://tracker.site1.com/announce',
'info: {
   'name': 'directoryName',
   'piece length': 262144,
   'files': [ {'path': '111.txt', 'length': 111}, {'path': '222.txt', 'length': 222} ],
   'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb...8a43d9d965a47f75488d3fb47d2c586337a20b9f'
  }
}

Véase también[editar]

Referencias[editar]

  1. a b «BEP-0003: The BitTorrent Protocol Specification». Bittorrent.org. Consultado el 22-10-2009.
  2. «BEP-0000: Index of BitTorrent Enhancement Proposals». Bittorrent.org. Consultado el 22-10-2009.
  3. «BEP-0005: DHT Protocol». Bittorrent.org. Consultado el 22-10-2009.
  4. «BEP-0012: Multitracker Metadata Extension». Bittorrent.org. Consultado el 22-10-2009.
  5. «BEP-0017: HTTP Seeding». Bittorrent.org. Consultado el 22-10-2009.
  6. «BEP-0027: Private Torrents». Bittorrent.org. Consultado el 22-10-2009.
  7. «BEP-0030: Merkle hash torrent extension». Bittorrent.org. Consultado el 22-10-2009.

Enlaces externos[editar]