P2P网络

P2P网络

定义

P2P 网络不同于传统的客户端/服务端(client/server,C/S)结构,其中的每个节点都可以既是客户端也是服务端,一般直接使用 Socket 进行网络编程。

P2P 网络主要存在四种不同的网络模型,也代表着 P2P 技术的四个发展阶段:集中式、纯分布式、混合式和结构化模型。

一、集中式路由结构

最简单的路由方式就是集中式,即存在一个中心节点保存了其他所有节点的索引信息,索引信息一般包括节点 IP 地址、端口、节点资源等。

优点:结构简单、实现容易。

缺点:中心节点需要存储所有节点的路由信息,当节点规模扩展时,很容易出现性能瓶颈,而且也存在单点故障问题。

二、纯分布式路由结构

这种路由结构移除了中心节点,在 P2P 节点之间建立随机网络,就是在一个新加入节点和 P2P网络中的某个节点间随机建立连接通道,从而形成一个随机拓扑结构。新节点加入该网络的实现方法也有很多种,最简单的就是随机选择一个已经存在的节点并建立邻居关系。

优点:不存在集中式结构的单点性能瓶颈问题和单点故障问题,具有较好的可扩展性。

缺点:可控性差。一方面容易形成泛洪循环,比如节点 A 发出的消息经过节点 B 到 节点 C,节点 C 再广播到节点 A,这就形成了一个循环。另一方面则是响应消息风暴问题,如果节点 A 想请求的资源被很多节点所拥有,那么在很短时间内,会出现大量节点同时向节点 A 发送响应消息,这就可能会让节点 A 瞬间瘫痪。

三、混合式路由结构

这种结构混合了集中式和分布式结构,网络中存在多个超级节点组成分布式网络,而每个超级节点则有多个普通节点与它组成局部的集中式网络。一个新的普通节点加入,则先选择一个超级节点进行通信,该超级节点再推送其他超级节点列表给新加入节点,加入节点再根据列表中的超级节点状态决定选择哪个具体的超级节点作为父节点。

优点:相对灵活并且是比较有效的组网架构,实现难度相对较小。

四、结构化 P2P 网络

这是一种分布式网络结构,与纯分布式结构不同。纯分布式网络就是一个随机网络,而结构化网络则将所有节点按照某种结构进行有序组织,比如形成一个环状网络或树状网络。而结构化网络的具体实现上,普遍都是基于 **DHT(Distributed Hash Table,分布式哈希表) **算法思想。

作者:| 2018-03-27T08:20:16+00:00 3月 27th, 2018|区块链基本技术|暂无评论