2010年3月18日 星期四

BT 2.0 世代(續) : BT 與 Magnet 的下載方式及原理

用戶通過BT下載文件的基本過程:

一、找到.torrent文件

二、使用 BT下載客戶端軟件打開這個文件

三、對於用戶來講,只要花時間去等就可以了

而對於客戶端軟件來講,它會根據.torrent文件中的網址自動連接Tracker服務器,從它那裡接收到其他正在下載該文件的人的網址名單。下一步, 軟件就一一與名單上的網址取得聯繫,從它們那裡獲取文件的片段,直到整個下載完成。從整個過程不難看出,BT Tracker服務器是一個中央節點,任何客戶端都可以在其上找到「同伴」——只要其他人也在下載或分享同一個文件。

因此,BT並非一個去中心化的應用,必須依靠中央節點(BT Tracker服務器)才能正常工作。

Magnet 下載文件原理:

Magnet不需要Tracker服務器,也不需要.torrent文件,僅需要一串字符就可以 進行文件下載。

DHT:2002年,紐約大學的兩個教授Petar Maymounkov和David Mazières發表了一篇論文,提出了一種真正去中心化的「點對點」下載模型,他們將其稱為Kademlia方法。2005年,BT軟件開始引入這種技 術,在BT中被稱為DHT協議(Distributed Hash Table,分佈式哈希表)。

DHT是一種分佈式存儲方法。DHT的作用是找到那些與本機正在下載(上傳)相同文件的對端主機(Peer),當然,實現這一過程並不依賴Tracker 服務器。在DHT網絡中的每個客戶端負責一個小範圍的路由,並負責存儲一小部分數據,從而實現整個 DHT網絡的尋址和存儲。這種信息獲取方式保證了整個網絡沒有單個的中心,即使一個節點下線,依然可以通過其他節點來獲取文件,因此也就不需要 Tracker服務器來告訴你,其他節點在什麼地方。

PEX:是Peer Exchange的簡寫,我們可以將其理解為「節點信息交換」。雖然DHT解決了去中心化的問題,但要在沒有「中心協調員」(Tracker)的情況下實 現高效尋址,就要借助PEX。PEX所提供的功能有點類似於以前的Tracker服務器,但工作方式卻非常不同,我們可以打個比方來說明。

小趙在A班,她不認識B班的小何,也不認識C班的小溫,但小趙認識同班的小王,而小王認識B班的小何,也可能還認識C班的小溫,或者小王僅認識B班的小 何,但小何認識C班的小溫,而小溫又認識同班的所有同學,結果就是小趙可以「無限」地延伸自己的關係網,不管怎樣,總有一條溝通途徑可以將這些同學聯繫在 一起,待小趙「認識」了小溫後,他們就可以直接溝通了,在P2P世界裡,就是進行上傳與下載。

Magnet links:有網友將其稱為磁鏈。DHT+PEX解決了BT「尋址」的問題,但是如何告訴BT客戶端找(尋)什麼又是另 外一個問題。在.torrent文件中包含的內容就是用戶真正要下載的文件的特徵信息,或稱為「電子指紋」,BT客戶端知道了要找什麼,也知道如何去找, 於是P2P方式的下載、上傳就實現了。以前BT客戶端通過.torrent文件得知「要找什麼」,現在,文件的「電子指紋」不再存放於.torrent 中,而被放在了Magnet links中

例如:

magnet:?xt=urn:btih:36684b463ca2aa2f9347b18e9f6b1a9090bdb073&dn=Microsoft+iSCSI+Initiator

分解一下這個地址:

magnet:協議名。

xt:exact topic的縮寫,表示資源定位點。BTIH(BitTorrent Info Hash)表示哈希方法名,這裡還可以使用SHA1和MD5。這個值是文件的標識符,是不可缺少的。

dn:display name的縮寫,表示向用戶顯示的文件名。這是一個可選項。

