中心化拓扑

咱们每天上网访问的网站中,其实绝大多数都是“服务器-客户机”架构的,这是一种中心化的架构,基本长成这个样子(图片来自 wikipedia 的 p2p 的页面):

可以看出,这里有个老大地位很不一样,大家都去访问他,跟他要内容。

缺陷

去中心,反脆弱。

在中心化的这种架构中,中央戊己土坐着的那个老大看上去很牛,其实就是他最脆弱。比如,一旦他瘫痪了,整个系统就瘫痪了,一旦他被一个强权势力关停了,那么整个这个系统也就完蛋了。

P2P 对等拓扑/去中心/分布式

在 P2P 网络上,随便有几个节点突然没有了,整个系统也不会受到影响。举个例子,比特币系统就是 P2P 网络在金融方面的一个应用,系统的核心数据库,也就是比特币的公共账本,的安全是整个系统继续运行的关键。所以在设计上,必须认为每一个网络节点都是不完全可信的,每个节点都可能遭受攻击或者被行政命令关停,所以去中心化的 P2P 网络就成为了比特币系统设计上的必然选择。

非结构化网络

结构化网络

在结构化的对等网络中,叠加层被组织成一个特定的拓扑结构,并且该协议可以确保任何节点都可以有效地在网络中搜索文件/资源​​,即使资源极其稀少。

分布式散列表 DHT

最常见的结构化P2P网络类型实现了分布式散列表(DHT),其中使用一致散列的变体来将每个文件的所有权分配给特定对等体。这使同伴能够使用哈希表在网络上搜索资源:即(密钥,值)对存储在DHT中,并且任何参与节点可以有效地检索与给定密钥相关联的值。

  • 一个文件被分成很多块,下载时同时进行块的下载。

发展

BitTorrent 使用”分布式哈希表”(DHT)来为无 tracker 的种子(torrents)存储 peer 之间的联系信息。这样每个 peer 都成了 tracker。这个协议基于 Kademila 网络并且在 UDP 上实现。
在使用DHT分发Peer之前,Tracker是找到Peer的唯一方法。

2005年5月2日,Azureus 2.3.0.0(现在称为Vuze)发布,通过称为“分布式数据库”的系统引入了对“无tracker”种子的支持。该系统是一个分布式散列表DHT实现,它允许客户端使用没有BitTorrent tracker的种子。接下来的一个月,BitTorrent公司发布了Mainline BitTorrent客户端的4.2.0版本,该客户端支持与Azureus不兼容的另一种DHT实现(俗称“ Mainline DHT ”,在其网站上的草稿中概述)。最近的测量显示,Mainline DHT的用户从1000万到2500万,每日活跃至少1000万。 主线DHT可以说是世界上最大的DHT。

动画展示BT下载过程地址

参考