Schemat URI magnesu - Magnet URI scheme

Zaokrąglona ikona magnesu używana w The Pirate Bay

Magnet to schemat URI, który definiuje format linków magnetycznych , de facto standard identyfikacji plików ( URN ) na podstawie ich zawartości, za pomocą kryptograficznej wartości skrótu, a nie ich lokalizacji.

Chociaż łącza magnetyczne mogą być używane w wielu kontekstach, są one szczególnie przydatne w sieciach udostępniania plików peer-to-peer , ponieważ umożliwiają odwoływanie się do zasobów bez potrzeby ciągłego dostępu do hosta i mogą być generowane przez każdego, kto już posiada akta, bez potrzeby wystawiania ich przez organ centralny. To sprawia, że ​​są one popularne jako „gwarantowane” terminy wyszukiwania w społeczności udostępniania plików, w której każdy może rozpowszechniać link magnetyczny, aby upewnić się, że zasób pobierany przez ten link jest tym, który jest zamierzony, niezależnie od tego, w jaki sposób jest pobierany.

Historia

Norma dla magnesu URI został opracowany przez Bitzi 2002, częściowo w „udostępnionej przez dostawcę i wystają neutralnym uogólnienia” Z ed2k:i freenet:programów używanych przez URI eDonkey2000 i Freenet , odpowiednio, a próby zgodnie z oficjalnymi IETF URI normy tak ściśle, jak to możliwe. BitTorrent wprowadził btmh:protokół w 2020 roku w ramach zmian BitTorrent v2.

Format

Magnetyczne identyfikatory URI składają się z serii jednego lub większej liczby parametrów, których kolejność nie jest istotna, sformatowanych w taki sam sposób, jak ciągi zapytań, które zwykle kończą adresy URL HTTP . Najczęstszym parametrem jest "xt" ("dokładny temat"), który jest generalnie URN utworzonym z hasha zawartości konkretnego pliku, np.:

magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a

Odnosi się to do hex kodowanego SHA-1 hash (btih "BitTorrent info-hash") z sekcji informacji torrent pliku w pytaniu. Należy zauważyć, że chociaż wskazany jest konkretny plik, wyszukiwanie jego dostępności musi zostać przeprowadzone przez aplikację kliencką.

Parametry

Obsługiwane są następujące parametry:

Parametr Nazwa Opis
dn Wyświetlana nazwa Nazwa pliku do wyświetlenia użytkownikowi, dla wygody.
xl Dokładna długość Rozmiar (w bajtach)
xt Dokładny temat URN zawierający hash pliku . Jest to najważniejsza część linku magnetycznego i służy do wyszukiwania i weryfikacji określonego pliku. URN jest specyficzny dla protokołu, więc hash pliku URN pod btih (BitTorrent) byłby zupełnie inny niż hash pliku URN dla ed2k
xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
ws Web Seed Dane ładunku obsługiwane przez HTTP(S)
jak Dopuszczalne źródło Odnosi się do bezpośredniego pobrania z serwera WWW. Traktowane tylko jako źródło awaryjne w przypadku, gdy klient nie jest w stanie zlokalizować i/lub pobrać pliku, do którego prowadzi łącze, w obsługiwanych sieciach P2P
as=[web link to file(URL encoded)]
xs Dokładne źródło Źródło pobierania HTTP (lub HTTPS, FTP, FTPS itp.) dla pliku wskazywanego przez łącze Magnet, adres źródła P2P dla pliku lub adres koncentratora (w przypadku DC++ ), przez z którym klient próbuje się połączyć bezpośrednio, prosząc o plik i/lub jego źródła. To pole jest powszechnie używane przez klientów P2P do przechowywania źródła i może zawierać skrót pliku.
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 Temat słowa kluczowego Określa ciąg słów kluczowych wyszukiwania do wyszukania w sieciach P2P, a nie konkretny plik
kt=martin+luther+king+mp3
mt Temat manifestu Link do metapliku zawierającego listę magneto (MAGMA – MAGnet MAnifest ); czyli link do listy linków
mt=http://example.org/all-my-favorites.rss
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
tr adres Tracker URL śledzenia ; służy do uzyskiwania zasobów do pobierania BitTorrent bez potrzeby obsługi DHT . Wartość musi być zakodowana w adresie URL.
tr=http%3A%2F%2Fexample.org%2Fannounce

