什么是ED2K收集啊?

1周前 (11-27 16:20)阅读1回复0
披着凉皮的糖
披着凉皮的糖
  • 管理员
  • 注册排名4
  • 经验值85310
  • 级别管理员
  • 主题17062
  • 回复0
楼主

   通俗的讲,Kad是一种无办事器收集,将信息分离在各个结点中,而ED2K是办事器。

到底什么是kad?

关于kad收集,那一个多月来我发现有好多刚刚接触emule的伴侣不太大白,老是搞不清晰那是个什么工具,固然本区以前也曾经有人写过一些关于kad 的文章,但是可能新来的伴侣不会往翻了,那么我就连系本身对kad的一点熟悉,来从头谈一下kad吧?此中有好多不合错误的处所也请诸位伴侣不要笑话我,请逐个指出在。

  小王那里多谢了!

Kad是Kademlia的简称,eMule的官方网站在2004年2月27日正式发布的 eMule v0。42b中,Kad起头正式内嵌成为eMule的一个功用模块,能够说从那个版本起头eMule便起头撑持Kad收集了。

Kad的呈现,完毕了之前edonkey时代,在ed圈里只存在着ED2K一种收集的形式,它通过新的协议创始并构成了本身的kad收集,使之和ED2K收集不相上下,并且它还完全撑持两种收集,能够在两种收集之间通用。

  Kad同样也属于开源的自在软件。它的法式和源代码能够在官方网站 上下载。

Kad收集拓扑的更大特征在于它完全不需要办事器,我们都晓得传统的ed2k收集需要办事器撑持做为直达和存储hash列表信息,kad能够欠亨过办事器同样完成ed2k收集的一切功用,你独一要做的就是连线上彀,然后翻开kad。

  Kad需要UDP端口的撑持,之后Emule会主动根据客户端的要求,来揣度它能否自在连线,然后同样也会分配给你一个id,那个过程和我们ed2k的高id和低id查抄很像,不外那个id所代表的意义差别于ed2k收集,它代表一个能否“freely”的形态。

Kad和ed2k收集有着完全差别的看念但是不异的目标: 都是搜索和觅觅文件的源。 Kad收集的次要的目标是做到不需要办事器和改进可量测性。相关于传统的ed2k办事器只能处置必然数量的利用者(我们在办事器列表也都看到了,每个办事器都有更大人数限造),并且假设办事器比力大毗连人数过多,还会严峻的的挈垮收集。

  而Kad可以自我组织,而且自我调剂更佳的利用者数量以及他们的毗连效果。因而, 它更能使收集的缺失到达最小。因为具备了以上所论述的功用,Kad也被称之为Serverless network(无办事器收集)。固然目前不断处于开发阶段(alpha stage) 。

  但毫无疑问,它无可相比的优势,将会使它成为p2p的明天。

可能良多伴侣会存眷, kad收集没有凹凸id的计算原则,能否关于低id来言就通顺无阻了呢?

我们各人晓得在ed2k收集里面,我们的id是通过ip停止如下的算法计算得出的

设我们的IP = A。

  B。C。D

那么我们的ID number= A + 256*B + 256*256*C + 256*256*256*D

low ID的产生是因为我们的ID计算成果小于16777216。

即 ID number= A + 256*B + 256*256*C + 256*256*256*D   

但是kad里面是若何计算我们的id呢?

事实上它的计算办法是如许

ID number=256*256*256*A+256*256*B+256*C+D

所以kad其实也有凹凸id的别离。所以内网用户在利用的时候照旧无法到达内网用户完全穿透收集的效果,并且目前来看,还存在着kad模块引进,招致占用系统资本会变大以及会突然产生Memory Leak的问题,关于内存的掌握,目前emule做的效果仍是欠好。

其实kad自己有一个nodes。dat文件,也喊做节点文件,那里面存放了我们在Kad收集中的邻人节点,我们都是通过那些节点来进进Kad收集的。其实kad的收集倒更像是overnet和Kazaa收集,有兴致的伴侣各人能够比照看看。Kad收集供给了搀扶帮助觅觅节点以及笔录节点的机造。

下面我们来说说那个机造的原理:

