安卓版热血江湖传奇:什么是比特精灵?

来源:百度文库 编辑:高考问答 时间:2024/04/25 23:48:51

比特精灵V3版之后已经加了DHT结点技术不必手动添加
---------------
什么是基于Kademlia技术的公有DHT网络?

比特精灵(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 Mazières, 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个节点)就不会积极查找新的节点。

那么比特精灵的DHT网络功能与其它BT客户端的DHT网络功能有什么区别呢?
BT中的基于Kademlia的DHT网络功能是由BitTorrent(Python版) 4.1.0 开始引入的,比特精灵的DHT实现完全兼容BitTorrent的DHT实现,并且,由于比特精灵是用C++写就的并经过了相当的算法优化,在程序性能、运行效率、节点定位效率上要好很多。另外,比特精灵还通过DHT网络全面提升了比特精灵的既有功能,比如种子市场,此外,比特精灵甚至于不要求BT发布站点必须提供种子文件的下载(能大大降低发布站的流量压力),而可以只提供一个类似于http://Kademlia/..(40B的哈希Hex串)....的链接即可(提示:在比特精灵里选中一个任务后通过右键菜单的“拷贝DHT链接”可以提取种子的链接)。

简而言之,DHT网络的引入使得BT不再必需种子服务器,可以说是天下从此无服,但从更深层次的角度来说,应该是天下从此无人不服。
参考资料:http://www.new1p.net/read.php?tid=37&fpage=1

下载软件之一。

BitSpirit 比特精灵,一套操作和界相象FlashGet的BT软件,具有BitTorrent的全部功能,非常容易使用。有强大的管理功能:在下载过程中,需要时才创建文件;可以对每一个Torrent中的文件进行选择性的下载;智能可控的缓存功能,尽可能的保护硬盘;清晰明了的程序运行状态;智能可控的网站收集器;监视剪贴板;实用的全局及单独PEER的流量控制;PEER个数的限制;下载队列,及计划下载;友好易用的界面等等。支持中文及多国语言界面。