Norma dopuszcza również parametry eksperymentalne specyficzne dla aplikacji, które muszą zaczynać się od „x”.

xt dokładny temat

Parametr xt określa URN dla danego protokołu p2p. Jego celem jest dostarczenie parametru wyszukiwania do znajdowania metadanych do torrenta. Działa to skutecznie jako zamiennik pliku .torrent, który sam zawiera metadane torrenta, przeszukując sieć p2p (przy użyciu URN) w poszukiwaniu tych metadanych. Każdy protokół w unikalny sposób obsługuje URN; na przykład xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8używa btih (protokół BitTorrent v1), więc klient BitTorrent może pobrać hash i wyszukać metadane torrenta w BitTorrent DHT. W przypadku DHT klient przeszukuje zestaw wcześniej znanych węzłów i żąda metadanych dla infohash; te węzły będą wysyłać to samo żądanie do innych znanych węzłów, aż w końcu zostanie znaleziony i zwrócony rój.

xt pozwala również na ustawienie grupowe. Można dołączyć wiele plików, dodając liczbę poprzedzoną kropką (".") do każdego parametru łącza.

magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]
Hasz Tygrysiego Drzewa (TTH)
Te skróty są używane między innymi w Direct Connect i G2 (Gnutella2).
xt=urn:tree:tiger:[ TTH Hash (Base32) ]
Bezpieczny algorytm skrótu 1 (SHA-1)
Te sumy mieszające są używane w gnutelli i G2 (Gnutella2).
xt=urn:sha1:[ SHA-1 Hash (Base32) ]
BitPrint
Takie sumy haszujące składają się z SHA-1 Hash, po którym następuje Hash TTH, oddzielony kropką; są używane na gnutelli i G2 (Gnutella2).
xt=urn:bitprint:[ SHA-1 Hash (Base32) ].[ TTH Hash (Base32) ]
Skrót ED2K (eDonkey2000)
Te sumy skrótów są używane w eDonkey2000 .
xt=urn:ed2k:[ ED2K Hash (Hex) ]
Zaawansowana inteligentna obsługa korupcji (AICH)
Nie formalne URN dla linków Magnet, takie sumy hash są używane przez eDonkey2000 do przywracania i kontrolowania integralności pobieranych i już pobranych plików.
xt=urn:aich:[ aich Hash (Base32) ]
haszysz kazaa
Używane w FastTrack te sumy haszujące są podatne na ataki kolizji haszujących .
xt=urn:kzhash:[ Kazaa Hash (Hex) ]
Skrót informacji BitTorrenta (BTIH)
Są to zakodowane szesnastkowo sumy skrótów SHA-1 sekcji „informacyjnych” metaplików BitTorrenta, używane przez BitTorrenta do identyfikowania plików lub zestawów plików do pobrania. Aby zapewnić zgodność wsteczną z istniejącymi łączami, klienci powinni również obsługiwać wersję skrótu zakodowaną w standardzie Base32 .
xt=urn:btih:[ BitTorrent Info Hash (Hex) ]

Niektórzy klienci wymagają Base32 z info_hash (np. Vuze ).

Przegląd wiadomości 5 (MD5)
Obsługiwane przez G2 (Gnutella2), takie skróty są podatne na ataki kolizji skrótów .
xt=urn:md5:[ MD5 Hash (Hex) ]

Linki internetowe do pliku

Istnieją dwa rodzaje linków do pobierania, które link Magnet może zawierać jako źródło bezpośrednie lub zapasowe.

