
Magnetは、マグネットリンクの形式を定義するURIスキームであり、ファイルの場所ではなく暗号化ハッシュ値によって、ファイルの内容(URN )を識別するための事実上の標準です。
マグネットリンクは様々な場面で利用できますが、特にピアツーピアのファイル共有ネットワークで役立ちます。なぜなら、常時稼働可能なホストを必要とせずにリソースを参照でき、中央機関による発行を必要とせず、既にファイルを所有している人であれば誰でも生成できるからです。このため、ファイル共有コミュニティでは「確実な」検索語として広く利用されています。マグネットリンクを配布することで、取得方法に関わらず、リンク先のリソースが意図したリソースであることを保証できるのです。
Magnet URIの標準は、2002 年にBitziによって開発されました。これは、それぞれeDonkey2000とFreenet (現在の Hyphanet)で使用されている URI スキームの「ベンダーed2k:およびプロジェクトに依存しない一般化」として、また公式のIETF URI標準にできるだけ忠実に従う試みとして開発されました。BitTorrentは、 BitTorrent v2 の変更の一環として、2020 年にこのプロトコルを導入しました。 [ 1 ]freenet:btmh:
マグネットURIは、1つ以上のパラメータの連続で構成され、その順序は重要ではなく、通常HTTP URLの末尾に付加されるクエリ文字列と同じ形式で記述されます。
例: magnet:?xt=urn:btih:da39a3ee5e6b4b0d3255bfef95601890afd80709&xt=urn:btmh:1220e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
以下のパラメータがサポートされています: [ 2 ] [ 3 ]
また、この規格では、アプリケーション固有の実験パラメータも指定できますが、それらは「x」で始まる必要があります。
xt パラメータは、特定の p2p プロトコルの URN を指定します。その目的は、トレントのメタデータを見つけるための検索パラメータを提供することです。これは、トレントのメタデータ自体を含む .torrent ファイルの代わりとして機能し、代わりに (URN を使用して) p2p ネットワークを検索してそのメタデータを探します。各プロトコルは URN を一意に処理します。たとえば、btih (BitTorrent v1 プロトコル) を使用するため、BitTorrent クライアントはハッシュを取得して、BitTorrent DHT でトレントのメタデータを検索できます。[ 7 ] DHT の場合、クライアントは既知のノードのセットを検索し、infohash のメタデータを要求します。これらのノードは、最終的にスウォームが見つかり返されるまで、他の既知のノードに同じ要求を行います。xt=urn:btih:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
xtではグループ設定も可能です。各リンクパラメータの前にドット(".")を付けてカウント数を追加することで、複数のファイルを含めることができます。
magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]xt=urn:tree:tiger:[ TTHHash (Base32) ]xt=urn:sha1:[ SHA-1Hash (Base32) ]xt=urn:bitprint:[ SHA-1Hash (Base32) ].[ TTHHash (Base32) ]xt=urn:ed2k:[ ED2KHash (Hex) ]xt=urn:aich:[ aichHash (Base32) ]xt=urn:kzhash:[ KazaaHash (Hex) ]xt=urn:btih:[ BitTorrent Info Hash (Hex) ]btmhv1 と v2 の両方のスウォームに参加できるトレントを可能にするために、新しいプレフィックス ( ) が付けられています。[ 1 ]xt=urn:btmh:[1220: (v2 prefix) BitTorrent Info Hash (Hex) ]xt=urn:md5:[ MD5Hash (Hex) ]マグネットリンクには、直接ダウンロード元とバックアップダウンロード元の2種類のダウンロードリンクを含めることができます。
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:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJxs=dchub://[hub address]:[hub port]xs=http://cache.freebase.be/[ SHA-1hash ]xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/実験的かつ自己補完的な非公式な選択肢としては、接頭辞x.に任意の接尾辞文字を付けて使用することができます。これらの名称は決して標準化されることはありません。
x.[name of the new parameter]=[data of the new parameter (URL encoded)]