Esquema de URI de imán

Esquema que define el formato de los enlaces magnet
Ícono de imán redondeado utilizado en The Pirate Bay

Magnet es un esquema URI que define el formato de los enlaces magnet , un estándar de facto para identificar archivos ( URN ) por su contenido, a través de un valor hash criptográfico en lugar de por su ubicación.

Aunque los enlaces magnet se pueden utilizar en diversos contextos, son especialmente útiles en redes de intercambio de archivos entre pares porque permiten hacer referencia a recursos sin necesidad de un host disponible de forma continua y pueden ser generados por cualquiera que ya tenga el archivo, sin necesidad de que una autoridad central los emita. Esto hace que sean populares para su uso como términos de búsqueda "garantizados" dentro de la comunidad de intercambio de archivos , donde cualquiera puede distribuir un enlace magnet para garantizar que el recurso recuperado por ese enlace sea el deseado, independientemente de cómo se recupere.

Historia

El estándar para las URI Magnet fue desarrollado por Bitzi en 2002, en parte como una "generalización neutral respecto de proveedores y proyectos" de los esquemas URI ed2k:y freenet:utilizados por eDonkey2000 y Freenet , respectivamente, e intenta seguir los estándares URI oficiales de la IETF lo más fielmente posible. BitTorrent introdujo el protocolo en 2020 como parte de sus cambios en BitTorrent v2. [1]btmh:

Formato

Las URI magnéticas constan de una serie de uno o más parámetros, cuyo orden no es significativo, formateados de la misma manera que las cadenas de consulta que normalmente terminan las URL HTTP .

Se admiten los siguientes parámetros: [2] [3]

ParámetroNombreDescripción
xtTema exactoURN que contiene el hash del archivo . Esta es la parte más crucial del enlace magnet y se utiliza para buscar y verificar el archivo especificado. El URN es específico del protocolo, por lo que un URN con hash de archivo en btih (BitTorrent) sería completamente diferente del URN con hash de archivo en ed2k
xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
esNombre para mostrarUn nombre de archivo para mostrar al usuario, para mayor comodidad.
SGLongitud exactaEl tamaño del archivo, en bytes
esRastreador de direccionesURL del rastreador ; se utiliza para obtener recursos para descargas de BitTorrent sin necesidad de compatibilidad con DHT . [3] El valor debe estar codificado en URL.
tr=http%3A%2F%2Fexample.org%2Fannounce
losSemilla webLos datos de carga útil se sirven a través de HTTP(S)
como [ cita requerida ]Fuente aceptableSe refiere a una descarga directa desde un servidor web. Se considera solo una fuente de respaldo en caso de que un cliente no pueda localizar o descargar el archivo vinculado en sus redes P2P compatibles.
as=[web link to file(URL encoded)]
xs [ cita requerida ]Fuente exactaYa sea una fuente de descarga HTTP (o HTTPS, FTP, FTPS, etc.) para el archivo al que apunta el enlace Magnet, la dirección de una fuente P2P para el archivo o la dirección de un concentrador (en el caso de DC++ ), mediante el cual un cliente intenta conectarse directamente, solicitando el archivo y/o sus fuentes. Este campo es comúnmente utilizado por los clientes P2P para almacenar la fuente, y puede incluir el hash del archivo.
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
kt [ cita requerida ]Palabra clave TemaEspecifica una cadena de palabras clave de búsqueda para buscar en redes P2P, en lugar de un archivo en particular
kt=martin+luther+king+mp3
mt [ cita requerida ]Tema manifiestoEnlace al metarchivo que contiene una lista de magneto (MAGMA – MAGnet MAnifest); es decir, un enlace a una lista de enlaces
mt=http://example.org/all-my-favorites.rss
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
Entonces [4]Seleccionar solamenteEnumera archivos específicos que los clientes de torrent deben descargar, [5] indicados como archivos individuales o rangos (inclusive) de índices de archivos.
so=0,2,4,6-8
x.peParEspecifica direcciones de pares fijas a las que conectarse. Se utiliza para iniciar el descubrimiento de pares en ausencia de (por ejemplo) rastreadores o DHT . [3]
x.pe=hostname:port
x.pe=ipv4-literal:port
x.pe=[ipv6-literal]:port

La norma también permite parámetros experimentales específicos de la aplicación, que deben comenzar con "x". [ cita requerida ]

Tema exacto (xt)

El parámetro xt especifica el URN para un protocolo p2p determinado. Su propósito es proporcionar un parámetro de búsqueda para encontrar los metadatos del torrent. Esto actúa efectivamente como un reemplazo de un archivo .torrent, que contiene los metadatos del torrent, al buscar en la red p2p (usando el URN) esos metadatos. Cada protocolo maneja un URN de manera única; por ejemplo, xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8usa el btih (protocolo BitTorrent v1), por lo que un cliente BitTorrent puede tomar el hash y buscar los metadatos del torrent en el DHT de BitTorrent. [6] En el caso del DHT, el cliente busca a través de un conjunto de nodos conocidos previamente y solicita los metadatos para un infohash; esos nodos harán la misma solicitud a otros nodos conocidos hasta que finalmente se encuentre un enjambre y se devuelva.

