比特精灵近日发布3.0稳定版,包括了很多重要而实用的更新。其中最引人注目的是,从这个版本开始比特精灵支持最新的BT技术:基于Kademlia技术的公有DHT网络,并在应用层面上进行了拓展,从而真正实现了Trackerless & Torrentless(无须种子服务器和无须种子文件)。[点此下载最新版] 使用比特精灵3.0的BT用户不仅可以在不依赖传统的种子服务器的情况下进行正常的下载上传(Trackerless),甚至可以不需要torrent文件而仅仅依靠一个链接就能开始BT下载(Torrentless)。 那么听起来如此神奇的Kademlia和DHT到底是什么呢?Trackerless和Torrentless又是怎么实现的呢?待我们来揭开他神秘的面纱。 Kademlia技术,通常又被称为第三代p2p技术,是一种P2P通用协议,适用于所有的分布式点对点计算机网络。Kademlia定义了网络的结构,规划了节点之间的通讯以及具体的信息交互过程。在Kademlia中,网络节点之间使用UDP进行通信,通过一种分布式哈希表来存储数据,每个节点都会有一个自己的ID,在用来标识节点本身的同时,也用以协助实现Kademlia算法和流程。 实际上,有很多种具体的方式来实现Kademlia技术准则。比如,eMule有基于Kademlia技术的KAD实现,BT则有基于Kademlia的DHT网络。 那么为什么BT里引入了公有DHT网络之后,就能做到不需要种子服务器(Trackerless)了呢? 因为在传统的BT下载里,所有的种子文件都必须指定一个或多个种子服务器,即通常所说的Tracker或Announce地址,种子文件和连接信息都存储在种子服务器上,而引入了DHT网络之后,这些连接信息则可以保存在根据一定的算法挑选出的DHT网络参与者(即DHT节点)之间,也就是说,一旦你加入公有DHT网络,你就会有一个ID(该ID只是程序生成的、虚拟的、完全随机的ID,与你的实际个人信息没有任何联系,请完全放心)。 而根据一定的规则,你需要负责维护一部分种子文件的连接信息,相当于你同时也是一个超轻量级种子服务器。这样,下载者只要接入了DHT网络,并且找到了一些连接(或者说节点),就能获得连接信息,而不需要再依赖于tracker服务器。 这样,加入DHT网络解决了传统BT下载中的两个问题: 第一: 一旦该种子服务器当机或由于其它原因无法访问,BT用户很可能就无法继续获得连接信息(当然,已经有比特精灵等一些客户端通过连接共享等功能一定程度解决了这个问题); 第二:在传统BT下载中,如果有两个完全相同的种子文件,但是由于指定了不同的Tracker,那么不同Tracker的用户之间将无法进行下载与上传,从而不能充分体现BT的下载/上传效率。 减少对种子服务器的依赖 现在,剩下的问题就是,即使加入了DHT网络,BT下载还是得从种子服务器处获得种子文件。相信大家都有体会,遇上服务器繁忙的时候,几分钟甚至更长时间连不上服务器是很常见的事情。 比特精灵在支持DHT网络的同时,对其在应用层面上进行了拓展,支持只需要一个类似链接的哈希Hex串)....的链接就能添加任务(提示:在比特精灵里选中一个任务后通过右键菜单的"拷贝DHT链接"可以提取种子的链接),然后比特精灵可以通过特征串从DHT网络节点处得到种子文件,而不需要依赖种子服务器,从而在实现了trackerless的同时,也实现了torrentless。 这样,BT下载就借助公有DHT网络,很大程度上减少了对种子服务器的依赖。可以说,DHT网络的引入使得BT不再必需种子服务器,可以说是天下从此无服,但从更深层次的角度来说,应该是天下从此无人不服。 新的3.0版本需要注意的地方: 1.比特精灵3.x系列默认打开DHT网络功能,在某些极度脆弱的网络环境下,该功能导致的微弱流量可能会给网络带来负担,此时你可以在“个人设置”-“其它选项”里把“允许比特精灵加入到公有DHT网络”的选项关闭(除非特别必要,否则不推荐)。 2.这个3.x系列增加了一个“优先使用内网互联”的功能,用于帮助被运营商禁止BT的用户下载,此功能越多同一运营商的用户参与下载,速度越快。但是,没被禁止BT的用户请不要轻易开启该功能。内网、校园网BT下载必看帖 如何修改比特精灵(BitSpirit)的隐含参数以便提高BS的所谓"连接能力"?版主经过在校园网内实测,种子在100人、下载人数200人时速度300~400KB/S左右 首先,你需要退出BS,然后用文本编辑器(如记事本)打开BS安装目录下的user.ini(如图左下角所示,Windows可能默认不显示扩展名,所以可能只显示user),查找DOWNLOADEX,在其下应该有NewSOCKETBUMPEX,NewSOCKETLINEEX,NewLaunchDelayEx三项,如下图,对这三个参数说明如下:(1),NewSOCKETBUMPEX:这个参数表示BS每次尝试发起连接的数目,默认为12,这是一个非常低的数值,主要是为了照顾国内目前比较普遍的网络条件而设的.带宽条件或网络设备质量甚佳的用户可以适当提高这个数值,数值越高表示发起的连接能力越强,通常请不要超过80(ADSL路由用户千万不要更改,否则必断流).(2),NewSOCKETLINEEX:这个参数表示BS在尝试连接数达到该数值后即"休息"一段时间再继续尝试,默认为72,也是一个非常小的数值,同样也是为了照顾到国内普遍的网络环境而设的.同(1)一样,数值越大,表示连接能力越强,通常请不要超过320.(3),NewLaunchDelayEx:这个参数表示BS尝试连接的间隔,单位秒,默认为4,这是一个比较合适的值,如果你提高了(1)和(2)的数值,请相应加大这个间隔以便降低对网络的压力.对于ADSL非路由或设备质量甚佳的局域网或小区宽带用户(用以前版本BS或其它BT软件可以上到几百KB)的用户,将这三个参数改为如下数值:NewSOCKETBUMPEX=80NewSOCKETLINEEX=320NewLaunchDelayEX=10注意,你修改这三个数值前请先退出BS.同时,宽带(非ADSL)用户请在设置向导里选择网络连接类型,至少为"局域网/小区宽带(<1MB/s)"或更高的类型.ADSL路由用户请千万不要做以上更改,否则一定断流!如果这样更改后,下载时出现了断流的情况,请更改回默认的12,72,4