P2P 网络不同于传统的C/S (client/server,客户端/服 务端)结构,P2P 网络中的每个节点都可以既是客户端、也是服务端
P2P 的网络拓扑模型
1. 集中式 2. 纯分布式 3. 混合式
目前大多采用混合式
优点:避免大规模泛洪,实现难度低
P2P 系统按照资源组织结构分类
1. 非结构化P2P系统
a) 节点的逻辑拓扑关系松散
b) 资源放置通常与P2P系统的拓扑关系不大
优点:实现和维护简单,支持灵活的资源搜索条件
2. 结构化P2P系统
a) 节点的逻辑拓扑关系由确定性算法控制
b) 资源放置由确定性算法发布到特定节点
优点:资源定位准确,扩展性好;克服泛洪查找,提高信息搜索效率。
DHT(Distributed Hash Table,分布式哈希表)
概念简介
1. 每条文件索引被表示成(K,V)对;
2. 所有的文件索引组成一张大的文件索引哈希表;
3. 按特定规则把这些小块的局部哈希表分布到系统中的所有参与节点上;
4. 节点查询的时候把查询报文路由到相应的节点即可。
实现方案
Chord、Pastry、CAN、Tapestry、Kademlia 等
Kademlia协议
Kademlia算法是一种分布式存储及路由的DHT协议实现算法,2002年由美国纽约大学的Petar和David提出
- 一种DHT技术
- 以异或运算为距离度量基础
- 已在BitTorrent、BitComet、Emule等软件中应用
K桶、 节点、距离