没有合适的资源?快使用搜索试试~ 我知道了~
kademlia原理详细解读
4星 · 超过85%的资源 需积分: 20 24 下载量 64 浏览量
2009-06-16
10:52:54
上传
评论
收藏 296KB PDF 举报
温馨提示
试读
11页
一份不错的kademlia协议简介,中文文档,协议和基本原理,没有流程图
资源推荐
资源详情
资源评论
一、前言
Kademlia协议(以下简称Kad)是美国纽约大学的PetarP. Maymounkov和David Mazieres.
在2002年发布的一项研究结果《Kademlia: A peerto -peer information system based on
the XOR metric》。
简单的说,Kad 是一种分布式哈希表(DHT)技术,不过和其他 DHT 实现技术比较,如
Chord、CAN、Pastry 等,Kad 通过独特的以异或算法(XOR)为距离度量基础,建立了一种
全新的 DHT 拓扑结构,相比于其他算法,大大提高了路由查询速度。
在 2005 年 5 月著名的 BiTtorrent 在 4.1.0 版实现基于 Kademlia 协议的 DHT 技术后,
很快国内的 BitComet 和 BitSpirit 也实现了和 BitTorrent 兼容的 DHT 技术,实现
trackerless 下载方式。
另外,emule 中也很早就实现了基于 Kademlia 类似的技术(BT 中叫 DHT,emule 中也叫
Kad,注意和本文简称的 Kad 区别),和 BT 软件使用的 Kad 技术的区别在于 key、value 和
node ID 的计算方法不同。
二、节点状态
Kad 网络中每个节点都有一个 160bit 的 ID 值作为标志符。节点 ID 的生成,各种具体的
应用软件有不同的实现方法,一般是选择一个不重复的值进行 SHA-1 计算,这个值可以是
用户的 IP 地址,或者只是简单的随机生成。
在 Kad 网络中,所有节点都被当作一颗二叉树的叶子,并且每一个节点的位置都由其 ID
值的最短前缀唯一的确定。
对于任意一个节点,都可以把这颗二叉树分解为一系列连续的,不包含自己的子树。最
高层的子树,由 整颗树不包含自己的树的另一半组成;下一层子树由剩下部分不包含自己的
一半组成;依此类推,直到分割完整颗树。图 1 就展示了节点 0011 如何进行子树的划分:
图 1:节点 0011 的子树划分
虚线包含的部分就是各子树,由上到下各层的前缀分别为 1,01,000,0010。
Kad 协议确保每个节点知道其各子树的至少一个节点,只要这些子树非空。在这个前提
下,每个节点都可以通过 ID 值来找到任何一个节点。这个路由的过程是通过所谓的 XOR(异
或)距离得到的。
图 2 就演示了节点 0011 如何通过连续查询来找到节点 1110 的。节点 0011 通过在逐步
底层的子树间不断学习并查询最佳节点,获得了越来越接近的节点,最终收敛到目标节点上。
图 2:通过 ID 值定位目标节点
需要说明的是,只有第一步查询的节点 101,是 节点 0011 已经知道的,后面 各 步 查询的
节点,都是由上一步查询返回的更接近目标的节点,这是一个递归操作的过程。由于各节点
路由信息的不确定性(节点动态加入和离开引起), 图 2 只 是 展示了多种可能搜索路径的一
个具体实现。
三、节点间距离
Kad 网络中每个节点都可以(但不是必须)保存一个<key,value>对,这里 Key 是一个
160bit 的标志符。每一个加入 Kad 网络的计算机都会在 160bit 的命名空间被分配一个节点
ID(node ID)值, value 值就存放在 ID 值和 key 值相同或“最”接近的那个节点上。
判断两个节点 x,y 的距离远近是基于数学上的异或的二进制运算,d(x,y) = x⊕y,既
对应位相同时结果为 0,不同时结果为 1。例如:
0
10
1
01
XOR
1
10
0
01
-------------
1
00
1
00
则这两个节点的距离为 32+4=36。
显然,高位上数值的差异对结果的影响更大。
剩余10页未读,继续阅读
资源评论
- lolivia602013-07-02很详细,非常好~~
hongtonglou
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 探索tecreate:软件开发的未来之星.zip
- 打标机项目C#源码连接扫码
- 基于SSM的房屋租赁系统的设计与实现
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功