xt también permite una configuración de grupo. Se pueden incluir varios archivos agregando un número de conteo precedido por un punto (".") a cada parámetro de enlace. [ cita requerida ]

magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]
Hash de árbol de tigre (TTH)
Estos hashes se utilizan en Direct Connect y G2 (Gnutella2), entre otros.
xt=urn:tree:tiger:[ TTH Hash (Base32) ]
Algoritmo de hash seguro 1 (SHA-1)
Estas sumas hash se utilizan en gnutella y G2 (Gnutella2).
xt=urn:sha1:[ SHA-1 Hash (Base32) ]
Impresión de bits
Estas sumas hash consisten en un hash SHA-1, seguido de un hash TTH, delimitado por un punto; se utilizan en gnutella y G2 (Gnutella2).
xt=urn:bitprint:[ SHA-1 Hash (Base32) ].[ TTH Hash (Base32) ]
Hash ED2K (eDonkey2000)
Estas sumas hash se utilizan en eDonkey2000 .
xt=urn:ed2k:[ ED2K Hash (Hex) ]
Sistema avanzado de gestión inteligente de la corrupción (AICH)
No son URN formales para enlaces Magnet, dichas sumas hash son utilizadas por eDonkey2000 para restaurar y controlar la integridad de los archivos descargados y ya descargados.
xt=urn:aich:[ aich Hash (Base32) ]
Hachís Kazaa
Utilizadas en FastTrack , estas sumas hash son vulnerables a ataques de colisión hash .
xt=urn:kzhash:[ Kazaa Hash (Hex) ]
Hash de información de BitTorrent (BTIH)
Se trata de sumas hash SHA-1 codificadas en hexadecimal de las secciones "info" de los metarchivos de BitTorrent, tal como las utiliza BitTorrent para identificar archivos o conjuntos de archivos descargables. Para lograr compatibilidad con versiones anteriores de los enlaces existentes, los clientes también deben admitir la versión codificada en Base32 del hash. [3]
xt=urn:btih:[ BitTorrent Info Hash (Hex) ]
Algunos clientes requieren Base32 de info_hash (por ejemplo, Vuze ).
Hash de información de BitTorrent v2 (BTMH)
BitTorrent v2 reemplaza el hash SHA-1 obsoleto por un hash de información SHA-256 . El hash de información v2 tiene un nuevo prefijo ( btmh) para permitir que los torrents puedan participar en enjambres tanto v1 como v2 [7]
xt=urn:btmh:[1220: (v2 prefix) BitTorrent Info Hash (Hex) ]
Resumen del mensaje 5 (MD5)
Con el respaldo de G2 (Gnutella2), estos hashes son vulnerables a ataques de colisión de hash .
xt=urn:md5:[ MD5 Hash (Hex) ]

Hay dos tipos de enlaces de descarga que un enlace Magnet puede incluir como fuente directa o de respaldo.

"como" ("fuente aceptable")
La mayoría de los clientes tratan "as" como igual al token "xs" cuando se trata de prioridad, e ignoran el tiempo de espera antes de contactar las fuentes "as" indicadas por las especificaciones.
URL web direccionable por contenido
Este tipo de enlace basado en RFC  2168 lo utilizan tanto gnutella como aplicaciones G2 . [8]
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
Enlace a un centro DirectConnect para buscar fuentes para un archivo
Este tipo de enlace conecta a un cliente DirectConnect inmediatamente al concentrador en cuestión.
xs=dchub://[hub address]:[hub port]
Referencia a un caché de origen basado en web para un archivo en Gnutella2
En este caso, el enlace incluido no apunta a una dirección IP de cliente o a una fuente directa, sino a un caché de origen que almacena las direcciones IP de otros clientes que se ponen en contacto con él para descargar el mismo archivo. Una vez que un cliente se conecta al caché, se le proporcionan direcciones IP de fuentes alternativas, mientras que su propia dirección IP se almacena dentro del caché y se reenvía al siguiente que se conecta al caché. Este sistema funciona de forma similar a un rastreador de BitTorrent .
xs=http://cache.freebase.be/[ SHA-1 hash ]
Referencia a una fuente eD2k
xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/

Formato de suplemento (x.)

Para opciones informales experimentales y autocomplementarias, x.se puede utilizar el prefijo seguido de una letra de sufijo elegida. Se garantiza que estos nombres nunca se estandarizarán.

x.[name of the new parameter]=[data of the new parameter (URL encoded)][ cita requerida ]

Clientela

