另外,这里使用的DHT算法叫Kademlia(在eMule中也有使用,常把它叫做KAD,具体实现协议有所不同)。
如何使用DHT网络?
在BitComet中,无须作任何设置即可自动连接并使用DHT网络,完全不需要用户干预。BitComet使用和TCP端口号相同的UDP端口进行DHT网络连接。如果要完全禁用DHT网络,可以在选项-高级-网络连接中禁用DHT网络。对于种子制作者,可以参考:种子文件制作
内网能使用DHT网络吗?
可以使用。当然,如果有可能打开路由器上所需端口的UDP转发将更加有助于整个DHT网络的健壮性。
BitComet具体是怎样连入DHT网络的呢?
一般用户是完全不需要理会这个具体过程的。这里可以简单的介绍一下:连入DHT网络的用户叫做节点(node),节点之间互相有路由记录,因此只要和任何一个已经在DHT网络中的节点连接上,客户端就可以寻找到更多的节点,从而连入网络。
回答者:缺水仙人掌 - 见习魔法师 二级 5-13 00:30没有种子,文件太老,或者新种子没有上传完
比特精灵近日发布30稳定版,包括了很多重要而实用的更新。其中最引人注目的是,从这个版本开始比特精灵支持最新的BT技术:基于Kademlia技术的公有DHT网络,并在应用层面上进行了拓展,从而真正实现了Trackerless & Torrentless(无须种子服务器和无须种子文件)。[点此下载最新版]
使用比特精灵30的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网络的同时,对其在应用层面上进行了拓展,支持只需要一个类似链接>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)