比特精灵近日发布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网络。
比特精灵3.0界面截图
那么为什么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网络的同时,对其在应用层面上进行了拓展,支持只需要一个类似链接http://Kademlia/..(40B的哈希Hex串)....的链接就能添加任务(提示:在比特精灵里选中一个任务后通过右键菜单的"拷贝DHT链接"可以提取种子的链接),然后比特精灵可以通过特征串从DHT网络节点处得到种子文件,而不需要依赖种子服务器,从而在实现了trackerless的同时,也实现了torrentless。
这样,BT下载就借助公有DHT网络,很大程度上减少了对种子服务器的依赖。可以说,DHT网络的引入使得BT不再必需种子服务器,可以说是天下从此无服,但从更深层次的角度来说,应该是天下从此无人不服。
新的3.0版本需要注意的地方:
1.比特精灵3.x系列默认打开DHT网络功能,在某些极度脆弱的网络环境下,该功能导致的微弱流量可能会给网络带来负担,此时你可以在“个人设置”-“其它选项”里把“允许比特精灵加入到公有DHT网络”的选项关闭(除非特别必要,否则不推荐)。
2.这个3.x系列增加了一个“优先使用内网互联”的功能,用于帮助被运营商禁止BT的用户下载,此功能越多同一运营商的用户参与下载,速度越快。但是,没被禁止BT的用户请不要轻易开启该功能。
以上所说的知识都掌握了吗?如果还有疑问,可以在本文的评论系统里面提问,或进入论坛请教高手[进入论坛]