24h購物| | PChome| 登入
2005-08-20 13:23:37| 人氣899| 回應0 | 上一篇 | 下一篇

Kademlia技術?公有DHT網絡?

推薦 0 收藏 0 轉貼0 訂閱站台

FAQ:什麼是基於Kademlia技術的公有DHT(Distributed Hash Table)網絡?

比特精靈(http://www.bitspirit.com.cn/)從v3開始支持最新的BT技術:基於Kademlia技術的公有DHT網絡。通過DHT網絡,BT用戶可以在不依賴傳統的種子服務器的情況下進行正常的下載上傳(Trackerless)。那麼到底什麼是Kademlia技術,什麼又是公有DHT網絡呢?

簡單的說Kademlia只是一項技術準則(通常稱其為第3代P2P技術),DHT則是該技術的具體實現。(如eMule中也有基於Kademlia技術的KAD實現)。

Kademlia is a P2P overlay protocol designed by Petar Maymounkov and David Mazieres, for decentralized peer to peer computer networks. It specifies the structure of the network, regulates communication between nodes and how the exchange of information has to take place. Kademlia nodes communicate among themselves using the transport protocol UDP (see OSI model). Kademlia nodes store data by implementing a Distributed Hash Table (DHT). Over an existing LAN/WAN (like the Internet) a new, virtual network, is created in which each network node is identified by a number ("Node ID"). This number serves not only as its identification, but the Kademlia algorithm uses it for further purposes.

具體的技術細節這裡不過多描述,有興趣的用戶可以自行參考相關的資料。

那麼,為什麼要在BT裡引入基於Kademlia的公有DHT網絡?

在傳統的BT下載裡,所有的種子文件都必須指定一個或多個種子服務器,即通常所說的Tracker或Announce地址。

而一旦該種子服務器當機或由於其它原因停擺(比如:之前服務商違約,強行拔掉服務器的網線),BT用戶很可能就無法完成該種子文件的上傳與下載。

在傳統BT下載裡,還有如下情況:

有兩個完全相同的種子文件,但是由於指定了不同的Tracker,所以不同Tracker的用戶之間無法進行下載與上傳,從而不能充分體現BT的下載/上傳效率。而引入公有DHT網絡後,即使種子服務器當機(或者說根本不需要種子服務器的參與),BT用戶仍然可以通過DHT網絡來獲取連接,從而實現下載與上傳。

那麼這些連接信息是保存在哪裡的呢?

簡單來說,這些連接信息保存在根據一定的算法挑選出的DHT網絡參與者(即DHT節點)之間,也就是說,一旦加入公有DHT網絡,就會有一個ID(該ID只是程序生成的、虛擬的、完全隨機的ID,與實際個人信息沒有任何聯繫,請完全放心),根據一定的規則,需要負責維護一部分種子文件的連接信息,相當於同時也是一個輕量級種子服務器。

由於涉及到一些數據通信流量,可能會對網絡產生輕微的負擔或影響,不過,與加入公有DHT網絡帶來的回報比起來,該影響是完全可以忽略的,只有在一種情況下才可能會對你的網絡產生比較大的負擔:

負責維護的種子文件正好是一個非常非常熱門的種子,比如有幾千甚至上萬的BT用戶在下載(如果遇到這種情況,強烈建議您去買彩票)。

當然,從心理回報的角度來看,正在為幾千甚至上萬的BT用戶提供橋樑作用,這是一件值得驕傲與自豪的事。

所以,強烈建議打開比特精靈中的公有DHT網絡功能(默認打開),當然,如果你的網絡條件極端脆弱或你的服務商對你做出了很多限制,你也可以關閉比特精靈的公有DHT網絡功能。

前面說到了連接信息是在各個節點之間負責維護的,那麼是不是每個BT用戶所連接到的節點越多越好呢?其實不是的,因為連到越多的節點帶來的網絡流量和網絡負擔都會增加,通常情況下,擁有50個可靠節點或150個可靠節點與擁有上千個節點沒有區別,都能快速、準確的定位所需要查找的節點與連接信息。所以,通常情況下,當程序查找到一定的節點後(如100個節點)就不會積極查找新的節點。

有沒有聽到,不要呆呆的,連接戶開200、300的(白吃行為),目前單檔下載都嘛開40而已,如果不懂就用預設就好。

那麼比特精靈的DHT網絡功能與其它BT客戶端的DHT網絡功能有什麼區別呢?

BT中的基於Kademlia的DHT網絡功能是由BitTorrent(Python版) 4.1.0 開始引入的,比特精靈的DHT實現完全兼容BitTorrent的DHT實現,並且,由於比特精靈是用C++寫就的並經過了相當的算法優化,在程序性能、運行效率、節點定位效率上要好很多。另外,比特精靈還通過DHT網絡全面提升了比特精靈的既有功能,比如種子市場,此外,比特精靈甚至於不要求BT發佈站點必須提供種子文件的下載(能大大降低發佈站的流量壓力),而可以只提供一個類似於http://Kademlia/..(40B的哈希Hex串)....的鏈接即可(提示:在比特精靈裡選中一個任務後通過右鍵菜單的「拷貝DHT鏈接」可以提取種子的鏈接)。

簡而言之,DHT網絡的引入使得BT不再必需種子服務器,可以說是天下從此無服,但從更深層次的角度來說,應該是天下從此無人不服。

台長: QK
人氣(899) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電)

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文