# Magnet-Link

Ein Magnet-Link ist ein URI-Standard für Hyperlinks, die auf Dateien verweisen. Er enthält mindestens eine eindeutige Kennzeichnung (Hash-Wert) der Zieldatei, anhand deren mittels einer (möglicherweise dezentralen) Datenbank der Aufenthaltsort der verlinkten Datei aufgelöst werden kann. Magnet-Links erlauben es, auf eine oder mehrere Dateien zu verweisen, ohne darauf Rücksicht nehmen zu müssen, wo diese gespeichert werden oder dass der Verweis ungültig wird. Sie werden insbesondere im Zusammenhang mit Peer-to-Peer-Netzwerken verwendet. Magnet-Links sind also eher als URNs und weniger als URLs zu betrachten, da sie nicht den Ort, sondern den Inhalt kennzeichnen.

## Anschauliche Beschreibung

Ein Magnet-Link ist vergleichbar mit einer ISBN (Buchnummer) in dem Sinne, dass lediglich ein bestimmter Inhalt bezeichnet wird (eine „Ressource“). Zwei verschiedene Dateien haben praktisch niemals denselben Magnet-Link, dagegen hat die gleiche Datei, die an verschiedenen Stellen im Internet gefunden wird, immer die gleiche Hash-Summe in ihrem Magnet-Link (und damit ist der zentrale Identifikationsblock im Link identisch). Das ist genauso wie bei ISBNs: Zwei verschiedene Bücher haben niemals dieselbe ISBN, aber ein bestimmtes Buch hat immer dieselbe vom Standort unabhängige Kennnummer.

## Verwendung

Im Gegensatz zu den ISBN (Buchnummern) werden Magnet-Links automatisch aus dem Datei-Inhalt erzeugt. Es wird keine zentrale Organisation zur Nummernvergabe benötigt. Aus diesem Grund dienen sie als „garantiert gültiger“ Suchbegriff in Peer-to-Peer-Netzwerken, der gewährleistet, dass tatsächlich nichts anderes als die vom Linkverteiler beabsichtigte Datei heruntergeladen wird.
Ein anderer Vorteil in der Verwendung von Magnet-Links liegt in der einfachen Handhabung und der Plattformunabhängigkeit. Derselbe Magnet-Link kann in verschiedensten Anwendungen auf fast jedem Betriebssystem zum Herunterladen verwendet werden. Weil Magnet-Links knapp und präzise sind, können sie leicht mit Hilfe von Copy-and-paste in E-Mails genannt oder als Textzeilen beim Chatten eingefügt werden, was beispielsweise mit BitTorrent-Dateien nicht so einfach geht. Auch können sie im Internet an Stelle von normalen URLs in Webseiten genutzt werden und einfach mit Hilfe des HTML Link-Codes eingebunden werden.

## Technische Beschreibung