„jako” („dopuszczalne źródło”)
Większość klientów traktuje „as” jako równe tokenowi „xs”, jeśli chodzi o priorytet, i ignoruje limit czasu przed skontaktowaniem się ze źródłami „as” określonymi przez specyfikacje.
Adres URL do treści
Ten typ łącza opartego na RFC  2168 jest używany zarówno przez aplikacje Gnutella, jak i 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
Połącz z centrum DirectConnect, aby znaleźć źródła pliku
Ten typ łącza łączy klienta DirectConnect natychmiast z danym koncentratorem.
xs=dchub://[hub address]:[hub port]
Odniesienie do internetowej pamięci podręcznej źródła pliku na Gnutella2
W tym przypadku dołączone łącze wskazuje nie na adres IP klienta lub bezpośrednie źródło, ale na źródłową pamięć podręczną, która przechowuje adresy IP innych klientów, którzy kontaktują się z nim w celu pobrania tego samego pliku. Gdy klient łączy się z pamięcią podręczną, otrzymuje adresy IP dla alternatywnych źródeł, podczas gdy jego własny adres IP jest przechowywany w pamięci podręcznej i przekazywany do następnego łączącego się z pamięcią podręczną. Ten system działa podobnie do trackera BitTorrenta .
xs=http://cache.freebase.be/[ SHA-1 hash ]
Odniesienie do źródła eD2k
xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/

Format suplementu (x.)

W przypadku eksperymentalnych i samouzupełniających się opcji nieformalnych x.można użyć przedrostka, po którym następuje wybrana litera przyrostka. Gwarantujemy, że te nazwy nigdy nie będą standaryzowane.

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

Klienci

Klient dn xl xt tr xs jak kt mt ws
AMule tak tak urn:ed2k: Nie Nieznany Nieznany Nieznany Nieznany Nieznany
ApexDC++ tak tak urn:bitprint:
urn:tree:tiger:
Nie czub: czub: Nie Nie Nieznany
BitComet tak tak urn:btih: tak tak1.76 Nie Nie Nie tak1.74
Bitflu tak Nie urn:btih: tak Nie Nie Nie Nie Nieznany
Potop tak Nie urn:btih: tak Nie Nie Nie Nie Nieznany
EiskaltDC++ tak tak urn:tree:tiger:
urn:bitprint:
urn:btih:
urn:btmh:
Nie dchub
:
oprz: oprz:
czub: tak Nie Nieznany
FlylinkDC++ tak tak urn:tree:tiger:
urn:bitprint:
urn:btih:
Nie dchub
:
oprz: oprz:
czub: tak Nie Nieznany
gtk-gnutella tak tak urn:sha1: Nie http:
naciśnij:
tak tak Nie Nieznany
KTorrent .Name tak Nie urn:btih: tak Nie Nie Nie Nie Nieznany
LimeWire tak tak urn:sha1: Nie http:
urna: przewodnik :
Nieznany Nie Nie Nieznany
Monotorrent tak tak urn:btih: tak Nie tak Nie Nie Nieznany
μTorrent tak Nie urn:btih: tak Nie Nie Nie Nie Nieznany
qBittorrent tak Nie urn:btih: tak Nieznany Nieznany Nie Nie Nieznany
Shareaza tak tak urn:bitprint:
urn:btih:
urn:ed2k:
urn:md5:
urn:sha1:
urn:tree:tiger:
tak http:
ftp:
http:
ftp:
(ten sam priorytet co xs)
tak Nie Nieznany
Tixati tak tak urn:btih: tak Nieznany Nieznany Nieznany Nieznany Nieznany
Przenoszenie tak Nie urn:btih: tak Nie Nie Nie Nie tak
Vuze tak tak urn:btih:
urn:sha1:
tak tak5.7.5.0 tak5.7.5.0 Nie Nie tak

Zobacz też

Notatki wyjaśniające

Bibliografia

Zewnętrzne linki