P2P原理与实践
P2P(Peer to Peer)对等网络
P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。
优点是:数据的一致性容易控制,系统也容易管理。
缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一失效点;单一服务器面对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。
P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。
P2P应用软件主要包括文件分发软件、语音服务软件、流媒体软件。目前P2P应用种类多、形式多样,没有统一的网络协议标准,其体系结构和组织形式也在不断发展。
P2P技术应用
(1)分布式科学计算
P2P技术可以使得众多终端的CPU资源联合起来,服务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务(包括逻辑与数据等)被划分成多个片,被分配到参与科学计算的P2P节点机器上。在不影响原有计算机使用的前提下,人们利用分散的CPU资源完成计算任务,并将结果返回给一个或多个服务器,将众多结果进行整合,以得到最终结果。
(2)文件共享
BitTorrent是一种无结构的网络协议。除了BitTorrent之外,还有不少著名的无结构化的P2P文件共享协议,典型的有Gnutella[8]和KaZaA[6]。
(3)流媒体直播
(4)流媒体点播
(5)IP层语音通信
Skype采取类似KaZaA的拓扑结构,在网络中选取一些超级节点。在通信双方直连效果不好时,一些合适的超级节点则担当起其中转节点的角色,为通信双方创建中转连接,并转发相应的语音通信包。
P2P网络的分类
1.中心化拓扑结构
指的是网络中资源和服务的索引都存储在中心服务器目录中,而资源和服务本身则存储在网络的各个结点。
2.全分布式非结构化拓扑结构
采用全分布式非结构化拓扑结构的P2P网络是一种重叠网络,重叠网络是在现有的网络体系结构上新加一层虚拟网络,并将虚拟网络中的每个结点与实际网络中的一些结点相连,从而实现与实际网络中每个结点的联通。
3.全分布式结构化拓扑结构
全分布式结构化拓扑采用分布式哈希表来组织网络中的各个结点,因此这种拓扑结构的网络也称为DHT网络。
4…半分布式拓扑结构
半分布式结构吸取了中心化结构和全分布式结构的优点,选择性能较高的结点作为超级结点,在各个超级结点上存储了系统中其他部分结点的信息。
P2P网络拓扑的比较
中心化 扩展性差、可靠性差、可维护性最好、搜索算法效率最高、支持复杂查询
全分布式非结构化 扩展性差、可靠性好、可维护性最好、搜索算法效率中、支持复杂查询
全分布式结构化 可扩展性好、可靠性好、可维护性好、搜索算法效率高、不支持复杂查询
半分布式 可扩展性中、可靠性中、可维护性中、搜索算法效率中、支持复杂查询