Anders als andere Arten von Links (zum Beispiel HTTP oder FTP) ist der Magnet-Link kein Uniform Resource Locator (URL), sondern eine andere Art von Uniform Resource Identifier (URI), genannt Uniform Resource Name (URN), denn er bezeichnet nicht den Ort der Ressource, so dass man diese direkt beziehen könnte. In Peer-to-Peer-Netzwerken bedeutet dies, dass die Ressource zunächst gesucht werden muss, um eine oder mehrere sogenannter „Quellen“ zu finden, von denen die Datei bezogen werden kann. Aus diesem Grund verwenden Tauschbörsennutzer hauptsächlich Magnet-Links, die nur einen Hash-Wert beinhalten, um die Datei zu identifizieren. Jedoch ist das nicht die einzige Möglichkeit. Zusätzlich lassen sich auch Speicherorte oder alternative HTTP-, FTP- und andere Internetquellen angeben, um den Aufwand für die Suche zu vermeiden oder zu begrenzen. Hier ist ein Beispiel für einen vollqualifizierten Magnet-Link:
magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C
In diesem Beispiel beinhaltet der Verweis nur einen SHA1-Hash-Wert, der eine Datei oder Ressource eindeutig identifiziert. Er beschreibt nicht, wo diese Ressource gefunden werden kann. Ein geeignetes Suchsystem wird benötigt, um auf die Datei zugreifen zu können, beispielsweise das Rechnernetzwerk eines Peer-to-Peer-Programmes.
magnet:?xt=urn:bitprint:XZBS763P4HBFYVEMU5OXQ44XK32OMLIN.HGX3CO3BVF5AG2G34MVO3OHQLRSUF4VJXQNLQ7A &xt=urn:ed2khash:aa52fb210465bddd679d6853b491ccce &xl=6745696 &dn=Shareaza_2.4.0.0.exe &as=http://www.freebase.be/g2/dlcount.php?sha1=XZBS763P4HBFYVEMU5OXQ44XK32OMLIN
Dieses Beispiel ist ein kompletter Magnet-Link, der sowohl SHA1-, TTH- und eD2k-Hashwerte, als auch Größe und Namen einer Datei enthält. Außerdem nutzt der Link den einem BitTorrent-Tracker nicht unähnliche Freebase.be-Cache, um schneller Quellen für den Download finden zu können.
Im Magnet-Link-System sind verschiedene Parameter in Form von Name-Wert-Paaren erlaubt. Hier die wichtigsten:
* xt steht für „exact topic“ und wird von einer URI gefolgt.
* xs steht für „exact substitute“ und wird von einer URL gefolgt, entspricht also dem klassischen Hyperlink.
* as steht für „acceptable substitute“ und kann Alternativen zu xs angeben.
* kt steht für „keyword topic“ und bedeutet, dass mit Hilfe von Schlüsselwörtern nach Ressourcen mit diesem Dateinamen gesucht werden soll. Die Schlüsselwörter werden mit Pluszeichen getrennt.
* dn steht für „display name“ und gibt typischerweise den Dateinamen an, genauer gesagt einen Namen, unter dem die Ressource präsentiert wird.
* mt steht für „manifest topic“ und gibt mit Hilfe einer URL den Ort einer Liste (also einer Datei) an, in der sich dann die eigentlichen Links befinden.
Der Magnet-URI-Standard wurde im verschlüsselnden E-Mail-Client und Instant Messenger GoldBug weiterentwickelt in ein Format, um Verschlüsselungswerte ähnlich einem Blatt mit Blutwerten weitergeben zu können. Ein Magnet-URI, um einen verschlüsselten Chat-Raum zu betreten zu können, sieht dann z. B. wie in diesem Format aus:
Übersicht der Magnet-URI-Standards für kryptographische Werte
| Kürzel | Beispiel | Bezeichnung |
| rn | &rn=Spot-On_Developer_Channel_Key | Raumname |
| xf | &xf=10000 | Exact Frequency |
| xs | &xs=Spot-On_Developer_Channel_Salt | Exact Salt |
| ct | &ct=aes256 | Cipher Type |
| hk | &hk=Spot-On_Developer_Channel_Hash_Key | Hash Key |
| ht | &ht=sha512 | Hash Type |
| xt=urn:buzz | &xt=urn:buzz | Magnet zum IRC Chat |
| xt=urn:starbeam | &xt=urn:starbeam | Magnet zum Dateiversand |
| xt=urn:institution | &xt=urn:institution | Magnet zum E-Mail-Postfach |
Dieser Standard für kryptographische Werte wird genutzt, um symmetrische Schlüssel zu tauschen für Gruppenchat oder E-Mail-Postfächer im p2p Netz bzw. auch für verschlüsselte Dateiübertragungen.

## Verteilung von Dateien

Um eine Datei mit Hilfe von Magnet-Links zu verteilen, erzeugt der verteilende Benutzer den Magnet-Link, in der Regel eines P2P-Clients. Diesen Link verbreitet er dann zum Beispiel über Webseiten, E-Mail oder Chat. Verwendet der empfangende Benutzer den Link, so löst sein Client diesen in der Regel ohne die Notwendigkeit eines zentralen Servers mittels Verteilter Hashtabellen und/oder Netzwerksuche auf. Ist mindestens ein Dateiaufenthaltsort gefunden, kann der Download beginnen.

## Programme

Eine kleine Auswahl an Programmen, die Magnet-URI-Links verwenden können:
* KTorrent – ein Open-Source-Programm für den KDE-Desktop (Magnet-Links werden ab der Version 4.0 unterstützt)
* LimeWire – ein Open-Source-Gnutella-Servent.
* μTorrent – ein kleiner (< 1 MB) Freeware-Closed-Source-BitTorrent-Client für Windows und macOS.
* Shareaza – ein Open-Source-Peer-to-Peer-Programm und Download-Manager. Unterstützt mehrere Netzwerke gleichzeitig (Gnutella, Gnutella2, eDonkey, BitTorrent).
* StrongDC++ – ein Open-Source-Client für Direct Connect
* Transmission – ein freier, ressourcenschonender BitTorrent-Client.
* Vuze ein Open-Source-BitTorrent-Programm, das einige Arten von Magnet-Links behandeln kann, wenn DHT eingeschaltet ist.