[BT] BT下載的未來:Magnet URI計劃
BT下載模式已經在潛移默化中改變著,這跟網絡版權問題有很大關係。那麼BT下載的未來是什麼呢?
BT下載的未來Magnet URI!什麼是Magnet URI?Magnet URI模式與以往的BT下載有什麼區別?
2002年,紐約大學的兩個教授Petar Maymounkov和David Mazieres發表了一篇論文,提出了一種真正去中心化的「點對點」下載模型,他們把它叫做Kademlia方法。Emule率先在軟件中支持這種方法,KAD網絡就是這樣來的。到了2005年,BT軟件也開始跟進了。目前,所有主流的BT下載客戶端軟件都支持這種方法。在BT下載中,這被叫做DHT 協議(Distributed hash table,分佈式哈希表)。
有了DHT協議以後,就不再需要Tracker服務器了,真正實現了去中心化的點對點下載:
(一)每一台加入BT下載的計算機,都被稱為一個節點(node),有一個自己的ID。這個ID是一個哈希函數值,通過對要分享的文件內容或它的元數據進行哈希運算而得到。這就是說,如果兩台計算機正在下載同一個文件,那麼它們的ID應該是彼此相似的。於是,每一台計算機就通過尋找與自己相似的 ID,來找到自己可以與之交換數據的其他節點。
(二)DHT協議的另一個巧妙之處在於,每一台計算機只保留自己附近的一部分節點信息。因此,為了得到更多的節點信息,就必須採用接龍方式,在一個個節點之間跳躍,逐步得到全網的節點分佈圖。這種信息獲取方式,就保證了整個網絡沒有單個的中心,即使一個節點下線了,依然可以通過其他節點來獲取文件,因此也就不需要Tracker服務器來告訴你,其他節點在什麼地方了。
現在所有主流的BT下載客戶端,都支持DHT協議,也就是說,它們都能在沒有Tracker的情況下完成下載。
什麼是 Magnet URI?
magnet: URI 計劃主要是用來鑒別p2p網絡中的可用資源,是基於內容或元數據而非名字或位置,儘管它可以被其它應用程序使用,但主要的用途還是在p2p這一部分,已支持的軟件包括 Azureus, BearShare, DC++, gtk-gnutella, Kazaa, LimeWire, FrostWire, Morpheus, Shareaza, TrustyFiles 和 uTorrent。
它會根據文件內容的hash生成一個獨特的指紋,有點類似於ISBN。這樣,任何擁有此文件的人可以生成基於文件內容的指紋。它的另一個優勢就是跨平台性,因為它是以普通文本存在,你可以簡單的複製粘貼即可完成分享。
Magnet 鏈接由一組參數組成,它們之間的順序不是很重要。最普通的是 「xt」,下面是一個示例
magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C
其它的參數初步是這樣定義的:
「dn」 (「顯示名稱」):顯示此文件名
「kt」 (「關鍵詞」):指定搜索方式而非特定文件
「mt」 (「其它文件列表」):用一個URI指向一個列表,如其它的一些項目
特定程序的參數,必須以「x.」開頭
標準還建議2個同種類的參數最好在後面加上數字1、2等,如:
magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7
Magnet URI這樣做有什麼好處?
顯而易見的好處是,整個下載網絡的可靠性提高了,每一個節點都是可以被替代的。另一個好處是,審查變得更困難了,因為每次下載的路徑都是不一樣的,而且每個節點都是動態變化的,導致實際上無法追蹤誰在下載。此外,magnet URI只是一個字符串,非常容易傳播,根本無法禁止。
因此,從這些方面考慮,magnet URI取代Tracker模式是大勢所趨,遲早成為主流的BT下載方式。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.69.179.122
推
12/28 09:59, , 1F
12/28 09:59, 1F
→
12/28 10:03, , 2F
12/28 10:03, 2F
推
12/28 10:03, , 3F
12/28 10:03, 3F
→
12/28 10:05, , 4F
12/28 10:05, 4F
→
12/28 10:05, , 5F
12/28 10:05, 5F
→
12/28 10:09, , 6F
12/28 10:09, 6F
推
12/28 10:14, , 7F
12/28 10:14, 7F
→
12/28 10:35, , 8F
12/28 10:35, 8F
推
12/28 11:39, , 9F
12/28 11:39, 9F
推
12/28 11:45, , 10F
12/28 11:45, 10F
推
12/28 11:55, , 11F
12/28 11:55, 11F
推
12/28 13:26, , 12F
12/28 13:26, 12F
→
12/28 13:27, , 13F
12/28 13:27, 13F
→
12/28 13:28, , 14F
12/28 13:28, 14F
推
12/28 13:46, , 15F
12/28 13:46, 15F
→
12/28 13:49, , 16F
12/28 13:49, 16F
→
12/28 15:33, , 17F
12/28 15:33, 17F
推
12/28 15:39, , 18F
12/28 15:39, 18F
→
12/28 18:05, , 19F
12/28 18:05, 19F
→
12/28 18:28, , 20F
12/28 18:28, 20F
推
12/28 19:28, , 21F
12/28 19:28, 21F
推
12/28 22:56, , 22F
12/28 22:56, 22F
推
12/28 23:57, , 23F
12/28 23:57, 23F
→
12/29 00:39, , 24F
12/29 00:39, 24F
→
12/29 00:40, , 25F
12/29 00:40, 25F
→
12/29 08:15, , 26F
12/29 08:15, 26F
→
12/29 10:30, , 27F
12/29 10:30, 27F
推
12/29 14:14, , 28F
12/29 14:14, 28F
推
12/29 14:35, , 29F
12/29 14:35, 29F
推
12/29 23:07, , 30F
12/29 23:07, 30F
→
12/30 02:17, , 31F
12/30 02:17, 31F
→
12/30 08:58, , 32F
12/30 08:58, 32F
→
12/30 08:59, , 33F
12/30 08:59, 33F
→
12/30 13:30, , 34F
12/30 13:30, 34F
推
12/30 14:37, , 35F
12/30 14:37, 35F
推
12/30 14:53, , 36F
12/30 14:53, 36F
→
12/30 15:16, , 37F
12/30 15:16, 37F
推
12/30 18:52, , 38F
12/30 18:52, 38F
推
12/31 13:29, , 39F
12/31 13:29, 39F
→
12/31 13:29, , 40F
12/31 13:29, 40F
→
12/31 20:04, , 41F
12/31 20:04, 41F
推
12/31 20:49, , 42F
12/31 20:49, 42F