请问一下电驴里的Kad是什么意思?
是这样的,现在很多人都连接了这个什么Kad.但是我没有,原因是,以前我连接这个时,好像电驴下载到一半就占用资源100% 弄得一直重启电脑,所以我就断开了这个,一直就好了,也没出现过占用资源100%的现象,所以我现在想问问这个是干什么的?
答案或建议:
给你转贴一篇文章,也还有些可读性,总不像有些文章那么晦涩难懂,或许对你能有些帮助。而且文章发表日期是今年的,还比较近,应该是比较新的信息。
不过,文章中提到的打开 KAD 会急剧增加系统开销的问题,在电驴新的版本里,好像已经有所改善,你不妨下载个新版本试试,也许能避免你的机器资源占用太多的情况。我的机器在打开 KAD 的时候,似乎没有遇到你说的问题。或许与电驴的版本有关。
-------------------------
Kad 是 Kad emlia 的简称, eMule 的官方网站在 2004 年 2 月 27 日正式发布的 eMule v0.42b 中, Kad 开始正式内嵌成为 eMule 的一个功能模块,可以说从这个版本开始 eMule 便开始支持 Kad 网络了。
Kad 的出现,结束了之前 edonkey 时代,在ed圈里只存在着ED2K一种网络的模式,它通过新的协议开创并形成了自己的 Kad 网络,使之和 ED2K 网络并驾齐驱,而且它还完全支持两种网络,可以在两种网络之间通用。 Kad 同样也属于开源的自由软件。它的程序和源代码可以在官方网站http://www. eMule -project.net上下载。
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 < 16777216
Kad 的 id 计算原则并不是象上面那样,他更关注我们是否open和freely。
但是 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 < i <160,这个结构叫做k-bucket,该结构会形成一个tree的形状,每一次接收到新的信息时,各个节点都必须更新 k-bucket 內的资料,透过 k-bucket 结构我们可以保证所有的节点状态都是新的,而且一定会知道这个节点在哪里。
Kad emlia 网络提供四种 Potocol(RPC)
(1)PING 测试是否节点存在
(2)STORE存储通知的资料
(3)FIND_NODE 通知其他节点帮助寻找 node
(4)FIND_VALUE 通知其他节点帮助寻找 Value
而当每一个指令被接受到后,每一个节点都会到 k-bucket 上搜寻,通过这样的结构, Kad 提供一个方便快速且可以被保证在 logN 次数下找到所需的节点。
通俗的来讲就是在 Kad 网络中,我们每个 eMule 用户端只负责处理一小部分搜索和查找源的工作。分配这些工作的时候,通过我们每个用户端的唯一的 ID 和搜索文件的 hash 值之间的匹配来决定。比如像我猜我猜我猜猜 .rm 这个文件由用户小王来负责(通过该文件的 hash 值来决定),那么任何其他用户在下载这个文件的時候都会告诉其他用户,小王有这个文件,其他用户去下载这个文件的時候也会询问小王,小王也会告诉他们谁正在共享这个文件,这样 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)你的下载文件的源会增加
以上两条对于low id 和经常下载源在国外的文件用户,效果就更为突出,特别对于在 ED2K 网络中只有几个源或者没有源的文件,在 Kad 网络中,一般都能找到源,所以说你使用了 eMule 下载文件,基本上不会出现没有源的请况,无论多长时间,差别只是源的多少个数问题,由于 Kad 网络都是自动配置的,所以你丝毫不用分心,那么索性我们就打开它,何乐而不为呢?
另外对于我们搜索的时候,如果采用 Kad 网络搜索,多数情况下找到的文件源会远远多于 ED2K 的全局搜索,对于大家都是一个明智的选择。
虽然,目前 Kad 还处在试验阶段,但是他的崛起是迟早的事情,我从 Kad 一开始推出就一直在使用,开始的时候用的人不多,效果不明显。但是目前来讲,再我发帖前,我还做过测试现在 Kad 的使用人数已经突飞猛进,我随便找了一期我猜我猜我猜猜来做测试,发现 Kad 找到源的比例已经占了总源比例的 30%,甚至更多,时间越长效果越明显。所以,在这里呼吁大家都打开 Kad ,让我们的速度再迈上一个台阶.早日迎接 Kad 天下的到来!
文章来源:http://www.baikewenda.com/tech/net/7/9/a222599918.htm
其它内容推荐:
→ 对方发了数次邮件都已成功发出,我为什么仍然收不到?
→ 怎么将文档在另外一台电脑中打印出来?
→ “我的文档”跑到“我的电脑”里,怎么也删除不掉
→ 什么叫博克?
→ 怎样发短信让对方不见我的号码
→ 用信纸打印东西?
→ Nokia5700出厂锁码是什么?
→ KB、MB、GB怎么读音?
→ U盘和手机内存卡做成启动盘后如何恢复原样
→ 光盘式DV怎样播放拍摄的影片
→ iPhone普通方法删不了的程序要怎么删除?
→ iPad上同步进去的pdf文件保存在那个文件夹下?
→ ipod touch死机怎么办?
→ iphone如何更改闹钟里snooze的时间长短
→ wm6.5系统怎么手动换字体?
→ 接听电话死机的解决办法有什么?
→ 怎么将文档在另外一台电脑中打印出来?
→ “我的文档”跑到“我的电脑”里,怎么也删除不掉
→ 什么叫博克?
→ 怎样发短信让对方不见我的号码
→ 用信纸打印东西?
→ Nokia5700出厂锁码是什么?
→ KB、MB、GB怎么读音?
→ U盘和手机内存卡做成启动盘后如何恢复原样
→ 光盘式DV怎样播放拍摄的影片
→ iPhone普通方法删不了的程序要怎么删除?
→ iPad上同步进去的pdf文件保存在那个文件夹下?
→ ipod touch死机怎么办?
→ iphone如何更改闹钟里snooze的时间长短
→ wm6.5系统怎么手动换字体?
→ 接听电话死机的解决办法有什么?
推荐内容
·如何退出MSN的群?
·QQ怎么收不到表情?
·什么叫网关?
·如何恢复已删除的QQ好友
·宽带和带宽是两个什么概念?
·雷人是什么意思
·如何制作QQ表情?
·favicon.ico 文件怎么制作啊?
·微博是什么?有什么用?
·ADSL容易断线怎么回事情?
·两台电脑如何才能共同上网
·QQ里等级有什么用?
·建设一个网站需要什么条件?
·QQ登陆老是要验证,怎么办?
·用Https访问某些网站经常弹出显示不安全信息
·QQ上的业务怎么都能全开了啊
·怎么饲养QQ宠物最好?
·qq宠物爱心任务可以放弃吗?
·怎样能够直接上网不用登录
·Vista中网页经常打不开,刷新几次才能打开
·为什么我的QQ面板上没有QQ群标志
·如何实现QQ可对部分好友隐身
·关于工作组共享打印机的方案
·两台电脑如何共用一个宽带账号上网
·关于QQ空间上传视频
·QQ怎么收不到表情?
·什么叫网关?
·如何恢复已删除的QQ好友
·宽带和带宽是两个什么概念?
·雷人是什么意思
·如何制作QQ表情?
·favicon.ico 文件怎么制作啊?
·微博是什么?有什么用?
·ADSL容易断线怎么回事情?
·两台电脑如何才能共同上网
·QQ里等级有什么用?
·建设一个网站需要什么条件?
·QQ登陆老是要验证,怎么办?
·用Https访问某些网站经常弹出显示不安全信息
·QQ上的业务怎么都能全开了啊
·怎么饲养QQ宠物最好?
·qq宠物爱心任务可以放弃吗?
·怎样能够直接上网不用登录
·Vista中网页经常打不开,刷新几次才能打开
·为什么我的QQ面板上没有QQ群标志
·如何实现QQ可对部分好友隐身
·关于工作组共享打印机的方案
·两台电脑如何共用一个宽带账号上网
·关于QQ空间上传视频