论文部分内容阅读
P2P网络是目前研究最热门的技术之一,对于推动互联网的发展起了重要作用。相比于C/S架构其扩展性、容错性、系统性能都有显着提高。每个节点既作为服务器也作为客户端,作为服务器向其它节点提供资源服务,作为客户端向其它节点索取资源,更加方便了资源在网络上进行共享。目前,P2P技术在资源共享、数据通信、分布式计算、云计算等领域得到了广泛的应用,其应用价值被不断的挖掘出来。因此,P2P技术蕴藏广泛的应用场景,对社会的发展具有重要作用。P2P网络主要存在着两类节点,一类节点是不但在线时间长而且能力强,一类节点是在线时间短而且能力还比较弱。在对等网络中,选取性能好的节点(超级节点)构成超级节点层,性能差的节点(普通节点)构成普通节点层,普通节点由超级节点来管理与维护;而普通节点的查询操作也交给超级节点来完成,鉴于此,系统大大的减少了参加查询操作的节点,减轻了网络负担,提高了系统性能。因此,超级节点数量和稳定性是整个网络结构性能的关键因素之一。超级节点网络的优势在于降低了路由节点数,从而提升系统性能,但随着网络规模的增大,目前两层超级节点网络结构不仅无法减少路由节点数,而且还存在拓扑构造与维护等问题。面对上述问题,该论文做了以下三点研究:(1)考虑到P2P节点作为服务器时,节点可能随时面临大量的连接请求,且对其服务程序的各方面能力提出了较高的要求。本文对Windows平台所提供的完成端口模型做了深入研究,对并发IO IRP请求的跟踪、函数的逆向分析,分析并找到IOCP高性能的3个关键原因。研究获得IOCP在传统IO请求的基础上增加处理线程池栈式结构处理,降低线程切换概率;资源处理上利用“预分配”方法;IO数据缓存区大量采用内核内存映射方法。实验表明,运用好这3项技术,能够大大提高网络通信效率。(2)提出了自组织多级超级节点拓扑构造方法。其特点是随着网络规模的增大,系统自动对超级节点层次进行调整与负载转移。同时,我们给出一种新的超级节点选择算法,对节点进行全方面综合的评价与选择,降低恶意节点成为超级节点的可能性,提升拓扑结构的安全与稳定。根据节点加入与退出算法,降低网络构建与修复时间。实验结果表明:与现有超级节点结构模型对比,能够明显的降低系统负载,拓扑构造与修复成本。(3)以IOCP网络模型为底层通信基础,设计了一个高效的底层通信框架,在框架中运用线程池、缓冲区等系统性能优化技术,为上层应用屏蔽底层通信细节,开发者只需继承和实现相关的接口或者方法就可以进行应用开发,从而来降低开发周期。在底层通信框架的基础上,对自组织P2P网络系统进行分析与设计,然后在分别对各个模块功能作用进行详细的介绍,最后对整个系统的功能编码实现。