ClienteesSGxtesxscomoContadormontelos
AMuleurn:ed2k:NoDesconocidoDesconocidoDesconocidoDesconocidoDesconocido
ApexDC++urn:bitprint:
urn:tree:tiger:
Nodchub: [Nota 1]dchub: [Nota 1]NoNoDesconocido
BitCometurn:btih:1.76NoNoNo1.74[9]
Flu de bitsNourn:btih:NoNoNoNoDesconocido
DiluvioNourn:btih:NoNoNoNoDesconocido
Hielo DC++urn:tree:tiger:
urn:bitprint:
urn:btih:[Nota 2]
urn:btmh:[Nota 2]
Nodchub: [Nota 1]
adc: [Nota 3]
adcs: [Nota 4]
dchub: [Nota 1]NoDesconocido
Enlace de vuelo DC++urn:tree:tiger:
urn:bitprint:
urn:btih:
Nodchub: [Nota 1]
adc: [Nota 3]
adcs: [Nota 4]
dchub: [Nota 1]NoDesconocido
gtk-gnutellaurn:sha1:Nohttp:
empujar:
NoDesconocido
KTorrentNourn:btih:NoNoNoNoDesconocido
alambre de limaurn:sha1:Nohttp:
urn:guid:
DesconocidoNoNoDesconocido
MonoTorrenturn:btih:NoNoNoDesconocido
μTorrentNourn:btih:NoNoNoNo
qBittorrentNourn:btih:
urn:btmh:
DesconocidoDesconocidoNoNoDesconocido
Shareazaurn:bitprint:
urn:btih:
urn:ed2k:
urn:md5:
urn:sha1:
urn:tree:tiger:
[Nota 5]http:
ftp:
http:
ftp:
(Misma prioridad que xs)
NoDesconocido
Tixatiurn:btih:DesconocidoDesconocido
Transmisión [2] [10]Nourn:btih:NoNoNoNo[11]
Vuzeurn:btih:
urn:sha1:
5.7.5.05.7.5.0NoNo

Véase también

Notas explicativas

  1. ^ abcdef dchub://[dirección central]:[puerto central]
  2. ^ ab Pasa el enlace a un software externo
  3. ^ ab adc://[dirección central]:[puerto central]
  4. ^ ab adcs://[dirección central]:[puerto central]
  5. ^ Desde la versión v2.5.1.0

Referencias

  1. ^ "BitTorrent v2". BitTorrent. Archivado desde el original el 30 de octubre de 2020. Consultado el 7 de septiembre de 2020 .
  2. ^ ab "magnet-test.c en trunk/libtransmission; Revisión 9531". Transmisión. Archivado desde el original el 17 de febrero de 2012. Consultado el 4 de febrero de 2012 .
  3. ^ abcd "Propuesta de mejora de BitTorrent 9: extensión para que los pares envíen archivos de metadatos". bittorrent.org (publicado el 31 de enero de 2008). 26 de marzo de 2017. Archivado desde el original el 10 de octubre de 2022. Consultado el 4 de noviembre de 2022 .
  4. ^ "libtorrent/magnet_uri.cpp en 64817e0e8793d0875fc10245de52ffb2540a223d · arvidn/libtorrent". libtorrent . Archivado desde el original el 2022-11-04 . Consultado el 2022-11-04 – a través de GitHub .
  5. ^ "Propuesta de mejora de BitTorrent n.º 53: extensión URI Magnet: seleccione índices de archivos específicos para descargar". BitTorrent.org . 2017-06-06. Archivado desde el original el 2022-10-10 . Consultado el 2022-11-04 .
  6. ^ "bep_0005.rst_post". bittorrent.org . Consultado el 12 de mayo de 2022 .
  7. ^ "BitTorrent v2". libbittorrent.org . libbittorrent. 2020-09-07. Archivado desde el original el 2022-10-22 . Consultado el 2022-11-05 .
  8. ^ Chapweske, Justin (29 de noviembre de 2001). "Extensiones HTTP para una Web direccionable por contenido". www-talk . W3C. Archivado desde el original el 28 de julio de 2011 . Consultado el 7 de noviembre de 2010 .
  9. ^ "v1.74 Core Improve: support ws parameter in Magnet URI, to add web seed" (Mejora del núcleo v1.74: compatibilidad con el parámetro ws en la URI de Magnet para agregar una semilla web). bitcomet . Archivado desde el original el 2021-04-10 . Consultado el 2021-04-07 .
  10. ^ "magnet.c en trunk/libtransmission; Revisión 9979". Transmisión. Archivado desde el original el 17 de febrero de 2012. Consultado el 4 de febrero de 2012 .
  11. ^ "magnet.c en libtransmission: Commit 5c3fd1b5ccc3a8c4ab68e2c56861df31dd1c720a". Transmisión. Archivado desde el original el 4 de septiembre de 2021. Consultado el 4 de septiembre de 2021 .
  • Proyecto Magnet-URI en SourceForge , una definición temprana del formato (última actualización en 2002)
  • Utilidad de suma de comprobación CHK Freeware con soporte para SHA1-Base32 y ED2K
  • RHash en SourceForge , una herramienta de línea de comandos de código abierto que puede calcular enlaces magnéticos
Obtenido de "https://es.wikipedia.org/w/index.php?title=Esquema_URI_magnético&oldid=1238570568"