磁力連結
磁力連結(Magnet URI scheme), 是對等網路中進行資訊檢索佮下載文件的電腦程式。佮基於「位置」連接的統一資源定位符無仝,磁力連結是基於元資料(metadata)檔 àn-nāi 容,屬於統一資源名稱。也就是講,磁力連結毋是因為文件的 IP 位址抑是定位符,是佇咧分散式的資料庫內底,通過雜鬥函式值來辨識、搜揣來下載文件。因為無依賴一个所在啟動狀態的主機來下載文件,所以特別適用無中心侍服器的著等網路。伊符合開源標準。
歷史
這个標準的草稿出現佇二空空二年,是為著著 eDonkey 兩千的「` ed 二 k : `」和 Freenet 的「` freenet : `」兩个 URI 格式進行「廠商佮專案當中立化」(vendor-and project-neutral generalization)制定的。同時這个標準嘛欲試真密 IETF 官方的 URI 標準。
內容雜鬥函式的應用
磁力連結上捷看的用途是基於檔 àn-nāi 容的雜鬥函式值來連結到特定檔案,生成一个唯一的檔案辨識符,類似 ISBN。無像定定規的辨識符,內容雜鬥會使予任意一位持有這檔案的人生成,所以並無需要一个中心機構,這使其在檔案分享領域定定予人用來做搜揣的條件,因任何人攏會使分發一个磁力連結來確保該連結指向的資源就是伊欲愛的,煞佮得著該資源的方式無關係。(雖然技術上說,兩个無仝的檔案可能有相仝的雜鬥值,但實際上這是真無可能發生的)
另外一个磁力連結的優勢是開放性佮跨平台性:一个磁力連結可予執行佇差不多所有平台頂的應用程式咱使用以下載一个檔案。因為磁力連結十分簡潔而且為純文字格式,所以使用者會當用足方便的共複製造著電子批評或者是及時訊息內底,譬如種子檔案。
技術描寫
磁力連結由一組參陣列做,參數間的順序無講究,阮的格式佮佇 HTTP 連結尾仔的查詢字串仝款。上捷看的參數是 " xt ",是 " exact topic " 的縮寫,通常是一个特定檔案的內容雜鬥函式值形成的 URN,比如講:
- ` magnet : ? xt=urn : sha 一 : YNCKHTQCWBTRNJIV 四 WNAE 五十二 SJUQCZO 五 C `
其值是 Base 三十二編碼的檔案的 SHA 扯扯咧。
注意,雖然這个連結指向一个特定的檔案,但是客戶捀應用程式猶原必須愛進行搜揣來確定佗位,伊若有,會當取得彼个檔案。
佇標準的草稿中其他參數的定義如下 :
- " dn " ( " 顯示名稱 "): 為著方便,為著使用者顯示檔案的名稱
- " kt " ( " 關鍵字 " ) : 閣較籠統的搜揣,指定搜揣鍵碼毋是特定檔案
- " mt " ( " 檔案列表 " ) : 一个 URI 指向一个列表,像一个案列表按呢
- 應用程式定義的實驗參數,著愛以 " x . " 開頭標準閣建議仝類的濟个參數會當佇參數名稱後面加上 " . 一 " , " . 二 " 等一下來使用,比如講
- ` magnet : ? xt . 一=urn : sha 一 : YNCKHTQCWBTRNJIV 四 WNAE 五十二 SJUQCZO 五 C & xt . 二=urn : sha 一 : TXGCZQTH 二十六 NL 六 OUQAJJPFALHG 二 LTGBC 七 `
是咧講
磁力連結會當包括一个抑是幾若个參數,之間用'&'隔開。參數的順序在檔案佇標準中無記錄。有一寡參數的值對客戶捀當確解析磁力的連結真重要。
` ` ` magnet : ? xl=[字劃大細] & dn=[ 文件名(已經跙 URL)] & xt=urn : tree : tiger : [ TTH hash(Base 三十二)] ` ` `
參數
- dn(顯示名稱)-檔名
- xl(絕對長度)-檔案位元組數
- xt(eXact Topic)-包含檔案雜鬥函式值的 URN
- as(會當接受來源)-線頂檔案的網路連結
- xs(絕對資源)-P 二 P 連結
- kt(關鍵字)-用佇咧搜揣的關鍵字
- mt(檔案列表)-連結著一个包含磁力連結的元檔案 ( MAGMA-MAGnet MAnifest)
- tr(Tracker 位址)-BT 下載的 Tracker URL
xt 參數
磁力連結的這部份上重要。用佇咧走揣和驗證包含著磁力連結中的檔案。
TTH(Tiger Tree 雜鬥函式)
TigerTree 雜鬥函式被用佇包括 Direct Connect ( protocol ) 和 Gnutella 二在內的幾个網路中。
` ` ` xt=urn : tree : tiger : [ TTH Hash(Base 三十二)] ` ` `
SHA 影一(安全雜鬥演算法一)
Gnutella 和 Gnutella 二使用的雜鬥函式。
` ` ` xt=urn : sha 一 : [ SHA 影一 Hash(Base 三十二)] ` ` `
BitPrint
這種雜鬥函式包含一个 SHA 鋪一雜鬥函式佮一个 TTH 雜鬥函式,用 " . " 隔開。
Gnutella 和 Gnutella 二使用。
` ` ` xt=urn : bitprint : [ SHA 影一 Hash(Base 三十二)] . [ TTH Hash(Base 三十二)] ` ` `
eD 二 k Hash(eDonkey 兩千)雜鬥函式
eDonkey 兩千使用的雜鬥函式演算法。
` ` ` xt=urn : ed 二 k : [ ED 二 K Hash(Hex)] ` ` `
AICH(進階智慧型損害處理)
毋是正式的磁力連結的一部份。eDonkey 兩千使用的雜鬥函式演算法,用佇儲存佮控制下載完成、當咧下載的檔案的完整性。
` ` ` xt=urn : aich : [ aich Hash(Base 三十二)] ` ` `
Kazaa 雜鬥函式
FastTrack 使用的雜鬥函式演算法。
` ` ` xt=urn : kzhash : [ Kazaa Hash(Hex)] ` ` `
BTIH(BitTorrent Info Hash)
BitTorrent 使用的雜鬥函式演算法。出佇咧向下跤相容的考慮,客戶捀需要仝時支援被 Base 三十二編碼過的 BTIH 雜鬥結果。
` ` ` xt=urn : btih : [ BitTorrent Info Hash(Hex)] ` ` `
MD 五(資訊-挽欲演算法五)
Gnutella 兩支援的雜鬥函式演算法。
` ` ` xt=urn : md 五 : [ MD 五 Hash(Hex)] ` ` `
CRC 鋪三十二(迴箍趁的校驗)
毋是正式的磁力連結的一部份。無任何已經知的 P 二 P 網路使用。
` ` ` xt=urn : crc 三十二 : [ CRC 鋪三十二(Base 十)] ` ` `
網路做連結至檔案
有兩種會當插甲磁力連結的下載連結做為直接或者是用資源。
普通連結(as)
" as " 的意思是講 " acceptable source "。這款連結指向對網路侍服器的直接等下載。干焦佇咧指定的萬時間才會連結,防止侍服器器閃過載。客戶端咧考慮向侍服器傳送下載請求進前會先開一定時間佇 P 二 P 網路中定位檔案。
` ` ` as=[ 文件希望望接著(已經跙 URL)] ` ` `
P 二 P 連結(xs)
連結會當是連結著磁力連結的檔案的 HTTP(SHTTP、FTP、SFTP 等)下載源、檔案的 P 二 P 源位址抑是 hub(使用 DC + + 時)位址。對這連結,客戶捀試看覓仔直接連結,並且請求檔案或者是其實,有當時仔會同齊請求二者。這个欄位定定予人 P 二 P 客戶捀用來儉源。參中可能包括檔案 hash。
內容定址網路(CAN)URL
這類的連結被 Gnutella 閣有 G 二應用程式使用,是因為 RFC 兩千一百六十八。
` ` ` xs=http : / / [客徛騰地址] : [客人捀捀口] / uri-res / N 二 R ? [包含一個文件 hash 的 URN] ` ` `
例:
` ` ` xs=http : / / 一百九十二孵空 . 二孵空 . 二十七 : 六千三百四十六 / uri-res / N 二 R ? urn : sha 一 : FINYVGHENTHSMNDSQQYDNLPONVBZTICF ` ` `
連結到 DirectConnect hub 而且做檔案走揣源
這連結隨欲 DirectConnect 客戶捀連接著拄才所討論的 hub。
` ` ` xs=dchub : / / [hub 地址] : [hub 捀口] ` ` `
為 Gnutella 二上的檔案參與網路的源快取
這款情形下,連結包括的點毋是客戶捀 IP 抑是直接來源,是佇咧來源緊取。這款的緊取無包含檔案本身,啊若儲存著其他客戶捀的 IP,遮的客戶捀連接著緊取來下載仝款的檔案。一旦客戶捀連接著欲取得著其他替代來源的 IP,其實家己 IP 就會存入到緊取中,然後繼續連接到後一个緊取,繼續請求替代的來源。這種系統類似 BitTorrent tracker 的操作。
` ` ` xs=http : / / cache . freebase . be / [SHA 影一 hash] ` ` `
參照 ED 二 K 源
` ` ` xs=ed 二 k : / / [客徛騰地址] : [客人捀捀口] / [ed 二 k hash] / [文件大細] / ` ` `
檔案列表(mt)
這是一个導向一系列連連結列表(凡勢是一个網頁)的連結……
` ` ` mt=http : / / weblog . foo / all-my-favorites . rss ` ` `
或者是一个 URN
` ` ` mt=urn : sha 一 : 三 I 四十二 H 三 S 六 NNFQ 二 MSVX 七 XZKYAYSCX 五 QBYJ ` ` `
關鍵字(kt)
該部份的代表一捾用於 P 二 P 網路搜揣用的關鍵字
` ` ` kt=martin + luther + king + mp 三 ` ` `
Tracker 位址(tr)
Tracker URL . 用佇咧無需要分散式雜鬥表支援下載 BitTorrent 資源。
` ` ` tr=http : / / example . com / announce ` ` `
補充格式(x .)
對實驗性而且自補的非正式選項,會當使用字首 x 後加已選擇的第二个字母
` ` ` x . [li̋n-jín寢名]=[ li̋n-jín磕著(已經跙 URL)] ` ` `
參陣列
通過佇每一个參數後編號並用 " . " 來分隔允准一个 Magnet 連結中包括你有加一个檔案佮𪜶 URN , 檔名佮雜鬥函式值。
` ` ` magnet : ? xt . 一=[頭一个檔案的 URN] & xt . 二=[第二个檔案的 URN] ` ` `
範例
連結到一个零位元組長度的檔案。
` ` ` magnet : ? xt=urn : ed 二 k : 三十一 D 六 CFE 零 D 十六 AE 九百三十一 B 七十三 C 五十九 D 七 E 零 C 八十九 C 零 & xl=零 & dn=zero _ len . fil & xt=urn : bitprint : 三 I 四十二 H 三 S 六 NNFQ 二 MSVX 七 XZKYAYSCX 五 QBYJ . LWPNACQDBZRYXW 三 VHJVCJ 六十四 QBZNGHOHHHZWCLNQ & xt=urn : md 五 : D 四十一 D 八 CD 九十八 F 零 B 兩百空四 E 九百八十二空九百九十八 ECF 八千四百二十七 E ` ` `
mediawiki 抹一爿五 . 一 . tar . gz
` ` ` magnet : ? xt=urn : ed 二 k : 三仔五十四 B 十五 E 六十八 FB 八 F 三十六 D 七 CD 八十八 FF 九九尺四千一百十六 CDC 一 & xl=一千空八十二孵六千空二十九 & dn=mediawiki 抹一爿五 . 一 . tar . gz & xt=urn : tree : tiger : 七 N 五 OAMRNGMSSEUE 三 ORHOKWN 四 WWIQ 五 X 四 EBOOTLJY & xt=urn : btih : QHQXPYWMACKDWKP 四十七 RRVIV 七 VOURXFE 五 Q & tr=http % 三 A % 二 F % 二 Ftracker . example . org % 二 Fannounce . php % 三 Fuk % 三 D 百分之十一交一千一百十一謼一千一百十一二十六 & as=http % 三 A % 二 F % 二 Fdownload . wikimedia . org % 二 Fmediawiki % 二 F 百分之一醃一五二 Fmediawiki 抹一爿五 . 一 . tar . gz & xs=http % 三 A % 二 F % 二 Fcache . example . org % 二 FXRX 二 PEFXOOEJFRVUCX 六 HMZMKS 五 TWG 四 K 五 & xs=dchub : / / example . org ` ` `
url magnet
` ` ` https : / / web . archive . org / web / 二十五空一千一百空七孵一千六百一十六刣四千七百五十五 / http : / / sure-raza . com / magnet : / ? xl=一千空八十二孵六千空二十九 & dn=mediawiki 抹一爿五 . 一 . tar . gz & xt=urn : tree : tiger : 七 N 五 OAMRNGMSSEUE 三 ORHOKWN 四 WWIQ 五 X 四 EBOOTLJY ` ` `
客戶捀
此外,支援磁力連結的應用程式猶包括 Vuze、BearShare、DC + +、Deluge、gtk-gnutella、Kazaa、LimeWire、FrostWire、MP 三 Rocket、Morpheus、Shareaza、MLdonkey、aMule、KCeasy 和 TrustyFiles。
參見
- Metalink
- DHT
參考文獻
外部連結
- MAGNET-URI 專案網站
- Magnet . so,Magnet . so 搜揣 ia̋n-jín
- ENBT . org,Magnet 搜揣 ia̋n-jín
- Freebase,使用磁力連結索引免費軟體的網站
- RHash,開源命令列工具,會當算磁力連結
- torrent 二 magnet,Magnet 轉換家私,會當共 torrent 檔案轉換做磁力連結