Kad拥有一个160bit的ID,每一个节点送出的讯息都必需包罗此ID。每一个节点都必需笔录一个材料来保留已经存在的节点,材料的格局是 (IP address, UDP port, Node ID),节点所必需负责的范畴是2的i次方及2的i+1次方,i的范畴是0   

Kademlia收集供给四种Potocol(RPC)

(1)PING 测试能否节点存在

(2)STORE存储通知的材料

(3)FIND_NODE 通知其他节点搀扶帮助觅觅node

(4)FIND_VALUE 通知其他节点搀扶帮助觅觅Value

而当每一个指令被承受到后,每一个节点城市到k-bucket上搜觅,通过如许的构造,kad供给一个便利快速且能够被包管在logN次数下找到所需的节点。

通俗的来讲就是在kad收集中,我们每个emule用户端只负责处置一小部门搜索和查找源的工做。分配那些工做的时候,通过我们每个用户端的独一的ID和搜索文件的hash值之间的婚配来决定。好比像我猜我猜我猜猜。rm那个文件由用户小王来负责(通过该文件的hash值来决定),那么任何其他用户鄙人载那个文件的?r候城市告诉其他用户,小王有那个文件,其他用户往下载那个文件的?r候也会询问小王,小王也会告诉他们谁正在共享那个文件,如许kad找源的工做就完成了。

  搜索时候的办法也差不多,只不外是每小我负责一个关键字。

整个过程有点像在照线索循序问路而找到准确标的目的,而不是路上随意四处挠人在问路。而每个处所里的收集相关信息,则会跟着电脑及文件的加进而持续更新。益处在于让你能够搜索整个收集,而不但是在某一地域。

  目前来讲,那个机造和算法是绝对领先并且十分优良的。

若何找到用户小王则是通过将用户id异或的体例,两个id的二进位异或值决定他们之间的逻辑间隔,如1100间隔1101要比间隔1001近。那么当一个用户加进kad后,起首通过一个已知的用户找到一批用户的id和ip地址和端口。

  当该用户要觅觅一个特定用户A的时候,该用户先询问几个已知的逻辑间隔较A较近的用户,如B用户,C用户,D用户,B,C,D会告诉该用户他们晓得的愈加近的用户的id和ip地址和端口,同理类推,那个用户最末就能找到A。所以觅觅的次数会在logN数量级,那里N代表询问的人数。

其实也就是一种分离式杂凑的办法,根本上是对收集上某一特按时刻的文件停止快照(snapshot),然后将那些信息分离到整个收集里。 为了找到特定的文件,搜索的要求先抵达收集上的任何一台电脑上,然后那台电脑就会再将它转到另一台有更多文件信息的电脑。

  第三台电脑可能就拥有文件自己──或者也可能再陆续转到其他有准确信息的电脑。摘用那种办法,凡是只需要跳转两到三次,即可以轻松查找到所需文件。

以上几个部门,即是关于kad感化原理以及算法的阐发,可能好多人看了之后头大,那么我们通俗用户到底该重视些什么呢?

很简单,你要做的就是再利用emule的时候翻开kad,你会发现有两个明显的特征

(1)你的下载速度会加快

(2)你的下载文件的源会增加

以上两条关于lowid和经常下载源在国外的文件用户,效果就更为凸起,特殊关于在ed2k收集中只要几个源或者没有源的文件,在kad收集中,一般都能找到源,所以说你利用了emule下载文件,根本上不会呈现没有源的请况,无论多长时间,区别只是源的几个数问题,因为kad收集都是主动设置装备摆设的,所以你丝毫不消分心,那么痛快我们就翻开它,何乐而不为呢?

别的关于我们搜索的时候,假设摘用kad收集搜索,大都情状下找到的文件源会远远多于ed2k的全局搜索,关于各人都是一个明智的抉择。

固然,目前kad还处在试验阶段,但是他的兴起是迟早的工作,我从kad一起头推出就不断在利用,起头的时候用的人不多,效果不明显。但是目前来讲,再我发帖前,我还做过测试如今kad的利用人数已经突飞猛进,我随意找了一期我猜我猜我猜猜来做测试,发现kad找到源的比例已经占了总源比例的30%,以至更多,时间越长效果越明显。

  所以,在那里唤吁各人都翻开kad,让我们的速度再迈上一个台阶。早日驱逐kad全国的到来!

0
回帖

什么是ED2K收集啊? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息