Schema URI magnet - Magnet URI scheme

Pictogramă cu magnet rotunjit folosită în The Pirate Bay

Magnetul este o schemă URI care definește formatul legăturilor magnet , un standard de facto pentru identificarea fișierelor ( URN ) după conținutul lor, prin valoarea hash criptografică, mai degrabă decât prin locația lor.

Deși legăturile magnet pot fi utilizate în mai multe contexte, ele sunt deosebit de utile în rețelele de partajare de fișiere peer-to-peer , deoarece permit menționarea resurselor fără a fi nevoie de o gazdă disponibilă continuu și pot fi generate de oricine care deja are dosarul, fără a fi nevoie ca o autoritate centrală să le elibereze. Acest lucru îi face populari pentru a fi folosiți ca termeni de căutare „garantați” în comunitatea de partajare a fișierelor , unde oricine poate distribui un link magnetic pentru a se asigura că resursa recuperată de acel link este cea intenționată, indiferent de modul în care este recuperată.

Istorie

Standardul pentru URI-urile Magnet a fost dezvoltat de Bitzi în 2002, parțial ca o „generalizare neutră a furnizorilor și a proiectelor” a schemelor ed2k:și freenet:URI utilizate de eDonkey2000 și respectiv Freenet , și încearcă să urmeze standardele URI IETF oficiale cât mai aproape posibil. BitTorrent a introdus protocolul în 2020 ca parte a modificărilor sale BitTorrent v2. btmh:

Format

URI-urile magnetice constau dintr-o serie de unul sau mai mulți parametri, a căror ordine nu este semnificativă, formatate în același mod ca șirurile de interogare care termină în mod obișnuit adresele URL HTTP . Cel mai comun parametru este „xt” („subiect exact”), care este, în general, un URN format din hash-ul conținutului unui anumit fișier, de exemplu:

magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a

Acest lucru se referă la hex -encoded SHA-1 hash (btih, "BitTorrent info-hash") din secțiunea de informații a fișierului torent în cauză. Rețineți că, deși este indicat un anumit fișier, o cerere de disponibilitate pentru acesta trebuie totuși efectuată de aplicația client.

Parametrii

Se acceptă următorii parametri:

Parametru Nume Descriere
dn Numele afisat Un nume de fișier de afișat utilizatorului, pentru comoditate.
xl eXact Lungime Dimensiune (în octeți)
xt Subiect eXact URN care conține hash de fișier . Aceasta este cea mai importantă parte a legăturii magnet și este utilizată pentru a găsi și verifica fișierul specificat. URN este specific protocolului, deci un fișier hash URN sub btih (BitTorrent) ar fi complet diferit de fișierul hash URN pentru ed2k
xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
ws Web Seed Datele privind sarcina utilă difuzate prin HTTP (S)
la fel de Sursă acceptabilă Se referă la o descărcare directă de pe un server web. Considerat ca fiind doar o sursă de rezervă în cazul în care un client nu poate localiza și / sau descărca fișierul conectat în rețeaua (rețelele) P2P acceptate
as=[web link to file(URL encoded)]
xs Sursa eXact Fie o sursă de descărcare HTTP (sau HTTPS, FTP, FTPS etc.) pentru fișierul indicat de linkul Magnet, adresa unei surse P2P pentru fișier sau adresa unui hub (în cazul DC ++ ), de pe care un client încearcă să îl conecteze direct, cerând fișierul și / sau sursele acestuia. Acest câmp este utilizat în mod obișnuit de clienții P2P pentru a stoca sursa și poate include hash-ul fișierului.
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 Subiectul cuvântului cheie Specifică un șir de cuvinte cheie de căutare de căutat în rețelele P2P, mai degrabă decât un anumit fișier
kt=martin+luther+king+mp3
mt Subiect manifest Link către metafisierul care conține o listă de magneto (MAGMA - MAGnet MAnifest ); adică un link către o listă de linkuri
mt=http://example.org/all-my-favorites.rss
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
tr adresa TRacker URL de urmărire ; folosit pentru a obține resurse pentru descărcări BitTorrent fără a fi nevoie de suport DHT . Valoarea trebuie să fie codificată URL.
tr=http%3A%2F%2Fexample.org%2Fannounce

Standardul permite, de asemenea, parametrii experimentali specifici aplicației, care trebuie să înceapă cu „x”.

xt subiect exact

Parametrul xt specifică URN pentru un protocol p2p dat. Scopul său este de a oferi un parametru de căutare pentru găsirea metadatelor către torrent. Acest lucru acționează efectiv ca înlocuitor al unui fișier .torrent, care în sine conține metadatele torrent, căutând în schimb rețeaua p2p (folosind URN) pentru acele metadate. Fiecare protocol gestionează un URN în mod unic; de exemplu, xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8folosește btih (protocolul BitTorrent v1), astfel încât un client BitTorrent poate prelua hash-ul și poate căuta metadatele torrentului în BitTorrent DHT. În cazul DHT clientul caută printr-un set de noduri pre-cunoscute și solicită metadatelor un infohash; acele noduri vor face aceeași cerere către alte noduri cunoscute până când în cele din urmă va fi găsit și returnat un roi.

xt permite, de asemenea, o setare de grup. Mai multe fișiere pot fi incluse adăugând un număr de numărare precedat de un punct (".") La fiecare parametru de legătură.

magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]
Tiger Tree Hash (TTH)
Aceste hash-uri sunt utilizate pe Direct Connect și G2 (Gnutella2), printre altele.
xt=urn:tree:tiger:[ TTH Hash (Base32) ]
Secure Hash Algorithm 1 (SHA-1)
Aceste sume hash sunt utilizate pe gnutella și G2 (Gnutella2).
xt=urn:sha1:[ SHA-1 Hash (Base32) ]
BitPrint
Astfel de sume hash constau dintr-un hash SHA-1, urmat de un hash TTH, delimitat de un punct; se folosesc pe gnutella și G2 (Gnutella2).
xt=urn:bitprint:[ SHA-1 Hash (Base32) ].[ TTH Hash (Base32) ]
Hash ED2K (eDonkey2000)
Aceste sume hash sunt utilizate pe eDonkey2000 .
xt=urn:ed2k:[ ED2K Hash (Hex) ]
Manipulator avansat inteligent de corupție (AICH)
Nu sunt URN-uri oficiale pentru legăturile Magnet, astfel de sume hash sunt utilizate de eDonkey2000 pentru a restabili și controla integritatea descărcării și a fișierelor deja descărcate.
xt=urn:aich:[ aich Hash (Base32) ]
Kazaa hash
Utilizate pe FastTrack , aceste sume hash sunt vulnerabile la atacuri de coliziune hash .
xt=urn:kzhash:[ Kazaa Hash (Hex) ]
Hash has de informații BitTorrent (BTIH)
Acestea sunt sume hash SHA-1 codificate hexagonal din secțiunile „informații” ale metafisierelor BitTorrent, așa cum sunt utilizate de BitTorrent pentru a identifica fișiere descărcabile sau seturi de fișiere. Pentru compatibilitate inversă cu linkurile existente, clienții ar trebui să accepte și versiunea codificată Base32 a hash-ului.
xt=urn:btih:[ BitTorrent Info Hash (Hex) ]

Unii clienți necesită Base32 din info_hash (de exemplu, Vuze ).

Mesaj Digest 5 (MD5)
Suportate de G2 (Gnutella2), astfel de hashuri sunt vulnerabile la atacuri de coliziune hash .
xt=urn:md5:[ MD5 Hash (Hex) ]

Link-uri web către fișier

Există două tipuri de linkuri de descărcare pe care un link Magnet le poate include ca sursă directă sau de rezervă.

„ca” („sursă acceptabilă”)
Majoritatea clienților tratează „ca” egal cu simbolul „xs” atunci când vine vorba de prioritate și ignoră expirarea timpului înainte de a contacta sursele „ca” denotate de specificații.
Adresă URL adresabilă conținutului
Acest tip de legătură bazată pe RFC  2168 este utilizat de gnutella , precum și de aplicațiile G2 .
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
Link către un hub DirectConnect pentru a găsi surse pentru un fișier
Acest tip de legătură conectează un client DirectConnect imediat la hub-ul în cauză.
xs=dchub://[hub address]:[hub port]
Referință la un cache sursă bazat pe web pentru un fișier pe Gnutella2
În acest caz, linkul inclus indică, nu către un IP client sau o sursă directă, ci către un cache sursă care stochează adresele IP ale altor clienți care îl contactează pentru a descărca același fișier. Odată ce un client se conectează la cache, acesta primește adrese IP pentru surse alternative, în timp ce propriul său IP este stocat în cache și redirecționat către următorul care se conectează la cache. Acest sistem funcționează similar cu un tracker BitTorrent .
xs=http://cache.freebase.be/[ SHA-1 hash ]
Referință la o sursă eD2k
xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/

Format supliment (x.)

Pentru opțiuni informale experimentale și auto-complementare, x.poate fi utilizat prefixul urmat de o literă de sufix aleasă. Se garantează că aceste nume nu vor fi niciodată standardizate.

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

Clienți

Client dn xl xt tr xs la fel de kt mt ws
AMule da da urn:ed2k: Nu Necunoscut Necunoscut Necunoscut Necunoscut Necunoscut
ApexDC ++ da da urn:bitprint:
urn:tree:tiger:
Nu dchub: dchub: Nu Nu Necunoscut
BitComet da da urn:btih: da da1.76 Nu Nu Nu da1.74
Bitflu da Nu urn:btih: da Nu Nu Nu Nu Necunoscut
Potop da Nu urn:btih: da Nu Nu Nu Nu Necunoscut
EiskaltDC ++ da da urn:tree:tiger:
urn:bitprint:
urn:btih:
urn:btmh:
Nu dchub:
adc:
adcs:
dchub: da Nu Necunoscut
FlylinkDC ++ da da urn:tree:tiger:
urn:bitprint:
urn:btih:
Nu dchub:
adc:
adcs:
dchub: da Nu Necunoscut
gtk-gnutella da da urn:sha1: Nu http:
push:
da da Nu Necunoscut
KTorrent da Nu urn:btih: da Nu Nu Nu Nu Necunoscut
LimeWire da da urn:sha1: Nu http:
urn: guid :
Necunoscut Nu Nu Necunoscut
MonoTorrent da da urn:btih: da Nu da Nu Nu Necunoscut
μTorrent da Nu urn:btih: da Nu Nu Nu Nu Necunoscut
qBitorrent da Nu urn:btih: da Necunoscut Necunoscut Nu Nu Necunoscut
Shareaza da da urn:bitprint:
urn:btih:
urn:ed2k:
urn:md5:
urn:sha1:
urn:tree:tiger:
da http:
ftp:
http:
ftp:
(Aceeași prioritate ca xs)
da Nu Necunoscut
Tixati da da urn:btih: da Necunoscut Necunoscut Necunoscut Necunoscut Necunoscut
Transmisie da Nu urn:btih: da Nu Nu Nu Nu da
Vuze da da urn:btih:
urn:sha1:
da da5.7.5.0 da5.7.5.0 Nu Nu da

Vezi si

Note explicative

Referințe

linkuri externe