基于P2P的分布式网络故障监测系统的研究--毕业论文

上传人:无*** 文档编号:204989634 上传时间:2023-04-27 格式:DOC 页数:60 大小:1.92MB
返回 下载 相关 举报
基于P2P的分布式网络故障监测系统的研究--毕业论文_第1页
第1页 / 共60页
基于P2P的分布式网络故障监测系统的研究--毕业论文_第2页
第2页 / 共60页
基于P2P的分布式网络故障监测系统的研究--毕业论文_第3页
第3页 / 共60页
点击查看更多>>
资源描述
I基于P2P的分布式网络故障监测系统的研究摘 要随着网络技术的快速发展,网络规模不断扩大,网络维护变得日益复杂,传统网络故障监测模型已不能适应当前网络对故障监测的需求。本文将P2P技术与分布式网络故障监测技术相结合,尝试采用一种基于P2P技术的分布式网络故障监测模型,以适应目前大规模、复杂、动态的网络在网络故障监测方面的需求。主要工作包括:首先,本文分析了大规模、异构网络环境对传统故障监测系统带来的问题,针对P2P技术和分布式故障监测系统的实现方法和技术难点展开研究。其次,设计了基于P2P的网络故障监测系统,新系统分为P2P网络平台模块、网络故障监测模块和故障数据存储模块三个模块。采用Sun微系统对等网络标准JXTA实现P2P网络平台模块;在网络故障监测模块的实现上,采用SNMP的Trap告警方式和轮询机制实现故障数据监测模块中的故障数据采集功能,采用基于Java的Drools工具和MIB阈值调整相结合的方法实现对故障数据的过滤功能,采用双任务的工作方式解决监测服务器在接收SNMPTrap报文时UDP缓冲池溢出问题;使用Microsoft SQL Server2000数据库系统设计并实现故障数据存储模块。最后,在仿真环境中对新系统和传统监测系统进行分析和对比,评估了基于P2P的分布式故障监测系统的性能,仿真实验表明在大规模、复杂、动态的网络环境中将P2P技术引入分布式网络故障监测系统可以提高网络故障监测的实时性和准确性。本文的工作,为下一步开发基于P2P的分布式网络故障监测系统打下良好基础。关键字::分布式网络,故障监测, P2P, JXTA Research Of Distributed Network Fault Monitoring System Based On P2pABSTRACTWith the rapid development of network technology,the scale of network is expanding continuously, so the requirements of network fault monitoring is becoming more and more complex.The traditional network fault monitoring system no longer satisfies current networks requirements for fault monitoring.This paper combined P2P technology with distributed network fault monitoring, try to use distributed network fault monitoring based on P2P,which adapt to the requirement of the current large-scale,complex,dynamic network.The main tasks are:Firstly,the problem of traditional network fault monitoring system for large scale and haterogeneous network envirment are analyzed,ltimate principle and difficult points of the P2P technology and distributed network fault monitoring system are also studied.Secondly,the newwork fault monitoring system based on P2P is designed,and the new system is divided into P2P network platform module、network fault monitoring module and fault data storage module.The P2P network platform module is realized by Sun Microsystems JXTA standard;In the realization of network fault monitoring module, the function of fault data acquistion in the module is realized by SNMPs trap alarm pattern and rolling mechanism, the filtering function for fault data is realized by the method which combing with Drools tool which based on Java and MIB threshold adjustment ;the UDP buffer overflow paoblems is sovled by the working pattern of double tasks when receiving SNMP Trap message; The fault data storage module is designed and implemented with database of Microsoft SQL Server2000. Finally, the new monitoring system and traditional monitoring system is contrasted in simulation environment.The function of distributed network fault monitoring system based on P2P is ecaluated.Simulation results showed that he accuracy and real-time of the network fault monitoring are enhanced by introducing P2P into monitoring system in the large-scale,complex V目 录摘 要IABSTRACTII1 绪论11.1 研究背景11.1.1 网络监测发展现状11.1.2 传统网络故障监测系统的不足11.1.3 基于P2P分布式网络故障监测的优势21.2 国内外研究现状31.2.1 国外研究现状31.2.2 国内研究现状41.3 本文主要工作及意义41.4 论文的结构52 基于P2P的分布式网络故障监测系统关键技术的研究72.1 分布式网络故障监测技术的研究72.1.1 分布式网络故障监测的产生与特点72.1.2 分布式和集中式的比较72.1.3 分布式故障监测的关键问题和难点82.1.4 分布式故障监测的实现方法82.2 P2P技术的研究92.2.1 P2P技术概述92.2.2 P2P技术的特点与主要应用102.2.3 P2P的不足113 基于P2P分布式故障监测系统的设计133.1 系统的提出133.1.1 基本设计思想133.1.2 系统的网络结构143.1.3 系统的体系结构153.1.4 基于P2P的分布式故障监测模型与传统模型的比较163.2 系统的工作模式163.3 P2P平台的设计173.4 故障监测服务器设计183.4.1 网络故障监测模块193.4.2 P2P模块193.4.3 数据库模块213.5 故障数据过滤机制的设计213.6 系统的通信机制233.6.1 故障通信中信息的标识233.6.2 消息格式243.6.3 通信机制254 基于P2P分布式故障监测系统的实现304.1 系统的软硬件平台304.1.1 系统的软硬件要求304.1.2 系统模块结构304.1.3 系统原型实现的技术方案314.2 P2P网络平台的实现314.2.1 模块结构关系的说明314.2.2 P2P网络的实现324.3 故障监测功能的实现434.3.1 故障监测功能模块的工作流程434.3.2 故障监测功能的实现434.3.3 网络拓扑功能的实现464.4 数据模块的实现48致 谢50参 考 文 献5155基于P2P的分布式网络故障监测系统的研究1 绪论1.1 研究背景1.1.1 网络监测发展现状随着社会信息化的飞速发展,作为信息传输媒介的网络,已经遍布于我们生活的方方面面。作为国民经济和社会发展基础之一的网络通信,也成为了当前世界发展最为迅速的领域1。随着人们对网络的依赖性越来越大,对网络的稳定性和可获得性要求也越来越高,网络故障监测及其管理的研究也越来越重要。一旦网络出现故障,就必须要快速排除故障,确保网络正常运行,从这个意义上讲,网络故障监测对于网络故障管理的重要性就显得尤为重要了,是网络故障管理的重要手段。在网络技术迅速发展、规模不断扩大的同时,网络的复杂性也在不断增加,网络异构性问题更是逐渐突出,这使得网络故障监测面临着巨大的挑战。人们对网络故障监测提出了新的要求,新的网络故障监测模型要求能在任何地点、任何时候、任何平台下对任何网络进行故障监测,能够解决网络应用方面的可集成性和可扩展性,使网络在具有可伸缩性的同时实现网络故障监测任务的灵活分布。1.1.2 传统网络故障监测系统的不足传统的故障监测分为集中式故障监测和分布式故障监测两种:a 传统集中式故障监测在传统的集中式网络故障监测系统中,监测服务器NMS(Network Monitor Server)是整个网络的故障监测中枢,它通过轮询被监测的网络设备中的故障监测代理程序,从而获得当前网络的状态。随着网络的飞速发展,集中式故障监测系统暴露出了以下3个主要缺陷2:1) 随着网络规模的不断增加,被监测设备类型和数目也越来越复杂繁多,对被监测对象周期性的轮询监听,将导致网络流量特别是监测服务器端的流量增大,占用了较大的带宽,并有可能造成以监测服务器端为端点的链路拥塞。2) 当网络出现故障现象时,需要获取更多的数据做进一步的推理判断,而过大的数据流会进一步恶化网络的性能。3) 被监测设备和NMS的大量信息的交换加重了网络的负荷造成了监测任务的延迟。所以如何减少网络故障监测中所需的通信开销,并保证网络故障监测的有效性及实时性,成为了目前网络故障监测所面临和必须解决的问题之一。网络出现故障后的快速、准确的监测诊断机制,对于恢复网络的正常运行以及提高网络的稳定性具有重要作用,网络故障告警中包含有大量的不确定性信息,同时系统告警信息的不完备以及数据传播的动力特性都加大了故障监测和诊断的难度,需要对告警信息进行规则推理,优化网络故障监测。这充分表明,传统的集中式网络故障监测系统存在着系统灵活性和稳定性差、易产生网络瓶颈和缺乏兼容异构网络等缺点,已经无法适应网络故障监测的需求,人们开始寻求一种更好的网络故障监测方法,既而转向分布式网络故障监测的研究与设计。b 分布式故障监测分布式故障监测系统是一种对等式结构,在这种系统中有多个故障监测服务器,它们各自负责一个域,服务器之间可以相互通信。任何时候,当需要从某个域获得信息时,只需要和相应的子域故障监测服务器进行联系即可获得有效的故障信息3。通过把监测任务分布到不同的子域的故障监测服务器上,分布式故障监测提高了网络监测的及时性、可靠性、抗毁性,同时又降低了集中式故障监测方式所消耗的在通信和计算上的资源消耗 4。目前分布式网络故障监测还有许多理论和实际问题有待解决。当前比较流行的分布式网络监测技术有移动代理、CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)等5。移动代理故障监测模型可以减少网络流量、连接请求和提高对远端操作和控制的实时性,但是它需要监测和被监测系统都支持移动代理环境,对系统的配置要求较高;并且对它的控制机制也比较复杂,安全性和可靠性也有待进一步研究6。CORBA中,由于CORBA中的对象是静止的,而且缺乏足够的智能,不利于动态多变的分布式环境,并且CORBA对象不能进行迁移,当我们需要一个CORBA对象服务时候,必须建立连接,这将增加网络流量,在长时间对象交互时更为突出。此外,在分布式网络故障监测模型中,网络会被大量的路由器、交换机以及集线器分割为多个域7。因此,对各个子域的故障监测服务器相关信息采集就会变得比较困难。现有的分布式网络故障监测系统还不能很好地适应目前网络故障监测的需求。针对现有分布式网络故障监测系统的不足,本课题尝试将最近成为网络技术热点的P2P(Peer-to-Peer,点对点)技术和分布式网络故障监测技术相结合,提出了一种基于P2P技术的分布式网络故障监测模型P2PDNM(Peer-to-Peer Distributed Network Monitor Model)模型,通过动态的网络故障监测来解决大容量、异厂家、多平台、被监测设备高度分散以及通信环境下网络异构性的急剧增加等带来的现实问题。1.1.3 基于P2P分布式网络故障监测的优势基于以上的分析,我们提出的基于P2P的分布式网络故障监测系统将整个网络划分为若干个监测域,每个域中有一个到两个监测服务器,负责本域的故障监测。由所有分布在各域的故障监测服务器动态的组成一个P2P故障监测网络,故障监测服务器之间采用P2P消息机制交互本域的故障信息,协同完成对整个网络的故障监测,进而协助工作人员排除故障,恢复网络正常的运行。基于P2P的分布式网络故障监测系统具有如下4个主要优势:a与现有系统的无缝集成基于P2P的分布式故障监测系统不仅支持分散的网络结构,并且也支持传统的集中式结构,它将整个网络依据一定的标准划分为若干个故障监测域,域内采用传统的集中式网络模式,P2P网络由各个监测域中负责故障监测的故障监测服务器组成,这样在最大程度上保留了现有的网络设备,利于故障监测系统的升级,实现了与现有系统的无缝集成8。b灵活的故障监测机制P2P分布式故障监测系统中,故障监测服务器根据分布式故障监测的需要动态的组成P2P网络,每个故障监测服务器都是一个相对独立的实体,既可以只进行本域的故障监测,也可以根据监测需要灵活的调整监测范围(多个域或者整网)及监测策略。c提高了网络故障监测的性能P2P分布式故障监测可以大量地减少网络流量和网络连接时间和次数9。一方面,P2P故障监测服务器能够自主的对本域中许多故障告警进行相应处理,避免了大量数据的网络传输,使需要经过网络的数据流量能被降到很低;另一方面,故障监测服务器可以异步的执行故障监测任务,而不需要和其它故障监测服务器保持长时间的链接,减少了不必要的网络连接时间。d对网络监测系统健壮性和容错的支持采用P2P技术组建的故障监测网络,当网络的拓扑、组织形式等发生变化时,监测网络能随之动态重组10;当网络出现故障时,并由于采用域管理,可以及时的将故障告警告知本域的故障监测服务器,并在距离故障地点最近的地方产生反应,动态重组网络,保证了故障的隔离性,有效防止故障蔓延11。P2P网络的特性使得每个域成为一个独立的单元,提高了分布式系统的自治性和可恢复性。总之,将P2P技术与网络故障监测技术结合具有很好的应用前景。1.2 国内外研究现状1.2.1 国外研究现状 国际上对基于P2P应用的研究已成为热点,其中P2P结构在网络中的应用也越来越受到大家的重视,很多研究机构都在积极进行研究,此外,国外在网络故障监测方面的研究比较成熟,已有一些公司研制开发出综合的网络故障方面的系统,如NAI公司的Sniffer、HP公司的NetMetrix等,这些产品可以对整个网络的关键网段进行集中管理,并提供对网络的故障检测和排除1213。对于基于P2P结构在网络故障监测中的应用,国外很多研究机构也都在进行研究,其中有微软亚洲研究院、德国符兹堡大学、法国的MADYNES研究小组等,其中德国符兹堡大学的DNA(Distributed Network Agent)项目14提出了采用P2P框架实现对网络通信状态的测试和测量,在该框架中提出了一种针对IP网络的全新的、分布式的、自组织的、通用的测试和质量监控框架结构,DNA利用P2P方式组织,可以分布式执行测试功能。但是从整体上来说,目前还没有比较成熟的基于P2P实现的网络故障监测系统。1.2.2 国内研究现状从2002年开始国内大专院校、科研机构和一些公司开始了关于P2P技术在网络管理及网络故障监控方面的研究,如北大网络实验室对P2P网络的管理做过一些理论上的研究,主要着眼点在于如何对P2P网络本身的管理上,应用范围局限在P2P网络中,结构相对简单,不具备通用性15。总体来说,国内在故障监测方面的研究起步的较晚,目前在网络监测方面有厦门雅迅网络开发的GNMA通用网络故障分析系统,它提供了实时监测网络(接口状态、网络流量等)、提取和接收网络数据、网络数据统计(图表)、网络数据协议分析、出错示警、专家系统(分析网络出错原因、解决办法)等功能模块,但是该产品只能对局域网进行故障方面的分析,不能对全网以及广域网线路提供故障性能分析16。对于P2P技术应用的研究目前国内还相对落后,P2P技术的主要应用还停留在对网络资源的共享方面,在网络故障管理方面的研究还没有广泛的、深入的展开。总的来说,目前国内外对于P2P的研究大都局限于在资源文件共享方面,而对于网络管理尤其是故障监测方面还没有一个比较成熟的方案。本课题所要做的是提出一个基于P2P的分布式网络故障监测的系统原型框架,并通过系统仿真来探索此方案的可行性。1.3 本文主要工作及意义本课题对P2P技术在分布式网络故障监测的应用作了研究。论文中研究了P2P技术和分布式网络故障监测系统的实现方法以及技术上的难点,讨论了将P2P技术引入分布式故障监测系统的可行性。课题提出一个在动态的、异构网络环境下的基于P2P的分布式故障监测系统。并从总体结构、工作流程、通信机制等几个方面对系统进行了研究。本课题主要工作:a 研究和分析了现有网络故障监测系统以及P2P技术的通信机制,提出了一种跨协议的、能适应动态网络的基于P2P的分布式网络故障监测模型。b 深入分析了故障数据的采集机制,设计了采用轮询方式和SNMP(Simple Network Management Protocol,简单网络管理协议)的Trap告警事件通知方式获取故障信息的方法,解决分布式网络环境中故障数据采集的问题。c 利用JXTA P2P技术设计多点异地整网或多域的故障监测的方案。 d 设计并实现了基于P2P分布式网络故障监测系统的原型。e 完成基于P2P的分布式网络故障监测原型系统的仿真测试和分析评估。本课题意义:将P2P技术引入到分布式网络的故障监测中,充分利用了P2P技术所提供的通信机制和互操作特性,为故障监测系统带来了分布透明性,并很大程度上减轻了网络通信的负载;由于采用了P2P JXTA标准组网,当网络拓扑、组织形式发生变化时,故障监测系统也能随之动态改变,满足了分布式网络故障监测新的需求;对网络故障监测系统的新的设计方法和实现技术进行了有益的探索。1.4 论文的结构本文共分为六章,具体如下:第一章 给出了课题研究的概要情况,介绍了课题的背景和课题研究的内容。第二章 介绍了分布式故障监测技术以及P2P技术,并对P2P技术在故障监测系统中的运用进行了探讨。第三章 介绍了基于P2P的分布式网络故障监测系统的设计,详细论述了系统的结构和工作流程,并对P2P平台的设计和系统的通信机制也做了一定的探讨。第四章 根据设计思路介绍了基于P2P的分布式网络故障监测系统的设计实现过程,重点讨论了P2P网络平台以及故障监测服务器的实现。第五章 对所设计的系统进行仿真测试,并对系统性能方面进行分析评估。第六章 对本文进行了总结,并对系统的下一步完善做出展望。2 基于P2P的分布式网络故障监测系统关键技术的研究2.1 分布式网络故障监测技术的研究2.1.1 分布式网络故障监测的产生与特点自20世纪90年代中期至今,随着计算机网络的迅猛发展以及网络结构复杂度的不断增加,产生了许多传统的集中式网络故障监测系统所不曾遇到的问题。例如:网络设备的智能化不足在一定程度上影响了对设备的自动化故障监测;网络监测数据结构不合理以及利用不充分也在一定程度上造成了网络带宽的浪费;尤其是以Internet技术为核心的网络技术引起的企业结构的分散化更是对网络故障监测的功能和结构提出了新的要求。因此,对于目前的网络,已经不能再采用传统的集中式故障监测结构,其原因主要有: a 现有网络的规模与复杂性使得现阶段的网络故障监测已经不是个人或者一个自动监测实体能完成的;b 在集中式网络故障监测系统中,由于网络故障监测工作由少数监测点完成,容易造成监测点负载过重,以故障监测点为端点的网络链路易阻塞等问题,给网络的正常运行带来负担。为解决以上问题,分布式网络故障监测技术应运而生。在分布式网络故障监测系统中,故障监测工作被分散到网络其他设备上,以期达到负载均衡,进而弥补传统监测系统的不足。在分布式故障监测环境中,存在多个监测服务器,以往集中式环境中监测服务器的监测任务也应该按照一定的方式划分给各个监测服务器。这种划分方式可以根据网络连接关系为依据,也可以根据监测等级为依据,甚至可以根据网络的具体应用为依据。分布式故障监测系统在网络层的架构是在原有的网络监测模块中嵌入集成模块和协作模块,各个监测服务器之间通过接口进行连接。当故障管理服务器需要汇总整个网络的故障信息时,就调用各个模块的集成和协作模块,实现对整个网络的故障监测。分布式故障监测系统由于采用了将整个网络划分为域的方法,因此易于规模的扩展,只要通过增加监测服务器的数目和改变域的数量就可以方便的适应网络规模的变化。2.1.2 分布式和集中式的比较集中式网络故障监测从一个固定点监测所有被监测设备,从而有方便、安全和易操作的优点,但是现代网络大型化和多样化的发展逐渐暴露出了传统集中式网络故障监测模式的局限性:a 集中式故障监测系统不具备伸缩性,无法对网络的动态变化高效的处理。b 对于故障的监测工作集中在一个故障监测服务器中,会使它成为网络瓶颈。c 集中式监测系统不能很好的适应于网络中采用不同厂商、协议、操作系统的情况,对于异构性的网络故障监测能力差。分布式网络故障监测系统中的故障监测任务由各个故障监测域中的故障监测服务器共同完成,每个监测服务器负责本域的故障监测,当需要另一个域中的故障信息时,通过与另一个域的故障监测服务器相互通信获得。从而实现了无论何时何地都可以多点获取整个网络的故障信息。分布式故障监测方式实现了将故障监测任务分散于整个网络。因此分布式监测系统的优点也是显而易见:a 故障监测功能由集中式的一个监测服务器分散给各个域的故障监测服务器,减少了故障监测服务器的工作量,达到了负载均衡。b 分布式故障监测系统易于规模的扩展,由于将网络划分为多个域,可以通过改变域的数量或者增加监测服务器方便的适应网络规模的变化。c 分布式的故障监测系统有助于解决网络设备的异构性问题。2.1.3 分布式故障监测的关键问题和难点分布式故障监测技术的优势已经非常明显,但是还有一些关键问题和技术难点需要解决,主要有以下几个方面:a 分布式故障监测的组织体系结构问题需解决。b 在分布式故障监测系统中,如何分布不是系统难点问题,主要问题是如何协同工作,完成对整个网络的故障监测。c 分布式故障监测系统的效率问题需考虑。2.1.4 分布式故障监测的实现方法目前,实现分布式故障监测系统主要有以下两种方案:a 层次式故障监测:通过引入中间故障监测服务器来减少顶层故障监测服务器的负担,顶层故障监测服务器负责协调各个中间故障监测服务器的通信和故障监测,从而减少了传输故障数据所需的网络流量、消除了监测服务器端的链路拥塞问题,增加了可靠性和可扩展性,进而提高了整个网络故障监测系统的性能。这种层次化的结构易于与现有网络故障监测系统集成。是一种很有前景的方法。b 对等式故障监测:通过将整个网络根据一定标准(分布、业务等)划分成若干域,各域中有一到多个(一般为一个)故障监测服务器,每个故障监测服务器负责监测本域内的网络故障,这样可以达到将传统的故障监测服务器的监测任务分散的目的,进而可以提高整个网络的可扩展性、可靠性以及可监测性。这种方案由于缺乏完善的通信协议和机制的支持,目前还没有较为成熟的案例。我们提出的基于P2P的分布式网络故障监测系统就是采用这种方案进行的一次尝试。2.2 P2P技术的研究2.2.1 P2P技术概述P2P是网络计算的一种新技术,P2P在英文中是Peer-to-Peer(对等)的简称,又被称为“点对点”,目的是将网络中不同的计算机连接在一起,充分利用互联网和Web站点中的闲置资源17,不把对资源的依赖都聚集在较少的几台服务器上。传统的互联网应用模式是基于客户机/服务器(Client/Server,简称C/S) 模式的,在这种模式下,网络边缘的PC处于客户机地位,又称终端,不具备服务器的功能。随着计算机工业的发展,PC性能的增强和成本的大幅下降,使得网络中PC终端的数目大幅增加,服务器的负担过重。一方面,网络技术的发展使得现有网络带宽数以十倍的增长,但是仍然难以满足客户机的服务请求;另一方面,计算机工业的发展使得PC的性能增强,已经具备小型服务器的能力。这样造成了一种十分矛盾的情况:处于网络中心的服务器不堪重负,网络边缘的PC终端却有大量闲置资源得不到利用,网络负载极不平衡。在这种情况之下,P2P这种新型网络应用模式产生了。P2P改变了传统的网络模式,使得网络模式由以往的集中式转向目前的分布式,网络核心从服务器端向位于网络边缘的客户端扩散,所有网络节点上的设备可以根据自身的需要动态的建立P2P对话。目前已有的P2P系统种类繁多,根据不同的角度可以分为以下几种:根据拓扑结构对中央服务器依赖程度,P2P系统可以划分为三大类18:a 全分布式P2P系统在全分布式P2P系统中,所有的节点既是服务器也是客户端,地位都是相等的,系统中没有中心服务器也没有中心路由器。全分布式P2P系统也称为纯P2P系统。如Gnutella,Gnutella是一套开放式、非集中化的个人对个人搜索系统,主要用于通过因特网寻找和交换文件,Gnutella的特色是非集中化,客户相互连接,没有中央服务器。b 部分分布式P2P系统在部分分布式P2P系统中,存在一些比普通节点具有更强的能力和地位的充当服务器角色的超级节点。这些节点由P2P系统动态组织,从而避免了P2P系统的单点失效问题。c 混合P2P系统在混合P2P系统中,一般存在多个中央服务器用来协调其它各个节点之间的交互,而在地位相等的节点之间的交互和资源共享等行为依然是按P2P模式进行的。混合P2P系统也称为集中式P2P系统。根据资源与P2P节点位置以及网络拓扑结构,P2P系统也可以划分为三大类:a 结构化P2P系统在结构化P2P系统中,每个资源被精确的存放在确定的节点上,并提供了资源表示ID到资源所在节点的映射,从而保证了在有限步数内找到所需资源。b 非结构P2P系统在非结构P2P系统中,点对点之间互有连结映射,彼此形成无规则网状拓扑结构,需要请求某资源时,以广播方式寻找,通常会设TTL(Time To Live,生存时间),不能确定在少量步数内定位到资源。c 松散结构P2P系统在松散结构P2P系统中,点对点之间互有连结映射,彼此形成无规则网状拓扑结构,需要请求某资源时,依现有映射推测寻找,介于结构P2P系统和无结构P2P系统之间。2.2.2 P2P技术的特点与主要应用 P2P技术主要由以下几个特点:a 消除单点失效集中式系统通常受制于单点失效。网络上任何一个关键节点的失效都可能导致网络的失效。而P2P架构由于服务是分散在各个节点上,部分节点或网络遭到破坏对其它部分的影响很小。而且P2P网络一般都是动态的允许节点自由的加入和离开,能在部分节点失效时自动调整拓扑结构,保证其他节点的连通。b 提高升级能力和减少带宽瓶颈集中式系统尽管能以并行方式处理请求的方式来提高服务器处理速度,但是负载在超过特定阀值之后,服务器的处理速度会严重降下来,甚至于导致服务器的崩溃。通过“升级硬件设备”来缓解这种情况不是一种长期解决方案。P2P系统将负载分担到多台计算机上,从而实现了负载均衡,在解决传统集中式网络模式的负载均衡和网络瓶颈问题的同时降低了升级的成本。c 可扩展性在P2P网络中,节点的增加不会对网络本身带来任何负担,反而使得系统的资源和服务的能力得到了扩充,能较容易的满足用户的需求,同时因为整个系统是全分布的,不存在集中式系统中的瓶颈问题。d 信息存放位置在P2P网络中可以合理的分配资源位置,将网络延迟降低甚至完全消除,从而使得响应时间也得到降低。e 负载均衡在P2P环境下,每个节点的地位都是相等的,能够彼此通信,克服了传统集中式模式中客户端对于服务器计算能力、存储能力、带宽等多方面的依赖性。同时由于资源存储的分布性,更好的实现了全网络的负载均衡。P2P技术的主要应用:同传统的分布式网络系统相比,P2P技术具有广阔的应用前景和市场需求,随着Internet的快速发展,互联网用户的急剧增加,传统的集中式网络模式的应用已经不能满足人们对快节奏,高带宽的需求,而面对一次性改造网络的巨额成本问题,P2P技术的提出,无疑缓解了这种需求压力。目前,P2P技术主要应用在以下几个方面:a 对等计算对于网络中众多终端甚至服务中心中暂时不用的计算以及存贮能力,采用P2P技术的对等计算,可以将这些资源利用起来,来完成以前只有巨型计算机才能完成的计算任务,任何需要处理海量数据的行业都可以从中获利。b 协同工作现代企业结构的日益分散,使得P2P技术有了大展身手的机会,它能使网络上任意终端之间建立实时的交互式的链接,为企业的异地机构之间的协同工作提供了便利。c 搜索引擎P2P技术改变了传统的搜索形式,使服务器的工作转移到了空闲的终端来进行,不但实现了更快速的搜索,而且在搜索资源的深度和广度上也达到了新的层次(理论上可以搜索到网络上开放的任何信息资源)。d 文件交换P2P技术改变了传统的文件交换方式,在文件交换的过程中,不再需要服务器的参与,而是由有文件交换需求的终端进行协商。方便了有此需求的用户。e 即时沟通ICQ开创了P2P技术即时通讯的先例,之后AOL Instant Message、Yahoo Pager、微软的MSN Messenger以及国内的QQ都加入了P2P应用的行列,使得用户之间的沟通获得了突破性的发展。P2P技术从出现到现在,虽然只有短短的几年时间,但在各个领域中的出色表现证明了P2P技术的生命力和广阔的市场前景。2.2.3 P2P的不足P2P技术并不是完美无缺的,它所需要解决的问题主要有以下几点19:a 客户安全性和信任问题安全性是集中化系统的优势之一,集中化系统的核心包括了对资源、用户和网络的控制和安全防范。分散化系统中的安全性实现非常困难,为了使系统有效工作,应当将安全性内嵌到分散化系统中,而不是在系统设计完成之后,将安全性作为附加部分添加到系统中。b 缺少统一的标准一个成功的技术能得以广泛的使用,其中很重要的一点就是要有统一的标准,P2P技术要成为建立分布式系统的基础,必须为P2P技术建立统一的标准。对于任何技术,标准化的实现都是非常困难的,对于还未完全成熟的技术尤为如此。随着SUN公司的JXTA和XML的广泛使用,为P2P技术制定统一标准是非常有希望的。由于受到P2P技术最初应用领域的影响,人们往往认为P2P技术的应用仅仅在文件共享和交换方面,而忽略了P2P技术是一种完整的网络技术,P2P技术具有非中心化、支持异构网络等众多优点,在网络故障监测方面,网络的异构性、故障监测服务器的负荷过载引起的监测数据丢失以及通往故障监测服务器的链路易阻塞等问题一直是影响网络故障监测系统性能的重要因素。通过P2P技术来构建故障监测系统的框架,可以使故障监测节点之间的通信变得透明,大大减少了用在设计和实现故障监测节点之间通信协议上的时间,并且可以使得网络故障监测系统具有P2P技术所具有的负载平衡等众多优点。使用P2P技术的网络故障监测系统可以克服传统模型上的缺陷,更符合现代网络对故障监测方面的需求。3 基于P2P分布式故障监测系统的设计3.1 系统的提出鉴于传统的网络故障监测模型有许多不足之处,在对各种网络故障监测系统模型分析的基础上,针对现有的大规模网络系统中被监测对象大量、分散、动态的特点,提出了基于P2P技术的分布式网络故障监测模型,此模型采用P2P技术实现网络设备在网络中的动态加入和退出以及各监测节点之间的通信机制,有效的将以往监测系统模型中监测服务器端的高负载分散在各个域的监测节点上,从而实现了负载均衡,避免了传统监测模型中服务器链路端的通信阻塞现象。通过建立这样一个结构优化、负载均衡的方案,保证了网络监测系统的有效性、实时性、灵活性、可靠性和可扩展性。3.1.1 基本设计思想利用P2P技术构建网络故障监测有两种可能的方案:a 整个网络构建成P2P网络,采用这种形式建立起来的P2P网络,监测服务器和被监测节点是处于同等地位的P2P节点。这种方案实际上等同于对P2P网络本身的故障监测,优点是结构简单、灵活,所有节点都采用P2P方式通信,每个被监测设备的故障信息都可以随时掌握。缺点是网络开销大,对于数目众多的由被监测设备组成的P2P网络仅网络本身的维护就要消耗掉大量的系统资源,此外此种方案需要在每个被监测设备上安装P2P代理程序来重构由大量节点组成的P2P网络,这本身无论是对系统或者网络来说,都是一笔不小的开销,所以此种方案的适用性较差,不适合对于大规模网络的故障监测。b 在现有网络的基础上,采用在网络中的各个子网中设立故障监测服务器监测各子网的故障,再由各个子网的监测服务器组成一个P2P网络,监测服务器之间采用P2P通信,而各子网仍采用现有的模式(分层或集中模型)来实现。这种方案的优点是能最大限度的利用现有的网络资源,开发简单,P2P网络的维护仅限于组成P2P网络的各个子网的监测服务器,系统和网络资源的开销小。基于P2P的分布式网络故障监测系统的分布性不仅体现在各个监测服务器的分布上,也体现在对P2P技术的采用上。将分布式网络故障监测系统构建在P2P平台上,可以充分的利用P2P技术所提供的通信机制和互操作特性,从而为故障监测系统提供了很好的分布透明性。本文提出的基于P2P的分布式网络故障监测系统模型采用第二种方案设计,网络设备由被监测设备和故障监测服务器组成,分布在各个域中的监测服务器根据故障监测的需要动态组成P2P网络,每个监测服务器负责对它所在的域进行网络故障监测,故障监测服务器不但负责每个域的故障监测,而且还起着网关的作用。通过使用P2P动态组网技术,当网络结构发生变化时,故障监测网络也能随着动态变化,可以充分满足分布式故障监测新的需求。3.1.2 系统的网络结构现代的大型网络往往采用了多厂家的异构软硬件体系,包括了不同的网络设备、协议和操作系统等。为了有效的进行网络故障的监测,在系统模型中,整个网络按照不同的地理分布、异构类型等策略划分为若干个可重叠的故障监测域,每个监测域中有一个到多个监测服务器负责本域的故障监测,各个域的监测服务器之间都可以相互通信、交换信息。采用这种方案可以使各个故障监测域中的被监测设备数量远远少于整个网络的被监测设备数量,而且依据地理上的划分方案让被监测设备最大限度的靠近监测服务器,因此在节约了带宽的同时又分担了整个网络的负担。为了加强网络故障监测的灵活性,系统采用将网络中分布在各域中的故障监测服务器动态的组成一个P2P网络,每个故障监测服务器相当于P2P网络中的一个P2P节点,各节点之间采用P2P通信机制进行通信,如图3-1所示:图3-1 系统网络结构从图3-1可以看出系统中由故障监测服务器组成的网络结构是经典的全分布式P2P网络的结构,每个故障监测服务器都在网络处于平等地位。一方面,它可以通过P2P通信机制在网络中与其他的监测服务器交互;另一方面,它也负责本域中采集到的故障信息的收集和过滤,执行故障监测功能。采用此结构不仅有利于系统功能的分布,而且增加了组网的灵活性,实现了跨协议、多网元管理,同时具有了P2P结构的良好的开放性、可维护性以及扩展性。3.1.3 系统的体系结构基于P2P的分布式网络故障监测系统的网络结构没有明显的层次关系,属于对等式体系结构的分布式网络模型,所有的故障监测节点在P2P网络中都是平等的关系。模型体系结构如图3-2所示:图3-2 模型体系结构在图3-2中监测服务器通过SNMP协议监测域中的网络故障,被监测设备之上是负责收集故障信息的故障监测服务器,在由监测服务器组成的P2P网络中,各个监测服务器是完全平等的,监测服务器之间采用P2P通信机制进行交互,相互合作的实现整个网络的故障监测功能。各监测服务器可以独立的完成本域的故障监测功能,并在需要时将收集到的本域网络故障信息经过滤后发往具有整网监测权限的故障监测服务器,由具有整网监测权限的故障监测服务器综合这些信息生成最终的解决方案,而其他域的监测服务器只能通过该域的监测服务器获得该域的故障监测信息。采用上述的体系结构,可以实现一个具有分布式特性的、动态的、支持多协议的网络故障监测系统。3.1.4 基于P2P的分布式故障监测模型与传统模型的比较目前,分布式网络系统多采用层次式结构,本文提出的将P2P网络模型作为分布式网络故障监测系统的网络模型,与传统的网络模型相比具有以下的优点:a 性能方面目前运用在传统分布式的技术很多,例如CORBA、 DCOM (Distributed Component Object Model,分布组件对象模式)以及RMI (Remote Method Invocation,远程方式)等20。虽然这些技术对设计和构建一个分布式系统有所帮助,但是由于它们隐藏了在执行细节方面的具体开销,使得很多情况下,基于这些技术构建的分布式网络系统对网络资源的利用率不是很高,这些缺点尤其体现在对网络带宽的利用上。例如,在CORBA中,当一个CORBA对象提供服务时,需要建立一个长时间稳定的连接,这无疑会增加网络流量,在长时间的对象交互中更为突出。课题中的对等结构分布式网络模型,能够在本域内完成故障监测任务,避免了大量数据的网络传送,并且监测服务器之间传输的是经过告警相关性过滤后的故障信息,使得需要经过网络传输的信息流量在很大程度上被减少;而且,监测节点可以异步执行任务,不需要长时间保持稳定的连接,从而减少了网络连接时间。b 网络的可扩展性和灵活性方面在大规模网络环境中,网络所提供的服务和规模是不断变化的,因此良好的扩展性是保证网络故障监测系统有效运行的重要条件。目前,大多数的故障监测系统的体系结构是静态的,不能很好的适应网络规模和服务的不断变化的这种需求。例如在CORBA中,对象是静态的,缺乏足够的智能,不能很好的适应动态多变的分布式网络环境。课题中的模型则利用了P2P机制良好的可扩展性和通信透明的特性,实现了网络监测体系结构上的动态变化,提高了系统的灵活性。c消息交互方面大规模的网络通常具有很强的异构性和复杂性,在传统分布式网络模型中,大多采用了集中式网络结构模式,客户节点和中心节点之间交互的信息一般以服务器的信息数据为准,随着网络规模的扩大和异构性的增加,传统模型的缺点逐渐暴露出来。基于P2P的分布式网络模型则采用了P2P的标准通信信息格式,降低了网络消息交互时的难度,减少了交互时节点的连接时间,提高了系统的可靠性。总之,本文设计的基于P2P的分布式网络故障监测模型与传统故障监测模型相比具有很大的优势。3.2 系统的工作模式故障监测服务器的工作模式可分为以下两种:a 本域故障监测模式此工作模式下,故障监测服务器启动后,发出加入P2P网络的请求,经过身份验证后加入P2P故障监测服务器组,向邻近故障监测服务器发出更新网络拓扑的数据请求,合并各邻近故障监测服务器返回的信息,更新本地数据库。在监测服务器正常启动后,接收通过轮询被监测设备状态和被监测设备通过SNMP协议上报的trap故障告警21,存入本地数据库和通过P2P通信机制上报具有监测整网故障权限的监测服务器。b 整网故障监测模式此工作模式下,故障监测服务器启动后,处理流程基本与本域故障监测模式的工作流程相同。只是向其他域中监测服务器发送同步消息时,将权限值填充到消息中通过JXTA消息发送机制发送出去,其他域中故障监测服务器接收到同步消息后,检查权限值后,将本地库中与实时监测的故障信息通过P2P消息发送到具有整网监测权限的故障监测服务器上。3.3 P2P平台的设计 在系统中,主要利用P2P机制所具有的特性来克服传统网络模型中的缺陷。Sun公司的JXTA是为了构建P2P网络而制订的一组协议,是P2P平台的一种标准。JXTA技术提供基础性的机制解决当前分布式应用中面临的问题,实现新一代统一、安全、互操作以及异构的应用。目前,它支持基于Java技术的平台和系统。目前,在JXTA中对于结构化P2P系统大多采用DHT (Distributed Hash Table,分布式哈希表)方法来实现22。本课题的P2P网络构建选用应用最广的Chord。Chord是Chord项目组设计的DHT方法,它具有良好的性能,在采用Chord构建的P2P网络模型中,当有节点加入和离开网络时,一般产生的消息量不会超过O(log2N)(N代表结点个数)23。在P2P网络中,拓扑构造、消息路由等技术是基础性技术,对于本课题来说,分布式对象的定位显得尤为重要。在P2P网络模型中的拓扑结构、消息路由和分布式对象的定位工作流程如下:a 拓扑结构:Chord构建一个P2P网络组方法如下:1) 系统为每个节点随机的分发一个160位十进制整数作为其唯一标识。2) 每个节点的路由表中包含和最大消息数目相等的finger项,即O(log2N)个。finger1指向其直接后继。3) 每个节点的后继列表中包含O(log2N)个后继节点。4) 每个节点有一个到两个前趋节点。b 消息路由:在由Chord构建的P2P网络中,查询对象消息是按照以下方法传递的:当节点X对节点Y发送消息时,各个节点根据其路由表进行消息的转发。设该消息的P2P网络传递所要经过的节点标识为:(nid0,nid1,nidm)(m O(log2N),nid0为节点X的标识,nidm为节点Y的标识,各nid必须满足如下条件:nidj=fingerj,nid|fingerj-1 nid fingerj (0jm) (3-1)这样就保证了系统中任意两个节点的相互通信。由于任意两个节点之间有多条通信路径,当一条路径阻塞或者断开时,节点就可以根据路由表选择其他的满足条件的节点进行消息的转发24。c 分布式对象的定位:在采用Chord构建的P2P网络中,每个节点都有一个全局唯一标识符NID和分布对象唯一标识符OID,通过哈希函数可以建立两个标识符之间的对应关系:NID=HASH(OID),这样将对象定位信息保存到节点标识符为HASH(OID)的节点上。当我们查找对象时,可以通过使用哈希函数找到该对象定位信息所在节点的标识符HASH(OID),然后将请求发送到该节点上,便可找到此对象25。在P2P网络中,任何两个节点都可以通信,并且各节点上的哈希函数都相同,这样的话,只要知道对象的OID,就可以在任意节点上对该对象进行定位。3.4 故障监测服务器设计 P2P分布式网络故障监测功能主要集中在故障监测服务器,故障监测服务器作为故障监测域的故障监测中心节点,负责域内网络故障的监测,以及接收其他故障监测域的请求消息,共同完成对整网的故障监测,将故障信息保存在本地数据库中并根据要求传递给其他故障监测服务器。如图3-3所示,一个典型的故障监测服务器主要有以下几个主要组成部分:网络故障监测模块、P2P模块和本地数据库。图3-3 故障监测服务器结构3.4.1 网络故障监测模块故障监测服务器工作在各自的监测域中,系统模型中故障监测的实现基于SNMP协议,协议采用轮询机制结合SNMP的Trap告警的方式监测被监测设备。SNMP协议建立在无连接方式的UDP和IP协议之上,省去了应答机制,执行效率非常高。SNMP协议的另一个优点是具有良好的扩展性,很容易对其进行修改来满足特定的需求。如图3-3所示,系统模型的故障监测功能实现可以划分为三层。底层是数据采集,负责使用SNMP协议与被监测设备进行通信,通过trap告警事件和设置MIB阈值等方法获取被监测设备故障信息,并将采集到的故障信息送往中间层。中间是告警相关性分析处理,负责对采集到的故障信息进行数据过滤,将过滤后的故障信息存入本地数据库,以方便以后查询或整网查询,中间层还负责处理来自其他故障监测服务器(具备整网监测权限)的请求,并根据需要通过P2P网络向其它监测服务器发出故障监测请求。最上层实现对上报上来的故障信息进行管理,并可以根据需要提供用户接口。3.4.2 P2P模块P2P模块的首要功能是构造P2P网络。一个P2P分布式故障监测系统包含多个故障监测服务器,P2P模块动态的发现其它的故障监测服务器,并与之相互发送和传递消息,解决在构造过程中其他域的故障监测服务器的发现、组织、路由等问题,完成故障监测服务器彼此之间的定位和通信,构建一个P2P网络。P2P模块还负责维护P2P网络的正常运行,实施故障监测节点的创建、移动、退出及网络重构。P2P模块内部的P2P通信平台负责监控网络间的通信控制和信息传输,协调网络通信。图3-4 消息转换封装其次,P2P模块实现消息的格式转换功能。在基于P2P的分布式故障监测系统模型中,故障监测服务器之间的消息交互是通过P2P消息(XML)进行的。故障监测模块或者数据库模块都有可能提出交互请求,因此P2P模块封装转换功能要包含对应的转换模块。图3-4给出P2P模块消息转换封装的过程。最后,P2P模块实现了路由转发功能,在多个域组成的故障监测系统中,当一个具备整网监测权限的域故障监测服务器发出整网故障监测请求时,就存在访问请求的转发与路由问题。因此P2P模块要执行访问转发
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!