大家好,又见面了,我是你们的朋友全栈君。
P2P网络:
Intel:通过系统间的直接交换达成计算机资源与信息的共享 IBM:由若干互联协作的计算机构成并具备如下特性之一:系统依存于边缘化设备的主动协作;每个成员同时扮演客户端和服务器的角色;系统应用的用户能意识到彼此的存在而构成一个虚拟或真实的群体
节点彼此对等,既作为服务和资源的提供者,又作为服务和资源的获取者
区块链依靠P2P网络 可扩展性、健壮性:P2P网络中的所有对等节点都可以提供带宽、存储空间以及计算能力等资源,随着更多节点的加入,系统整体的资源和服务能力也在同步地得到扩充。 负载均衡:P2P网络的资源分布在多个节点上,可以实现网络的负载均衡。 去中心化:在区块链系统的P2P网络中,节点是信息的发送方和接收方,它们共同维护区块链。
4种拓扑形式:
1.中心化拓扑 由一台中心索引服务器和多个客户端节点构成,并非纯粹的P2P网络 中心索引服务器用于保存接入节点的地址信息,向其他节点提供地址索引服务
特点 : 实现了文件查询和文件传输的分离,且维护简单 一旦中心索引服务器发生了故障,就会导致整个网络无法正常工作
当一个用户需要查找某个音乐文件时,首先需要通过中心索引服务器对音乐文件进行检索,得到拥有该音乐文件的其他用户的信息,接着可以依据检索结果直接连接到资源拥有者,实现文件传输和共享。
2.全分布式非结构化拓扑 没有使用中心索引服务器,其节点拥有真正的对等关系 洪泛(Flooding)数据广播,即节点会将接收到的消息向邻居节点转发,直到所有节点都接收到了这个消息或消息传播的深度到达一定的限制。
特点: 可能会出现广播风暴 实现快速的消息传播和资源查找
首先,节点会根据资源关键字向邻居发送查询请求,如果它的邻居拥有这种资源,则会与发起查询请求的节点建立连接,进行资源的传输;否则,这个邻居会继续向自己的邻居扩散这个查询请求,直到找到这种资源。
3.全分布式结构化拓扑 采用分布式散列表(Distributed Hash Tables,简称DHT)来实现整个网络的寻址和存储,从而结构化地址管理。 分布式散列表将存储着网络中所有资源信息的散列表划分成很多不连续的小块,分散地存储在多个节点上。
特点 维护机制较为复杂 良好的健壮性、可扩展性和动态适应性
当一个节点需要请求某种资源时,首先找到包含对应资源关键词的散列表所处的节点,从该节点中获取资源对应的地址信息,最后依据地址信息连接对应的节点实现资源的请求与传输。 4.半分布式拓扑 将网络中性能较高的机器作为超级节点,每个超级节点存储着系统中其他部分节点的文件信息,执行维护这些节点的地址、文件索引等工作。 超级节点之间形成一个高速的转发层,并与接入的普通节点形成一个自治的簇,簇内采用中心拓扑的P2P网络。
特点 消除了网络拥塞的隐患,并在性能和可扩展性上具有一定的优势 对超级节点的依赖性较大
对于半分布式拓扑上的资源查找,会先在普通节点所在的簇内进行,如果簇内的超级节点查询到该资源在与超级节点相邻的叶子节点上,超级节点会将查询请求转发给对应的节点;否则,超级节点间会进行有限的洪泛,经由其他超级节点继续对这个文件进行查询。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/150723.html原文链接:https://javaforall.cn