1
计算机网络技术理论与实践
1.9.4.2 8.4.2 P2P网络结构

8.4.2 P2P网络结构

在对等网络模型中不需要专门的服务器,也不需要网络操作系统,每台计算机都可以提供服务,也都可以获取服务,只要这些计算机之间支持相同的网络协议即可。对等网模式如图8-9所示。

img200

图8-9 对等网模式示意图

传统C/S模式存在瓶颈问题和单点失效问题:服务器的带宽、存储、计算等资源受限,容易成为网络瓶颈;服务器是整个网络的中心,如果失效将会导致整个服务无法访问。此外,随着计算技术的发展,位于Internet边缘的接入设备(也就是网络的最终用户)拥有越来越强的计算、存储等能力,传统的网络结构无法有效地利用这些资源。为此,产生了完全分布式的网络结构,将服务器的功能分布到网络中的各个节点上,充分利用这些节点的计算、存储、带宽等资源。

P2P模式中各方都具有相同的能力,其中任何一方都可以发起一个通信会话。在P2P通信过程中,没有中心服务器,每个通信节点同时具有服务器和客户端的功能。P2P网络是构筑在现有网络基础设施上的一个分布式的重叠网络(Overlay Network),如图8-10所示。当前P2P重叠网络主要构筑在已有的Internet基础设施之上,是一个逻辑网络,也称为应用层网络。

img201

图8-10 对等网结构示意图

根据拓扑结构的不同可以将P2P网络分为4种形式:

(1)中心化拓扑(Centralized Topology)

中心化拓扑最大的优点是维护简单,发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活、高效并能够实现复杂查询。

这种拓扑结构最大的问题与传统客户机/服务器结构类似,就是容易造成单点故障,访问的热点现象和法律等相关问题,这是第一代P2P网络采用的结构模式。著名的MP3共享软件Napster采用的就是这种拓扑结构。

(2)全分布式非结构化拓扑(Decentralized Unstructured Topology)

全分布非结构化拓扑在重叠网络中采用了随机图的组织方式。节点度数服从“Power-law”幂次规律,从而能够较快发现目的节点,面对网络的动态变化体现了较好的容错能力,具有较强的可用性。但是由于查询消息需要在整个网络中进行洪泛,会导致整个网络负担增大,降低了网络的扩展性,并且为了降低网络负担,消息洪泛的层数需要有一定的限制,从而不能保证网络中有的资源一定能够查询到。

这种拓扑结构同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等,最典型的实例是Gnutella。

(3)全分布式结构化拓扑(Decentralized Structured Topology)

全分布式结构化拓扑直接根据查询内容的关键字定位其索引的存放节点,在这种拓扑结构中,资源查询速度快,网络的扩展能力很强。但是由于只能支持关键字查找方式,对于一些复杂的检索需求不能很好地支持。常见的实例有Chord、Pastry、CAN和Tapestry等。

(4)半分布式拓扑(Partially Decentralized Topology)

半分布式结构吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的节点作为超级节点(Super Node),在各个超级节点上存储了系统中其他部分节点的信息,发现算法仅在超级节点之间洪泛,超级节点再将查询请求转发给适当的叶子节点。

半分布式结构也是一种层次结构,超级节点之间构成一个高速转发层,超级节点和所负责的普通节点构成若干层次关系。最典型的实例是KaZaa。