分布式系统:分散式P2P模型
点对点系统(P2P)系统是分布式系统的分散变体。它们的受欢迎程度是由可扩展性、分散协调和低成本等P2P特征推动的。可扩展性意味着随着对等体数量的增加,不需要对协议设计进行任何更改。虽然客户端-服务器架构通常需要随着(客户端)请求数量的增加而增加后端(服务器)资源,但在P2P系统中并非如此,因为它们固有的分散架构。此外,分散的P2P系统设计促进了对单个对等故障或其他中断的固有弹性。对等群体本身表示系统的服务供应基础结构。因此,潜在的服务消费者需要参与资源配置,避免需要专用数据中心。在过去的二十年中,出现了许多P2P模式。无论它们的具体实现如何,它们通常都结合了以下五个原则:(1)接口作为对等方的对称性可以作为服务器和客户端承担可互换的职责,(2)对扰动的弹性底层通信网络基质和对等故障,(3)通过复制方案实现的数据和服务生存能力,(4)在网络边缘使用对等资源,施加潜在的低基础设施成本并促进可扩展性和去中心化,以及(5)解决对等方之间资源配置的差异。
这五个原则使P2P成为各种应用的重要基础。最初,P2P系统以其对eMule或KaZaA等文件共享应用程序的支持而闻名,尽管它们的使用现在在社交等应用程序中很常见。网络、多媒体内容分发、在线游戏、互联网电话服务、即时通讯、物联网、车对车通信、监督控制和数据采集(SCADA))系统和广域监控系统。正如后面几节所讨论的,分布式账本还利用了P2P操作的某些方面。
P2P协议类别
两个主要的P2P范式是非结构化和结构化系统。这些系统设计与上一节介绍的应用类别直接相关,即非结构化协议大多适用于(大规模和可扩展)数据传播,而结构化通常用于数据发现的效率。新兴的混合P2P协议设计在集成的P2P系统中结合了非结构化和结构化的各个方面。
此外,还存在分层P2P系统。这些部分与概念上的P2P原则相矛盾,该原则认为所有对等方在服务提供意义上是平等的。这些分层系统可以被视为分层系统,例如,由前端和后端对等方组成的多个覆盖层的组合。
无论P2P系统的类型如何,重要的是要注意基本的P2P操作基于三个要素,即(a)对等节点的识别或命名,(b)跨对等方的路由架构,以及(c)发现对等方作为其标识符和路由的功能。
为了支持对P2P系统中安全性的讨论,接下来的小节提供了有关P2P协议的介绍性技术概述。我们简要概述了有关覆盖拓扑、资源发现和消息传递的P2P协议类别。读者可以参考,以全面讨论P2P操作。