tr:tracker的縮寫,表示tracker服務器的地址。這是一個可選項,本例中並未出現。

精簡一下上例,僅需要magnet:?xt=urn:btih:36684b463ca2aa2f9347b18e9f6b1a9090bdb073就夠 用了,如果附加dn(display name),在使用上會更加方便一些。

Magnet Link的好處就不多說了,至少包括兩點:網絡的可靠性得到了極大的增強;不存在「被拔線」的風險。由於不存在所謂的中央節點,審查將變得更加困難,「單 點失效」的問題也就不存在了。此外,Magnet URI只是一個字符串,非常容易傳播,根本無法禁止。因此,Magnet URI取代Tracker模式將是大勢所趨,遲早會成為主流BT下載方式。

細心的網友可能看出了DHT+PEX+Magnet Link模式中的一個問題——BT客戶端的「第一步是如何邁出的」,套用在介紹PEX時使用的例子,那就是小趙是怎麼「加入」A班的呢?這確實是個問題。 解決這個問題依然需要一台服務器(bootstrap node),不過這台服務器所起的作用與Tracker不同,它僅負責接納小趙進入A班,當小趙與A班中的同學「搭上了話」,之後這台服務器就沒有什麼用 處了。bootstrap node可以是不同BT客戶端廠商獨立運營的,也可以是幾家聯合共用,總之,它是分散的,只要在客戶端軟件中內置一張表單,那客戶端就將有非常多的入口可 供選擇。


資料來源 : http://www.cnblogs.com/5kuai/archive/2009/12/28/1633964.html

BT 2.0 世代

前陣子大陸官方開鍘,強制關閉一些知名的BT分享站,造成其他網站站長神經緊繃,有些乾脆暫時關閉,避避風頭,等風聲過了再出來,好像在玩官兵捉強 盜。其實抓分享站只算是給架站者一個警惕,最關鍵的是在種子裡面的 Tracker,只要抄掉一個 Tracker 就可能導致種子失效,發表在分享站的帖子也會跟著失效,除非該種子有一個以上的 Tracker 紀錄。

最近知名 BT 分享站「海盜灣」開始轉型,推行一種不用種子也能下載的方式——「Magnet」一種不需要透過 Tracker 和種子就能進行檔案下載。不僅海盜灣,連動漫迷必去的「動漫花園」也都全面改用 Magnet,可見BT已經開始轉向Magnet 新紀元了!

Magnet 要怎麼用?

如以下這串文字,Magnet 就只是這樣一串連結網址,透過特定的下載軟體即可開始下載檔案。

magnet:?xt=urn:btih:9036834975af588e58ec55938a39185c3f090ec6&dn=Monga.xxxxxxx

在下載站中若看到一個磁鐵的圖示就表示支援 Magnet 下載。

有哪些軟體支援 Magnet?

目前比較常用的的BT下載軟體有uTorrent、Bitcomet和Bittorrent支援Magnet下載,下載點如下

  1. uTorrent:官方版、免安裝
  2. Bitcomet:官方版、免安裝
  3. Bittorrent:官方版

下載 Magnet 方法(以uTorrent為例)

Step 1

點擊 Magnet 連結或是磁鐵圖示 magnet-icon-14w-14h[1]

免種子下載BT-Magnet-01

Step 2

接下來若以 IE 開啟連結,瀏覽器會詢問你是否允許網站開啟程式,選擇【允許】。

免種子下載BT-Magnet-04

再次允許它。

免種子下載BT-Magnet-05

如果你使用 Firefox 則會詢問你要以何種程式開啟。選擇【uTorrent】→【確定】。

免種子下載BT-Magnet-02

接下來就交給軟體幫你抓完檔案吧。

免種子下載BT-Magnet-03

資料來源 : http://www.soft4fun.net/file-tool/magnet-link-%E4%B8%8B%E8%BC%89bt%E5%85%8D%E7%A8%AE%E5%AD%90.htm